Create transfer (moves money)
create_transferCreate a transfer from an active quote, returning deposit instructions for fund_transfer or debiting your organisation's balance to start a payout immediately with prefund_balance.
Instructions
Create a transfer from an active quote. The quote must not be expired. With fundingSource fund_transfer (the default) this only creates the transfer and returns deposit instructions; no money moves until someone deposits the funds. With prefund_balance it debits your organisation's balance and starts the payout immediately, so this moves real money: get explicit human approval first. For payouts in AED, CAD, EUR, GBP, MXN, USD you must also supply recipientType, the full beneficiary address, and dateOfBirth when the recipient is an individual. To pay one of the organisation's saved beneficiaries, set destinationType to beneficiary and pass its beneficiaryId instead of bank details.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"customerId": "<customerId>",
"quoteId": "<quoteId>"
},
"name": "create_transfer"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| iban | No | IBAN (EU/international) | |
| cnaps | No | CNAPS (China) | |
| payId | No | PayID alias (AUD only). Requires payIdType | |
| bicCode | No | BIC (EUR/GBP international) | |
| bsbCode | No | BSB code (Australia) | |
| quoteId | Yes | The quote ID to execute | |
| bankCode | No | Bank code / institution number (CAD) | |
| bankName | No | Name of the destination bank | |
| ifscCode | No | IFSC code (India) | |
| metadata | No | Optional metadata | |
| sortCode | No | Sort code (UK) | |
| payIdType | No | PayID alias type. Required when payId is given | |
| swiftCode | No | SWIFT code | |
| branchCode | No | Branch code / transit number (CAD) | |
| customerId | Yes | The customer ID for this transfer | |
| accountType | No | Account type. Required for CAD and USD bank payouts | |
| addressCity | No | Beneficiary city | |
| bankCountry | No | Bank country, ISO 2-letter (e.g. 'AU', 'US') | |
| dateOfBirth | No | Beneficiary date of birth, YYYY-MM-DD. Required when recipientType is individual for AED, CAD, EUR, GBP, MXN, USD | |
| purposeCode | No | Purpose of the transfer (e.g. 'SALARY'). Required on some corridors | |
| addressState | No | Beneficiary state or region | |
| bankCurrency | No | Payout currency, ISO 3-letter (e.g. 'EUR') | |
| accountNumber | No | Bank account number, if not using IBAN | |
| addressStreet | No | Beneficiary street address | |
| beneficiaryId | No | Saved beneficiary id when destinationType is beneficiary. It supplies the recipient and bank details, so the bank fields are ignored; archived beneficiaries are refused | |
| fundingSource | No | fund_transfer (default) creates the transfer and returns deposit instructions; nothing moves until a person deposits the funds. prefund_balance debits your organisation's balance and starts the payout immediately, so it needs explicit human approval. Check get_balance first: transfers_enabled must be true and the quote's source asset must be held on its network | |
| recipientType | No | Beneficiary type. Required for AED, CAD, EUR, GBP, MXN, USD | |
| routingNumber | No | ABA routing number (US) | |
| addressCountry | No | Beneficiary country, ISO 2-letter. The complete address is required for AED, CAD, EUR, GBP, MXN, USD | |
| destinationType | No | Payout target: a bank account (off-ramp), a wallet address, or a saved beneficiary | bank |
| accountHolderName | No | Account holder's full name, or the company name when recipientType is business | |
| addressPostalCode | No | Beneficiary postal code | |
| destinationAddress | No | Wallet address when destinationType is crypto | |
| destinationNetwork | No | Blockchain network when destinationType is crypto (e.g. 'polygon') | |
| destinationCurrency | No | Stablecoin to deliver when destinationType is crypto (e.g. 'USDT') |