As part of the scheme’s ongoing enhancements to the payments industry as a whole, there has been a push for greater visibility of the full end-to-end transaction lifecycle—particularly for industries and MCCs that fall under specific risk profiles.
As part of this push for visibility, Visa is mandating that merchants with MCCs 4829, 6211, 6540, 6051, and 6012 (dependent on use case and only if expressly stated by your Acquirer) convert pay-in transactions to alternative rails using Visa Direct or Mastercard Send. These transactions must be classified as Account Funding Transactions (AFTs), with additional data points included in the payment flow.
Please note that AFTs (Account Funding Transactions) are part of the pay-in and payout lifecycle (OCT – Original Credit Transaction). However, even if you are not currently processing OCTs, you may still be required to comply with the AFT mandate.
Overview
This article outlines the AFT requirements for MCC 6051 - Non-Financial Institutions – Foreign Currency, Money Orders (not wire transfer) and Travelers Cheques. Merchants are expected to implement AFT transaction flows by submitting additional parameters—such as transactionBai
—within the payment request.
Implementation timelines may vary depending on your Acquirer. Please ensure you are ready to adopt AFT parameters when your Acquirer confirms compatibility.
Payment Classification: transactionBai
The transactionBai field is used to classify the purpose of the AFT. For MCC 6051, the following BAI values are applicable:
BAI Value | Stands for | MCC | Relevant Use Case |
---|---|---|---|
FT |
Fund Transfer | 6051 |
6051 Non-Financial Institutions – Foreign Currency, Liquid and Cryptocurrency Assets (for example, Cryptocurrency), Money Orders (Not Money Transfer), Account Funding (not Stored Value Load), Travelers Cheques, and Debt Repayment. |
LA |
Liquid Assets | 6051 |
6051—Non-Financial Institutions – Foreign Currency, Liquid, and Cryptocurrency Assets (for example: Cryptocurrency), Money Orders (Not Money Transfer), Account Funding (not Stored Value Load), Travelers Cheques, and Debt Repayment—must identify Visa Direct transactions under the BAI value of LA. Note: An AFT is not intended for debt repayment. |
WT |
Staged Digital Wallet (SDW) transfer (adding value to a digital wallet with a proprietary merchant acceptance network) | 6051 |
6051 Non-Financial Institutions – Foreign Currency, Liquid and Cryptocurrency Assets (for example Cryptocurrency), Money Orders (not Money Transfer), Account Funding (not Stored Value Load), Travelers Cheques, and Debt Repayment Note: An AFT is not intended for debt repayment. If the funds will be used for a high-brand risk transaction, the applicable high-brand risk MCC must be used. If the funds are used for a gambling transaction, the applicable gambling MCC must be used. If the wallet is used to purchase Liquid and Cryptocurrency Assets (for example, Cryptocurrency), the applicable special condition indicator must be used. |
TU |
Top Up | 6051 |
6051 Non-Financial Institutions – Foreign Currency, Liquid and Cryptocurrency Assets (for example, Cryptocurrency), Money Orders (not Money Transfer), Travelers Check, and Debt. |
'transactionBai': 'FT'
AFT Required Parameters
The following fields are required when processing Account Funding Transactions (AFTs) for MCC 6051. 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 3-character format passed separately. | AN3 | Mandatory |
transactionBai |
Defines the transaction type. See the previous section for MCC-specific values. | AN2 | Mandatory |
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 |
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 Language -
Code 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
Comments
0 comments
Please sign in to leave a comment.