---
title: "Submit embedded auth flow steps"
method: POST
path: "/v2/single-immediate-payments/{sip_id}/embedded-auth-steps/{step_id}/submission"
tags: ["Payments"]
---

# Submit embedded auth flow steps

`POST /v2/single-immediate-payments/{sip_id}/embedded-auth-steps/{step_id}/submission`

## Request

- Base URL: `https://pay-api.truelayer-sandbox.com`
- URL: `https://pay-api.truelayer-sandbox.com/v2/single-immediate-payments/{sip_id}/embedded-auth-steps/{step_id}/submission`
- Auth: none required

Some of the European banks require the embedded authorisation flow, which consists of multiple steps provided by the banks. Each step can be submitted via this endpoint. The response will include the information for the step to follow.

## Path parameters

- `sip_id` string, required
- `step_id` string, required

## Request body

- union
  - EmbeddedAuthflowInputSubmissionRequest: A request object to input an embedded field for the embedded auth flow
    - `type` 'additional_inputs'
    - `additional_inputs` unknown
  - EmbeddedAuthflowCancelSubmissionRequest: A request object to input an embedded field for the embedded auth flow
    - `type` 'cancel'

## Response `200`

Response of the embedded auth flow step submission

- 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
          - `type` 'text': Value indicating the field type: text
          - `display_text` string: Text to describe what the field is asking for (English)
          - `provider_description` string: Text directly from the bank relating to the field
          - `mandatory` boolean: If the input must be provided
          - `sensitive` boolean: If the input is sensitive (should be masked in UI)
          - `min_length` integer: The minimum length of the input text
          - `max_length` integer: The maximum length of the input text
          - `regex` string: A regular expression the input text must match
          - `format` 'any' | 'numerical' | 'alphabetical' | 'alphanumerical' | 'email': A well known format, to facilitate being able to show useful prompts to the user.
        - object
          - `type` 'text_with_image': Value indicating the field type: text
          - `display_text` string: Text to describe what the field is asking for (English)
          - `provider_description` string: Text directly from the bank relating to the field
          - `mandatory` boolean: If the input must be provided
          - `sensitive` boolean: If the input is sensitive (should be masked in UI)
          - `min_length` integer: The minimum length of the input text
          - `max_length` integer: The maximum length of the input text
          - `regex` string: A regular expression the input text must match
          - `format` 'any' | 'numerical' | 'alphabetical' | 'alphanumerical' | 'email': A well known format, to facilitate being able to show useful prompts to the user.
          - `image` union
            - UriImage
              - …
            - Base64Image
              - …
        - object
          - `type` 'select', required: Value indicating the field type: select
          - `display_text` string, required: Text to describe what the field is asking for (English)
          - `provider_description` string: Text directly from the bank relating to the field
          - `mandatory` boolean, required: If the input must be provided
          - `options` SelectInputOption[], required: A list of `id`/`display_text` pairs to present to the end user as options (e.g. a drop down).
            - `id` string: Value to be provided on the initiation request, if the option is selected
            - `display_text` string: Text to describe the option
    - 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)
