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:

SettingSupported value
transactionOriginECOM
transactionTypeSALE or PRE-AUTH
Card selectionCustomer selects a card in Checkout, or your request preselects a supported card payment method
3-D SecureExisting 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 schemeFieldLocationUse
VisabusinessApplicationIdentifierorder.orderDetailsIdentifies the intended Visa AFT use case.
MastercardtransactionTypeIdentifierorder.orderDetailsIdentifies 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.

FieldRequirement
order.fundingSourceThe account type from which funds are being transferred. Use one of the supported values listed below.
senderReceiverInfo.senderInfoSender information.
senderReceiverInfo.receiverInfoReceiver information.
order.orderDetails.businessApplicationIdentifierVisa AFT only.
order.orderDetails.transactionTypeIdentifierMastercard MoneySend/funding only.
order.purposeOfPaymentCodeRequired 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.

FieldNotes
`firstName, middleName, lastNameNames. Individual name fields have a maximum length of 35 characters.
streetAddress, city, stateCode, countryCode, postalCodeAddress details. countryCode is a two-letter ISO country code.
phoneNumber, emailContact details. Email addresses are validated by the gateway.
birthDateDate in YYYYMMDD format.
referenceNumberParty reference. Maximum 19 characters.
accountNumber, accountTypeAccount information. Supported account types are listed below.
participationIdSender participation identifier, where applicable.
nationality, birthCountry, occupationAdditional 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

ACCOUNT_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

AGENTS_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

SymptomWhat to check
Checkout request is rejected before redirectConfirm 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 selectionConfirm the selected card scheme matches the identifier sent. Visa uses businessApplicationIdentifier; Mastercard uses transactionTypeIdentifier.
Validation error for sender or receiver dataInclude 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 countriesProvide order.purposeOfPaymentCode with no more than 12 characters.
Checkout session exists but no final result is recordedConfirm 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.


Did this page help you?
Want a quick overview?