Overview
An Account Funding Transaction (AFT) pulls funds from a card and deposits or transfers those funds into another account. The primary use cases for AFTs are:
- Funding an account owned by the same person; for example, topping up a pre-paid card or adding funds to a digital wallet account.
- Funding an account owned by a different person; for example, P2P payments or pulling funds from a merchant’s card account for disbursing payroll to its employees.
Merchants can implement AFTs using Nuvei’s server-to-server REST API, Web SDK, and Cashier integration methods.
Availability
- Visa Direct; Mastercard Send in the EU; other cards and markets to be supported in a future release.
- AFT-enabled merchants only.
- Domestic transactions and, in selected markets, cross-border transactions.
- Works with Sale and Auth & Settle flows. For P2P payments, use our dedicated REST API method.
- Cashier supports AFTs for wallet and fund transfers (see below).
Prerequisites
AFTs are relevant only for merchants offering funding transactions. To begin using AFTs, contact Nuvei to configure your merchant account to use this transaction type. After your account is configured, Nuvei converts your standard transactions into AFTs; you do not have to modify your existing integration.
DMN Parameters
Payment DMNs (Direct Merchant Notifications) include the following AFT-specific parameters:
isAFT=True or FalseisAFTOverridden=True or FalserecipientFirstName=RecFNamerecipientLastName=RecLNamerecipientAddress=RecAddress
REST API 1.0
This topic describes the steps to integrate AFTs into the standard server-to-server REST API payment flow.
- Perform the standard server-to-server REST API payment flow integration steps up to the Payment step.
- Perform the Payment step.
- In the relevant
/paymentrequest, include therecipientDetailsclass and its parameters.
- In the relevant
- 3DS (which contains the “first”
/paymentrequest) - Non-3DS (without liability shift)
Example of a Non-3DS /payment Request Showing the recipientDetails Class
{
"sessionToken":"<sessionToken from /getSessionToken>",
"merchantId":"<your merchantId>",
"merchantSiteId":"<your merchantSiteId>",
"clientRequestId":"<unique request ID in merchant system>",
"amount":"200",
"currency":"USD",
"userTokenId":"<unique customer identifier in merchant system>",
"clientUniqueId":"<unique transaction ID in merchant system>",
"paymentOption":{
"card":{
"cardNumber":"4000027891380961",
"cardHolderName":"John Smith",
"expirationMonth":"12",
"expirationYear":"2030",
"CVV":"217"
}
},
"relatedTransactionId":"<transactionId returned from initPayment>",
"billingAddress":{
"country":"US",
"email":"[email protected]"
},
"deviceDetails":{
"ipAddress":"<customer's IP address>"
},
"recipientDetails": {
"firstName": "string",
"middleName": "string",
"lastName": "string",
"address": "alphanumeric",
"addressLine2": "string",
"street": "string",
"city": "string",
"stateCode": "string",
"ZIP": "string",
"countryCode": "string",
"phoneNumber": "string",
"email": "string",
"dateOfBirth": "string; YYYY-MM-DD"
"accountNumber": "alphanumeric",
"identificationTypeCode": "nvarchar",
"identificationValue": "nvarchar"
},
"timeStamp":"<YYYYMMDDHHmmss>",
"checksum":"<calculated checksum>"
}
The /payment response contains:
isAFT– Indicates whether the transaction was processed as a Sale (False) or as an AFT transaction (True).
isAFTOverriden- True – Merchant can submit Sales and AFT transactions.
- False – Merchant can only submit AFT transactions.
Example of a Non-3DS /payment Response
{
"internalRequestId":691376548,
"status":"SUCCESS",
"errCode":0,
"reason":"",
"merchantId":"479748173730597238",
"merchantSiteId":"204388",
"version":"1.0",
"clientRequestId":"20230612095910",
"sessionToken":"4bb43678-9d50-46a9-8980-73e2658117ee",
"orderId":"370540478",
"isAFT":"True",
"isAFTOverridden": "True",
"userTokenId":"asdadsw4",
"paymentOption":{
"userPaymentOptionId":"91315468",
"card":{
"ccCardNumber":"4****5032",
"bin":"400002",
"last4Digits":"5032",
"ccExpMonth":"12",
"ccExpYear":"25",
"acquirerId":"19",
"cvv2Reply":"",
"avsCode":"",
"cardType":"Credit",
"cardBrand":"VISA",
"issuerBankName":"River Valley Credit Union",
"issuerCountry":"GB",
"isPrepaid":"false",
"threeD":{
}
}
},
"transactionStatus":"APPROVED",
"gwErrorCode":0,
"gwExtendedErrorCode":0,
"issuerDeclineCode":"",
"issuerDeclineReason":"",
"transactionType":"Sale",
"transactionId":"711000000023888533",
"externalTransactionId":"",
"authCode":"111407",
"customData":"",
"fraudDetails":{
"finalDecision":"Accept"
},
"externalSchemeTransactionId":"",
"orderTransactionId":1201801248
}
4. Continue with the next relevant REST API integration steps, according to the payment flow you are implementing.
Sender Data
In sender data, the merchant includes the following parameters.
| Parameter Description | Parameter | Requirements | Format |
|---|---|---|---|
| Sender first name | firstName under billingAddress | Required on non-domestic and Europe intra-EEA AFTs. |
|
| Sender last name | lastName under billingAddress |
||
| Sender address | address under billingAddress |
|
|
| Sender city | city under billingAddress |
|
|
| Sender state | state under billingAddress | Required on non-domestic AFTs to/from any one of the countries on the list. See Country Codes. | Country Subdivision Codes |
| Sender country | country under billingAddress | Required on non-domestic AFTs. | 2-letter ISO country code |
| Sender identification type code BTHD (Date of birth) CUID (Customer identification (unspecified)) NTID (National identification) PASN (Passport number) DRLN (Driver license) TXIN (Tax identification) CPNY (Company registration number/EDRPOU) PRXY (Proxy identification) SSNB (Social security number) ARNB (Alien registration number) LAWE (Law enforcement identification) MILI (Military identification) TRVL (Travel identification (nonpassport)) EMAL (Email) PHON (Phone number) | identificationTypeCode under billingAddress | Required for: | nvarchar (variable-length string of Unicode characters) up to a maximum of 100 characters. |
| Sender identification value | identificationValue under billingAddress | Required for: | ccyymmdd where: cc = century yy = year mm = month dd = day |
| Sender date of birth | dateOfBirth under userDetails | Required on non-domestic money transfer AFTs. If you are not sure whether an AFT is a money transfer AFT, please contact your Nuvei account manager. | Format is YYYY-MM-DD. |
Recipient Data
In recipient data, the merchant includes the following parameters.
| Parameter | Description | Required for: |
|---|---|---|
recipientDetails.firstName | Recipient's first name | All AFTs |
recipientDetails.middleName | Recipient's middle name | 1. Cross-border money and non-money transfer transactions out of South Africa 2. Domestic transactions in Colombia 3. Domestic and cross-border transactions in Nicaragua |
recipientDetails.lastName | Recipient's last name | All AFTs |
recipientDetails.accountNumber | Recipient’s account number | All funding transactions |
recipientDetails.phoneNumber | Recipient’s phone number | |
recipientDetails.email | Recipient’s email address | |
recipientDetails.address | Recipient's address | 1. Cross-border AFTs into and out of Canada 2. Domestic AFTs in Colombia 3. Domestic and cross-border AFTs in Nicaragua 4.Cross-border AFTs sent to issuers in Australia, New Zealand and the South Pacific |
recipientDetails.addressLine2 | Recipient's addressLine2 | 1. Cross-border money and non-money transfer transactions into and out of Canada 2. Domestic transactions in Colombia 3. Domestic and cross-border transactions in Nicaragua |
recipientDetails.street | Street address | All AFTs |
recipientDetails.zip | ZIP/postal code | Cross-border AFTs originating from or destined to Canada |
recipientDetails.city | City | 1. Cross-border AFTs originating from or destined to Canada 2. Domestic AFTs in Colombia 3. Domestic and cross-border AFTs in Nicaragua |
recipientDetails.state | State | All AFTs where recipient country is US or Canada |
recipientDetails.country | Country code | 1. Cross border AFTs 2. Domestic AFTs in Colombia 3. Domestic and cross-border AFTs in Nicaragua |
recipientDetails.cardHolderEntityType | Indicates if the recipient is an individual or a business. Values: b = Business, i = Individual | All AFTs. |
recipientDetails.identificationTypeCode | BTHD (Date of birth) CUID (Customer identification (unspecified)) NTID (National identification) PASN (Passport number) DRLN (Driver license) TXIN (Tax identification) CPNY (Company registration number/EDRPOU) PRXY (Proxy identification) SSNB (Social security number) ARNB (Alien registration number) LAWE (Law enforcement identification) MILI (Military identification) TRVL (Travel identification (nonpassport)) EMAL (Email) PHON (Phone number) | Required for: |
recipientDetails.identificationValue | ccyymmdd where: cc = century yy = year mm = month dd = day | Required for: |
Web SDK
To integrate AFTs using Web SDK, perform the steps for the relevant Web SDK flow as described in Getting Started with Nuvei Web SDK.
- For non-domestic AFTs – In the
createPayment()request, include sender data.
- Include the
recipientDetailsclass and its parameters in the server-side/openOrderAPI request.
Sender Data
In sender data, the merchant includes the following parameters.
| Parameter Description | Parameter | Requirements | Format |
|---|---|---|---|
| Sender first name | firstName under billingAddress | Required on non-domestic and Europe intra-EEA AFTs. |
|
| Sender last name | lastName under billingAddress |
||
| Sender address | address under billingAddress |
|
|
| Sender city | city under billingAddress |
|
|
| Sender state | state under billingAddress | Required on non-domestic AFTs to/from any one of the countries on the list. See Country Codes. | Country Subdivision Codes |
| Sender country | country under billingAddress | Required on non-domestic AFTs. | 2-letter ISO country code |
| Sender identification type code BTHD (Date of birth) CUID (Customer identification (unspecified)) NTID (National identification) PASN (Passport number) DRLN (Driver license) TXIN (Tax identification) CPNY (Company registration number/EDRPOU) PRXY (Proxy identification) SSNB (Social security number) ARNB (Alien registration number) LAWE (Law enforcement identification) MILI (Military identification) TRVL (Travel identification (nonpassport)) EMAL (Email) PHON (Phone number) | identificationTypeCode under billingAddress | Required for: | nvarchar (variable-length string of Unicode characters) up to a maximum of 100 characters. |
| Sender identification value | identificationValue under billingAddress | Required for: | ccyymmdd where: cc = century yy = year mm = month dd = day |
| Sender date of birth | dateOfBirth under userDetails | Required on non-domestic money transfer AFTs. If you are not sure whether an AFT is a money transfer AFT, please contact your Nuvei account manager. | Format is YYYY-MM-DD. |
Recipient Data
| Parameter | Description | Required for: |
|---|---|---|
recipientDetails.firstName | Recipient's first name | All AFTs |
recipientDetails.middleName | Recipient's middle name | 1. Cross-border money and non-money transfer transactions out of South Africa 2. Domestic transactions in Colombia 3. Domestic and cross-border transactions in Nicaragua |
recipientDetails.lastName | Recipient's last name | All AFTs |
recipientDetails.accountNumber | Recipient’s account number | All funding transactions |
recipientDetails.phoneNumber | Recipient’s phone number | |
recipientDetails.email | Recipient’s email address | |
recipientDetails.address | Recipient's address | 1. Cross-border AFTs into and out of Canada 2. Domestic AFTs in Colombia 3. Domestic and cross-border AFTs in Nicaragua 4.Cross-border AFTs sent to issuers in Australia, New Zealand and the South Pacific |
recipientDetails.addressLine2 | Recipient's addressLine2 | 1. Cross-border money and non-money transfer transactions into and out of Canada 2. Domestic transactions in Colombia 3. Domestic and cross-border transactions in Nicaragua |
recipientDetails.street | Street address | All AFTs |
recipientDetails.zip | ZIP/postal code | Cross-border AFTs originating from or destined to Canada |
recipientDetails.city | City | 1. Cross-border AFTs originating from or destined to Canada 2. Domestic AFTs in Colombia 3. Domestic and cross-border AFTs in Nicaragua |
recipientDetails.state | State | All AFTs where recipient country is US or Canada |
recipientDetails.country | Country code | 1. Cross border AFTs 2. Domestic AFTs in Colombia 3. Domestic and cross-border AFTs in Nicaragua |
recipientDetails.cardHolderEntityType | Indicates if the recipient is an individual or a business. Values: b = Business, i = Individual | All AFTs. |
recipientDetails.identificationTypeCode | BTHD (Date of birth) CUID (Customer identification (unspecified)) NTID (National identification) PASN (Passport number) DRLN (Driver license) TXIN (Tax identification) CPNY (Company registration number/EDRPOU) PRXY (Proxy identification) SSNB (Social security number) ARNB (Alien registration number) LAWE (Law enforcement identification) MILI (Military identification) TRVL (Travel identification (nonpassport)) EMAL (Email) PHON (Phone number) | Required for: |
recipientDetails.identificationValue | ccyymmdd where: cc = century yy = year mm = month dd = day | Required for: |
Payment Page (Cashier)
The Payment Page (Cashier) supports AFTs for wallet and fund transfers.
To integrate AFTs using Nuvei’s Cashier integration method, perform the steps for the relevant Cashier flow.
For non-domestic AFTs – The merchant should include sender data.
Sender Data
In sender data, the merchant includes the following parameters.
| Parameter Description | Parameter | Requirements |
|---|---|---|
| Sender first name | first_name | Required on non-domestic and Europe intra-EEA AFTs. |
| Sender last name | last_name | |
| Sender address | address1 | |
| Sender city | city | |
| Sender state | state | Required on non-domestic AFTs to/from any one of the countries on the list. See Country Codes. |
| Sender country | country | Required on non-domestic AFTs. |
| Sender date of birth | dateOfBirth | Required on non-domestic money transfer AFTs. If you are not sure whether an AFT is a money transfer AFT, please contact your Nuvei account manager. |