Accept account funding transactions with a wallet
Last updated: May 13, 2026
Use Apple Pay and Google Pay to accept Account Funding Transactions (AFTs), for example, to fund a digital wallet or a prepaid card. Flow collects the customer's billing details from the wallet during authorization and makes them available to you in the handleSubmit callback.
Information
Follow the Apple Pay and Google Pay guides before you update your integration to accept AFTs.
To process AFT payments with Apple Pay and Google Pay, you need:
- AFT processing enabled on your Checkout.com account. To enable this, contact your account manager or request support.
- An existing Apple Pay or Google Pay Flow integration.
When you create a payment session on your server, you must set processing.aft to true.
1{2"amount": 1000,3"currency": "GBP",4"reference": "ORD-123A",5"processing": {6"aft": true7},8"customer": {9"name": "Jia Tsang",10"email": "jia.tsang@example.com"11}12}
When you create the wallet component, set captureBillingAddress to true. This instructs the wallet to request the customer's billing address during authorization.
This option is supported for both applepay and googlepay components.
1const applepayComponent = checkout.create('applepay', {2captureBillingAddress: true,3});45if (await applepayComponent.isAvailable()) {6applepayComponent.mount('#applepay-container');7}
Use the handleSubmit callback to inspect the payment request before it is submitted. The callback receives the payment request object, which includes the billing details collected from the wallet.
1const checkout = await CheckoutWebComponents({2paymentSession,3publicKey,4environment: 'sandbox',56handleSubmit: async (self, paymentRequest) => {7// Inspect or forward the payment request to your server8const response = await fetch('/api/pay', {9method: 'POST',10body: JSON.stringify(paymentRequest),11});1213return response.json();14},15});
When processing.aft is enabled and the wallet provides billing details, the following fields are populated in the payment request's source object.
Information
Fields that the wallet does not provide, for example source.phone, are omitted from the payment request. Always check for the presence of optional fields before using them.
| Field | Type | Description |
|---|---|---|
|
| The account holder details collected from the wallet. |
|
| The account holder's first name. |
|
| The account holder's last name. |
|
| The billing address collected from the wallet. |
|
| The first line of the billing address. |
|
| The billing address city. |
|
| The billing address ZIP or postal code. |
|
| The billing address country, as an ISO alpha-2 country code. |
|
| The customer's phone number collected from the wallet. |
|
| The customer's phone number. |