---
updatedAt: 2026-07-13T23:17:39.000Z
agentTools:
  projectIndex: https://developer.i-payout.com/llms.txt
---

# Create a transfer

This API will create a new transfer.

* Optionally include the `fxQuoteId` field in the request body to apply a previously created FX quote to the transfer. If `fxQuoteId` is not provided, a new FX quote is generated automatically when the transfer is initiated.
* Optionally include the `senderToken` field in the request body to associate an existing sender with the transfer. Alternatively, you can provide a `sender` object when creating the transfer.

<br />

# OpenAPI definition

```json
{
  "openapi": "3.0.1",
  "info": {
    "title": "IPS Portal Rest API - V1",
    "description": "i-payout API",
    "contact": {
      "name": "i-payout tech support",
      "email": "techsupport@i-payout.com"
    },
    "license": {
      "name": "i-payout API",
      "url": "http://www.i-payout.com"
    },
    "version": "v1"
  },
  "paths": {
    "/api/v1/transfers": {
      "post": {
        "tags": [
          "Transfer"
        ],
        "summary": "Create a transfer",
        "description": "This API will create a new transfer.",
        "operationId": "create-transfer",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransferViewModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseCreateTransfer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponseCreateTransfer"
                }
              }
            }
          },
          "500": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "Bearer": [],
            "X-MerchantId": []
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "ApiResponse": {
        "type": "object",
        "properties": {
          "isSuccess": {
            "type": "boolean",
            "description": "Indicates if the API call was successful or not."
          },
          "message": {
            "type": "string",
            "description": "A human readable status message that may be used for debugging.",
            "nullable": true
          },
          "statusCode": {
            "$ref": "#/components/schemas/StatusConstants"
          },
          "logIdentifier": {
            "type": "string",
            "description": "Utilized for support, a log identifier to provide to i-payout when requesting technical support.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Standard API Response object."
      },
      "ApiResponseCreateTransfer": {
        "type": "object",
        "properties": {
          "isSuccess": {
            "type": "boolean",
            "description": "Indicates if the API call was successful or not."
          },
          "message": {
            "type": "string",
            "description": "A human readable status message that may be used for debugging.",
            "nullable": true
          },
          "statusCode": {
            "$ref": "#/components/schemas/StatusConstants"
          },
          "logIdentifier": {
            "type": "string",
            "description": "Utilized for support, a log identifier to provide to i-payout when requesting technical support.",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/TransferResponseDto"
          }
        },
        "additionalProperties": false,
        "description": "Transfer APIs Response Object"
      },
      "BankAccountViewModel": {
        "required": [
          "accountCurrency",
          "accountNumber",
          "accountType1",
          "bankCountry",
          "bankName",
          "beneficiaryAddress1",
          "beneficiaryCity",
          "beneficiaryCountry",
          "beneficiaryState",
          "beneficiaryZipCode"
        ],
        "type": "object",
        "properties": {
          "accountNickName": {
            "maxLength": 100,
            "type": "string",
            "description": "Nickname or identifier for the bank account.",
            "nullable": true
          },
          "accountCurrency": {
            "maxLength": 3,
            "type": "string",
            "description": "Beneficiary bank account currency"
          },
          "accountNumber": {
            "maxLength": 100,
            "type": "string",
            "description": "Account number"
          },
          "accountType1": {
            "maxLength": 10,
            "type": "string",
            "description": "Primary account type. (Available options are : personal and business only)"
          },
          "accountType2": {
            "maxLength": 10,
            "type": "string",
            "description": "Secondary account type. (Available options are : checking and savings only)",
            "nullable": true
          },
          "bankName": {
            "maxLength": 100,
            "type": "string",
            "description": "Name of the bank."
          },
          "bankCode": {
            "maxLength": 100,
            "type": "string",
            "description": "Local bank clearing code",
            "nullable": true
          },
          "bankCountry": {
            "maxLength": 2,
            "type": "string",
            "description": "Beneficiary bank country. 2 character country code (ISO 3166-1 alpha-2)."
          },
          "swiftCode": {
            "type": "string",
            "description": "Bank swift code",
            "nullable": true
          },
          "routingNumber": {
            "maxLength": 9,
            "type": "string",
            "description": "Routing number of the bank (Only for USA bank accounts).",
            "nullable": true
          },
          "branchAddress": {
            "maxLength": 100,
            "type": "string",
            "description": "Address of the bank branch.",
            "nullable": true
          },
          "beneficiaryCompanyName": {
            "maxLength": 150,
            "type": "string",
            "description": "Beneficiary company name",
            "nullable": true
          },
          "beneficiaryFirstName": {
            "maxLength": 50,
            "type": "string",
            "description": "Beneficiary's first name.",
            "nullable": true
          },
          "beneficiaryLastName": {
            "maxLength": 50,
            "type": "string",
            "description": "Beneficiary's last name",
            "nullable": true
          },
          "beneficiaryDateOfBirth": {
            "maxLength": 10,
            "type": "string",
            "description": "Beneficiary date of birth",
            "nullable": true
          },
          "beneficiaryGovernmentID": {
            "maxLength": 50,
            "type": "string",
            "description": "Beneficiary government ID",
            "nullable": true
          },
          "beneficiaryCountry": {
            "maxLength": 2,
            "type": "string",
            "description": "Beneficiary country. 2 character country code (ISO 3166-1 alpha-2)."
          },
          "beneficiaryAddress1": {
            "maxLength": 100,
            "type": "string",
            "description": "Beneficiary's primary address"
          },
          "beneficiaryAddress2": {
            "maxLength": 100,
            "type": "string",
            "description": "Beneficiary's secondary address.'",
            "nullable": true
          },
          "beneficiaryState": {
            "maxLength": 100,
            "type": "string",
            "description": "State of the beneficiary's address."
          },
          "beneficiaryCity": {
            "maxLength": 50,
            "type": "string",
            "description": "City of the beneficiary's address."
          },
          "beneficiaryZipCode": {
            "maxLength": 20,
            "type": "string",
            "description": "ZIP code of the beneficiary's address."
          },
          "beneficiaryPhoneNumber": {
            "maxLength": 20,
            "type": "string",
            "description": "Beneficiary phone number",
            "nullable": true
          },
          "financialInstitutionNumber": {
            "maxLength": 10,
            "type": "string",
            "description": "Financial instituttion number. Required for Canada bank accounts only.",
            "nullable": true
          },
          "branchCode": {
            "maxLength": 20,
            "type": "string",
            "description": "Branch code",
            "nullable": true
          },
          "accountHolderTaxID": {
            "maxLength": 20,
            "type": "string",
            "description": "Tax Id",
            "nullable": true
          },
          "branchName": {
            "maxLength": 100,
            "type": "string",
            "description": "Name of the Branch",
            "nullable": true
          },
          "localLanguage": {
            "$ref": "#/components/schemas/LocalLanguageViewModel"
          }
        },
        "additionalProperties": false,
        "description": "Bank Account View model for Add/Edit bank account"
      },
      "CryptoViewModel": {
        "required": [
          "cryptoAddress",
          "cryptoCurrencyType",
          "cryptoWalletProvider"
        ],
        "type": "object",
        "properties": {
          "cryptoWalletProvider": {
            "type": "string",
            "description": "Crypto Wallet Provider"
          },
          "cryptoCurrencyType": {
            "maxLength": 3,
            "type": "string",
            "description": "Crypto Currency Code"
          },
          "cryptoAddress": {
            "type": "string",
            "description": "Crypto Address of the beneficiary"
          }
        },
        "additionalProperties": false
      },
      "LocalLanguageViewModel": {
        "type": "object",
        "properties": {
          "bankName": {
            "type": "string",
            "description": "Bank name in local language characters",
            "nullable": true
          },
          "branchName": {
            "type": "string",
            "description": "Branch name in local language characters",
            "nullable": true
          },
          "branchState": {
            "type": "string",
            "description": "Branch state in local language characters",
            "nullable": true
          },
          "branchCity": {
            "type": "string",
            "description": "Branch city in local language characters",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "description": "First name in local language",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "description": "Last name in local language",
            "nullable": true
          },
          "companyName": {
            "type": "string",
            "description": "Company name in local language",
            "nullable": true
          },
          "beneficiaryAddress1": {
            "type": "string",
            "description": "Beneficiary primary address in local language",
            "nullable": true
          },
          "beneficiaryAddress2": {
            "type": "string",
            "description": "Beneficiary secondary address in local language",
            "nullable": true
          },
          "beneficiaryState": {
            "type": "string",
            "description": "Beneficiary state in local language",
            "nullable": true
          },
          "beneficiaryCity": {
            "type": "string",
            "description": "Beneficiary city in local language",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RegisterUserViewModelIDType": {
        "enum": [
          "SSN",
          "CompanyTaxID",
          "Passport",
          "GovernmentID",
          "DriversLicense",
          "SocialInsuranceNumber",
          "CURP",
          "RFC",
          "ABN",
          "SIREN"
        ],
        "type": "string"
      },
      "RequiredFieldValidationError": {
        "type": "object",
        "properties": {
          "accountSectionTypeName": {
            "type": "string",
            "nullable": true
          },
          "fieldName": {
            "type": "string",
            "nullable": true
          },
          "validationFailedMessage": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SenderViewModel": {
        "required": [
          "emailAddress",
          "senderID"
        ],
        "type": "object",
        "properties": {
          "senderID": {
            "maxLength": 300,
            "type": "string",
            "description": "The unique SenderID for the new sender."
          },
          "firstName": {
            "maxLength": 50,
            "type": "string",
            "description": "The first name of the sender.",
            "nullable": true
          },
          "lastName": {
            "maxLength": 50,
            "type": "string",
            "description": "The last name of the sender.",
            "nullable": true
          },
          "companyName": {
            "maxLength": 150,
            "type": "string",
            "description": "The company name associated with the sender.",
            "nullable": true
          },
          "country": {
            "maxLength": 2,
            "type": "string",
            "description": "The sender's two-letter country code (ISO 3166-1 alpha-2). If not specified, default country is US.",
            "nullable": true
          },
          "companyIncorporatedDate": {
            "type": "string",
            "description": "The sender's date of company incorporated, Please follow the format: yyyy-MM-dd",
            "nullable": true
          },
          "address1": {
            "maxLength": 250,
            "type": "string",
            "description": "The primary address of the beneficiary.",
            "nullable": true
          },
          "address2": {
            "maxLength": 250,
            "type": "string",
            "description": "The secondary address of the beneficiary.",
            "nullable": true
          },
          "dateOfBirth": {
            "type": "string",
            "description": "The sender's date of birth, Please follow the format: yyyy-MM-dd",
            "nullable": true
          },
          "idType": {
            "$ref": "#/components/schemas/RegisterUserViewModelIDType"
          },
          "idNumber": {
            "type": "string",
            "description": "The sender's Id Number",
            "nullable": true
          },
          "phoneNumber": {
            "maxLength": 50,
            "type": "string",
            "description": "The phone number of the sender.",
            "nullable": true
          },
          "emailAddress": {
            "maxLength": 300,
            "type": "string",
            "description": "The email address of the sender."
          }
        },
        "additionalProperties": false,
        "description": "Request model for creating new sender"
      },
      "StatusConstants": {
        "enum": [
          "NO_ERROR",
          "EMAIL_ADDRESS_EXISTS",
          "CAPTCHA_FAILED",
          "INVALID_REFERENCEID",
          "INVALID_OPERATION",
          "INVALID_TIN_VALIDATION_STATUS",
          "RECORD_NOT_FOUND",
          "Already_Exist",
          "Batch_Closed",
          "IP_BLACKLISTED",
          "CREDIT_CARD_PROCESSOR_ISSUE",
          "FEES_NOT_ACCEPTED",
          "PAYOUT_CAPABILITIES_DISABLED",
          "INVALID_RECURRING_PAYMENT_STATUS",
          "INVOICE_CAPABILITIES_DISABLED",
          "INVALID_EWALLET_REGISTRATION",
          "PRIVATE_KEY_ISSUE",
          "FILE_NOT_EXISTS",
          "OLDUSER_NEWUSER_MISMATCH",
          "USER_CANNOT_CREATED",
          "CANNOT_CREATE_NEW_BATCH",
          "REFERENCEID_ALREADY_EXISTS",
          "DELETE_RECORD_ERROR",
          "FX_ConversionRate_Issue",
          "RATE_LIMIT_EXCEEDED",
          "IP_NOT_ALLOWED",
          "COUNTRY_NOT_ALLOWED",
          "INVALID_FIELD_VALUE_LENGTH",
          "UNAUTHORIZED_API_CALL",
          "FEE_VALUE_NOT_FOUND_FOR_CUSTOMER",
          "IPADDRESS_GENERATION_ISSUE",
          "MERCHANT_NOT_FOUND",
          "INVALID_PARAMS",
          "Missing_HEADER_PARAMS",
          "INVALID_URL",
          "INVALID_AMOUNT",
          "INVALID_CURRENCY",
          "REQUIRED_PARAMETER",
          "INVALID_REQUEST_PARAM",
          "INVALID_REQUEST_RESPONSE_PARAM",
          "INVALID_SERVER_CONFIG",
          "ACCESS_DENIED",
          "INVALID_COUNTRY_CODE",
          "PROCESSING",
          "PENDING",
          "NO_RECORDS_FOUND",
          "INVALID_MERCHANT",
          "PAL_INVALID_EMAIL",
          "INVALID_CARD_NUMBER",
          "INSUFFICIENT_FUNDS",
          "USERNAME_EXISTS",
          "USER_NOT_LOGGED_IN",
          "INVALID_CLIENT_CREDENTIALS",
          "ACCOUNT_NOT_FOUND",
          "GENERAL_ERROR",
          "CUSTOMER_NOT_FOUND",
          "INTERNAL_ERROR"
        ],
        "type": "string",
        "description": "Api response status code. For possible values, see <a target='_blank' href='https://i-payout.readme.io/reference/status-code-values' />Status Code Values </a>."
      },
      "TransferResponseDto": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "description": "Transfer Token",
            "nullable": true
          },
          "dateCreated": {
            "type": "string",
            "description": "Creation Date of the Transfer",
            "format": "date-time"
          },
          "dateUpdated": {
            "type": "string",
            "description": "Updation Date of the Transfer",
            "format": "date-time",
            "nullable": true
          },
          "statusId": {
            "type": "integer",
            "description": "Status Id of the Transfer",
            "format": "int32"
          },
          "status": {
            "type": "string",
            "description": "Status of the Transfer",
            "nullable": true
          },
          "fxRate": {
            "type": "number",
            "description": "FX Rate",
            "format": "double"
          },
          "beneficiaryFee": {
            "type": "number",
            "description": "Customer Fee",
            "format": "double"
          },
          "merchantFee": {
            "type": "number",
            "description": "Merchant Fee",
            "format": "double"
          },
          "senderToken": {
            "type": "string",
            "description": "Sender Token (if applicable)",
            "nullable": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RequiredFieldValidationError"
            },
            "description": "Bank account or Wire Error fields",
            "nullable": true
          },
          "responseMessage": {
            "type": "string",
            "nullable": true
          },
          "responseErrorCode": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TransferViewModel": {
        "required": [
          "autoApprove",
          "beneficiaryToken",
          "dateExpire",
          "destinationCurrency",
          "destinationType",
          "merchantTransactionId",
          "sourceCurrency"
        ],
        "type": "object",
        "properties": {
          "merchantTransactionId": {
            "maxLength": 50,
            "type": "string",
            "description": "A unique identifier for the transaction."
          },
          "beneficiaryToken": {
            "maxLength": 36,
            "type": "string",
            "description": "The Beneficiary's Token"
          },
          "destinationToken": {
            "maxLength": 36,
            "type": "string",
            "description": "The destination token for the transfer.",
            "nullable": true
          },
          "autoApprove": {
            "type": "boolean",
            "description": "Whether the transfer should be automatically approved."
          },
          "comments": {
            "maxLength": 500,
            "type": "string",
            "description": "Comments for the transfer.",
            "nullable": true
          },
          "dateExpire": {
            "type": "string",
            "description": "The expiration date of the transfer. ISO 8601 represents date and time by starting with the year, followed by the month, the day, the hour, the minutes, seconds and milliseconds. YYYY -MM-DD",
            "format": "date-time"
          },
          "sourceAmount": {
            "type": "number",
            "description": "The amount of money to be transferred from the source.",
            "format": "double",
            "nullable": true
          },
          "sourceCurrency": {
            "maxLength": 3,
            "type": "string",
            "description": "The currency of the source amount."
          },
          "destinationAmount": {
            "type": "number",
            "description": "The amount of money to be transferred to the destination. If null, it will be calculated based on the source amount and the exchange rate.",
            "format": "double",
            "nullable": true
          },
          "destinationCurrency": {
            "maxLength": 3,
            "type": "string",
            "description": "The currency of the destination amount."
          },
          "destinationType": {
            "type": "string",
            "description": "Destination Type - Available options are Bank, Wire, CreditCard, Check, Crypto, Interac, RegularACH, \r\nSameDayACH, RealtimeACH"
          },
          "purposeOfPayment": {
            "type": "string",
            "description": "Purpose of Payment",
            "nullable": true
          },
          "wireProfile": {
            "$ref": "#/components/schemas/WireProfileViewModel"
          },
          "bankAccount": {
            "$ref": "#/components/schemas/BankAccountViewModel"
          },
          "sender": {
            "$ref": "#/components/schemas/SenderViewModel"
          },
          "senderToken": {
            "maxLength": 36,
            "type": "string",
            "description": "The Sender's Token",
            "nullable": true
          },
          "crypto": {
            "$ref": "#/components/schemas/CryptoViewModel"
          },
          "fxQuoteId": {
            "type": "string",
            "description": "Id of the relevant Fx Quote",
            "nullable": true
          },
          "paymentDescription": {
            "maxLength": 140,
            "type": "string",
            "description": "Message to send receiver",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Transfer API Request Model"
      },
      "WireProfileViewModel": {
        "required": [
          "accountNickName",
          "accountNumber",
          "accountType1",
          "bankAddress1",
          "bankCity",
          "bankCountry",
          "bankName",
          "bankState",
          "bankZipCode",
          "beneficiaryAddress1",
          "beneficiaryCity",
          "beneficiaryCountry",
          "beneficiaryState",
          "beneficiaryZipCode"
        ],
        "type": "object",
        "properties": {
          "accountNickName": {
            "maxLength": 150,
            "type": "string",
            "description": "Nickname for the account."
          },
          "beneficiaryCountry": {
            "maxLength": 2,
            "type": "string",
            "description": "Country of the beneficiary's address."
          },
          "accountType1": {
            "maxLength": 50,
            "type": "string",
            "description": "Type of the account. (Available options are : personal and business only)"
          },
          "beneficiaryFirstName": {
            "maxLength": 100,
            "type": "string",
            "description": "Beneficiary's first name.",
            "nullable": true
          },
          "beneficiaryLastName": {
            "maxLength": 100,
            "type": "string",
            "description": "Beneficiary's last name",
            "nullable": true
          },
          "beneficiaryCompanyName": {
            "maxLength": 100,
            "type": "string",
            "description": "Name of the beneficiary's company.",
            "nullable": true
          },
          "beneficiaryAddress1": {
            "maxLength": 100,
            "type": "string",
            "description": "Beneficiary's primary address."
          },
          "beneficiaryAddress2": {
            "maxLength": 100,
            "type": "string",
            "description": "Beneficiary's secondary address.",
            "nullable": true
          },
          "beneficiaryCity": {
            "maxLength": 100,
            "type": "string",
            "description": "City of the beneficiary's address."
          },
          "beneficiaryState": {
            "maxLength": 100,
            "type": "string",
            "description": "State of the beneficiary's address."
          },
          "beneficiaryZipCode": {
            "maxLength": 100,
            "type": "string",
            "description": "Zip code of the beneficiary's address."
          },
          "bankCountry": {
            "maxLength": 2,
            "type": "string",
            "description": "Country of the bank's address."
          },
          "accountCurrency": {
            "maxLength": 3,
            "type": "string",
            "description": "AccountCurrency",
            "nullable": true
          },
          "swiftCode": {
            "maxLength": 100,
            "type": "string",
            "description": "Swift code of the bank.",
            "nullable": true
          },
          "routingNumber": {
            "maxLength": 100,
            "type": "string",
            "description": "Routing number of the bank.",
            "nullable": true
          },
          "branchCode": {
            "maxLength": 50,
            "type": "string",
            "description": "Branch code",
            "nullable": true
          },
          "accountNumber": {
            "maxLength": 100,
            "type": "string",
            "description": "Account number"
          },
          "bankName": {
            "maxLength": 100,
            "type": "string",
            "description": "Name of the bank."
          },
          "bankCode": {
            "maxLength": 50,
            "type": "string",
            "description": "Bank code",
            "nullable": true
          },
          "bankAddress1": {
            "maxLength": 100,
            "type": "string",
            "description": "Bank's primary address."
          },
          "bankAddress2": {
            "maxLength": 100,
            "type": "string",
            "description": "Bank's secondary address.",
            "nullable": true
          },
          "bankCity": {
            "maxLength": 100,
            "type": "string",
            "description": "City of the bank's address."
          },
          "bankState": {
            "maxLength": 100,
            "type": "string",
            "description": "State of the bank's address."
          },
          "bankZipCode": {
            "maxLength": 100,
            "type": "string",
            "description": "Zip code of the bank's address."
          },
          "financialInstitutionNumber": {
            "maxLength": 100,
            "type": "string",
            "description": "FInancial institution number of bank",
            "nullable": true
          },
          "transitNumber": {
            "maxLength": 100,
            "type": "string",
            "description": "Transit number of bank",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "View model for create/edit wire profile"
      }
    },
    "securitySchemes": {
      "basic": {
        "type": "http",
        "description": "Use API username and password to get the dynamic bearer token which can be used to access all other API, Example: 'Basic 12345adfad'",
        "scheme": "basic"
      },
      "Bearer": {
        "type": "apiKey",
        "description": "JWT Authorization header using the Bearer scheme.Enter 'Bearer' [space] and then your token in the text input below. Example: 'Bearer 12345abcdef'",
        "name": "Authorization",
        "in": "header"
      },
      "X-MerchantId": {
        "type": "apiKey",
        "description": "Merchant Identifier (GUID)",
        "name": "X-MerchantId",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "Bearer": [],
      "basic": [],
      "X-MerchantId": []
    }
  ]
}
```