# 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.

```json
{
  "$ref": "#/components/schemas/fundsTransfer",
  "components": {
    "schemas": {
      "fundsTransfer_bankAccount": {
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "bankAccount"
            ],
            "type": "string"
          },
          "identifierType": {
            "type": "string",
            "enum": [
              "iban",
              "swift",
              "routingNumber",
              "accountNumber"
            ]
          },
          "iban": {
            "maxLength": 34,
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9]*$",
            "type": "string",
            "description": "The International Bank Account Number (IBAN) of the recipient. Required if `identifierType` is `iban`.",
            "example": "IE12BOFI90000112345678"
          },
          "accountNumber": {
            "maxLength": 39,
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9]*$",
            "type": "string",
            "description": "The account number of the recipient. Required if `identifierType` is `routingNumber`, `swift` or `accountNumber`. Visa requires the value to be a maximum of 34 characters. ",
            "example": "01234567"
          },
          "swiftBic": {
            "maxLength": 11,
            "minLength": 8,
            "pattern": "^[a-zA-Z0-9]*$",
            "type": "string",
            "description": "The SWIFT Bank Identification Code (BIC) of the recipient. Required if `identifierType` is `swift`. Must be either 8 or 11 alphanumeric characters.",
            "example": "BEASUS33xxx"
          },
          "routingNumber": {
            "maxLength": 9,
            "minLength": 9,
            "pattern": "^[0-9]*$",
            "type": "string",
            "description": "The ABA (American Bankers Association) Routing Transit Number (RTN). Identifies the Financial Insititution of the recipient's account. Required if `identifierType` is `routingNumber`. Must be 9 numeric characters.",
            "example": "111000025"
          }
        },
        "required": [
          "type",
          "identifierType"
        ]
      },
      "fundsTransfer_card": {
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "card"
            ],
            "type": "string"
          },
          "cardNumber": {
            "maxLength": 19,
            "minLength": 12,
            "pattern": "^[0-9]*$",
            "type": "string",
            "description": "Recipient's card number."
          }
        },
        "required": [
          "type",
          "cardNumber"
        ]
      },
      "fundsTransfer_wallet": {
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "wallet"
            ],
            "type": "string"
          },
          "walletReference": {
            "maxLength": 50,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9@!£$*#)(+\\-_=.,/:;\"]*$",
            "type": "string",
            "description": "A reference identifying the destination wallet. Visa requires the value to be a maximum of 34 characters."
          }
        },
        "required": [
          "type",
          "walletReference"
        ]
      },
      "fundsTransfer_storedValueWallet": {
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "storedValueWallet"
            ],
            "type": "string"
          },
          "walletReference": {
            "maxLength": 50,
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9]*$",
            "type": "string",
            "description": "A reference identifying the destination wallet. Visa requires the value to be a maximum of 34 characters."
          }
        },
        "required": [
          "type",
          "walletReference"
        ]
      },
      "fundsTransfer_stagedDigitalWallet": {
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "stagedDigitalWallet"
            ],
            "type": "string"
          },
          "walletReference": {
            "maxLength": 50,
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9]*$",
            "type": "string",
            "description": "A reference identifying the destination wallet. Visa requires the value to be a maximum of 34 characters."
          }
        },
        "required": [
          "type",
          "walletReference"
        ]
      },
      "fundsTransfer_merchantWallet": {
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "merchantWallet"
            ],
            "type": "string"
          },
          "walletReference": {
            "maxLength": 50,
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9]*$",
            "type": "string",
            "description": "A reference identifying the destination wallet. Visa requires the value to be a maximum of 34 characters."
          }
        },
        "required": [
          "type",
          "walletReference"
        ]
      },
      "fundsTransfer_email": {
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "email"
            ],
            "type": "string"
          },
          "emailAddress": {
            "maxLength": 40,
            "minLength": 1,
            "type": "string",
            "description": "Recipient's email address. Visa requires the value to be a maximum of 34 characters."
          }
        },
        "required": [
          "type",
          "emailAddress"
        ]
      },
      "fundsTransfer_phone": {
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "phone"
            ],
            "type": "string"
          },
          "phoneNumber": {
            "maxLength": 20,
            "minLength": 3,
            "type": "string",
            "description": "Recipient's phone number.",
            "pattern": "^[0-9 ()+\\-/.x]+$"
          }
        },
        "required": [
          "type",
          "phoneNumber"
        ]
      },
      "fundsTransfer_socialNetwork": {
        "type": "object",
        "properties": {
          "type": {
            "enum": [
              "socialNetwork"
            ],
            "type": "string"
          },
          "socialNetworkReference": {
            "maxLength": 50,
            "minLength": 1,
            "pattern": "^[a-zA-Z0-9]*$",
            "type": "string",
            "description": "A reference identifying recipient's social network account. Visa requires the value to be a maximum of 34 characters."
          }
        },
        "required": [
          "type",
          "socialNetworkReference"
        ]
      },
      "fundsTransfer": {
        "type": "object",
        "description": "Contains details of the funds transfer request, which is a money movement for a reason other than the purchase of goods or services (also known as Account Funding Transaction (AFT)).",
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "description": "Specifies the type of the funds transfer. {% admonition type=\"warning\" name=\"Note\" %} You may only submit the `fundsTransfer.type` values that relate to the use cases that you have been approved for by the schemes.{% /admonition %}",
            "enum": [
              "accountToAccount",
              "cash",
              "disbursement",
              "personToPerson",
              "purchase",
              "topUp",
              "walletLoad"
            ],
            "type": "string",
            "x-enumDescriptions": {
              "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 and 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"
            }
          },
          "purpose": {
            "description": "Specifies the purpose of the funds transfer. Required for some regions and use cases (e.g. crypto).",
            "enum": [
              "businessToBusiness",
              "creditCardRepayment",
              "crypto",
              "crowdLending",
              "debitCard",
              "education",
              "emergency",
              "familySupport",
              "gift",
              "giftCard",
              "gaming",
              "highRiskSecurities",
              "liquidAssets",
              "medical",
              "payroll",
              "prepaidCard",
              "salary",
              "savings",
              "travel",
              "other",
              "stablecoin",
              "cbdc",
              "nft",
              "blockchainNativeToken"
            ],
            "x-enumDescriptions": {
              "businessToBusiness": "Business to business",
              "creditCardRepayment": "Credit card repayment",
              "crypto": "Cryptocurrency",
              "crowdLending": "Crowd lending",
              "debitCard": "Debit card",
              "education": "Education",
              "emergency": "Emergency",
              "familySupport": "Family support",
              "gift": "Gift",
              "giftCard": "Gift card",
              "gaming": "Gaming",
              "highRiskSecurities": "High risk securities",
              "liquidAssets": "Liquid assets",
              "medical": "Medical",
              "payroll": "Payroll",
              "prepaidCard": "Prepaid card",
              "salary": "Salary",
              "savings": "Savings",
              "travel": "Travel",
              "other": "Other",
              "stablecoin": "Stablecoin (for ramp providers only)",
              "cbdc": "Central bank digital currency (for ramp providers only)",
              "nft": "Non-fungible token (for ramp providers only)",
              "blockchainNativeToken": "Blockchain native token (for ramp providers only)"
            },
            "type": "string"
          },
          "recipient": {
            "type": "object",
            "description": "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.__",
            "properties": {
              "account": {
                "type": "object",
                "description": "An object for the account details of the recipient.",
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/fundsTransfer_bankAccount"
                  },
                  {
                    "$ref": "#/components/schemas/fundsTransfer_card"
                  },
                  {
                    "$ref": "#/components/schemas/fundsTransfer_wallet"
                  },
                  {
                    "$ref": "#/components/schemas/fundsTransfer_storedValueWallet"
                  },
                  {
                    "$ref": "#/components/schemas/fundsTransfer_stagedDigitalWallet"
                  },
                  {
                    "$ref": "#/components/schemas/fundsTransfer_merchantWallet"
                  },
                  {
                    "$ref": "#/components/schemas/fundsTransfer_email"
                  },
                  {
                    "$ref": "#/components/schemas/fundsTransfer_phone"
                  },
                  {
                    "$ref": "#/components/schemas/fundsTransfer_socialNetwork"
                  }
                ],
                "discriminator": {
                  "propertyName": "type",
                  "mapping": {
                    "bankAccount": "#/components/schemas/fundsTransfer_bankAccount",
                    "card": "#/components/schemas/fundsTransfer_card",
                    "wallet": "#/components/schemas/fundsTransfer_wallet",
                    "storedValueWallet": "#/components/schemas/fundsTransfer_storedValueWallet",
                    "stagedDigitalWallet": "#/components/schemas/fundsTransfer_stagedDigitalWallet",
                    "merchantWallet": "#/components/schemas/fundsTransfer_merchantWallet",
                    "email": "#/components/schemas/fundsTransfer_email",
                    "phone": "#/components/schemas/fundsTransfer_phone",
                    "socialNetwork": "#/components/schemas/fundsTransfer_socialNetwork"
                  }
                }
              },
              "firstName": {
                "maxLength": 35,
                "minLength": 1,
                "pattern": "^[-A-Za-z0-9_!@#$%()*=.:;?\\[\\]{}~`/+]*$",
                "type": "string",
                "description": "Recipient's first name. Must be supplied if `lastName` or `middleName` are provided."
              },
              "middleName": {
                "maxLength": 35,
                "minLength": 1,
                "pattern": "^[-A-Za-z0-9_!@#$%()*=.:;?\\[\\]{}~`/+]*$",
                "type": "string",
                "description": "Recipient's middle name."
              },
              "lastName": {
                "maxLength": 35,
                "minLength": 1,
                "pattern": "^[-A-Za-z0-9_!@#$%()*=.:;?\\[\\]{}~`/+]*$",
                "type": "string",
                "description": "Recipient's last name. Must be supplied if `firstName` or `middleName` are provided."
              },
              "address": {
                "type": "object",
                "description": "The recipient's address.",
                "properties": {
                  "address1": {
                    "maxLength": 255,
                    "minLength": 1,
                    "pattern": "^[a-zA-Z0-9 ]*$",
                    "type": "string",
                    "description": "Must be supplied if `city` is provided."
                  },
                  "address2": {
                    "maxLength": 255,
                    "minLength": 1,
                    "pattern": "^[a-zA-Z0-9 ]*$",
                    "type": "string"
                  },
                  "city": {
                    "maxLength": 100,
                    "minLength": 1,
                    "pattern": "^[a-zA-Z0-9 ]*$",
                    "type": "string",
                    "description": "Must be supplied if `address1` is provided."
                  },
                  "postalCode": {
                    "maxLength": 10,
                    "minLength": 1,
                    "pattern": "^[a-zA-Z0-9 ]*$",
                    "type": "string"
                  },
                  "state": {
                    "maxLength": 3,
                    "minLength": 1,
                    "pattern": "^[a-zA-Z0-9]*$",
                    "type": "string",
                    "description": "1-3 alphanumeric characters and spaces."
                  },
                  "countryCode": {
                    "maxLength": 2,
                    "minLength": 2,
                    "pattern": "^[A-Z]*$",
                    "type": "string",
                    "description": "Country code in [ISO 3166-1 Alpha-2 format](/products/reference/supported-countries-currencies#iso-country-codes)."
                  }
                },
                "required": [
                  "countryCode"
                ]
              },
              "dateOfBirth": {
                "type": "object",
                "description": "Recipient's date of birth.",
                "properties": {
                  "day": {
                    "type": "integer"
                  },
                  "month": {
                    "type": "integer"
                  },
                  "year": {
                    "type": "integer"
                  }
                },
                "required": [
                  "day",
                  "month",
                  "year"
                ]
              },
              "phoneNumber": {
                "type": "string",
                "description": "Recipient's phone number.",
                "maxLength": 20,
                "minLength": 3,
                "pattern": "^[0-9 ()+\\-/.x]*$"
              },
              "documentReference": {
                "maxLength": 25,
                "minLength": 1,
                "type": "string",
                "description": "Recipient's document reference (e.g. Tax ID).",
                "pattern": "^[A-Za-z0-9\\-\\/+.()]*$"
              }
            }
          },
          "sender": {
            "type": "object",
            "description": "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.__",
            "properties": {
              "firstName": {
                "maxLength": 35,
                "minLength": 1,
                "pattern": "^[-A-Za-z0-9_!@#$%()*=.:;?\\[\\]{}~`/+]*$",
                "type": "string",
                "description": "Sender's first name. Must be supplied if `lastName` or `middleName` are provided."
              },
              "middleName": {
                "maxLength": 35,
                "minLength": 1,
                "pattern": "^[-A-Za-z0-9_!@#$%()*=.:;?\\[\\]{}~`/+]*$",
                "type": "string",
                "description": "Sender's middle name."
              },
              "lastName": {
                "maxLength": 35,
                "minLength": 1,
                "pattern": "^[-A-Za-z0-9_!@#$%()*=.:;?\\[\\]{}~`/+]*$",
                "type": "string",
                "description": "Sender's last name. Must be supplied if `firstName` or `middleName` are provided."
              },
              "address": {
                "type": "object",
                "description": "The sender's address.",
                "properties": {
                  "address1": {
                    "maxLength": 255,
                    "minLength": 1,
                    "pattern": "^[a-zA-Z0-9 ]*$",
                    "type": "string",
                    "description": "Must be supplied if `city` is provided."
                  },
                  "address2": {
                    "maxLength": 255,
                    "minLength": 1,
                    "pattern": "^[a-zA-Z0-9 ]*$",
                    "type": "string"
                  },
                  "city": {
                    "maxLength": 100,
                    "minLength": 1,
                    "pattern": "^[a-zA-Z0-9 ]*$",
                    "type": "string",
                    "description": "Must be supplied if `address1` is provided."
                  },
                  "postalCode": {
                    "maxLength": 10,
                    "minLength": 1,
                    "pattern": "^[a-zA-Z0-9 ]*$",
                    "type": "string"
                  },
                  "state": {
                    "maxLength": 3,
                    "minLength": 1,
                    "pattern": "^[a-zA-Z0-9]*$",
                    "type": "string",
                    "description": "1-3 alphanumeric characters and spaces."
                  },
                  "countryCode": {
                    "maxLength": 2,
                    "minLength": 2,
                    "pattern": "^[A-Z]*$",
                    "type": "string",
                    "description": "Country code in [ISO 3166-1 Alpha-2 format](/products/reference/supported-countries-currencies#iso-country-codes)."
                  }
                },
                "required": [
                  "countryCode"
                ]
              },
              "dateOfBirth": {
                "type": "object",
                "description": "Sender's date of birth.",
                "properties": {
                  "day": {
                    "type": "integer"
                  },
                  "month": {
                    "type": "integer"
                  },
                  "year": {
                    "type": "integer"
                  }
                },
                "required": [
                  "day",
                  "month",
                  "year"
                ]
              },
              "documentReference": {
                "maxLength": 25,
                "minLength": 1,
                "type": "string",
                "description": "Sender's document reference (e.g. Tax ID)."
              }
            }
          }
        }
      }
    }
  }
}
```

## International funds transfers

Note
A funding transaction is considered domestic when the merchant and the card issuer are located in the same country. This classification applies even if the funded amount is later sent to a recipient in a different country. A funding transaction is considered cross-border when the merchant and the card issuer are located in different countries.

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

Recipient:

* `recipient.firstName`
* `recipient.lastName`
* `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`
* `sender.dateOfBirth`


### Additional regional requirements

Latin America
Required fields by country:

- **Argentina** - `recipient.documentReference`, `fundsTransfer.purpose`
- **Brazil** - `recipient.documentReference` (you must provide the recipient's valid CPF or CNPJ number)
- **Chile** - `fundsTransfer.purpose`
- **Colombia** - `fundsTransfer.purpose`
- **Mexico** - `fundsTransfer.purpose`


Middle East
Required fields by country:

- **Saudi Arabia** - `fundsTransfer.purpose`
- **Jordan** - `fundsTransfer.purpose`
- **United Arab Emirates (UAE)** - `fundsTransfer.purpose`


Asia‑Pacific
Required fields by country:

- **Bangladesh** - `fundsTransfer.purpose`
- **Thailand** - `fundsTransfer.purpose`


## Use cases

| Use case | Description | Required request values in `"fundsTransfer"` object |
|  --- | --- | --- |
| **Account to Account** | Transfer funds from a card account to a financial institution account owned by the cardholder.    `"purpose":` should not be `"creditCardRepayment"` | `"type":"accountToAccount"` |
| **Credit card repayment** | Use a debit card to pay off a credit card bill. | `"type":"accountToAccount"``"purpose":"creditCardRepayment"` |
| **Cash** | Use 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:  Payroll** | Pull 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.    `"purpose":` should not be `"businessToBusiness"` or `"payroll"` | `"type":"disbursement"` |
| **Person to Person** | Transfer funds from a card account to an account owned by another person. | `"type":"personToPerson"` |
| **Purchase  a gift card** | Purchase a gift card.    `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 card** | Purchase a pre-paid card. | `"type":"purchase"``"purpose":"prepaidCard"` |
| **Purchase  cryptocurrency** | Purchase crypto directly without an intermediary fiat wallet load. The recipient's account may include a non-fiat cryptocurrency wallet. | `"type":"purchase"``"purpose":"crypto"``"recipient.account.type": "wallet"` |
| **Purchase  liquid assets** | Purchase liquid assets including shares, stock and foreign currencies. | `"type":"purchase"``"purpose":"liquidAssets"` |
| **Top up a debit account** | Transfer funds from a card to a debit card account owned by the cardholder. | `"type":"topUp"``"purpose":"debitCard"` |
| **Top up a pre-paid account** | Transfer funds from a card to a pre-paid card account. | `"type":"topUp"``"purpose":"prepaidCard"` |


## Wallet use cases

Wallet specific use cases for merchant, stored value and staged digital wallets.

| Use case | Description | Required request values in `"fundsTransfer"` object |
|  --- | --- | --- |
| **Merchant wallet**  | Transfer 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"` |
| **Cryptocurrency** | Transfer funds from a card to a crypto exchange wallet for the purpose of purchasing cryptocurrency. | `"type":"walletLoad"``"purpose":"crypto"``"recipient.account.type": "storedValueWallet"` or `"stagedDigitalWallet"` |
| **Liquid assets** | Transfer 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"` or `"stagedDigitalWallet"` |
| **High risk securities** | Transfer funds from a card to a trading wallet for the purpose of purchasing high risk securities. | `"type":"walletLoad"``"purpose":"highRiskSecurities"``"recipient.account.type": "storedValueWallet"` or `"stagedDigitalWallet"` |
| **Gaming** | Transfer funds from a card to a wallet for the purpose of placing stakes with a gaming merchant. | `"type":"walletLoad"``"purpose":"gaming"``"recipient.account.type": "storedValueWallet"` or `"stagedDigitalWallet"` |
| **Everything else** | Wallet load for everything else except liquid assets, cryptocurrencies, high-risk securities or gaming.    `"purpose":` should not be `"liquidAssets"` or `"crypto"` or `"highRiskSecurities"` or `"gaming"` | `"type":"walletLoad"` `"recipient.account.type": "storedValueWallet"` or `"stagedDigitalWallet"` |


## Request examples

Wallet load - crypto
```json
    "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"
                },
                "dateOfBirth": {
                    "day": 12,
                    "month": 4,
                    "year": 2001
                }
            }
        }
     }
```

Person to Person - education
```json
    "instruction": {        
        "fundsTransfer": {
            "type": "personToPerson",
            "purpose": "education",
            "recipient": {
                "account": {
                    "type": "card",
                    "cardNumber": "4444333322221111"
                },
                "firstName": "James",
                "middleName": "George",
                "lastName": "Watson",
                "address": {
                    "address1": "The Palatine Centre",
                    "address2": "Stockton Road",
                    "postalCode": "DH1 3LE",
                    "city": "Durham",
                    "state": "DUR",
                    "countryCode": "GB"
                },
                "dateOfBirth": {
                    "day": 14,
                    "month": 6,
                    "year": 1978
                },
                "phoneNumber": "+447987 654321"
            },
            "sender": {
                "firstName": "William",
                "middleName": "Sherlock",
                "lastName": "Holmes",
                "address": {
                    "address1": "221B Baker Street",
                    "address2": "Marylebone",
                    "postalCode": "NW1 6XE",
                    "city": "London",
                    "state": "LDN",
                    "countryCode": "GB"
                },
                "dateOfBirth": {
                    "day": 4,
                    "month": 8,
                    "year": 1970
                }
            }
        }
     }
```

Purchase - crypto
```json
    "instruction": {        
        "fundsTransfer": {
            "type": "purchase",
            "purpose": "crypto",
            "recipient": {
                "account": {
                    "type": "wallet",
                    "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"
                },
                "dateOfBirth": {
                    "day": 12,
                    "month": 4,
                    "year": 2001
                }
            }
        }
     }
```

Top up - pre-paid card
```json
    "instruction": {        
        "fundsTransfer": {
            "type": "topUp",
            "purpose": "prepaidCard",
            "recipient": {
                "account": {
                    "type": "card",
                    "cardNumber": "4444333322221111"
                },
                "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"
                },
                "dateOfBirth": {
                    "day": 12,
                    "month": 4,
                    "year": 2001
                }
            }
        }
     }
```

## 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](/products/money-transfers/make-money-transfer).