---
title: "Navigate through the Wizard without xs2a.js"
method: POST
path: "/api/wizard"
tags: ["XS2A.api.wizard"]
---

# Navigate through the Wizard without xs2a.js

`POST /api/wizard`

Instead of using the API key as password you have to use the [token](#tag/XS2A.api.users/paths/~1api~1users~1{user-id}~1accesstokens/put) of the bank user for the Authentication.
The payment service user meta data (psu) of the user on whose behalf the action is triggered should be send by the header parameters below.
Authentication -> [https://docs.xs2a.com/swagger/#section/Authentication](#section/Authentication)

## Headers

- `X-User-Ip` string, IP
- `X-User-Port` string
- `X-User-Accept` string
- `X-User-Accept-Charset` string
- `X-User-Accept-Encoding` string
- `X-User-Accept-Language` string
- `X-User-User-Agent` string

## Request body

- WizardAPIRequest — Key is a required parameter here in every request. Next to action, you can send any key-value pairs corresponding to the form responses you get.
  - `key` string, required — The wizard session key.
  - `action` 'switch-login-tabs' | 'back' | 'poll' | 'change-language' | 'abort' | 'complete-bankcodes' — Valid values are: back (go back one step), switch-login-tabs (switch to another transport), poll (status polling), change-language (change the language) and abort (abort the transaction).

## Response `200`

Request successfully processed

- union
  - WizardResponse
    - `code` integer — The http status code
    - `message` string — The error message
    - `error` string[] — Will be set if an error occurs during the processing of the current step (e.g. the session has expired). If the recoverable flag equals false a new session has to be started.
    - `polling` Polling — The polling attribute indicates whether the transaction status needs to be polled. This is usually the case when your customer has to approve a payment via the banks mobile app. If polling is an empty object no action is required. If interval is set you need to POST a request every interval milliseconds to the wizard API endpoint providing the wizard session key as well as the parameter action=poll until you receive the finish response.
      - `interval` integer — The inverval in milliseconds
    - `form` FormObject — Contains the form objects
      - `name` string — The name of the current form
      - `elements` union[] — Contains the elements of the form. Can contain any of 'Form.Element'
        - union
          - FormCaptcha
            - `type` string — The type of the form element (here: captcha)
            - `name` string — The name of the form element
            - `data` string — The base64 encoded image
            - `value` string — The set value of the form element
            - `validation` string — List of validation rules, concatenated with a pipe character
            - `invalid` boolean — Indicates whether the validation of the element failed
            - `failed_validation_rules` string — A list of failed validation rules (concatenated with a pipe character)
            - `validation_error` string — The validation error (human readable)
          - FormCheckbox
            - `type` string — The type of the form element (here: checkbox)
            - `name` string — The name of the form element
            - `checked` boolean — Indicates whether the checkbox is checked
            - `label` string — The label of the form element
            - `validation` string — List of validation rules, concatenated with a pipe character
            - `invalid` boolean — Indicates whether the validation of the element failed
            - `failed_validation_rules` string — A list of failed validation rules (concatenated with a pipe character)
            - `validation_error` string — The validation error (human readable)
          - FormFlicker
            - `type` string — The type of the form element (here: flicker)
            - `name` string — The name of the form element
            - `value` string — The set value of the form element
            - `code` array[] — The actual flicker image as an array representation (0 = black bar, 1 = white bar)
              - …
            - `label` string — The label of the form element
            - `validation` string — List of validation rules, concatenated with a pipe character
            - `invalid` boolean — Indicates whether the validation of the element failed
            - `failed_validation_rules` string — A list of failed validation rules (concatenated with a pipe character)
            - `validation_error` string — The validation error (human readable)
          - FormHelpText
            - `type` string — The type of the form element (here: help_text)
            - `title` string — The title of the form element
            - `text` string — The text of the form element
          - FormImage
            - `type` string — The type of the form element (here: image)
            - `data` string — The base64 encoded image
            - `label` string — The label of the form element
          - FormMulti
            - `type` string — The type of the form element (here: image)
            - `name` string — The name of the form element
            - `selected` string — Name of the selected element (value of one of the nested elements)
            - `elements` FormMultiElements[] — Array containing the nested elements
              - …
          - FormMultiElements
            - `label` string — The label of the element
            - `value` string — The value of the form element
            - `elements` union[] — Array containing the nested elements
              - …
          - FormPassword
            - `type` string — The type of the form element (here: password)
            - `name` string — The name of the form element
            - `value` string — The set value of the form element
            - `label` string — The label of the form element
            - `validation` string — List of validation rules, concatenated with a pipe character
            - `invalid` boolean — Indicates whether the validation of the element failed
            - `failed_validation_rules` string — A list of failed validation rules (concatenated with a pipe character)
            - `validation_error` string — The validation error (human readable)
          - FormRadio
            - `type` string — The type of the form element (here: radio)
            - `name` string — The name of the form element
            - `checked` string — Index of the checked element
            - `options` FormRadioOption[] — An array of possible options
              - …
            - `label` string — The label of the form element
            - `validation` string — List of validation rules, concatenated with a pipe character
            - `invalid` boolean — Indicates whether the validation of the element failed
            - `failed_validation_rules` string — A list of failed validation rules (concatenated with a pipe character)
            - `validation_error` string — The validation error (human readable)
          - FormSelect
            - `type` string — The type of the form element (here: select)
            - `name` string — The name of the form element
            - `selected` string — The key of the selected option from the options object. Empty string of none is selected.
            - `options` object — Key-value object with the options. The value is the label of the option.
            - `label` string — The label of the form element
            - `validation` string — List of validation rules, concatenated with a pipe character
            - `invalid` boolean — Indicates whether the validation of the element failed
            - `failed_validation_rules` string — A list of failed validation rules (concatenated with a pipe character)
            - `validation_error` string — The validation error (human readable)
          - FormTabs
            - `type` string — The type of the form element (here: tabs)
            - `name` string — The name of the form element
            - `tabs` string[] — An array of possible transports
            - `label` string — The label of the form element
            - `selected` string — The selected transport
          - FormText
            - `type` string — The type of the form element (here: text)
            - `name` string — The name of the form element
            - `value` string — The set value of the form element
            - `label` string — The label of the form element
            - `validation` string — List of validation rules, concatenated with a pipe character
            - `invalid` boolean — Indicates whether the validation of the element failed
            - `failed_validation_rules` string — A list of failed validation rules (concatenated with a pipe character)
            - `validation_error` string — The validation error (human readable)
  - WizardFinalResponse
    - `code` integer — The http status code
    - `error` string[] — Will be set if an error occurs during the processing of the current step (e.g. the session has expired). If the recoverable flag equals false a new session has to be started.
    - `form` object
      - `elements` string[]
      - `name` string
      - `parameters` string[]
    - `message` string — The error message
    - `polling` object

## Other responses

- `401` — Authentication failed Access token missing or not valid
- `403` — Forbidden Access blocked
- `404` — Product not enabled or Not found The requested object does not exist on the server
- `410` — The requested session was buried and is not accessible anymore.
- `422` — Validation failed Something is wrong with the user input
- `500` — An internal server problem occurred

---

[API](https://skmtc.dev/xs2a/apis/xs2a-api.md) · [All operations](https://skmtc.dev/xs2a/apis/xs2a-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/xs2a/xs2a-api/revisions/ae5fbc5feee3/schema)
