---
title: "Initiate a payment"
method: POST
path: "/v2/single-immediate-payment-initiation-requests"
tags: ["Payments"]
---

# Initiate a payment

`POST /v2/single-immediate-payment-initiation-requests`

## Request

- Base URL: `https://pay-api.truelayer-sandbox.com`
- URL: `https://pay-api.truelayer-sandbox.com/v2/single-immediate-payment-initiation-requests`
- Auth: none required

Initiate a payment

## Request body

- SingleImmediatePaymentInitiationRequest: Initiation request
  - `single_immediate_payment` SingleImmediatePaymentEntity, required: Specifies the details of the payment to be created.
    - `single_immediate_payment_id` string: The unique ID of the payment you want to create. If two requests are received with the same ID, only the first one will be processed.
    - `amount_in_minor` integer, required: The amount, specified in terms of the fractional monetary unit of the payment currency, to be paid.
    - `currency` string, required: The ISO 4217 code of the currency for the payment.
    - `provider_id` string, required: The ID of the provider, as given on our `/providers` endpoint.
    - `scheme_id` string, required: The ID of the scheme to make the payment over. This must be one of the schemes advertised by the provider on the `/v2/single-immediate-payments-providers` endpoint.
    - `fee_option_id` string: The ID indicating the desired distribution of fees between the beneficiary and remitter. Must be a `fee_option_id` from one of the options advertised under that scheme on the `/v2/single-immediate-payments-providers` endpoint. Should be omitted if there are no fee options (the scheme is free).
    - `beneficiary` ParticipantDetailsInRequest, required
      - `account` union, required
        - UKPaymentAccount: The details of the account owned by the participant.
          - `type` 'sort_code_account_number', required: The type of account.
          - `sort_code` string, required: 6 digit sort code (no spaces or dashes).
          - `account_number` string, required: 8 digit account number.
        - IBANPaymentAccount: The details of the account owned by the participant.
          - `type` 'iban', required: The type of account.
          - `iban` string, required: Valid 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).
        - BBANPaymentAccount: The details of the account owned by the participant.
          - `type` 'iban', required: The type of account.
          - `bban` string, required: Valid Basic Bank Account Number (no spaces). Consists of up to 30 alphanumeric characters, with a fixed length per country. Forms the latter part of the IBAN as described above.
        - NRBPaymentAccount: The details of the account owned by the participant.
          - `type` 'iban', required: The type of account.
          - `nrb` string, required: Valid Polish NRB (no spaces). Consists of 2 check digits, followed by an 8 digit bank branch number, and then by a 16 digit bank account number. Equivalent to a Polish IBAN with the country code removed.
      - `name` string: The name on the participant’s account.
    - `remitter` ParticipantDetailsInRequest
      - `account` union, required
        - UKPaymentAccount: The details of the account owned by the participant.
          - `type` 'sort_code_account_number', required: The type of account.
          - `sort_code` string, required: 6 digit sort code (no spaces or dashes).
          - `account_number` string, required: 8 digit account number.
        - IBANPaymentAccount: The details of the account owned by the participant.
          - `type` 'iban', required: The type of account.
          - `iban` string, required: Valid 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).
        - BBANPaymentAccount: The details of the account owned by the participant.
          - `type` 'iban', required: The type of account.
          - `bban` string, required: Valid Basic Bank Account Number (no spaces). Consists of up to 30 alphanumeric characters, with a fixed length per country. Forms the latter part of the IBAN as described above.
        - NRBPaymentAccount: The details of the account owned by the participant.
          - `type` 'iban', required: The type of account.
          - `nrb` string, required: Valid Polish NRB (no spaces). Consists of 2 check digits, followed by an 8 digit bank branch number, and then by a 16 digit bank account number. Equivalent to a Polish IBAN with the country code removed.
      - `name` string: The name on the participant’s account.
    - `references` union: The details of the reference, or references, for the payment. See the ReferencesDetails section below.
      - SingleReferences
        - `type` 'single', required: The type of references.
        - `reference` string, required: The reference to appear on the beneficiary’s and remitter’s statements.
      - SeparateReferences
        - `type` 'separate', required: The type of references.
        - `beneficiary` string, required: The reference to appear on the beneficiary’s statement.
        - `remitter` string, required: The reference to appear on the remitter's statement.
  - `auth_flow` union, required: Specifies how the payment should be authorised
    - object
      - `type` 'redirect', required: The type of authorisation flow.
      - `return_uri` string, required: The URI we will return the user to after authorising the payment. When the user is redirected to this URI, we will append a `single_immediate_payment_id` query parameter specifying the payment ID and a type query parameter with value `single_immediate_payment`.
      - `psu_ip_address` string: The IP address of the end user.
      - `data_access_token` string: If the provider only allows a single active consent across both AIS and PIS services, in order to prevent invalidating an existing AIS consent, you can pass the data access token on this field, and we will preserve the data consent when requesting authorisation for the payment.
      - `additional_inputs` object: A dictionary of additional values required on a per-provider basis. Please refer to our providers endpoint for details of the providers that require these.
    - object
      - `type` 'embedded', required: The type of authorisation flow.
      - `additional_inputs` object: A dictionary of additional values required on a per-provider basis. Please refer to our providers endpoint for details of the providers that require these.
  - `webhook_uri` string: An address to which payment webhooks with the status of the payment should be sent. Has to be HTTPS.

## Response `200`

Initiation response

- SingleImmediatePaymentInitiationResponse: Initiation response
  - `single_immediate_payment` SingleImmediatePaymentResponse, required: Specifies the details of the payment to be created.
    - `single_immediate_payment_id` string: The unique ID of the payment you want to create. If two requests are received with the same ID, only the first one will be processed.
    - `amount_in_minor` integer, required: The amount, specified in terms of the fractional monetary unit of the payment currency, to be paid.
    - `currency` string, required: The ISO 4217 code of the currency for the payment.
    - `provider_id` string, required: The ID of the provider, as given on our `/providers` endpoint.
    - `scheme_id` string, required: The ID of the scheme to make the payment over. This must be one of the schemes advertised by the provider on the `/v2/single-immediate-payments-providers` endpoint.
    - `fee_option_id` string: The ID indicating the desired distribution of fees between the beneficiary and remitter. Must be a `fee_option_id` from one of the options advertised under that scheme on the `/v2/single-immediate-payments-providers` endpoint. Should be omitted if there are no fee options (the scheme is free).
    - `beneficiary` ParticipantDetailsInRequest, required
      - `account` union, required
        - UKPaymentAccount: The details of the account owned by the participant.
          - `type` 'sort_code_account_number', required: The type of account.
          - `sort_code` string, required: 6 digit sort code (no spaces or dashes).
          - `account_number` string, required: 8 digit account number.
        - IBANPaymentAccount: The details of the account owned by the participant.
          - `type` 'iban', required: The type of account.
          - `iban` string, required: Valid 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).
        - BBANPaymentAccount: The details of the account owned by the participant.
          - `type` 'iban', required: The type of account.
          - `bban` string, required: Valid Basic Bank Account Number (no spaces). Consists of up to 30 alphanumeric characters, with a fixed length per country. Forms the latter part of the IBAN as described above.
        - NRBPaymentAccount: The details of the account owned by the participant.
          - `type` 'iban', required: The type of account.
          - `nrb` string, required: Valid Polish NRB (no spaces). Consists of 2 check digits, followed by an 8 digit bank branch number, and then by a 16 digit bank account number. Equivalent to a Polish IBAN with the country code removed.
      - `name` string: The name on the participant’s account.
    - `remitter` ParticipantDetailsInRequest
      - `account` union, required
        - UKPaymentAccount: The details of the account owned by the participant.
          - `type` 'sort_code_account_number', required: The type of account.
          - `sort_code` string, required: 6 digit sort code (no spaces or dashes).
          - `account_number` string, required: 8 digit account number.
        - IBANPaymentAccount: The details of the account owned by the participant.
          - `type` 'iban', required: The type of account.
          - `iban` string, required: Valid 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).
        - BBANPaymentAccount: The details of the account owned by the participant.
          - `type` 'iban', required: The type of account.
          - `bban` string, required: Valid Basic Bank Account Number (no spaces). Consists of up to 30 alphanumeric characters, with a fixed length per country. Forms the latter part of the IBAN as described above.
        - NRBPaymentAccount: The details of the account owned by the participant.
          - `type` 'iban', required: The type of account.
          - `nrb` string, required: Valid Polish NRB (no spaces). Consists of 2 check digits, followed by an 8 digit bank branch number, and then by a 16 digit bank account number. Equivalent to a Polish IBAN with the country code removed.
      - `name` string: The name on the participant’s account.
    - `references` union: The details of the reference, or references, for the payment. See the ReferencesDetails section below.
      - SingleReferences
        - `type` 'single', required: The type of references.
        - `reference` string, required: The reference to appear on the beneficiary’s and remitter’s statements.
      - SeparateReferences
        - `type` 'separate', required: The type of references.
        - `beneficiary` string, required: The reference to appear on the beneficiary’s statement.
        - `remitter` string, required: The reference to appear on the remitter's statement.
    - `initiated_at` string, required: The time the payment was initiated, in UTC formatted as an ISO 8601 string (`YYYY-MM-DDThh:mm:ss.sssZ`).
    - `status` string, required: The status of the payment. For newly initiated payments, this will be initiated.
  - `auth_flow` union, required
    - RedirectAuthFlowResponse: Response if the provider uses a redirect flow
      - `type` 'redirect': Value indicating this is a redirect authorisation flow: redirect
      - `uri` string: The URI for the end user to authorise the payment in the bank’s UI.
      - `expiry` string: An expiry time, if one is known, after which the URI to authorise the payment will become invalid. In UTC, formatted as an ISO 8601 string (`YYYY-MM-DDThh:mm:ss.sssZ`).
    - EmbeddedAuthFlowResponse: Response if the provider uses a redirect embedded flow
      - `step` union
        - EmbeddedAuthStepOngoing: An object describing the next step in the ongoing authorisation flow.
          - `step_id` string: The step ID, needed to submit additional inputs.
          - `type` 'additional_inputs'
          - `additional_inputs` union: An optional dictionary of ID to additional inputs that must be collected from the end user to initiate a payment. These inputs should be provided using the same IDs in the auth_flow.additional_inputs string dictionary on the initiation request
            - object
              - …
            - object
              - …
            - object
              - …
        - EmbeddedAuthStepComplete: An object describing the completion of embedded auth flow
          - `type` 'completed': Value indicating no more steps: completed
          - `outcome` 'psu_cancelled' | 'provider_rejected' | 'authorised': The result of the authorisation.
      - `type` 'embedded': Value indicating this is a embedded authorisation flow: embedded

## Other responses

- `400`: Invalid request
- `403`: Your are not authorised for the action
- `500`: Internal error
- `502`: Provider error

---

[API](https://skmtc.dev/truelayer/apis/legacy-payments-api.md) - [All operations](https://skmtc.dev/truelayer/apis/legacy-payments-api/llms.txt) - [OpenAPI document](https://skmtc.dev/truelayer/apis/legacy-payments-api/revisions/cd2e1466caa0?raw)
