Skip to content

Last updated: January 19, 2023

An Account Funding Transaction (AFT) is a transaction in which funds are pulled from an account and used to fund a non-merchant account. For example, to load a pre-paid card, top up a wallet, or fund a person-to-person (P2P) money transfer.

The Unified Payments API can be used to perform an AFT for Visa or Mastercard.

Information

To start using this feature, please contact your Customer Success Manager.

Use the details below to set up your request.

Endpoints

For the full API specification, see the API reference.

post

https://api.checkout.com/payments

Body parameters

The processing.aft field indicates whether the payment request is an AFT, and is required for both Visa and Mastercard AFTs.

Recipient object data

Field nameDescription

address.address_line1

The first line of the recipient’s address.

address.address_line2

The second line of the recipient’s address.

address.city

The recipient's city.

address.country

The recipient's country.

address.state

The recipient's state. Only applicable for US addresses.

address.zip

The recipient's zip code.

account_number

  • If funding an account: the recipient's account number
  • If funding a card: the primary account number (PAN)

The recipient's account number can be any identifier. For example, an IBAN, internal account number, phone number or part of the PAN (the first six digits and the last four digits).

first_name

The recipient's first name. If the recipient is an organization, this should be the organization name.

last_name

The recipient's last name. If the recipient is an organization, this field is not required.

Visa field requirements

In Europe and the UK, first_name, last_name, and account_number are mandatory for domestic European AFTs and intra-EEA/UK AFTs. This means the issuer, acquirer, and merchant are all located in the European Economic Area (EEA) or the UK.

In the US, the first_name, last_name, and address fields are mandatory for domestic AFTs.

For domestic AFTs in other jurisdictions, these fields are optional.

For cross-border AFTs, first_name, last_name, and account_number are mandatory.

Mastercard field requirements

The first_name, last_name, account_number, and address.country fields are mandatory globally.

Sender object data

Field nameDescription

address.address_line1

The first line of the sender's address.

address.address_line2

The second line of the sender's address.

address.city

The sender's city.

address.country

The sender's country.

address.state

The sender's state. Only applicable for US addresses.

address.zip

The sender's zip code.

first_name

The sender's first name.

last_name

The sender's last name.

reference

The merchant's unique customer ID.

type

The type of sender. For example, an individual.

Visa field requirements

In Europe and the UK, the first_name, last_name, and address fields are mandatory for intra-EEA/UK AFTs. This means the issuer, acquirer, and merchant are all located in the European Economic Area (EEA) or the UK.

In the US, first_name, last_name, and address are mandatory for domestic AFTs.

For domestic AFTs in other jurisdictions, these fields are optional.

For cross-border AFTs, first_name, last_name, and address are mandatory.

Mastercard field requirements

All fields are optional in the supported jurisdictions.

Request example

1
{
2
"source": {
3
"type": "token",
4
"token": "tok_4gzeau5o2uqubbk6fufs3m7p54"
5
},
6
"amount": 6500,
7
"currency": "GBP",
8
"processing": {
9
"aft": true
10
},
11
"recipient": {
12
"first_name": "John",
13
"last_name": "Smith",
14
"account_number": "5555554444",
15
"address": {
16
"country": "GB"
17
}
18
},
19
"sender": {
20
"type": "individual",
21
"reference": "87654321",
22
"first_name": "John",
23
"last_name": "Smith",
24
"address": {
25
"address_line1": "123 High Street",
26
"city": "London",
27
"country": "GB"
28
}
29
}
30
}

Response example

Use the approved field to check whether or not the authorization was successful ("approved": true). If your authorization was not successful, it's possible the payment used an invalid/expired card, or a valid card with an insufficient available balance.

If you received a 202 response, the payment requires a redirect. For example, if the payment is 3D Secure.

Tip

The following pages can help you understand the response message:

The possible values for the status field include Authorized, Captured, Card Verified, Declined, and Pending. Note that Pending only applies to 3D Secure payments.

1
{
2
"id": "pay_mbabizu24mvu3mela5njyhpit4",
3
"action_id": "act_mbabizu24mvu3mela5njyhpit4",
4
"amount": 6500,
5
"currency": "GBP",
6
"approved": true,
7
"status": "Authorized",
8
"auth_code": "770687",
9
"eci": "05",
10
"scheme_id": "638284745624527",
11
"response_code": "10000",
12
"response_summary": "Approved",
13
"risk": {
14
"flagged": false
15
},
16
"source": {
17
"id": "src_nwd3m4in3hkuddfpjsaevunhdy",
18
"type": "card",
19
"expiry_month": 9,
20
"expiry_year": 2022,
21
"scheme": "Visa",
22
"last4": "4242",
23
"fingerprint": "F31828E2BDABAE63EB694903825CDD36041CC6ED461440B81415895855502832",
24
"bin": "424242",
25
"card_type": "Credit",
26
"card_category": "Consumer",
27
"issuer": "Test Bank",
28
"issuer_country": "GB",
29
"product_id": "A",
30
"product_type": "Visa Traditional",
31
"avs_check": "S",
32
"cvv_check": ""
33
},
34
"customer": {
35
"id": "cus_udst2tfldj6upmye2reztkmm4i"
36
},
37
"processed_on": "2019-01-25T11:03:36Z",
38
"reference": "ORD-5023-4E89",
39
"_links": {
40
"self": {
41
"href": "https://api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4"
42
},
43
"actions": {
44
"href": "https://api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4/actions"
45
},
46
"capture": {
47
"href": "https://api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4/captures"
48
},
49
"void": {
50
"href": "https://api.sandbox.checkout.com/payments/pay_mbabizu24mvu3mela5njyhpit4/voids"
51
}
52
}
53
}

Information

Possibly fraudulent authorization requests return the message risk.flagged: true to show that the payment has been flagged.