This article provides resources for processing Account Funding Transactions (AFTs) for merchants using Merchant Category Code (MCC) 6211, including required parameters and example integrations.
As part of the schemes’ ongoing push for greater visibility across the end-to-end transaction lifecycle, merchants with MCC 6211 are required to convert pay-in transactions to alternative rails using Visa Direct or Mastercard Send, classifying these transactions as AFTs.
Required Parameters
The following fields are required when processing Account Funding Transactions (AFTs) for MCC 6211. These values provide the necessary sender and recipient details, as well as transaction classification data. Missing any of these mandatory fields may result in failed or rejected transactions.
| Field Name | Description | Format / Values | Required |
|---|---|---|---|
transactionProcessingCode=FUNDING | AFT transactions must always be set to FUNDING. | FUNDING | Mandatory |
merchantTransactionId | ID generated by the merchant's system to assist with transaction identification. Mandatory for AFT transactions. | AN255 | Mandatory |
sender.birthDate | If the card originates outside the country where the merchant is registered, this field must be provided. | yyyy-MM-dd | Cross-border only |
sender.accountNumberType | In nearly all cases, funds will be collected from a card account via your current integration. If you use another method, please contact our support team. | CARD_ACCOUNT | Mandatory |
sender.givenName | Customer's first name. Do not pass in billing.details; use this field separately. | AN50 | Mandatory |
sender.surname | Customer's surname. Must also be provided separately, not in billing.details. | AN50 | Mandatory |
sender.street | Billing street address passed separately from billing.details. | AN100 | Mandatory |
sender.city | Billing city passed separately from billing.details. | AN50 | Mandatory |
sender.state | Billing state/province passed separately from billing.details. | AN50 | Mandatory |
sender.country | Billing country in ISO 2-character format passed separately. | A2 | Mandatory |
customParameters[FundsTransferType] | Pending | AN50 | Mandatory |
transactionPurposeCode | Classifies the purpose of the funding transaction, for example HIGHRISKSEC. Required for Mastercard AFT transactions. | AN20 | Required for Mastercard |
recipient.givenName | The recipient's first name or merchant name (if funds are for the business). | AN50 | Mandatory |
recipient.surname | Only required if the recipient is an individual (not a business). | AN50 | Conditional |
recipient.accountNumberType | Identifies the type of account the funds are being sent to. Currently, only WALLET_ID is supported. | WALLET_ID | Mandatory |
recipient.accountNumber | The recipient's account number, corresponding to the account type specified in recipient.accountNumberType. | AN50 | Mandatory |
AFT Integration
You can integrate AFT (Account Funding Transactions) using either the Server-to-Server method or the CopyandPay checkout. Both methods require you to include all mandatory AFT parameters alongside your existing integration fields.
See code example below to understand how to set up AFT transactions into your integration. All standard parameters—including 3D Secure fields—are retained when using this method. 3DS parameters are not required in the request, as they are handled automatically by the CopyandPay widget.
the following example request initiates a CopyandPay checkout with additional fields required for AFT (Additional Fund Transfer) transactions.
Change LanguageCode examples for Server-to-Server transaction requests. This method gives you full control over the payload and allows you to directly include all AFT-required fields in your API request.
All current fields in your existing integration—such as amount, currency, customer details, and 3DS data—remain the same. The AFT-specific fields should simply be appended to the payload.
Change Language