# Create an outgoing wire transfer

Transfers funds from managed accounts to an external bank account.

The Outgoing Wire Transfer Profile (configured in the Multi Portal) specified determines the behaviour and restrictions of the transaction (for example, fees).

Note that even if the transaction is created successfully, you still need to check its state in order to determine if it is pending completion of an authentication challenge by the user.

Endpoint: POST /outgoing_wire_transfers
Version: v3
Security: auth_token, api-key

## Header parameters:

  - `idempotency-ref` (string)
    A unique call reference generated by the caller that, taking into consideration the payload as well as the operation itself, helps avoid duplicate operations. Idempotency reference uniqueness is maintained for at least 24 hours.

## Request fields (application/json):

  - `profileId` (string, required)
    The profile Id which a specific identity, instrument or transaction type is linked to.

Profiles contain configuration and determine behavioral aspects of the newly created transaction, for example, fees that may apply.

You can have one or more profiles linked to your application, and these can be used to drive different behaviors according to your product's needs.

Profile Ids can be found in the Multi Portal, in the API Credentials page.

  - `tag` (string)
    The tag field is a custom field that can be used to search and filter.

  - `sourceInstrument` (object, required)
    The managed account from which funds will be collected.

  - `sourceInstrument.type` (string, required)
    Enum: "managed_accounts"

  - `sourceInstrument.id` (string, required)

  - `transferAmount` (object, required)
    The amount, in same currency as source and destination, that was transferred from the source.

  - `transferAmount.currency` (string, required)
    The currency expressed in ISO-4217 code. Example: GBP, EUR, USD.

  - `transferAmount.amount` (integer, required)
    The monetary amount, scaled to the lowest denomination of the currency.

Example, an amount of 1000 for a EUR currency is actually 1000 Euro cents or EUR 10.00.

  - `purpose` (string)
    The purpose of the payment. Mandatory for wire transfers executed over SWIFT.

  - `description` (string)
    These details are passed to the beneficiary as the reference . This field is mandatory for wire transfers executed over SEPAand SWIFT. The allowed length is dependent on the payment type:

SEPA <= 35 characters. An extended character set is accepted to cater for all European languages. If SEPA does not support a particular character, it is automatically converted to an acceptable alternative, in line with SEPA scheme guidance.

SWIFT <= 35 characters

Faster Payments <= 18 characters

  - `destinationBeneficiary` (any, required) — one of:
    - OutgoingWireTransferBeneficiary:
      - `name` (string, required)
        The beneficiary's full name. The allowed length and pattern is dependent on the bank account details type:

IBANDetails: >= 1 character and = 1 character and ;\{@\r\n]*$
(please note that the ’` symbol is the unicode value U+2019 (right single quotation mark) and not the unicode value U+0027 (apostrophe))
      - `type` (string)
        The type of beneficiary account. Required only when FasterPaymentsBankDetailsOrBACSBankDetails are specified
        Enum: "PERSONAL", "BUSINESS"
      - `address` (string)
        The beneficiary’s address. For SEPA, an extended character set is accepted to cater for all European languages. If SEPA does not support a particular character, it is automatically converted to an acceptable alternative, in line with SEPA scheme guidance.
      - `bankName` (string)
        The beneficiary's bank name.
      - `bankAddress` (string)
        The beneficiary's bank address.
      - `bankCountry` (string)
        The beneficiary's bank country in ISO 3166 alpha-2 format.
      - `bankAccountDetails` (any, required) — one of:
        Details of the beneficiary bank account, depending on the type of transfer chosen.
        - IBANDetails:
          - `iban` (string, required)
            International Bank Account Number, required for wire transfer over SEPA or RIX
          - `bankIdentifierCode` (string)
            BIC, for wire transfer over SEPA or RIX
        - FasterPaymentsBankDetailsOrBACSBankDetails:
          - `accountNumber` (string, required)
            Account number, required for wire transfer over Faster Payments.
          - `sortCode` (string, required)
            Sort code, required for wire transfer over Faster Payments.
          - `secondaryReference` (string)
      - `nationality` (string)
        Nationality of the user - using ISO 3166 alpha-2.
      - `dateOfBirth` (string)
        The date of birth in ISO 8601 format (YYYY-MM-DD).
    - SEPABeneficiary:
      - `name` (string, required)
        The beneficiary's full name. >= 1 character and <= 150 characters.
An extended character set is accepted to cater for all European languages.
If SEPA does not support a particular character, it is automatically
converted to an acceptable alternative, in line with SEPA scheme guidance.
      - `iban` (string, required)
        International Bank Account Number, required for wire transfer over SEPA.
      - `bankIdentifierCode` (string)
        BIC (Bank Identifier Code) for wire transfer over SEPA.
      - `address` (string)
        The beneficiary's address. An extended character set is accepted to cater
for all European languages. If SEPA does not support a particular character,
it is automatically converted to an acceptable alternative.
      - `bankName` (string)
        The beneficiary's bank name.
      - `bankAddress` (string)
        The beneficiary's bank address.
      - `bankCountry` (string)
        The beneficiary's bank country in ISO 3166 alpha-2 format.
      - `nationality` (string)
        Nationality of the user - using ISO 3166 alpha-2.
      - `dateOfBirth` (string)
        The date of birth in ISO 8601 format (YYYY-MM-DD).
    - SWIFTBeneficiary:
      - `name` (string, required)
        The beneficiary's full name.
      - `account` (string, required)
        Can be either an account number or an International Bank Account Number (IBAN).
      - `bankIdentifierCode` (string)
        Required if account is not an IBAN. Bank Identifier Code (BIC).
      - `address` (string, required)
        The beneficiary's address.
      - `bankName` (string)
        The beneficiary's bank name.
      - `bankAddress` (string)
        The beneficiary's bank address.
      - `bankCountry` (string, required)
        The beneficiary's bank country in ISO 3166 alpha-2 format.
      - `nationality` (string)
        Nationality of the user - using ISO 3166 alpha-2.
      - `dateOfBirth` (string)
        The date of birth in ISO 8601 format (YYYY-MM-DD).
    - RIXBeneficiary:
      - `name` (string, required)
        The beneficiary's full name. >= 1 character and <= 150 characters.
An extended character set is accepted to cater for all European languages.
If RIX does not support a particular character, it is automatically
converted to an acceptable alternative.
      - `iban` (string, required)
        International Bank Account Number, required for wire transfer over RIX.
      - `bankIdentifierCode` (string)
        BIC (Bank Identifier Code) for wire transfer over RIX.
      - `address` (string)
        The beneficiary's address. An extended character set is accepted to cater
for all European languages. If RIX does not support a particular character,
it is automatically converted to an acceptable alternative.
      - `bankName` (string)
        The beneficiary's bank name.
      - `bankAddress` (string)
        The beneficiary's bank address.
      - `bankCountry` (string)
        The beneficiary's bank country in ISO 3166 alpha-2 format.
      - `nationality` (string)
        Nationality of the user - using ISO 3166 alpha-2.
      - `dateOfBirth` (string)
        The date of birth in ISO 8601 format (YYYY-MM-DD).
    - FasterPaymentsBeneficiary:
      - `name` (string, required)
        The beneficiary's full name. >= 1 character and <= 140 characters.
Note: the ' symbol is the unicode value U+2019 (right single quotation mark)
and not the unicode value U+0027 (apostrophe).
      - `type` (string, required)
        The type of beneficiary account. Required for Faster Payments.
        Enum: same as `type` in "OutgoingWireTransferBeneficiary" (2 values)
      - `accountNumber` (string, required)
        Account number, required for wire transfer over Faster Payments.
      - `sortCode` (string, required)
        Sort code, required for wire transfer over Faster Payments.
      - `secondaryReference` (string)
        Optional secondary reference for accounts without unique sort codes.
      - `address` (string)
        The beneficiary's address.
      - `bankName` (string)
        The beneficiary's bank name.
      - `bankAddress` (string)
        The beneficiary's bank address.
      - `bankCountry` (string)
        The beneficiary's bank country in ISO 3166 alpha-2 format.
      - `nationality` (string)
        Nationality of the user - using ISO 3166 alpha-2.
      - `dateOfBirth` (string)
        The date of birth in ISO 8601 format (YYYY-MM-DD).
    - BeneficiaryId:
      - `beneficiaryId` (string, required)
    - ExternalAccountId:
      - `type` (string, required)
        Enum: "linked_accounts"
      - `id` (string, required)

  - `scheduledTimestamp` (string)
    The epoch timestamp at which the transaction is scheduled to be executed.

## Response 200 fields (application/json):

  - `id` (string, required)
    The unique identifier of an Outgoing Wire Transfer transaction.

  - `profileId` (string, required)
    The profile Id which a specific identity, instrument or transaction type is linked to.

Profiles contain configuration and determine behavioral aspects of the newly created transaction, for example, fees that may apply.

You can have one or more profiles linked to your application, and these can be used to drive different behaviors according to your product's needs.

Profile Ids can be found in the Multi Portal, in the API Credentials page.

  - `tag` (string)
    The tag field is a custom field that can be used to search and filter.

  - `sourceInstrument` (object, required)
    The source managed account from where the funds were taken.

  - `sourceInstrument.type` (string, required)
    Enum: same as `sourceInstrument.type` (1 values)

  - `sourceInstrument.id` (string, required)

  - `transferAmount` (object, required)
    The amount, in same currency as source and destination, that was transferred from the source.

  - `fee` (object)
    The fee charged on this outgoing wire transfer. Omitted when no fee was charged.

  - `purpose` (string)
    The purpose of the payment.

  - `description` (string)
    Transaction description.

  - `type` (string)
    The wire transfer rails used, from SEPA, Faster Payments, SWIFT or RIX.
    Enum: "SEPA", "FASTER_PAYMENTS", "SWIFT", "RIX"

  - `destination` (any) — one of:
    - OutgoingWireTransferBeneficiary:
      - `name` (string, required)
        The beneficiary's full name. The allowed length and pattern is dependent on the bank account details type:

IBANDetails: >= 1 character and = 1 character and ;\{@\r\n]*$
(please note that the ’` symbol is the unicode value U+2019 (right single quotation mark) and not the unicode value U+0027 (apostrophe))
      - `type` (string)
        The type of beneficiary account. Required only when FasterPaymentsBankDetailsOrBACSBankDetails are specified
        Enum: same as `type` in "OutgoingWireTransferBeneficiary" (2 values)
      - `address` (string)
        The beneficiary’s address. For SEPA, an extended character set is accepted to cater for all European languages. If SEPA does not support a particular character, it is automatically converted to an acceptable alternative, in line with SEPA scheme guidance.
      - `bankName` (string)
        The beneficiary's bank name.
      - `bankAddress` (string)
        The beneficiary's bank address.
      - `bankCountry` (string)
        The beneficiary's bank country in ISO 3166 alpha-2 format.
      - `bankAccountDetails` (any, required) — one of:
        Details of the beneficiary bank account, depending on the type of transfer chosen.
        - IBANDetails:
          - `iban` (string, required)
            International Bank Account Number, required for wire transfer over SEPA or RIX
          - `bankIdentifierCode` (string)
            BIC, for wire transfer over SEPA or RIX
        - FasterPaymentsBankDetailsOrBACSBankDetails:
          - `accountNumber` (string, required)
            Account number, required for wire transfer over Faster Payments.
          - `sortCode` (string, required)
            Sort code, required for wire transfer over Faster Payments.
          - `secondaryReference` (string)
      - `nationality` (string)
        Nationality of the user - using ISO 3166 alpha-2.
      - `dateOfBirth` (string)
        The date of birth in ISO 8601 format (YYYY-MM-DD).
    - SEPABeneficiary:
      - `name` (string, required)
        The beneficiary's full name. >= 1 character and <= 150 characters.
An extended character set is accepted to cater for all European languages.
If SEPA does not support a particular character, it is automatically
converted to an acceptable alternative, in line with SEPA scheme guidance.
      - `iban` (string, required)
        International Bank Account Number, required for wire transfer over SEPA.
      - `bankIdentifierCode` (string)
        BIC (Bank Identifier Code) for wire transfer over SEPA.
      - `address` (string)
        The beneficiary's address. An extended character set is accepted to cater
for all European languages. If SEPA does not support a particular character,
it is automatically converted to an acceptable alternative.
      - `bankName` (string)
        The beneficiary's bank name.
      - `bankAddress` (string)
        The beneficiary's bank address.
      - `bankCountry` (string)
        The beneficiary's bank country in ISO 3166 alpha-2 format.
      - `nationality` (string)
        Nationality of the user - using ISO 3166 alpha-2.
      - `dateOfBirth` (string)
        The date of birth in ISO 8601 format (YYYY-MM-DD).
    - SWIFTBeneficiary:
      - `name` (string, required)
        The beneficiary's full name.
      - `account` (string, required)
        Can be either an account number or an International Bank Account Number (IBAN).
      - `bankIdentifierCode` (string)
        Required if account is not an IBAN. Bank Identifier Code (BIC).
      - `address` (string, required)
        The beneficiary's address.
      - `bankName` (string)
        The beneficiary's bank name.
      - `bankAddress` (string)
        The beneficiary's bank address.
      - `bankCountry` (string, required)
        The beneficiary's bank country in ISO 3166 alpha-2 format.
      - `nationality` (string)
        Nationality of the user - using ISO 3166 alpha-2.
      - `dateOfBirth` (string)
        The date of birth in ISO 8601 format (YYYY-MM-DD).
    - RIXBeneficiary:
      - `name` (string, required)
        The beneficiary's full name. >= 1 character and <= 150 characters.
An extended character set is accepted to cater for all European languages.
If RIX does not support a particular character, it is automatically
converted to an acceptable alternative.
      - `iban` (string, required)
        International Bank Account Number, required for wire transfer over RIX.
      - `bankIdentifierCode` (string)
        BIC (Bank Identifier Code) for wire transfer over RIX.
      - `address` (string)
        The beneficiary's address. An extended character set is accepted to cater
for all European languages. If RIX does not support a particular character,
it is automatically converted to an acceptable alternative.
      - `bankName` (string)
        The beneficiary's bank name.
      - `bankAddress` (string)
        The beneficiary's bank address.
      - `bankCountry` (string)
        The beneficiary's bank country in ISO 3166 alpha-2 format.
      - `nationality` (string)
        Nationality of the user - using ISO 3166 alpha-2.
      - `dateOfBirth` (string)
        The date of birth in ISO 8601 format (YYYY-MM-DD).
    - FasterPaymentsBeneficiary:
      - `name` (string, required)
        The beneficiary's full name. >= 1 character and <= 140 characters.
Note: the ' symbol is the unicode value U+2019 (right single quotation mark)
and not the unicode value U+0027 (apostrophe).
      - `type` (string, required)
        The type of beneficiary account. Required for Faster Payments.
        Enum: same as `type` in "OutgoingWireTransferBeneficiary" (2 values)
      - `accountNumber` (string, required)
        Account number, required for wire transfer over Faster Payments.
      - `sortCode` (string, required)
        Sort code, required for wire transfer over Faster Payments.
      - `secondaryReference` (string)
        Optional secondary reference for accounts without unique sort codes.
      - `address` (string)
        The beneficiary's address.
      - `bankName` (string)
        The beneficiary's bank name.
      - `bankAddress` (string)
        The beneficiary's bank address.
      - `bankCountry` (string)
        The beneficiary's bank country in ISO 3166 alpha-2 format.
      - `nationality` (string)
        Nationality of the user - using ISO 3166 alpha-2.
      - `dateOfBirth` (string)
        The date of birth in ISO 8601 format (YYYY-MM-DD).
    - BeneficiaryId:
      - `beneficiaryId` (string, required)
    - ExternalAccountId:
      - `type` (string, required)
        Enum: same as `type` in "ExternalAccountId" (1 values)
      - `id` (string, required)

  - `state` (string, required)
    The state of the Outgoing wire transfer transaction, as follows:
  - INVALID: The wire transfer has failed initial validation checks.
  - PENDING_CHALLENGE: The wire transfer requires the completion of a transaction confirmation challenge before it can be submitted.
  - SUBMITTED: The wire transfer has been submitted to the sending financial institution for processing.
  - REJECTED: The wire transfer that was submitted was rejected.
  - APPROVED: The wire transfer that was submitted has been approved and is being processed by the sending financial institution.
  - FAILED: There was an issue with the wire transfer, and the transaction has failed.
  - COMPLETED: The requested funds have been sent from the source instrument.
  - RETURNED: The wire transfer has been returned to the sender.
  - SCHEDULED: The wire transfer will be executed at the scheduled time.
  - CANCELLED: The scheduled wire transfer has been cancelled.
  - PENDING_CONFIRMATION: The wire transfer requires a manual confirmation by the user before proceeding.
    Enum: "INVALID", "PENDING_CHALLENGE", "SUBMITTED", "REJECTED", "APPROVED", "FAILED", "COMPLETED", "RETURNED", "SCHEDULED", "CANCELLED", "PENDING_CONFIRMATION"

  - `rejectedInfo` (string)
    Additional info when the outgoing wire transfer has been rejected, as follows:
  - SYSTEM: The wire transfer was rejected by the system.
  - USER: The wire transfer was rejected by the user.
    Enum: "SYSTEM", "USER"

  - `challengeExemptionReason` (string)
    The Reason the transaction was exempted from SCA verification
    Enum: "LOW_VALUE", "TRUSTED_BENEFICIARY"

  - `creationTimestamp` (integer, required)
    The time when the transaction was created, expressed in Epoch timestamp using millisecond precision.

  - `scheduledTimestamp` (string)
    The epoch timestamp at which the transaction is scheduled to be executed.

  - `executionTimestamp` (string)
    The epoch timestamp at which the transaction was executed, transitioning to a final state such as COMPLETED, REJECTED, or FAILED.

  - `cancellationReason` (string)
    The reason the scheduled transaction was cancelled.

  - `validationOutcomes` (array)

  - `validationOutcomes.category` (string, required)
    Enum: "UK_CONFIRMATION_OF_PAYEE", "SEPA_VERIFICATION_OF_PAYEE"

  - `validationOutcomes.categoryResult` (any, required) — one of:
    - UKConfirmationOfPayeeResult:
      - `match` (string, required)
        The result of matching performed by the UK Confirmation of Payee responder
        Enum: "EXACT_MATCH", "CLOSE_MATCH", "NO_MATCH", "NOT_POSSIBLE"
      - `reasonCode` (string)
        The reason why the matching failed at the UK Confirmation of Payee responder:

  - ANNM: The CoP responder confirms that the account name provided does not match;
  - MBAM: The CoP responder indicates that the account name provided closely matches the actual account in its records, the actual account name is returned in the accountName field;
  - BANM: The account type that the user specified is 'PERSONAL', but the CoP responder indicates that the actual account matching the name provided is actually BUSINESS;
  - PANM: The account type that the user specified is 'BUSINESS', but the CoP responder indicates that the actual account matching the name provided is actually PERSONAL;
  - BAMM: The account type that the user specified is 'PERSONAL', but the CoP responder indicates that an account closely matching the name provided is BUSINESS;
  - PAMM: The account type that the user specified is 'BUSINESS', but the CoP responder indicates that an account closely matching the name provided is PERSONAL;
  - AC01: The account does not exist in the CoP responders books, the accountNumber specified is likely incorrect; 
  - IVCR: The CoP responder was unable to locate an account based on the secondaryReference field;
  - ACNS: The account is not supported for CoP by the CoP responder;
  - OPTO: The owner of the account has opted out of CoP service by the CoP responder;
  - CASS: The account has been switched using the Current Account Switch Service;
  - SCNS: The sortCode provided is not supported at endpoint;
        Enum: "ANNM", "MBAM", "BANM", "PANM", "BAMM", "PAMM", "AC01", "IVCR", "ACNS", "OPTO", "CASS", "SCNS"
      - `accountName` (string)
        CoP: Returned when the match is a CLOSE_MATCH and the reasonCode is MBAM, BAMM or PAMM
VoP: Returned when the match is a CLOSE_MATCH
    - SEPAVerificationOfPayeeResult:
      - `match` (string, required)
        The result of the SEPA Verification of Payee check performed by the responding PSP.
        Enum: "MATCH", "NO_MATCH", "CLOSE_MATCH", "NOT_POSSIBLE"
      - `accountName` (string)
        The name of the account holder as registered with the responding PSP.
Returned when the match result is CLOSE_MATCH to help the payer verify the payee.

## Response 400 fields (application/json):

  - `message` (string)
    When present helps to identify and fix the problem.

  - `syntaxErrors` (object)
    Is returned as part of an HTTP error response whenever a syntax error is detected. A list of the fields together with their syntax error will be provided.

  - `syntaxErrors.invalidFields` (array)

  - `syntaxErrors.invalidFields.params` (array)

  - `syntaxErrors.invalidFields.fieldName` (string)

  - `syntaxErrors.invalidFields.error` (string)
    Enum: "REQUIRED", "HAS_TEXT", "REQUIRES", "SIZE", "RANGE", "IN", "NOT_IN", "REGEX", "EXACTLY", "AT_LEAST", "AT_MOST", "ALL_OR_NONE"

## Response 403 fields (application/json):

  - `errorCode` (string)
    Enum: "INSUFFICIENT_PERMISSIONS"

## Response 409 fields (application/json):

  - `errorCode` (string)
    Enum: "PROFILE_INACTIVE", "MODEL_CONSTRAINTS_VIOLATED", "INTERCEPTOR_DENIED_TRANSACTION", "INSTRUMENT_DENIED_TRANSACTION", "CURRENCY_MISMATCH", "SOURCE_INSTRUMENT_BLOCKED", "SOURCE_INSTRUMENT_DESTROYED", "AMOUNT_INVALID", "FUNDS_INSUFFICIENT", "SOURCE_NOT_FOUND", "FEE_NOT_CONFIGURED_FOR_CURRENCY", "TYPE_NOT_SUPPORTED_BY_PROFILE", "IDENTITY_KYC_LEVEL_STEPUP_REQUIRED", "BENEFICIARY_NOT_FOUND", "BENEFICIARY_TYPE_INVALID", "PROFILE_NOT_FOUND", "SCHEDULED_TIMESTAMP_INVALID", "BENEFICIARY_BANK_DETAILS_INVALID", "PLUGIN_FILTER_DATA_INVALID", "IBAN_UPGRADE_REQUIRED", "EXTERNAL_DESTINATION_ACCOUNT_NOT_FOUND", "PURPOSE_OF_PAYMENT_REQUIRED"

## Response default fields (application/json):

  - `code` (string)

  - `message` (string)


## Response 401 fields

## Response 429 fields

## Response 500 fields

## Response 503 fields
