Skip to main content

Account Funding Transactions (AFT)

Overview

An Account Funding Transaction (AFT) is an operation that allows transferring funds from a card to a bank account or to another person. This type of transaction is available for Visa and Mastercard cards, and its availability depends on the MCC (Merchant Category Code) of the merchant and the card brand.

In Paylands, the logic that determines whether an AFT is applied and its type depends on the presence of the aft field and the user data provided in extra_data when generating the payment order, as well as the merchant configuration.


AFT Types

TypeDescriptionRequires receiver data
NONEForces AFT not to be used.No
ACCOUNT_TO_ACCOUNTTransfer of funds from a card to the same user's account.No
PERSON_TO_PERSONTransfer of funds to another person (receiver data required).Yes

If the aft field is not provided, Paylands may automatically apply an ACCOUNT_TO_ACCOUNT AFT, as long as:

  • The merchant is configured for it (based on its MCC).
  • Sender information is correctly provided in the profile and billing_address fields.

Structure of extra_data.aft

The aft field is included inside extra_data. Its structure depends on the AFT type:

"aft": {
"type": "PERSON_TO_PERSON",
"receiver": {
"first_name": "John",
"last_name": "Doe",
"country": "ESP",
"account_number": "4111111111111111",
"account_type": "CARD_NUMBER"
}
}

Fields of the aft object

FieldTypeRequiredDescription
typestringYesAFT type: NONE, ACCOUNT_TO_ACCOUNT, PERSON_TO_PERSON
receiverobjectOnly if type = PERSON_TO_PERSONReceiver’s transfer details

Fields of the receiver object

FieldTypeRequiredDescription
first_namestringYesReceiver’s first name
last_namestringYesReceiver’s last name
countrystringYesReceiver’s country (ISO 3-letter format, e.g., ESP)
account_numberstringYesReceiver’s card, account, or phone number
account_typestringNoAccount type: CARD_NUMBER (default), ACCOUNT_NUMBER, MOBILE_PHONE_NUMBER

Required sender data

To execute an AFT correctly (explicit or implicit), the following fields must be provided in extra_data:

profile

FieldRequiredDescription
first_nameYesUser’s first name
last_nameYesUser’s last name
birthdateYesDate of birth (YYYY-MM-DD)
emailNoUser’s email (recommended)

billing_address

FieldRequiredDescription
countryYesUser’s country
address1YesAddress line
cityYesCity
zip_codeYesPostal code
state_codeOnly if country is USA or CANState code

AFT compatibility by brand and MCC

The following tables show which AFT types are supported depending on the card brand and the merchant’s MCC:

Visa

AFT TypeSupported MCCs
ACCOUNT_TO_ACCOUNT4829, 6012, 6051, 6211, 6540
PERSON_TO_PERSON4829

Mastercard

AFT TypeSupported MCCs
ACCOUNT_TO_ACCOUNT6012, 6051, 6211, 6536, 6537, 6540
PERSON_TO_PERSON4829, 6536, 6537, 6538, 6540

Integration examples

AFT type ACCOUNT_TO_ACCOUNT (explicit)

"extra_data": {
"profile": {
"first_name": "Joy",
"last_name": "Cardholder",
"email": "joy@carholder.com",
"birthdate": "1996-06-04"
},
"billing_address": {
"country": "ESP",
"address1": "Avda. del Mar",
"city": "Castellon",
"state_code": "CT",
"zip_code": "12006"
},
"aft": {
"type": "ACCOUNT_TO_ACCOUNT"
}
}

AFT type ACCOUNT_TO_ACCOUNT (implicit)

"extra_data": {
"profile": {
"first_name": "Joy",
"last_name": "Cardholder",
"email": "joy@carholder.com",
"birthdate": "1996-06-04"
},
"billing_address": {
"country": "ESP",
"address1": "Avda. del Mar",
"city": "Castellon",
"state_code": "CT",
"zip_code": "12006"
}
}

AFT type PERSON_TO_PERSON

"extra_data": {
"profile": {
"first_name": "Joy",
"last_name": "Cardholder",
"email": "joy@carholder.com",
"birthdate": "1996-06-04"
},
"billing_address": {
"country": "ESP",
"address1": "Avda. del Mar",
"city": "Castellon",
"state_code": "CT",
"zip_code": "12006"
},
"aft": {
"type": "PERSON_TO_PERSON",
"receiver": {
"first_name": "John",
"last_name": "Doe",
"country": "ESP",
"account_number": "4111111111111111",
"account_type": "CARD_NUMBER"
}
}
}

Force no AFT (NONE)

"extra_data": {
"aft": {
"type": "NONE"
}
}

AFT supported services

The following services support AFT functionality in Paylands:

  • Cecabank
  • Paynopain
  • Trustpayments
  • Nuvei
  • Finaro (Credorax)
  • Worldpay