Money Transfer
Your account must be enabled for this feature
Use this feature to send the additional information required for eligible card-based Account Funding Transactions (AFT) and Mastercard MoneySend transactions through Checkout or Payment Link. The gateway uses this information to identify the transaction purpose and to validate the request for the card scheme.
Before you begin
This feature supports card payment journeys with:
| Setting | Supported value |
|---|---|
transactionOrigin | ECOM |
transactionType | SALE or PRE-AUTH |
| Card selection | Customer selects a card in Checkout, or your request preselects a supported card payment method |
| 3-D Secure | Existing 3-D Secure processing continues to apply to the transaction |
MOTO transactions are not supported.
Do not treat the Checkout creation response as a payment approval. Redirect the customer to the returned checkout URL, then use your normal redirect, webhook, and transaction-status integration to determine the final transaction outcome.
Choose the scheme identifier
Send the identifier that applies to the card scheme and transaction purpose agreed for your merchant account. Do not send Visa and Mastercard identifiers together in the same request.
| Card scheme | Field | Location | Use |
|---|---|---|---|
| Visa | businessApplicationIdentifier | order.orderDetails | Identifies the intended Visa AFT use case. |
| Mastercard | transactionTypeIdentifier | order.orderDetails | Identifies the intended Mastercard MoneySend or funding use case. |
The gateway validates identifier and card-scheme combinations. A request can still be rejected by the issuer, acquirer, or applicable scheme rules even when it passes gateway validation.
Required AFT and MoneySend data
Add the following data to the normal Checkout or Payment Link request when your approved use case requires it.
| Field | Requirement |
|---|---|
order.fundingSource | The account type from which funds are being transferred. Use one of the supported values listed below. |
senderReceiverInfo.senderInfo | Sender information. |
senderReceiverInfo.receiverInfo | Receiver information. |
order.orderDetails.businessApplicationIdentifier | Visa AFT only. |
order.orderDetails.transactionTypeIdentifier | Mastercard MoneySend/funding only. |
order.purposeOfPaymentCode | Required for Visa Original Credit Transfer transactions when accepting cards issued in India, Bangladesh, Argentina, or Egypt. Maximum 12 characters. |
When senderReceiverInfo is present, include both senderInfo and receiverInfo. The exact information required within each object depends on your enabled scheme, acquirer, country, and transaction-purpose contract. Provide complete and accurate party information for the transaction; do not use placeholder values in production.
Funding source values
order.fundingSource accepts the following values:
CREDIT_ACCOUNT
DEBIT_ACCOUNT
PREPAID_ACCOUNT
CASH
DEPOSIT_ACCOUNT
MOBILE_MONEY_ACCOUNT
Sender and receiver information
Both senderInfo and receiverInfo can contain the following information. Only submit data that is required for the approved transaction purpose and that you are permitted to process.
| Field | Notes |
|---|---|
`firstName, middleName, lastName | Names. Individual name fields have a maximum length of 35 characters. |
streetAddress, city, stateCode, countryCode, postalCode | Address details. countryCode is a two-letter ISO country code. |
phoneNumber, email | Contact details. Email addresses are validated by the gateway. |
birthDate | Date in YYYYMMDD format. |
referenceNumber | Party reference. Maximum 19 characters. |
accountNumber, accountType | Account information. Supported account types are listed below. |
participationId | Sender participation identifier, where applicable. |
nationality, birthCountry, occupation | Additional party information, where applicable. Nationality and birth country use ISO country codes. |
Supported accountType values:
BANK_ACCOUNT_NO_AND_BIC
CARD_ACCOUNT_NO
EMAIL
IBAN
OTHER
PHONE_NUMBER
ROUTING_TRANSIT_NO_AND_BANK_ACCOUNT_NO
SOCIAL_NETWORK_ID
WALLET_ID
Supported transaction-purpose values
Use only a value that Fiserv has approved for your merchant and card-scheme contract.
Visa: businessApplicationIdentifier
businessApplicationIdentifierACCOUNT_TO_ACCOUNT
BANK_INITIATED_TRANSFER
BUSINESS_TO_BUSINESS
CARD_BILL_PAYMENT
CASH_DEPOSIT
CUSTOMER_BILL_PAYMENT
FAST_REFUND
FUNDS_DISBURSEMENT
FUND_TRANSFER
GAMBLING_PAYOUT
GENERAL_FUNDS_DISBURSEMENT
GOVERNMENT_DISBURSEMENT
LIQUID_ASSETS
LOYALTY_PAYMENTS
MERCHANT_DISBURSEMENT
MERCHANT_PAYMENT
NON_CARD_BILL_PAYMENT
ONLINE_GAMBLING_PAYOUT
PAYROLL_OR_PENSION_DISBURSEMENT
PERSON_TO_PERSON
REQUEST_TO_PAY_SERVICE
TOPUP_FOR_ENHANCED_PREPAID_LOADS
WALLET_TRANSFER
Mastercard: transactionTypeIdentifier
transactionTypeIdentifierAGENTS_CASH_OUT_MONEY_SEND
AGENTS_CASH_OUT_MONEY_TRANSFER
BUSINESS_DISBURSEMENT_MONEY_SEND
BUSINESS_DISBURSEMENT_MONEY_TRANSFER
BUSINESS_TO_BUSINESS_MONEY_SEND
BUSINESS_TO_BUSINESS_MONEY_TRANSFER
CARD_BILL_PAYMENT_MONEY_SEND
CARD_BILL_PAYMENT_MONEY_TRANSFER
CASH_IN_AT_ATM
CASH_IN_AT_PO
FAST_REFUND_TO_ORIGINAL_CARD
GOVERNMENT_DISBURSEMENT_NONPROFIT
OWN_ACCOUNT_MONEY_SEND
OWN_ACCOUNT_MONEY_TRANSFER
OWN_DEBIT_PREPAID_TRANSFER
OWN_WALLET_TRANSFER
PERSON_TO_PERSON_CARD_ACCOUNT
PERSON_TO_PERSON_MONEY_SEND
PERSON_TO_PERSON_MONEY_TRANSFER
RAPID_MERCHANT_SETTLEMENT
GAMBLING_PAYOUT
ONLINE_GAMBLING_PAYOUT
Example: Visa AFT Checkout request
This example shows the AFT-specific additions to a Checkout SALE request. Replace the placeholder values with your own integration values. It intentionally includes only the Visa identifier; do not add transactionTypeIdentifier unless the final selected card and approved contract require Mastercard processing instead. Remove purposeOfPaymentCode when it is not required for your transaction.
{
"storeId": "{{storeId}}",
"merchantTransactionId": "{{uniqueMerchantTransactionId}}",
"transactionOrigin": "ECOM",
"transactionType": "SALE",
"transactionAmount": {
"total": 25.00,
"currency": "GBP"
},
"order": {
"fundingSource": "DEBIT_ACCOUNT",
"orderDetails": {
"businessApplicationIdentifier": "ACCOUNT_TO_ACCOUNT"
},
"purposeOfPaymentCode": "{{purposeCodeIfRequired}}"
},
"senderReceiverInfo": {
"senderInfo": {
"firstName": "Jane",
"lastName": "Sender",
"countryCode": "GB",
"accountType": "BANK_ACCOUNT_NO_AND_BIC"
},
"receiverInfo": {
"firstName": "Alex",
"lastName": "Receiver",
"countryCode": "GB",
"accountType": "BANK_ACCOUNT_NO_AND_BIC"
}
},
"checkoutSettings": {
"redirectBackUrls": {
"successUrl": "https://merchant.example/success",
"failureUrl": "https://merchant.example/failure"
},
"webHooksUrl": "https://merchant.example/payment-webhook"
}
}
If your account requires additional sender or receiver attributes, add them to the relevant object. Do not log full account numbers, dates of birth, addresses, or other sensitive customer data.
Checkout creation response
A successful request creates a Checkout session. Use checkout.redirectionUrl to send the customer to Checkout.
{
"checkout": {
"storeId": "12341457997",
"checkoutId": "OFuuNa",
"redirectionUrl": "https://www.checkout-lane.com/#/?checkoutId=OFuuNa"
}
}
The response above confirms session creation only. It is not proof that the AFT or MoneySend transaction was authorized, completed, or settled.
Troubleshooting
| Symptom | What to check |
|---|---|
| Checkout request is rejected before redirect | Confirm the store is enabled for AFT/MoneySend, transactionOrigin is ECOM, the transaction type is SALE or PRE-AUTH, and the identifier is a supported enum value. |
| Request fails after card selection | Confirm the selected card scheme matches the identifier sent. Visa uses businessApplicationIdentifier; Mastercard uses transactionTypeIdentifier. |
| Validation error for sender or receiver data | Include both objects, verify ISO country codes, YYYYMMDD dates, supported accountType values, and valid email addresses. |
| Visa Original Credit Transfer is rejected for the listed issuer countries | Provide order.purposeOfPaymentCode with no more than 12 characters. |
| Checkout session exists but no final result is recorded | Confirm the customer was redirected to Checkout and that your redirect, webhook, and status-handling integration is active. |
Implementation notes
Requests for ordinary card payments can omit these AFT/MoneySend fields. Send them only for the enabled funding or money-transfer use case, and follow the scheme and acquirer requirements applicable to your merchant account.
Updated about 2 hours ago