Skip to content

Account Funding Transactions (AFT)


Overview

An Account Funding Transaction (AFT) is a card transaction used to fund an account — for example, person-to-person transfers or funds disbursements. VISA and Mastercard require additional data fields when processing AFT transactions.

To process an AFT, include the options.funding object in your /api/transactions/authorize request alongside a standard PURCHASE or AUTHORIZE transaction.


Request Structure

Add a funding object inside the options field of the standard /api/transactions/authorize request:

{
  "reference": "your-reference",
  "terminal_id": "your-terminal-id",
  "transaction_type": "PURCHASE",
  "currency": "EUR",
  "amount": 10000,
  "payment_method": {
    "type": "card",
    "data": {
      "encrypted_card_number": "...",
      "encrypted_cvv": "...",
      "encrypted_expiration_month": "...",
      "encrypted_expiration_year": "..."
    }
  },
  "customer": { ... },
  "browser_info": { ... },
  "metadata": {},
  "return_url": "https://merchant.example.com/return",
  "options": {
    "funding": {
      "business_application_identifier": "funds_disbursement",
      "receiver": {
        "first_name": "John",
        "last_name": "Doe",
        "country": "US",
        "account_number": "1234567890",
        "account_number_type": "card_account",
        "address": "123 Main St",
        "city": "New York",
        "state": "NY"
      },
      "sender": {
        "name": "Jane Smith",
        "reference_number": "INV-12345",
        "country": "GB",
        "address": "456 High St",
        "city": "London",
        "state": "LDN"
      }
    }
  }
}

Funding Parameters

Top-Level Fields

Field Type Required Description
business_application_identifier string Yes (VISA) Type of VISA Funding Transaction. See BAI values below
identifier_type string Yes (Mastercard) Type of Mastercard Funding Transaction. See Identifier Type values below

Scheme-specific requirements

VISA requires business_application_identifier. Mastercard requires identifier_type. Include the appropriate field based on the card scheme being used.


Receiver Object

Details about the person or account receiving the funds.

Field Type Required Description
first_name string Conditionally Receiver's first name
last_name string Conditionally Receiver's last name
country string(2) Conditionally Receiver's country code in ISO 3166
account_number string Conditionally Receiver's account number. Required for both VISA and Mastercard
account_number_type string Conditionally (Mastercard) Receiver's account number type. See Account Number Type values below
address string Conditionally (VISA) Receiver's address
city string Conditionally (VISA) Receiver's city. Required for VISA with Canadian cards
state string Conditionally (VISA) Receiver's state. Required for VISA with Canadian cards

Sender Object

Details about the person or entity sending the funds.

Field Type Required Description
name string Conditionally (VISA) Sender's name. Required for VISA
reference_number string(16) Conditionally (VISA) Sender's reference number (e.g. invoice number). Required for VISA. Limited to 16 characters
country string Conditionally (VISA) Sender's country. Required for VISA. If not provided, billing address is used
address string Conditionally (VISA) Sender's address. Required for VISA. If not provided, billing address is used
city string Conditionally (VISA) Sender's city. Required for VISA. If not provided, billing address is used
state string Conditionally (VISA) Sender's state. Required for VISA with Canadian cards. If not provided, billing address is used

Allowed Values

Business Application Identifier Values

VISA business_application_identifier accepted values:

Value
funds_disbursement
pension_disbursement
account_to_account
bank_initiated
fund_transfer
person_to_person
prepaid_card_load
wallet_transfer
liquid_assets

Identifier Type Values

Mastercard identifier_type accepted values:

Value Required MCCs
general_person_to_person 4829, 6538, 6540
person_to_person_card_account 4829
own_account 4829, 6051, 6211, 6538, 6540, 7800, 7801, 7802, 7994, 7995, 9406
own_credit_card_bill 4829, 6538
business_disbursement any
government_or_non_profit_disbursement any
rapid_merchant_settlement any
general_business_to_business any
own_staged_digital_wallet_account any
own_debit_or_prepaid_card_account any

Receiver Account Number Type Values

account_number_type accepted values:

Value Description
rtn_and_bank_account_number Routing Transit Number and Bank Account Number
iban International Bank Account Number
card_account Card Account
email Electronic Mail
phone_number Phone Number
bank_account_number_and_bic Bank Account Number and Business Identifier Code
wallet_id Wallet ID
social_network_id Unique Identifier for Social Network Application
other Any other type

Examples

VISA AFT — Funds Disbursement

{
  "options": {
    "funding": {
      "business_application_identifier": "funds_disbursement",
      "receiver": {
        "first_name": "John",
        "last_name": "Doe",
        "country": "US",
        "account_number": "1234567890",
        "account_number_type": "card_account"
      },
      "sender": {
        "name": "Jane Smith",
        "reference_number": "INV-12345",
        "country": "GB"
      }
    }
  }
}

Mastercard AFT — Person-to-Person

{
  "options": {
    "funding": {
      "identifier_type": "general_person_to_person",
      "receiver": {
        "first_name": "Bob",
        "last_name": "Smith",
        "country": "DE",
        "account_number": "DE89370400440532013000",
        "account_number_type": "iban"
      }
    }
  }
}

Supported Transaction Types

AFT parameters can be included on the following transaction types:

Transaction Type Supported
PURCHASE Yes
AUTHORIZE Yes

Notes

  • If the options or options.funding object is omitted, the transaction is processed as a standard (non-AFT) transaction.
  • Fields marked as "Conditionally" required depend on the card scheme (VISA vs Mastercard) and the issuing country of the card.
  • For VISA sender fields: if country, address, city, or state are not provided, the billing address from the transaction is used as fallback.