# MIT Authorize request

Endpoint: POST /mit-authorize
Version: 1.2
Security: X-Api-Key

## Query parameters:

  - `mode` (string)
    Enum: "SYNC", "ASYNC"

## Header parameters:

  - `X-Idempotency-Key` (string)
    The system supports the query deduplication mechanism. 
Any system-wide merchant's request after the first one with 
the same X-Idempotency-Key will return an error.
For example, if you have retrying mechanism for payouts and you want 
to avoid double sending, you can put header with value payout_{your_payout_id}

## Request fields (application/json):

  - `payment_token_id` (string, required)
    Token from original payment

  - `payment_method` (string, required)

  - `merchant_payment_id` (string)
    Optional field, might be used as a reference from the merchant side

  - `merchant_customer_id` (string, required)

  - `email` (string, required)

  - `amount` (string, required)
    can't be zero for SALE | MIT_SALE

  - `language` (string)
    required only for SALE | AUTHORIZE | RECURRING

  - `country_code` (string, required)
    Country Code (ISO 3166-2)

  - `currency_code` (string, required)
    Currency code (ISO 4217)

  - `success_url` (string)
    required only for SALE | AUTHORIZE | RECURRING

  - `failure_url` (string)
    required only for SALE | AUTHORIZE | RECURRING

  - `shop_name` (string)
    Shop name

  - `shop_url` (string)
    Shop URL with protocol HTTP or HTTPS

  - `products` (array, required)
    Expected at least 1 product

  - `payment_form_override` (object)
    [Customizing Payment Form Appearance.](/openapi/override-theme/customizing-payment-form-appearance)  All these parameters will override existing configuration in Upgate back office if any

  - `payment_form_override.color` (string)
    [Override the color](/openapi/override-theme/customizing-payment-form-appearance) for the payment form.

  - `payment_form_override.theme_type` (string)
    [Override the theme](/openapi/override-theme/themes) for the payment form.
    Enum: "LIGHT", "DARK", "BROWSER"

  - `payment_form_override.theme_variables` (object)
    [Override CSS variables](/openapi/override-theme/variables) for the payment form.

  - `payment_form_override.theme_rules` (object)
    [Override CSS rules](/openapi/override-theme/rules) for the payment form.

## Response 400 fields (application/json):

  - `errors` (array)

  - `errors.error_code` (string, required)
    Enum: "INVALID_REQUEST_PARAMETER", "INVALID_REQUEST", "INTERNAL_ERROR", "TOO_MANY_REQUESTS", "NOT_FOUND"

  - `errors.error_message` (string, required)

## Response 401 fields (application/json):

  - `errors` (array)

  - `errors.error_code` (string, required)
    Enum: "INVALID_REQUEST_PARAMETER", "INVALID_REQUEST", "INTERNAL_ERROR", "TOO_MANY_REQUESTS", "NOT_FOUND"

  - `errors.error_message` (string, required)

## Response 429 fields (application/json):

  - `errors` (array)

  - `errors.error_code` (string, required)
    Enum: "INVALID_REQUEST_PARAMETER", "INVALID_REQUEST", "INTERNAL_ERROR", "TOO_MANY_REQUESTS", "NOT_FOUND"

  - `errors.error_message` (string, required)

## Response 500 fields (application/json):

  - `errors` (array)

  - `errors.error_code` (string, required)
    Enum: "INVALID_REQUEST_PARAMETER", "INVALID_REQUEST", "INTERNAL_ERROR", "TOO_MANY_REQUESTS", "NOT_FOUND"

  - `errors.error_message` (string, required)


