Funds transfer
An Account Funding Transaction (AFT) is a type of card transaction used to transfer funds from a cardholder's payment card (like a Mastercard debit or credit card) to another account, such as a bank account, digital wallet, or another card, rather than to pay for goods or services.
Typical AFT Scenarios
- Transfer between the same user’s own accounts (“me-to-me”).
- Loading funds into digital or stored value wallets.
- Adding funds to prepaid cards for personal or third-party use.
Implementation Considerations
The API allows passing funds transfer data through the fundsTransfer object of
the Mastercard and Maestro payment methods. The transaction is flagged as
a funds transfer only when this object is present.
The supported funds transfer types include:
| Funds transfer type | Description |
|---|---|
| purchase_crypto | Purchase of cryptocurrencies using card funds. |
| purchase_high_risk_securities | Purchase of high-risk securities such as certain stocks or derivatives. |
| purchase_liquid_assets | Purchase of liquid financial assets like bonds or mutual funds. |
| wallet_crypto | Loading funds into a cryptocurrency wallet. |
| wallet_high_risk_securities | Loading funds into a wallet for high-risk securities. |
| wallet_liquid_assets | Loading funds into a wallet for liquid assets. |
| wallet_stored_value | Loading funds into a stored value wallet (e.g., gift cards). |
| wallet_staged | Loading funds into a staged wallet for later use. |
| own_account | Transfer between the user's own accounts (“me-to-me”). |
In the supported use cases the sender and the recipient are the same person (for example, a customer loading their own crypto or investment wallet).
Funds transfer type and MCC
Card schemes only allow a given funds transfer type for a specific set of
Merchant Category Codes (MCC). If the merchant MCC is not compatible with the
requested type, the transaction is rejected.
Allowed MCCs per type:
| Funds transfer type | Mastercard / Maestro MCCs |
|---|---|
| purchase_crypto | 6051 |
| purchase_high_risk_securities | 6211 |
| purchase_liquid_assets | 6211, 4829 |
| wallet_crypto | 6051 |
| wallet_high_risk_securities | 6211 |
| wallet_liquid_assets | 6211, 4829 |
| wallet_stored_value | 4829 |
| wallet_staged | 6540 |
| own_account | 4829 |
For Mastercard and Maestro, the MCCs 4829, 6538 and 6540 require a funds
transfer: a payment with one of these MCCs and no fundsTransfer object is
rejected.
Field requirements
Sender and recipient information is mandatory. The following constraints apply:
| Field | Required | Constraints |
|---|---|---|
fundsTransfer.type | Yes | One of the supported types above. |
sender.name | Yes | Max length 35. |
sender.surname | Yes | Max length 35. |
sender.address | Yes | |
sender.address.country | Yes | Valid ISO 3166-1 alpha-2 code. |
sender.address.state | Yes for us and ca; must be omitted for countries without states | Must be a valid subdivision of country. |
sender.address.city | No | Max length 255. |
sender.address.street | No | Max length 255. |
sender.address.houseNumber | No | Max length 10. |
sender.address.postalCode | No | Max length 10. |
recipient.account.type | Yes | Only wallet is supported. |
recipient.account.wallet.reference | Yes | Max length 50. |
The amount.value must be greater than 0 for a funds transfer.
Domestic vs cross-border
A funds transfer is domestic when the card issuer country is the same as the
merchant country, and cross-border when they differ. The issuer country is
taken from the card BIN details and, when not available, falls back to
sender.address.country.
Cross-border funds transfers are supported.
Sample request
{
"processingAccountId": "ProcessingAccountId",
"merchantReference": "merchantReference",
"amount": {
"value": 10,
"currency": "eur"
},
"paymentMethod": {
"type": "mastercard",
"mastercard": {
"account": {
"number": "card_number",
"expiryMonth": 1,
"expiryYear": 2030,
"cvv": "card_cvv"
},
"fundsTransfer":{
"type": "purchase_crypto",
"sender":{
"name": "john",
"surname": "doe",
"address":{
"country": "de"
}
},
"recipient":{
"account":{
"type": "wallet",
"wallet":{
"reference": "12323434sdsds"
}
}
}
}
}
}
}