Account Funding Transactions

A funding transaction (or Account Funding Transaction - AFT) is a money movement for a reason other than for the purchase of goods or services.

Examples:

  • Loading a wallet with funds using a card (including stored value digital wallets and crypto or trading wallets)
  • Adding funds to a pre-paid card using a debit card
  • Sending money to another person (for example as a gift)
Card scheme registration

You must be registered with Visa and Mastercard to perform funding transactions.

Parameters

You must include the instruction.fundsTransfer object to correctly flag a transaction as a funds transfer.

Rules for the payment scenarios that constitute a funding transaction vary between Visa and Mastercard. We allow you to submit the fundsTransfer object for your particular scenario irrespective of the card scheme. The scenario is usually determined by a combination of fundsTransfer.type, fundsTransfer.purpose and fundsTransfer.recipient.account.type, and we ensure the transaction is routed in accordance with card scheme rules.

typestringrequired

Specifies the type of the funds transfer. You may only submit the fundsTransfer.type values that relate to the use cases that you have been approved for by the schemes.

Enum ValueDescription
accountToAccount

Move funds to another financial institution account owned by the same person

cash

A card is used to fund a transfer where funds are given to the recipient in cash

disbursement

A card is used as the source of funds for a disbursement

personToPerson

Move funds to an account owned by another person (eg gifts)

purchase

For the initial purchase of a reloadable account (such as prepaid or gift card), or direct crypto & liquid asset purchases without an intermediary wallet load

topUp

Top up a pre-paid or debit card

walletLoad

Move funds to a digital wallet owned by the same person

purposestring

Specifies the purpose of the funds transfer. Required for some regions and use cases (eg crypto).

Enum"businessToBusiness""creditCardRepayment""crypto""crowdLending""debitCard""education""emergency""familySupport""gift""giftCard"
recipientobject

An object containing details about the recipient of funds, including name and address information, as well as recipient account details. In many use cases, the recipient is the same person as the sender (for example if your customer uses their card to load funds into their own crypto exchange or investment account). Although an optional object in the API schema, recipient is required for some regions and use cases.

senderobject

An object containing details about the sender of funds, including name and address information. The sender account is always the card account declared within instruction.paymentInstrument. Although an optional object in the API schema, sender is required for some regions and use cases.

International funds transfers

For cross border and inter-regional funds transfers you must submit the following:

Recipient:

  • recipient.address.address1
  • recipient.address.city
  • recipient.address.postalCode (supply an empty string if postal codes are not widely supported for the supplied countryCode eg for Ireland, IE)
  • recipient.address.state (mandatory for US and Canada)
  • recipient.address.countryCode

Sender:

  • sender.address.address1
  • sender.address.city
  • sender.address.postalCode (supply an empty string if postal codes are not widely supported for the supplied countryCode eg for Ireland, IE)
  • sender.address.state (mandatory for US and Canada)
  • sender.address.countryCode

Use cases

Use CaseDescriptionRequired request values
Account to AccountTransfer funds from a card account to a financial institution account owned by the cardholder."type":"accountToAccount"
"purpose" Not "creditCardRepayment"
Credit card repaymentUse a debit card to pay off a credit card bill."type":"accountToAccount"
"purpose":creditCardRepayment
CashUse a card to fund a transfer where the funds are given to the recipient in cash."type":"cash"
Disbursement: Business to Business (B2B)Pull funds from a business card in order to pay an invoice due from another business."type":"disbursement"
"purpose":"businessToBusiness"
Disbursement: PayrollPull funds from a business card to fund payroll disbursements made by a payroll provider on behalf of a business."type":"disbursement"
"purpose":"payroll"
Disbursement: Business to Consumer (B2C)Pull funds from a business card to fund a business disbursement."type":"disbursement"
"purpose" Not "businessToBusiness" or "payroll"
Person to PersonTransfer funds from a card account to an account owned by another person."type":"personToPerson"
Purchase a gift cardPurchase a gift card. Note: sender and recipient values must exactly match if the recipient of the gift card is the same as the person purchasing the gift card."type":"purchase"
"purpose":"giftCard"
Purchase a pre-paid cardPurchase a pre-paid card."type":"purchase"
"purpose":"prePaidCard"
Purchase cryptocurrencyPurchase crypto directly without an intermediary fiat wallet load."type":"purchase"
"purpose":"crypto"
"recipient.account.type": "wallet"
Purchase liquid assetsPurchase crypto directly without an intermediary fiat wallet load. Liquid assets include shares, stock and foreign currencies."type":"purchase"
"purpose":"liquidAssets"
"recipient.account.type": "wallet"
Top up a debit accountTransfer funds from a card to a debit card account owned by the cardholder."type":"topUp"
"purpose":"debitCard"
Top up a pre-paid accountTransfer funds from a card to a pre-paid card account."type":"topUp"
"purpose":"prePaidCard"
Wallet load: cryptocurrencyTransfer funds from a card to a crypto exchange wallet for the purpose of purchasing cryptocurrency."type":"walletLoad"
"purpose":"crypto"
"recipient.account.type": "storedValueWallet"
Wallet load: liquid assetsTransfer funds from a card to a trading wallet for the purpose of purchasing stocks, shares, or foreign currency."type":"walletLoad"
"purpose":"liquidAssets"
"recipient.account.type": "storedValueWallet"
Wallet load: high risk securitiesTransfer funds from a card to a trading wallet for the purpose of purchasing high risk securities."type":"walletLoad"
"purpose":"highRiskSecurities"
"recipient.account.type": "storedValueWallet"
Wallet load: gamingTransfer funds from a card to a gaming wallet."type":"walletLoad"
"purpose":"gaming"
"recipient.account.type": "storedValueWallet"
Wallet load: merchant walletTransfer funds from a card to a merchant wallet, where funds can be used to purchase items from the merchant exclusively."type":"walletLoad"
"recipient.account.type": "merchantWallet"

Request examples

    "instruction": {        
        "fundsTransfer": {
            "type": "walletLoad",
            "purpose": "crypto",
            "recipient": {
                "account": {
                    "type": "storedValueWallet",
                    "walletReference": "ABCDE12345"
                },
                "firstName": "John",
                "middleName": "Roger",
                "lastName": "Smith",
                "address": {
                    "address1": "221B Baker Street",
                    "address2": "Marylebone",
                    "postalCode": "NW1 6XE",
                    "city": "London",
                    "state": "LDN",
                    "countryCode": "GB"
                },
                "dateOfBirth": {
                    "day": 12,
                    "month": 4,
                    "year": 2001
                },
                "phoneNumber": "+447987 654321"
            },
            "sender": {
                "firstName": "John",
                "middleName": "Roger",
                "lastName": "Smith",
                "address": {
                    "address1": "221B Baker Street",
                    "address2": "Marylebone",
                    "postalCode": "NW1 6XE",
                    "city": "London",
                    "state": "LDN",
                    "countryCode": "GB"
                }
            }
        }
    }

Response

The authorization response is the same across both funding transactions and regular card payment authorizations.

Refunds

Refunds for funding transactions must only be used for true refund scenarios (e.g. a funding transaction is used as the source of funds for a subsequent funds transfer which fails; the funding transaction is refunded to return the funds to the sender's card account). A refund must not be used to return funds previously transferred into a wallet or account (unless the funds had been transferred in error in which case the full amount should be refunded).

If funds need to be unloaded from a wallet or account back to the owner's card then you must make a card payout.