# Account Funding Transactions
source: https://developer.mastercard.com/mastercard-gateway/documentation/gateway-features/data-and-reporting/supp-data/acc-fund-trans/index.md

Warning: This section is applicable for Visa and Mastercard only.

A funding transaction is for funds transfer from an eligible account by an acquirer on behalf of the customer (referred to in this guide as the 'sender'), for the purpose of either: (a) funding a subsequent and linked funds transfer from the sender to another person or entity (referred to in this Guide as the 'recipient'); or (b) transferring funds into another eligible financial account held by that sender. If your payment service provider has enabled Account Funding Transactions (AFT) functionality for you, you can ease the following Account Funding transaction types for your senders:

* Person-to-Person funds transfer
* Intra-organizational funds transfer
* Inter-organizational funds transfer

## Supported methods and Operations {#supported-methods-and-operations}

| Integration methods |           Payment methods           |                                                         Transactions                                                          |
|---------------------|-------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|
| All                 | Credit and debit cards (Mastercard) | * AUTHENTICATE_PAYER * VERIFY * AUTHORIZE * PAY * STANDALONE CAPTURE * STANDALONE REFUND * UPDATE_SESSION * INITIATE_CHECKOUT |
| All                 | Credit and debit cards (Visa)       | * AUTHENTICATE_PAYER * AUTHORIZE * PAY * STANDALONE CAPTURE * UPDATE_SESSION * INITIATE_CHECKOUT * VOID                       |

To view an example of an API request with AFT data, download the [Postman collection](https://www.postman.com/mastercard/mastercard-developers/collection/4fakvrd/mastercard-gateway-api).

Warning: The Mastercard AFT support is available from API version 65 onwards.

The Visa AFT support is available from API version 80 onwards.

The following API Operations support AFT transactions from API version 80 onwards:

* Authenticate Payer
* Update Session
* Initiate Checkout

Refund is not supported for Visa AFT. Use Void instead of Refund.

<br />

Warning: For merchants processing Mastercard card transactions, the Mastercard MoneySend and Funding Transactions Program applies only to the merchants with the following Merchant Category Codes (MCC):

* 4829 (Money transfer)
* 6540 (Funding transactions)
* 6538 (Funding transactions for MoneySend)
Warning: For merchants processing Visa card transactions, the Visa Account Funding Transaction applies only to the merchants with the following Merchant Category Codes (MCC):

* 4829 (Money transfer)
* 6540 or 6051 (Funding transactions)
* 6012 (Financial institutions)

AFT data includes information about:

* Sender type
* Sender name and address details
* Funding purpose
* Recipient name and address details
* Recipient type
* Recipient account identification type
* Account funding method When you are required to submit AFT data, depending on the type of transaction you are submitting, you must provide some or all of the following transaction data in the request.

## Account Funding Transaction request fields {#account-funding-transaction-request-fields}

|                    Field name                     |                 Description                 |                                                                                                                                                                                        Valid values                                                                                                                                                                                         |
|---------------------------------------------------|---------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `accountFunding.purpose`                          | Purpose of account funding payment          | * CRYPTOCURRENCY_PURCHASE * MERCHANT_SETTLEMENT * OTHER * PAYROLL                                                                                                                                                                                                                                                                                                                           |
| `accountFunding.senderIsRecipient`                | Sender is recipient flag.                   | -                                                                                                                                                                                                                                                                                                                                                                                           |
| `accountFunding.senderType`                       | Sender type                                 | * COMMERCIAL_ORGANIZATION * GOVERNMENT * NON_PROFIT_ORGANIZATION * PERSON                                                                                                                                                                                                                                                                                                                   |
| `accountFunding.recipient.account.fundingMethod`  | Recipient's account type                    | DEBIT * CREDIT * CHARGE * UNKNOWN                                                                                                                                                                                                                                                                                                                                                           |
| `accountFunding.recipient.account.identifier`     | Recipient's Payment account identifier      | -                                                                                                                                                                                                                                                                                                                                                                                           |
| `accountFunding.recipient.account.identifierType` | Recipient's account type identifier         | * BANK_ACCOUNT_BIC * BANK_ACCOUNT_IBAN * BANK_ACCOUNT_NATIONAL * CARD_NUMBER * EMAIL_ADDRESS * OTHER * PHONE_NUMBER * SOCIAL_NETWORK_PROFILE_ID * STAGED_WALLET_USER_ID * STORED_VALUE_WALLET_USER_ID                                                                                                                                                                                       |
| `accountFunding.recipient.address.city`           | Recipient's city                            | -                                                                                                                                                                                                                                                                                                                                                                                           |
| `accountFunding.recipient.address.country`        | Recipient's country                         | -                                                                                                                                                                                                                                                                                                                                                                                           |
| `accountFunding.recipient.address.postCodeZip`    | Recipient's address and ZIP code            | -                                                                                                                                                                                                                                                                                                                                                                                           |
| `accountFunding.recipient.address.state`          | ProvinceCodeRecipient's state province code | -                                                                                                                                                                                                                                                                                                                                                                                           |
| `accountFunding.recipient.address.street`         | Recipient's first line of address           | -                                                                                                                                                                                                                                                                                                                                                                                           |
| `accountFunding.recipient.address.street2`        | Recipient's second line of address          | -                                                                                                                                                                                                                                                                                                                                                                                           |
| `accountFunding.recipient.firstName`              | Recipient's first name                      | -                                                                                                                                                                                                                                                                                                                                                                                           |
| `accountFunding.recipient.middleName`             | Recipient's middle name                     | -                                                                                                                                                                                                                                                                                                                                                                                           |
| `accountFunding.recipient.lastName`               | Recipient's last name                       | -                                                                                                                                                                                                                                                                                                                                                                                           |
| `accountFunding.recipient.identification.country` | Recipient's identification issuing country  | -                                                                                                                                                                                                                                                                                                                                                                                           |
| `accountFunding.recipient.identification.type`    | Recipient's Identification Type             | * ALIEN_REGISTRATION_NUMBER * BUSINESS_TAX_ID * COMPANY_REGISTRATION_NUMBER * CUSTOMER_IDENTIFICATION * DATE_OF_BIRTH * DRIVERS_LICENSE * EMAIL * GOVERNMENT_ISSUED * INDIVIDUAL_TAX_ID * LAW_ENFORCEMENT_IDENTIFICATION * MILITARY_IDENTIFICATION * NATIONAL_IDENTIFICATION_CARD * OTHER * PASSPORT * PHONE_NUMBER * PROXY_IDENTIFICATION * SOCIAL_SECURITY_NUMBER * TRAVEL_IDENTIFICATION |
| `accountFunding.recipient.identification.value`   | Recipient's identification Number           | -                                                                                                                                                                                                                                                                                                                                                                                           |
| `customer.firstName`                              | Senders' first name                         | -                                                                                                                                                                                                                                                                                                                                                                                           |
| `customer.middleName`                             | Senders' middle name                        | -                                                                                                                                                                                                                                                                                                                                                                                           |
| `customer.lastName`                               | Senders' last name                          | -                                                                                                                                                                                                                                                                                                                                                                                           |
| `customer.identification.country`                 | Senders' Identification country             | -                                                                                                                                                                                                                                                                                                                                                                                           |
| `customer.identification.type`                    | Sender's identification type                | * ALIEN_REGISTRATION_NUMBER * BUSINESS_TAX_ID * COMPANY_REGISTRATION_NUMBER * DATE_OF_BIRTH * DRIVERS_LICENSE * EMAIL * GOVERNMENT_ISSUED * INDIVIDUAL_TAX_ID * LAW_ENFORCEMENT_IDENTIFICATION * MILITARY_IDENTIFICATION * NATIONAL_IDENTIFICATION_CARD * OTHER * PASSPORT * PHONE_NUMBER * PROXY_IDENTIFICATION * SOCIAL_SECURITY_NUMBER * TRAVEL_IDENTIFICATION                           |
| `customer.identification.value`                   | Sender's identification value               | -                                                                                                                                                                                                                                                                                                                                                                                           |
| `billing.address.street`                          | Sender's address                            | -                                                                                                                                                                                                                                                                                                                                                                                           |
| `billing.address.city`                            | Sender's city                               | -                                                                                                                                                                                                                                                                                                                                                                                           |
| `billing.address.country`                         | Sender's country                            | -                                                                                                                                                                                                                                                                                                                                                                                           |
| `billing.stateProvinceCode`                       | Sender's state province code                | -                                                                                                                                                                                                                                                                                                                                                                                           |

Warning: For API version 79 or earlier, use the [Authorize Request for Account Funding API version 79](https://developer.mastercard.com/mastercard-gateway/documentation/api-reference/v100/rest/api-ops/index.md#transaction) request instead of [Authorize Request for Account Funding API version 80](https://developer.mastercard.com/mastercard-gateway/documentation/api-reference/v100/rest/api-ops/index.md#transaction).

Provide the sender's details for all Visa AFT transaction requests.

Provide both the senders and recipient's details for cross-border Visa AFT transaction requests.

### Visa AFT transactions {#visa-aft-transactions}

* Following are the supported MCCs for the Business Application Identifier (BAI) mapping.

| MCC |    Description     |
|-----|--------------------|
| FT  | Funds Transfer     |
| PP  | Person-to-Person   |
| WT  | Wallet Transfer    |
| TU  | Top-Up             |
| AA  | Account-to-Account |

* Following are the scenarios for BAI mapping for supported MCCs.

|                       BAI                       | MCC 4829 | MCC 6051 | MCC 6540 | MCC 6012 |                                                                                                                                                                                                            Mastercard Gateway API request with fields in Auth/Pay Operations                                                                                                                                                                                                             |
|                  Transfers Initiated by Consumers to others                   ||||
|   General person to person -- Other than CARD   |    FT    |   N/A    |    FT    |    FT    |                                                                                                                                                      * `accountFunding.senderType = PERSON` * `accountFunding.recipient.account.identifierType = OTHER or STORED_VALUE_WALLET_USER_ID` * `accountFunding.senderIsRecipient = FALSE`                                                                                                                                                      |
|         General person to person - CARD         |    PP    |   N/A    |    -     |    PP    |                                                                                                                                                                  * `accountFunding.senderType = PERSON` * `accountFunding.recipient.account.identifierType = CARD_NUMBER` * `accountFunding.senderIsRecipient = FALSE`                                                                                                                                                                   |
|    General person to person -- Staged wallet    |    -     |    WT    |    -     |    -     |                                                                                                                                                             * `accountFunding.senderType = PERSON` * `accountFunding.recipient.account.identifierType = STAGED_WALLET_USER_ID` * `accountFunding.senderIsRecipient = FALSE`                                                                                                                                                              |
|    General person to person -- Prepaid card     |    -     |    TU    |    TU    |    TU    |                                                                                            * `accountFunding.senderType = PERSON` * `accountFunding.recipient.account.identifierType = CARD_NUMBER` * `accountFunding.recipient.account.fundingMethod = UNKNOWN` * `accountFunding.senderIsRecipient = FALSE (If account identifier card is prepaid card, then TU will be populated in BAI)`                                                                                             |
|                    Transfers Initiated by Consumer to self                    ||||
| Transfer to own card -- Debit, credit or charge |    AA    |    -     |    -     |    AA    |                                                                                                                           * `accountFunding.senderType = PERSON` * `accountFunding.recipient.account.identifierType = CARD_NUMBER` * `accountFunding.recipient.account.fundingMethod = DEBIT or CREDIT or CHARGE` * `accountFunding.senderIsRecipient = TRUE`                                                                                                                            |
|         Transfer to own card -- Prepaid         |    -     |    TU    |    TU    |    TU    |                                                                                             * `accountFunding.senderType = PERSON` * `accountFunding.recipient.account.identifierType = CARD_NUMBER` * `accountFunding.recipient.account.fundingMethod = UNKNOWN` * `accountFunding.senderIsRecipient = TRUE (If account identifier card is prepaid card, then TU will be populated in BAI)`                                                                                             |
|  Transfer to Own Staged Digital Wallet Account  |    -     |    WT    |    -     |    -     |                                                                                                                                                              * `accountFunding.senderType = PERSON` * `accountFunding.recipient.account.identifierType = STAGED_WALLET_USER_ID` * `accountFunding.senderIsRecipient = TRUE`                                                                                                                                                              |
|   Transfer to own stored value wallet account   |    FT    |    -     |    FT    |    FT    |                                                                                                                                                           * `accountFunding.senderType = PERSON` * `accountFunding.recipient.account.identifierType = STORED_VALUE_WALLET_USER_ID` * `accountFunding.senderIsRecipient = TRUE`                                                                                                                                                           |
|         General Transfer to own Account         |    AA    |    -     |    AA    |    AA    | * `accountFunding.senderType = PERSON` * `accountFunding.recipient.account.identifierType = OTHER or BANK_ACCOUNT_BIC, BANK_ACCOUNT_IBAN, EMAIL_ADDRESS, PHONE_NUMBER, SOCIAL_NETWORK_PROFILE_ID` * `accountFunding.senderIsRecipient = TRUE` * `OR accountFunding.senderType = PERSON` * `accountFunding.recipient.account.identifierType = CARD_NUMBER` * `accountFunding.senderIsRecipient = TRUE` * `accountFunding.recipient.account.fundingMethod not (CREDIT or CHARGE or DEBIT)` |
|                Transfers Initiated by Organizations to others                 ||||
|     Business Disbursement - OTHER then CARD     |    FT    |    -     |    FT    |    FT    |                                                                                                                        * `accountFunding.senderType = COMMERCIAL_ORGANIZATION or NON_PROFIT_ORGANIZATION` * `accountFunding.recipient.account.identifierType = CARD_NUMBER or OTHER or STORED_VALUE_WALLET_USER_ID` * `accountFunding.senderIsRecipient = FALSE`                                                                                                                         |
|     Business Disbursement -- Staged wallet      |    -     |    WT    |    -     |    -     |                                                                                                                                       * `accountFunding.senderType = COMMERCIAL_ORGANIZATION or NON_PROFIT_ORGANIZATION` * `accountFunding.recipient.account.identifierType = STAGED_WALLET_USER_ID` * `accountFunding.senderIsRecipient = FALSE`                                                                                                                                        |
|-------------------------------------------------|----------|----------|----------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

### Mastercard AFT transaction {#mastercard-aft-transaction}

* Following are the supported MCCs for the Transaction Type Identifier mapping.

|                  MCC                   |                  Description                  |
|----------------------------------------|-----------------------------------------------|
| F07, F08, F64, F54, F61, F52, F55, F65 | Funding Transactions                          |
| C07, C54, C52, C55, C56, C57, C65      | Payment transactions and funding Transactions |

* Following are the scenarios for Transaction Type Identifier mapping for supported MCCs.

|          Transaction Type Identifier          |   MCC 4829    |   MCC 6538    |   MCC 6540    |                                                                                                                                                                                                                                                                                                                                                                                                     API request with fields in Auth/Pay Operations                                                                                                                                                                                                                                                                                                                                                                                                      |
|                              Transfers Initiated by Consumers                              ||||
|       General person to person transfer       | Valid for F07 | Valid for C07 | Valid for F07 |                                                                                                                                      F07: * `accountFunding.senderType = PERSON` * `accountFunding.recipient.account.identifierType = OTHER or STORED_VALUE_WALLET_USER_ID [Any value other than CARD_NUMBER and STAGED_WALLET_USER_ID maps to OTHER]` * `AccountFunding.senderIsRecipient = false` C07: * `MCC code (order.merchantCategoryCode): 6538` * `accountFunding.senderType = PERSON` * `accountFunding.recipient.account.identifierType = OTHER or STORED_VALUE_WALLET_USER_ID [Any value other than CARD_NUMBER and STAGED_WALLET_USER_ID maps to OTHER]` * `accountFunding.senderIsRecipient = false`                                                                                                                                      |
| Person to person -- Transfer to Card Account  | Valid for F08 |       -       |       -       |                                                                                                                                                                                                                                                                                    * `accountFunding.senderType = PERSON` * `accountFunding.recipient.account.identifierType = CARD_NUMBER` * `accountFunding.purpose = CRYPTOCURRENCY_PURCHASE or OTHER [for other values will get error due to existing validations]` * `accountFunding.senderIsRecipient = false`                                                                                                                                                                                                                                                                                    |
|                     Transfers Initiated by Consumers or Organizations                      ||||
| Transfer to your own debit or prepaid account | Valid for F64 |       -       |       -       |                                                                                                                                                                                                                                                                                                       * `accountFunding.senderIsRecipient = true` * `accountFunding.senderType = COMMERCIAL_ORGANIZATION or PERSON` * `accountFunding.recipient.account.identifierType = CARD_NUMBER` * `accountFunding.recipient.account.fundingMethod = DEBIT`                                                                                                                                                                                                                                                                                                        |
|        Payment of Own Credit Card Bill        | Valid for F54 | Valid for C54 |       -       |                                                                                                                                                       C54: * `MCC code (order.merchantCategoryCode): 6538` * `accountFunding.senderIsRecipient = true` * `accountFunding.senderType = PERSON` * `accountFunding.recipient.account.identifierType = CARD_NUMBER` * `accountFunding.recipient.account.fundingMethod = CHARGE or CREDIT` F54: * `accountFunding.senderIsRecipient = true` * `accountFunding.senderType = PERSON or COMMERCIAL_ORGANIZATION` * `accountFunding.recipient.account.identifierType = CARD_NUMBER` * `accountFunding.recipient.account.fundingMethod = CHARGE or CREDIT`                                                                                                                                                        |
| Transfer to Own Staged Digital Wallet Account | Valid for F61 |       -       | Valid for F61 |                                                                                                                                                                                                                                                                                                                                * `accountFunding.senderIsRecipient = true` * `accountFunding.senderType = PERSON or COMMERCIAL_ORGANIZATION` * `accountFunding.recipient.account.identifierType = STAGED_WALLET_USER_ID`                                                                                                                                                                                                                                                                                                                                |
|        General Transfer to own Account        | Valid for F52 | Valid for C52 |       -       | F52: * `accountFunding.senderIsRecipient = true` * `accountFunding.senderType = PERSON or COMMERCIAL_ORGANIZATION` * `accountFunding.recipient.account.identifierType = OTHER or CARD_NUMBER` * `[Any value other than CARD_NUMBER and STAGED_WALLET_USER_ID maps to OTHER]` * `IF identifier type is CARD_NUMBER then accountFunding.recipient.account.fundingMethod != CHARGE or CREDIT or DEBIT` C52: * `MCC code (order.merchantCategoryCode): 6538` * `accountFunding.senderIsRecipient = true` * `accountFunding.senderType = PERSON or COMMERCIAL_ORGANIZATION` * `accountFunding.recipient.account.identifierType = OTHER or CARD_NUMBER` * `[Any value other than CARD_NUMBER and STAGED_WALLET_USER_ID maps to OTHER]` * `IF identifier type is CARD_NUMBER then accountFunding.recipient.account.fundingMethod != CHARGE or CREDIT or DEBIT` |
|                            Transfers Initiated by Organizations                            ||||
|             Business Disbursement             | Valid for F55 | Valid for C55 |       -       |                                                                                   F55: * `accountFunding.senderIsRecipient = false` * `accountFunding.senderType = COMMERCIAL_ORGANIZATION` * `accountFunding.recipient.account.identifierType = OTHER or CARD_NUMBER or STAGED_WALLET_USER_ID [Any value other than CARD_NUMBER and STAGED_WALLET_USER_ID maps to OTHER]` C55: * `MCC code (order.merchantCategoryCode): 6538` * `accountFunding.senderIsRecipient = false` * `accountFunding.senderType = COMMERCIAL_ORGANIZATION` * `accountFunding.recipient.account.identifierType = OTHER or CARD_NUMBER or STAGED_WALLET_USER_ID [Any value other than CARD_NUMBER and STAGED_WALLET_USER_ID maps to OTHER]` * `accountFunding.purpose != MERCHANT_SETTLEMENT`                                                                                   |
|      Government/Non-Profit Disbursement       |       -       | Valid for C56 |       -       |                                                                                                                                                                                                                                                                          * `accountFunding.senderIsRecipient = false` * `accountFunding.senderType = NON_PROFIT_ORGANIZATION or GOVERNMENT` * `accountFunding.recipient.account.identifierType = OTHER or CARD_NUMBER or STAGED_WALLET_USER_ID` * `[Any value other than CARD_NUMBER and STAGED_WALLET_USER_ID maps to OTHER]`                                                                                                                                                                                                                                                                          |
|           Rapid Merchant Settlement           |       -       | Valid for C57 |       -       |                                                                                                                                                                                                                                                          * `accountFunding.senderIsRecipient = false` * `accountFunding.senderType = COMMERCIAL_ORGANIZATION` * `accountFunding.recipient.account.identifierType = OTHER or CARD_NUMBER or STAGED_WALLET_USER_ID [Any value other than CARD_NUMBER and STAGED_WALLET_USER_ID maps to OTHER]` * `accountFunding.purpose = MERCHANT_SETTLEMENT`                                                                                                                                                                                                                                                           |
|     General Business to Business Transfer     | Valid for F65 | Valid for C65 |       -       |                                                                         F65: * `accountFunding.senderIsRecipient = false` * `accountFunding.purpose = OTHER` * `accountFunding.senderType = COMMERCIAL_ORGANIZATION` * `accountFunding.recipient.account.identifierType = OTHER or CARD_NUMBER or STAGED_WALLET_USER_ID [Any value other than CARD_NUMBER and STAGED_WALLET_USER_ID maps to OTHER]` C65: * `MCC code (order.merchantCategoryCode): 6538` * `accountFunding.senderIsRecipient = false` * `accountFunding.purpose = OTHER` * `accountFunding.senderType = COMMERCIAL_ORGANIZATION` * `accountFunding.recipient.account.identifierType = OTHER or CARD_NUMBER or STAGED_WALLET_USER_ID [Any value other than CARD_NUMBER and STAGED_WALLET_USER_ID maps to OTHER]`                                                                         |
|-----------------------------------------------|---------------|---------------|---------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

Warning: For more details, contact your Mastercard representative to access the *Mastercard MoneySend and Funding Transactions Program standards* specifications.

To process the AFT transaction through the gateway, you must submit the transaction with `order.purchaseType` = ACCOUNT_FUNDING. In addition, your request must include the MCC you are using for the transaction (`order.merchantCategoryCode`), else the default MCC configured on your merchant profile will apply. The submitted data is returned in the transaction response.

## Example of AFT fields {#example-of-aft-fields}

```json
{
  "order": {
    "purchaseType": "ACCOUNT_FUNDING",
    "merchantCategoryCode": "4829"
  },
  "accountFunding": {
    "recipient": {
      "account": {
        "identifier": "4797352254321089",
        "identifierType": "CARD_NUMBER",
        "fundingMethod": "UNKNOWN"
      },
      "firstName": "User",
      "middleName": "John",
      "lastName": "Duo",
      "address": {
        "street": "Street NJ",
        "street2": "Times Square",
        "city": "London",
        "postCodeZip": "00312",
        "stateProvinceCode": "LON",
        "country": "GBR"
      },
      "identification": {
        "type": "EMAIL",
        "value": "abc12345@email.com",
        "country": "AUS"
      }
    },
    "senderIsRecipient": true,
    "senderType": "PERSON",
    "purpose": "OTHER"
  },
  "customer": {
    "firstName": "Steven",
    "middleName": "M",
    "lastName": "Smith",
    "identification": {
      "type": "INDIVIDUAL_TAX_ID",
      "value": "12345abcdef6789",
      "country": "AUS"
    }
  }
}
```

**Account Funding Transactions Data API Reference** [\[REST\]](https://developer.mastercard.com/mastercard-gateway/documentation/api-reference/v100/rest/api-ops/index.md#transaction) [\[NVP\]](https://developer.mastercard.com/mastercard-gateway/documentation/api-reference/v100/nvp/api-ops/index.md#transaction)
