---
title: "Create a payout"
method: POST
path: "/payouts"
tags: ["Payouts"]
---

# Create a payout

`POST /payouts`

Send money to your customers.

## Request body

- PayoutRequest — Represents a request to transfer funds to your customer
  - `psp` string — Name of Payment Service Provider (PSPs). Please see [PSP Integrations] for a list of possible PSPs. [PSP Integrations]: https://docs.br-dge.io/docs/psp-integrations
  - `amount` integer, required — Amount in a currency to be used for the transaction. In the lowest denomination of the currency of the payment. This means that `1234` in GBP represents `£12.34`.
  - `currencyCode` string, required — Currency code of the payment (ISO 4217)
  - `recipient` Recipient, required
    - `title` string — Title of the recipient.
    - `firstName` string — First name of the recipient. Please note that the combined length of `firstName` and `lastName` must not exceed 255 characters.
    - `lastName` string — Last name of the recipient. Please note that the combined length of `firstName` and `lastName` must not exceed 255 characters.
    - `ipAddress` string, ipv4 — IP address of the customer
    - `customerId` string — The ID of the customer in your system. Please use only letters, numbers, spaces and these symbols: `'[]()@?!\-/.,_&*:;+=`
    - `documentIssuer` string — ISO 3166 Alpha-2 Country code
    - `documentId` string — The ID number of a customer's identity document E.g. passport number or national identity card number etc
    - `documentType` string — The type of identification document E.g. passport, national identity card, tax ID, etc
    - `email` string — Email address of the customer
    - `gender` string — Payout recipient's gender
    - `dateOfBirth` string, date — Date of birth of the referenced person. While this field is not required by the BR-DGE API; it is highly recommended as some PSPs recommend the inclusion of this field. If you have any questions about whether you should provide customer date of birth, please raise a ticket with the [BR-DGE Support Centre](https://support.br-dge.io/support/home).
    - `address` DomicileAddressWithCountrySubdivisionCode
      - `buildingNumberOrName` string — The building number or name. Providing a building number or name separate from `address1` is recommended as some payment service provider (PSP) APIs have a separate field. If you are unsure whether you need to collect this data, please raise a ticket with support on the BR-DGE Support Portal at <https://docs.br-dge.io/docs/support#contact-support>. Please use only letters, spaces and these symbols: `-'.`
      - `address1` string — First line of the address. Please use only letters, numbers, spaces and these symbols: `'[]()@?!\-/.,_&*:;+=`
      - `address2` string — Second line of the address. Please use only letters, numbers, spaces and these symbols: `'[]()@?!\-/.,_&*:;+=`
      - `address3` string — Third line of the address. Please use only letters, numbers, spaces and these symbols: `'[]()@?!\-/.,_&*:;+=`
      - `town` string — Town of the address. Please use only letters, numbers, spaces and these symbols: `'[]()@?!\-/.,_&*:;+=`
      - `county` string — County of the address. Please use only letters, numbers, spaces and these symbols: `'[]()@?!\-/.,_&*:;+=`
      - `postcode` string — Postcode of the address. Please use at least one and no more than 9 alphanumeric characters (excl. spaces).
      - `country` string — ISO 3166 Alpha-2 Country code
      - `countrySubdivisionCode` string — ISO 3166-2 Country subdivision code. For an ISO 3166-2 code like `GB-SCT` you should only provide `SCT`.
    - `phoneNumber` string — Telephone number of the occupant Please use only numbers, spaces and an optional leading +.
  - `paymentInstrument` union, required — Electronic instrument with which end users of payment systems use to transfer funds between accounts at banks or other financial institutions.
    - object — A type of [Payment Instrument](https://docs.br-dge.io/docs/introduction#payment-instrument).
      - `type` string, required — Discriminator field. Please see the discriminator mapping for the `PaymentInstrument` schema.
      - `bankDetails` union, required — Bank details of the recipient. Requires either country specific bank account details for domestic payments or IBAN details for international payments.
        - object
          - `bankDetailsFormat` string, required — International or ISO 3166 Alpha-2 Country code discriminator field. The options are: - IBAN - GB
          - `iban` string — Valid ISO 13616 International Bank Account Number (no spaces). Consists of a 2 letter country code, followed by 2 check digits, and then by up to 30 alphanumeric characters (also known as the BBAN).
          - `swiftBic` string — Unique ISO 9362 Bank Identifier Code for cross-border payments.
          - `bankName` string — Name of the bank.
        - object
          - `bankDetailsFormat` string, required — International or ISO 3166 Alpha-2 Country code discriminator field. The options are: - IBAN - GB
          - `accountNumber` string — 8 digit bank account number.
          - `sortCode` string — 6 digit sort code (no spaces or dashes).
          - `swiftBic` string — Unique ISO 9362 Bank Identifier Code for cross-border payments.
          - `bankName` string — Name of the bank.
    - object — The common fields for all AstroPay instruments.
      - `type` string, required — Discriminator field. Please see the discriminator mapping for the `PaymentInstrument` schema.
      - `userId` string — The customer's AstroPay User ID.
      - `phoneNumber` string — Telephone number of the customer. If userId is not supplied a text message will be sent to enable the customer to complete the payout. Please use only numbers, spaces and an optional leading +. Country code must be included.
      - `country` string — ISO 3166 Alpha-2 Country code
    - object — A type of [Payment Instrument](https://docs.br-dge.io/docs/introduction#payment-instrument). Allowing a transfer of funds directly into a customer's bank account.
      - `type` string, required — Discriminator field. Please see the discriminator mapping for the `PaymentInstrument` schema.
      - `bankId` string, required — Unique reference to the bank with WalletDoc - found in WalletDoc's Bank2Bank API
      - `accountNumber` string, required — Beneficiary account number
      - `accountName` string, required — Beneficiary account name
      - `branchCode` string — Branch code. If not provided, the bank's universal branch code is used.
    - object — A type of Payment Instrument for payouts. ePay.bg is EasyPay’s digital platform supporting online transactions.
      - `type` string, required — Discriminator field. Please see the discriminator mapping for the `PaymentInstrument` schema.
      - `customerId` string — Customer ID linking the ePay.bg payout to a specific customer.
      - `customerPaymentOptionId` string — This is the transaciton ID from a previous ePay.bg payment, linking the payout to a previously created payment option
      - `epayCin` string — Customer's ePay.bg identification number
      - `epayEmail` string — Customer's ePay.bg email eddress
    - object — A type of Payment Instrument for payouts. EasyPay allows customers to make payouts using cash.
      - `type` string, required — Discriminator field. Please see the discriminator mapping for the `PaymentInstrument` schema.
      - `customerId` string — Unique ID linking the EasyPay request to a specific customer.
      - `customerPaymentOptionId` string — This is the transaction ID from a previous EasyPay payment, linking the payout to a previously created payment option
      - `easyPayEmail` string — The customer's EasyPay email address
      - `easyPayUserName` string — The customer's EasyPay username
      - `easyPayPersonalId` string — The customer's EasyPay personal ID
      - `easyPayIdentificationDate` string, date — Issue date of recipient's personal document in the format YYYY-MM-DD (ISO 8601)
      - `easyPayIdentificationNumber` string — Recipient's personal document number
      - `easyPayIdentificationType` string — The type of personal document * 1: National ID * 2: Passport Number * 3: Tax ID * 4: Phone Number * 5: Email Address
    - object — A type of [Payment Instrument](https://docs.br-dge.io/docs/introduction#payment-instrument). For payouts using Neteller `payoutRequest.recipient.email` is mandatory.
      - `type` string, required — Discriminator field. Please see the discriminator mapping for the `PaymentInstrument` schema.
    - object — A type of [Payment Instrument](https://docs.br-dge.io/docs/introduction#payment-instrument). Allowing a transfer of funds directly into a customer's bank account, ability to issue vouchers for customers to use to withdraw funds or use with retailers.
      - `type` string, required — Discriminator field. Please see the discriminator mapping for the `PayoutPaymentInstrument` schema.
      - `providerName` string, required — OTT provider name
      - `bankDetails` union — Bank details of the recipient. Requires either country specific bank account details for domestic payments or SWIFT details for international payments.
        - object
          - `bankDetailsFormat` string, required — International or South African country code discriminator field. The options are: - ZA - SWIFT
          - `accountName` string — The name on the recipient's bank account.
          - `accountNumber` string — Recipient's bank account number.
          - `branchName` string — Name of the bank branch.
          - `branchCode` string — 6 digit sort code (no spaces or dashes).
        - object
          - `bankDetailsFormat` string, required — International or South African country code discriminator field. The options are: - ZA - SWIFT
          - `accountName` string — The name on the recipient's bank account.
          - `accountNumber` string — Recipient's bank account number for international transfers.
          - `swiftCode` string — Unique ISO 9362 Bank Identifier Code for cross-border payments.
    - object — Make pay-outs to the same payment instrument as previous pay-ins if the pay-in uses the following Payment Instruments - Apple Pay - Google Pay - Revolut Pay
      - `type` string — Discriminator field. Please see the discriminator mapping for the `PaymentInstrument` schema.
      - `paymentId` string, required — Identifier of the pay-in transaction
    - object — A type of [Payment Instrument] representing a PayPal account used for Payouts. Please supply only one of: payPalAccountId, recipient.phoneNumber, or recipient.email. The chosen field will be used to identify the recipient of the PayPal payout. [Payment Instrument]: https://docs.br-dge.io/docs/introduction#payment-instrument
      - `type` string, required — Discriminator field. Please see the discriminator mapping for the `PaymentInstrument` schema.
      - `payPalAccountId` string — PayPal Account ID of the customer.
    - object — A type of [Payment Instrument] representing a credit or debit card used for Payouts. [Payment Instrument]: https://docs.br-dge.io/docs/introduction#payment-instrument
      - `type` string, required — Discriminator field. Please see the discriminator mapping for the `PaymentInstrument` schema.
      - `nameOnCard` string — Name on the credit or debit card Please use only letters, numbers, spaces and these symbols: -'.
      - `pan` string, required — PAN of the credit or debit card.
      - `expiryDate` string, required — Card expiry date in MM-YY format.
    - object — A type of [Payment Instrument](https://docs.br-dge.io/docs/introduction#payment-instrument). Please see [here](https://docs.br-dge.io/docs/paysafecard-integration) for more information on this feature.
      - `type` string, required — Discriminator field. Please see the discriminator mapping for the `PaymentInstrument` schema.
      - `paysafecardCustomerId` string — Identifier for the customer with Paysafecard's system
      - `submerchantId` string — ID used to classify sub-merchants. Values must be agreed with Paysafecard.
    - object — The PSP token linked to this Card-on-File
      - `pspName` string — Name of Payment Service Provider (PSPs). Please see [PSP Integrations] for a list of possible PSPs. [PSP Integrations]: https://docs.br-dge.io/docs/psp-integrations
      - `token` string — The token generated by the PSP
      - `pspCardFingerprint` string — The PSP fingerprint for the payment instrument (if available)
      - `tokenProvisioningStatus` 'UNPROVISIONED' | 'PROVISIONING' | 'FAILED' | 'PROVISIONED' — The status of the PSP token provisioning. It can be one of the following states: - `UNPROVISIONED`: A PSP token has not attempted to be provisioned for this payment instrument. - `PROVISIONING`: Provisioning has been triggered but is not completed. - `FAILED`: Provisioning has failed, and could not be completed. - `PROVISIONED`: Provisioning was successful, and a PSP token is available for use.
      - `additionalData` PspTokenAdditionalData — Additional fields which may be returned for a subset of PSPs when provisioning a PSP token.
        - `customerToken` string — A token which represents customer information stored with the PSP. This field is only returned if a `customerId` was provided when provisioning the BR-DGE Card-on-File.
        - `instrumentIdentifierToken` string — A token which represents a card number stored with the PSP.
    - SkrillPayment — A type of [Payment Instrument](https://docs.br-dge.io/docs/introduction#payment-instrument) for Skrill, which is part of the PaySafe Limited Global Payments Platform.
      - `type` string, required — Discriminator field. Please see the discriminator mapping for the `PaymentInstrument` schema.
      - `returnUrl` string, uri — URL to which the customer is returned once the payment is made. If this field is not filled, the Skrill Quick Checkout page closes automatically at the end of the transaction and the customer is returned to the page on your website from where they were redirected to Skrill.
      - `pendingUrl` string, uri — A URL that is invoked when a Skrill payment is pending. If not provided, customer will not be re-directed should order go to pending state.
      - `cancelUrl` string, uri — A URL that is invoked after a cancelled Skrill payment. If not provided, cancel button does not appear for customer.
      - `paymentMethods` string[] — Payment methods allows specification of which payment methods should be shown to the customer. Depending Skrill account configuration, one or more can be provided. If none are provided, customer is allowed to use any payment method set up with their Skrill account of their choice.
      - `oneTap` object — Skrill 1-Tap Initialization Data if this Skrill payment is intended to initiate a 1-Tap recurring payment series. Leaving this blank will process a standard, one-time Skrill payment.
        - `onDemandMaxAmount` integer, required — Maximum amount for subsequent payments that will be debited from the customer’s account. In the lowest denomination of the currency of the payment.
        - `note` string, required — Text shown to the customer in the payment confirmation email as the reason for the Skrill 1-Tap payment.
    - object — For use by BR-DGE SDK
      - `type` string, required — Discriminator field. Please see the discriminator mapping for the PaymentInstrumentRequest schema.
      - `customerId` string — Identifier for the merchant's customer who owns the payment instrument to be tokenized.
      - `token` string, required — The token that represents a payment instrument.
      - `cv2` string — CV2 of the Tokenized payment instrument.
      - `updateStoredCredentialIndicator` 'USED' — When provided this updates the indicator of whether a card has been stored externally to our system, and if it has been used previously. Used for the situation where you have registered a card with our system, but used it externally before returning to our system to make a subsequent payment. This will override the value sent to the card networks, (e.g. Visa/Mastercard) on the *first* time the card is used within our systems. If you do not use the card outside of the payment flow in our system before the first payment event, this feature can be ignored, as the standard used functionality will track this. This will effectively update the payment instrument's used status before creating the single use token, as such, if an update is needed it is only required on the first payment request in our system. This is related to [Credential on file mandate compliance]. ## Possible Values * USED - The card has been previously used in a transaction on your systems, this lets the networks know that this is a previously stored card. *Usage Notes:* * Not sending a value for this implies no updates are needed, and so the existing status will be used from our system. * The update value is only needed on the first payment on our system, subsequent calls will just result in extra processing. * This field is optional but *MUST* be filled when a card has been used outside our system before making a first payment inside our system. [Credential on file mandate compliance]: https://docs.br-dge.io/docs/vault#credentials-on-file-mandate-compliance
    - object — TrueLayer payout. Must include one and only one of: - paymentSource - bankDetails - verification
      - `type` string, required — Discriminator field. Please see the discriminator mapping for the `PayoutPaymentInstrument` schema.
      - `paymentSource` object — TrueLayer payout using a Payment Source ID. Required Fields: - recipient.customerId
        - `paymentSourceId` string, required — Payment Source ID to make a payout with TrueLayer Open banking.
      - `bankDetails` union — Bank details of the recipient. Requires either country specific bank account details for domestic payments or IBAN details for international payments.
        - object
          - `bankDetailsFormat` string, required — International or ISO 3166 Alpha-2 Country code discriminator field. The options are: - IBAN - GB
          - `iban` string — Valid ISO 13616 International Bank Account Number (no spaces). Consists of a 2 letter country code, followed by 2 check digits, and then by up to 30 alphanumeric characters (also known as the BBAN).
          - `swiftBic` string — Unique ISO 9362 Bank Identifier Code for cross-border payments.
          - `bankName` string — Name of the bank.
        - object
          - `bankDetailsFormat` string, required — International or ISO 3166 Alpha-2 Country code discriminator field. The options are: - IBAN - GB
          - `accountNumber` string — 8 digit bank account number.
          - `sortCode` string — 6 digit sort code (no spaces or dashes).
          - `swiftBic` string — Unique ISO 9362 Bank Identifier Code for cross-border payments.
          - `bankName` string — Name of the bank.
      - `verification` object — Make a TrueLayer payout which returns a redirect URL for the client to follow through. Required fields: - recipient.firstName - recipient.lastName - recipient.customerId - either recipient.email OR recipient.phoneNumber If the client's transactions are subject to sanctions screening, then the address must be provided, otherwise it is optional. Specifically address.address1, address.town, address.postcode and address.country.
        - `verificationDetails` object, required
          - `searchTokens` string[], required — A list of tokens to look for as transaction reference. The size of this array can vary between 1 and 5 items. Each item should present minimum 3 and maximum 50 characters, including spaces.
          - `amount` integer, required — Amount in a currency to be used for the transaction. In the lowest denomination of the currency of the payment. This means that `1234` in GBP represents `£12.34`.
          - `currencyCode` string, required — Currency code of the payment (ISO 4217)
          - `paymentDate` string, date, required — The date the transaction was created at
        - `providerId` string — The TrueLayer ID of a bank or other financial institution that TrueLayer can initiate payments through. If not provided, the customer will be prompted to select a provider when re-directed to TrueLayer.
        - `returnUrl` string, uri, required — URL to which the customer is returned once the payout is made.
    - object — Trustly is an Open Banking [Payment Instrument]. When using this instrument type for a payment, you must provide a customer ID in the `payment.customerId` field. This field is used within Trustly back office to help merchants keep track of the transaction. For more information, please see our [Trustly User Guide]. [Trustly User Guide]: https://docs.br-dge.io/docs/trustly#/ [Payment Instrument]: https://docs.br-dge.io/docs/introduction#payment-instrument
      - `type` string, required — Discriminator field. Please see the discriminator mapping for the `PaymentInstrument` schema.
      - `successUrl` string, required — A URL that is invoked after a successful Trustly transaction. By using unpredictable single-use URLs you can protect yourself from the possibility of bad actors attempting to make it appear that the transaction had a different outcome to reality. We also recommend that you confirm the outcome of transaction via server-to-server calls to BR-DGE.
      - `errorUrl` string, required — A URL that is invoked after an unsuccessful Trustly transaction.
      - `accountId` string, required — This is Trustly's bank account identifier, used to enable [Trustly Express flow] transactions. Providing the `accountId` streamlines transactions for returning customers, allowing them to bypass steps and complete transactions faster, which enhances customer loyalty and increases conversion rates. The `accountId` can be obtained from: - Payment Instrument Account Selection BR-DGE callback - `GET /v1/payments` response - `GET /v1/payments/{paymentId}/status` response Note: Ensure the `customerId` matches the customer ID from the previous transaction associated with this `accountId`. [Trustly Express flow]: https://eu.developers.trustly.com/doc/reference/trustly-express-overview
  - `reference` string, required — A reference you can later use to identify this payout. Please use only letters, numbers, spaces and these symbols: `'[]()@?!\-/.,_&*:;+=`
  - `purpose` string — The purpose of this payout Please use only letters, numbers, spaces and these symbols: `'[]()@?!\-/.,_&*:;+=`
  - `customerId` string — The ID of the customer in your system. Please use only letters, numbers, spaces and these symbols: `'[]()@?!\-/.,_&*:;+=`
  - `cashierId` string — For use by BR-DGE Cashier to link the transaction to a particular Cashier instance.
  - `riskInstruments` PayoutRiskInstruments — Map of optional risk instrument objects which can be used to pass risk information to PSPs or risk engines
    - `merchant` Merchant — Risk instrument for Merchant risk engine
  - `merchantTransactionId` string — Your unique identifier that can be used when a connection issue occurs and you don't receive a paymentId. This is an optional field that can be used when querying `GET v1/payments`, `GET v1/payouts` or `GET v1/payments/{paymentId}/refunds`. We will validate the uniqueness of the merchantTransactionId value per retail channel. If a payment/payout/refund is created with merchantTransactionId `abc`, no other payment/payout/refund can be created with `abc`. The merchantTransactionId is a contract between BR-DGE and a merchant. This field will not be mapped downstream to any PSP. In the event that you provide a merchantTransactionId in the second (or third) leg of a 3DS payment, we will ignore this value and will only use the value provided in the initial request.
  - `customMetadata` CustomMetadata — Optional custom metadata string fields for the transaction. Up to 25 fields can be included with the following constraints: The field name may not be empty or have leading or trailing whitespace, and can consist of upper and lowercase letters, numbers, space, underscore "_", hyphen "-" and single quote "'". Maximum string length of either field name and field value is 200 chars.

## Response `201`

Payout request completed successfully.

- PayoutResponse
  - `code` string — [Response Code](https://docs.br-dge.io/docs/response-codes) signifying the outcome of the request.
  - `id` string — The ID of this request. If you can include these when querying the outcome of individual requests, we can track down the root cause faster.
  - `message` string — A description of the outcome of the request.
  - `paymentId` string — The ID of this payment
  - `payoutEligibility` PayoutEligibility
    - `crossBorderGambling` 'NOT_SUPPORTED' | 'STANDARD' | 'FAST_FUNDS' | 'UNKNOWN'
    - `crossBorderMoneyTransfer` 'NOT_SUPPORTED' | 'STANDARD' | 'FAST_FUNDS' | 'UNKNOWN'
    - `crossBorderNonMoneyTransfer` 'NOT_SUPPORTED' | 'STANDARD' | 'FAST_FUNDS' | 'UNKNOWN'
    - `domesticGambling` 'NOT_SUPPORTED' | 'STANDARD' | 'FAST_FUNDS' | 'UNKNOWN'
    - `domesticMoneyTransfer` 'NOT_SUPPORTED' | 'STANDARD' | 'FAST_FUNDS' | 'UNKNOWN'
    - `domesticNonMoneyTransfer` 'NOT_SUPPORTED' | 'STANDARD' | 'FAST_FUNDS' | 'UNKNOWN'
  - `psp` PspInfo
    - `name` string, required — Name of Payment Service Provider (PSPs). Please see [PSP Integrations] for a list of possible PSPs. [PSP Integrations]: https://docs.br-dge.io/docs/psp-integrations
    - `transactionId` string, required — Identifier provided by the PSP this payment was routed to.
    - `switchAccountId` string — Internal switch account identifier for the PSP account that was used to perform the transaction. This is an internally-assigned identifier, not a value provided by the PSP. Please note: PSP account switching feature is still under development and this field is not present in GET responses and notifications yet.
    - `pspToken` string — The token created by the PSP for the payment instrument.
    - `pspCardFingerprint` string — The PSP fingerprint for the payment instrument.
    - `provisionedUserId` string — PSP-specific user ID that was provisioned by the PSP when processing the payment.
    - `additionalInfo` union — Any additional information returned from interaction with PSP
      - object
        - `type` string — Discriminator field. Please see the discriminator mapping for the `AdditionalInfo` schema.
        - `customerFirstName` string — Customer's first name
        - `customerLastName` string — Customer's last name
        - `customerDateOfBirth` string, date — Customer's date of birth
        - `customerIpAddress` string, ipv4 — IP address of the customer
        - `customerId` string — The ID of the customer in your system.
        - `paysafecardCustomerId` string — Paysafecard identifier for the customer
      - object
        - `type` string — Discriminator field. Please see the discriminator mapping for the `AdditionalInfo` schema.
        - `customerPaymentOptionId` string — Identifier for the customer Payment Option
      - object
        - `type` string — Discriminator field. Please see the discriminator mapping for the `AdditionalInfo` schema.
        - `customerPaymentOptionId` string — Identifier for the customer Payment Option
      - object
        - `type` string — Discriminator field. Please see the discriminator mapping for the `AdditionalInfo` schema.
        - `customer` TrueLayerCustomer — Contains TrueLayer customer information.
          - `address` Address
            - `firstName` string — First name of the occupant. Please use only letters, spaces and these symbols: `-'.`
            - `lastName` string — Last name of the occupant. Please use only letters, spaces and these symbols: `-'.`
            - `phoneNumber` string — Telephone number of the occupant Please use only numbers, spaces and an optional leading +.
            - `buildingNumberOrName` string — The building number or name. Providing a building number or name separate from `address1` is recommended as some payment service provider (PSP) APIs have a separate field. If you are unsure whether you need to collect this data, please raise a ticket with support on the BR-DGE Support Portal at <https://docs.br-dge.io/docs/support#contact-support>. Please use only letters, spaces and these symbols: `-'.`
            - `address1` string — First line of the address. Please use only letters, numbers, spaces and these symbols: `'[]()@?!\-/.,_&*:;+=`
            - `address2` string — Second line of the address. Please use only letters, numbers, spaces and these symbols: `'[]()@?!\-/.,_&*:;+=`
            - `address3` string — Third line of the address. Please use only letters, numbers, spaces and these symbols: `'[]()@?!\-/.,_&*:;+=`
            - `town` string — Town of the address. Please use only letters, numbers, spaces and these symbols: `'[]()@?!\-/.,_&*:;+=`
            - `county` string — County of the address. Please use only letters, numbers, spaces and these symbols: `'[]()@?!\-/.,_&*:;+=`
            - `postcode` string — Postcode of the address. Please use at least one and no more than 9 alphanumeric characters (excl. spaces).
            - `country` string — ISO 3166 Alpha-2 Country code
          - `dateOfBirth` string, date — Date of birth of the referenced person. While this field is not required by the BR-DGE API; it is highly recommended as some PSPs recommend the inclusion of this field. If you have any questions about whether you should provide customer date of birth, please raise a ticket with the [BR-DGE Support Centre](https://support.br-dge.io/support/home).
          - `customerId` string — The ID of the customer in TrueLayer's system
          - `name` string — Customer's full name
        - `providerId` string — ID of the bank or other financial institution used in this payment in TrueLayer's system
        - `paymentSourceId` string — ID of the customer's payment source used to perform the payment in TrueLayer's system
        - `originalTransactionId` string
        - `accountNumber` string — 8 digit bank account number.
        - `sortCode` string — 6 digit sort code (no spaces or dashes).
        - `iban` string — Valid ISO 13616 International Bank Account Number (no spaces). Consists of a 2 letter country code, followed by 2 check digits, and then by up to 30 alphanumeric characters (also known as the BBAN).
      - object
        - `type` string — Discriminator field. Please see the discriminator mapping for the `AdditionalInfo` schema.
        - `fingerprint` string — The fingerprint associated to the authorized order's payment method
        - `name` string — The name of the revolut customer.
        - `emailAddress` string — The email address of the revolut customer
        - `paymentRevTag` string — Unique handle for a Revolut customer.
        - `revolutCustomerId` string, uuid — The unique identifier for the revolut customer.
        - `billingAddress` RevolutPayBillingAddress
          - `street_line_1` string — First line of street address information for Revolut customer.
          - `street_line_2` string — Second line of street address information for Revolut customer..
          - `region` string — The region associated with the address.
          - `city` string — The region associated with the address.
          - `country_code` string — 2 letter country code of the country associated with the address.
          - `postcode` string — The postcode associated with the address.
      - object
        - `type` string — Discriminator field. Please see the discriminator mapping for the `AdditionalInfo` schema.
        - `vaultId` string — Vault ID generated by PayPal referring to the customer's stored PayPal wallet.
        - `paymentSource` PaymentSource — Details of the PayPal account used to complete the payment for the PayPal Order.
          - `name` string — Full name of customer.
          - `email` string — Email address of the customer.
          - `accountId` string — PayPal account ID.
          - `vaultId` string — Vault ID generated by PayPal referring to the customer's stored PayPal wallet.
      - object
        - `type` string — Discriminator field. Please see the discriminator mapping for the `AdditionalInfo` schema.
        - `pin` string — voucher pin
        - `serialNumber` string — voucher serial number
    - `rawPspResponses` RawPspResponse[], nullable
      - `httpStatusCode` integer — The http response code for the given call to the external system
      - `body` string — The response body of the http request to the external system. This is the raw response with sensitive data redacted. We make no guarantees about the format of this field. It is psp dependant. The majority of these responses are in `application/json` but note for certain types of error response they may be `text/html` or `application/xml`
      - `pspName` string, required — Name of Payment Service Provider (PSPs). Please see [PSP Integrations] for a list of possible PSPs. [PSP Integrations]: https://docs.br-dge.io/docs/psp-integrations
      - `headers` object — A key/value map of the http headers from the external system.
    - `paymentAccountReference` string — The Payment Account Reference (PAR) linked the the payment-instrument, if available. See our [dedicated PAR guide](https://docs.br-dge.io/docs/payment-account-reference) for more info.
  - `action` Action — Browser redirect action consistent with [BR-DGE Redirect Payment Flow](https://secure.comcarde.com/docs/#redirect-payment-flow).
    - `type` string — Discriminator field. Please see the discriminator mapping for the Action schema.
    - `data` object
      - `url` string — URL to redirect your customer towards.
  - `actionRequired` boolean — Boolean value indicating whether further action should be taken after the response is received.
  - `merchantTransactionId` string — Your unique identifier that can be used when a connection issue occurs and you don't receive a paymentId. This is an optional field that can be used when querying `GET v1/payments`, `GET v1/payouts` or `GET v1/payments/{paymentId}/refunds`. We will validate the uniqueness of the merchantTransactionId value per retail channel. If a payment/payout/refund is created with merchantTransactionId `abc`, no other payment/payout/refund can be created with `abc`. The merchantTransactionId is a contract between BR-DGE and a merchant. This field will not be mapped downstream to any PSP. In the event that you provide a merchantTransactionId in the second (or third) leg of a 3DS payment, we will ignore this value and will only use the value provided in the initial request.
  - `riskAssessments` PayoutRiskAssessments — An optional map of risk assessment results received from risk engines.
    - `merchant` MerchantRiskAssessment — Risk assessment from Merchant's own risk engine. Can be used to return results when the merchant has a proprietary risk or validation engine they wish to call during the payment or payout flows.
      - `decision` 'APPROVED' | 'DECLINED' | 'UNAVAILABLE' | 'HELD', required — Merchant's decision Can be one of: - `APPROVED`: Merchant's risk engine has approved the transaction. - `DECLINED`: Merchant's risk engine has declined the transaction. - `UNAVAILABLE`: Merchant's risk engine was unavailable to give a decision. - `HELD`: Merchant’s risk engine has placed the transaction on hold
      - `code` string — The response code returned by the engine.
      - `message` string — Message returned by the engine.
      - `retryable` boolean — Indicates whether transaction can be amended and retried.
      - `transactionId` string — Transaction identifier returned by the Merchant risk engine.
      - `rawResponse` RawResponse — Contains a single http response.
        - `httpStatusCode` integer — The http response code for the given call to the external system
        - `body` string — The response body of the http request to the external system. This is the raw response with sensitive data redacted. We make no guarantees about the format of this field. It is psp dependant. The majority of these responses are in `application/json` but note for certain types of error response they may be `text/html` or `application/xml`
  - `paymentInstrument` union
    - PaymentInstrumentApplePay — General fields which are valid for a payment instrument.
      - `type` string, required — Discriminator Field, defines the type of payment instrument. Valid values can be found on the parent object’s discriminator definition in OpenAPI schema.
    - PaymentInstrumentCard — General fields which are valid for a payment instrument.
      - `type` string, required — Discriminator Field, defines the type of payment instrument. Valid values can be found on the parent object’s discriminator definition in OpenAPI schema.
    - PaymentInstrumentGooglePay — General fields which are valid for a payment instrument.
      - `type` string, required — Discriminator Field, defines the type of payment instrument. Valid values can be found on the parent object’s discriminator definition in OpenAPI schema.
    - PaymentInstrumentPspTokenInstrument — General fields which are valid for a payment instrument.
      - `type` string, required — Discriminator Field, defines the type of payment instrument. Valid values can be found on the parent object’s discriminator definition in OpenAPI schema.
    - PaymentStatusPaymentInstrumentAstroPayInstrument — General fields which are valid for a payment instrument.
      - `type` string, required — Discriminator Field, defines the type of payment instrument. Valid values can be found on the parent object’s discriminator definition in OpenAPI schema.
    - PaymentStatusPaymentInstrumentEPay — General fields which are valid for a payment instrument.
      - `type` string, required — Discriminator Field, defines the type of payment instrument. Valid values can be found on the parent object’s discriminator definition in OpenAPI schema.
    - PaymentStatusPaymentInstrumentEasyPay — General fields which are valid for a payment instrument.
      - `type` string, required — Discriminator Field, defines the type of payment instrument. Valid values can be found on the parent object’s discriminator definition in OpenAPI schema.
    - PaymentStatusPaymentInstrumentNeteller — General fields which are valid for a payment instrument.
      - `type` string, required — Discriminator Field, defines the type of payment instrument. Valid values can be found on the parent object’s discriminator definition in OpenAPI schema.
      - `account` PaymentInstrumentAccountBase
        - `accountId` string — The unique account identifier used by the payment instrument provider (Skrill, Paypal etc.) The id is only available after the customer has logged in to their account. Only supported on a subset of payment instruments.
    - PayoutStatusPaymentInstrumentOtt — General fields which are valid for a payment instrument.
      - `type` string, required — Discriminator Field, defines the type of payment instrument. Valid values can be found on the parent object’s discriminator definition in OpenAPI schema.
    - PaymentStatusPaymentInstrumentPaysafecard — General fields which are valid for a payment instrument.
      - `type` string, required — Discriminator Field, defines the type of payment instrument. Valid values can be found on the parent object’s discriminator definition in OpenAPI schema.
      - `account` PaymentInstrumentAccountBase
        - `accountId` string — The unique account identifier used by the payment instrument provider (Skrill, Paypal etc.) The id is only available after the customer has logged in to their account. Only supported on a subset of payment instruments.
    - PaymentStatusPaymentInstrumentRevolutPay — General fields which are valid for a payment instrument.
      - `type` string, required — Discriminator Field, defines the type of payment instrument. Valid values can be found on the parent object’s discriminator definition in OpenAPI schema.
    - PaymentStatusPaymentInstrumentSkrill — General fields which are valid for a payment instrument.
      - `type` string, required — Discriminator Field, defines the type of payment instrument. Valid values can be found on the parent object’s discriminator definition in OpenAPI schema.
      - `account` PaymentInstrumentAccountBase
        - `accountId` string — The unique account identifier used by the payment instrument provider (Skrill, Paypal etc.) The id is only available after the customer has logged in to their account. Only supported on a subset of payment instruments.
    - PayoutStatusPaymentInstrumentAccessWorldpayBankPayout — General fields which are valid for a payment instrument.
      - `type` string, required — Discriminator Field, defines the type of payment instrument. Valid values can be found on the parent object’s discriminator definition in OpenAPI schema.
    - PayoutStatusPaymentInstrumentPayPal — General fields which are valid for a payment instrument.
      - `type` string, required — Discriminator Field, defines the type of payment instrument. Valid values can be found on the parent object’s discriminator definition in OpenAPI schema.
      - `payPalAccountId` string — PayPal Account ID of the customer.
    - PayoutStatusPaymentInstrumentTrueLayer — General fields which are valid for a payment instrument.
      - `type` string, required — Discriminator Field, defines the type of payment instrument. Valid values can be found on the parent object’s discriminator definition in OpenAPI schema.
    - PayoutStatusPaymentInstrumentTrustly — General fields which are valid for a payment instrument.
      - `type` string, required — Discriminator Field, defines the type of payment instrument. Valid values can be found on the parent object’s discriminator definition in OpenAPI schema.
      - `account` PaymentInstrumentAccountBase
        - `accountId` string — The unique account identifier used by the payment instrument provider (Skrill, Paypal etc.) The id is only available after the customer has logged in to their account. Only supported on a subset of payment instruments.
  - `amount` integer — Amount in a currency to be used for the transaction. In the lowest denomination of the currency of the payment. This means that `1234` in GBP represents `£12.34`.
  - `currencyCode` string — Currency code of the payment (ISO 4217)
  - `blockingRule` BlockingRule — The routing rule which resulted in the transaction being blocked.
    - `name` string, required — The name of the rule

## Other responses

- `202` — The operation has been accepted for processing and the outcome is not yet known. Please refer to the webhook callbacks that are linked to this operation.
- `400` — Bad request - the request was in an invalid format or contained invalid information. If have any questions about why you are receiving these responses, please raise a ticket with support on the BR-DGE Support Portal at <https://docs.br-dge.io/docs/support#contact-support> with the `id` from the response so we track down the individual requests on our end.
- `401` — Unauthorized request.
- `409` — Indicates a request conflict.
- `422` — Unprocessable Content - The server understood the content type of the request, and the syntax of the request content was correct, but it was unable to process. This scenario can occur when a payout could not be routed to a PSP, for example if the payout was blocked during routing. It is not a bad request as it has passed gateway validation.
- `500` — An internal server error occurred upstream while processing the request. If you have any questions about why you are receiving these responses, please raise a ticket with support on the BR-DGE Support Portal at <https://comcarde.atlassian.net/servicedesk/customer/portals> with the `id` from the response so we track down the individual requests on our end.
- `502` — An error occurred upstream while processing the request, possibly on payment processor. If have any questions about why you are receiving these responses, please raise a ticket with support on the BR-DGE Support Portal at <https://docs.br-dge.io/docs/support#contact-support> with the ID from the response so we track down the individual requests on our end.

---

[API](https://skmtc.net/br-dge/apis/br-dge-transaction-rest-api.md) · [All operations](https://skmtc.net/br-dge/apis/br-dge-transaction-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/br-dge/br-dge-transaction-rest-api/revisions/a9c0feac5523/schema)
