openapi: 3.0.0
info:
  title: Checkout API
  contact:
    name: API Integration Support
    email: integration@dintero.com
  description: >
    # Changelog


    All notable changes to the API.


    ## 2026-08-16


    > **Update**: Allow using multiple enums in `payment_operation` query
    parameter for transactions list.

    >

    > - [GET /v1/transactions](/api-reference/transactions/transactions_get)

    >


    ## 2026-08-15


    > **Update**: Add `equal_fee_only` fee split type to let a destination cover
    fees

    > without receiving any income from `splits`.

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [PUT
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_put)

    > - [POST
    /v1/transactions/{id}/capture](/api-reference/transactions/transactions_id_capture_post)

    > - [POST
    /v1/transactions/{id}/refund](/api-reference/transactions/transactions_id_refund_post)


    > **Update**: Add `configuration.payout.fee_split_types` to let Dintero
    admin users

    > enable the `equal_fee_only` fee split type for an account. `proportional`
    remains

    > allowed by default.

    >

    > - [PUT /admin/checkout](/checkout-api/checkout/admin_checkout_id_put)

    > - [GET /admin/checkout](/checkout-api/checkout/admin_checkout_id_get)


    ## 2026-08-12


    > **new**: Add support for age verification on checkout sessions.

    >

    > - `age_verification` configuration on sessions and session profiles

    > - `complete-age-verification` payment operation when verification is
    required

    > - New redirect endpoint to start age verification for a payment product
    type

    > - `AGE_VERIFICATION_COMPLETED` session event with the `verified_identity`

    > - `age_over` on `VerifiedIdentity`

    >

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST
    /v1/view/{session_id}/payments/{payment_product_type}](/checkout-api/view/checkout_sid_payments_product_type_post)

    > - [GET
    /v1/view/{session_id}/age-verification](/checkout-api/view/checkout_sid_age_verification_get)

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)


    ## 2026-07-11


    > **Update**: Add `terminal_id` and `channel` to query parameters for
    transactions list.

    >

    > - [GET /v1/transactions](/api-reference/transactions/transactions_get)


    ## 2026-07-10


    > **Update**: Add optional error codes to `error_details` in response when a
    payment is declined.

    >

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)


    ## 2026-07-10


    > **Update**: Adds `emd` data to session orders.

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [GET
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_get)

    > - [PUT
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_put)


    ## 2026-06-30


    > **Update**: Document 409 Conflict returned when attempting to delete a
    card

    > token that is already deleted

    >

    > - [DELETE
    /v1/card-tokens/{token_id}](/checkout-api/card-tokens/card_tokens_token_id_delete)


    ## 2026-06-26


    > **Update**: Filter transactions by authorization expiration using
    `authorization_expires_at.gte` and `authorization_expires_at.lte`.

    >

    > - [GET /v1/transactions](/api-reference/transactions/transactions_get)


    ## 2026-06-24


    > **Update**: Add `open_menu` terminal operation to open the on-screen menu
    on

    > a payment terminal from the back office.

    >

    > - [POST
    /v1/admin/terminals/operations](/checkout-api/terminals/admin_terminals_operations_post)


    ## 2026-06-15


    > **Update**: Document support for refund with `terminal_id` to perform

    > refund via terminal.

    >

    > - [POST
    /v1/transactions/{id}/refund](/api-reference/transactions/transactions_id_refund_post)


    ## 2026-06-11


    > **Breaking**: Update Kravia transaction event metadata to drop 

    >  `event.metadata.kravia:debtor_id` and `event.metadata.kravia:case_number`

    >

    > - [GET /v1/transactions](/api-reference/transactions/transactions_get)

    > - [GET
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_get)


    ## 2026-06-09


    > **Update**: Loosen validation for `kravia.invoice_b2b_grouped`,
    `kravia.invoice_b2b` and `kravia.invoice_b2c` sessions

    >

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)

    > - [POST
    /v1/sessions/pay](/api-reference/payment/checkout_session_pay_post)


    ## 2026-06-03


    > **Update**: Add `retry_initiated_refund` transaction event intent for
    retrying

    > unsuccessful `INITIATE_REFUND` attempts with payment gateways

    >

    > - [POST
    /v1/events/transaction/{intent}](/checkout-api/gateways/events_transaction_post)


    ## 2026-05-30


    > **Update**: Add `poll_initiated_refund` transaction event intent for
    polling

    > updates on INITIATE_REFUND from payment gateways

    >

    > - [POST
    /v1/events/transaction/{intent}](/checkout-api/gateways/events_transaction_post)


    ## 2026-05-26


    > **Update**: `POST /v1/admin/terminals/operations` now supports re-sending
    an

    > operation regardless of its current state. A pending operation that has
    not

    > yet timed out returns `409 Conflict` with a `Retry-After` header
    indicating

    > when it expires. After the timeout the old operation is marked `TIMEOUT`
    and

    > a new one is dispatched. Added `TIMEOUT` as a possible value for the

    > `TerminalOperation.status` field.

    >

    > - [POST
    /v1/admin/terminals/operations](/checkout-api/terminals/admin_terminals_operations_post)


    ## 2026-05-21


    > **Update**: Add `seitatech` as a supported payout payment product.

    >

    > - [PUT /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)

    > - [GET /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_get)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)


    ## 2026-05-12


    > **Update**: Move `kravia:payment_details:bank_account:bban`,
    `kravia:payment_details:bank_account:iban`,
    `kravia:payment_details:bank_account:swift` and `kravia:payment_details:kid`
    from Kravia transaction metadata to Kravia transaction event metadata.

    >

    > - [GET /v1/transactions](/api-reference/transactions/transactions_get)

    > - [GET
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_get)


    ## 2026-05-07


    > **Update**: Add Kravia gateway `supported_invoice_channels` configuration.

    >

    > - [PUT /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)


    ## 2026-05-04


    > **new**: Add `age_verification` to `session.configuration`

    >

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)


    ## 2026-05-01


    > **Update**: Add `acquirer_bins` to `submit-dintero-psp-visa-click-to-pay`
    operation.

    > It is optional at first, but will be made mandatory and replace
    `acquirer_bin` later.

    >

    > - [POST
    /v1/view/{session_id}/payments/{payment_product_type}](/checkout-api/view/checkout_sid_payments_product_type_post)


    ## 2026-04-29


    > **Breaking**: Rename invoice configuration option
    `invoice_delivery_method` to `invoice_channel`.

    >

    > **New**: Add `metadata.kravia:invoice_channel` to Kravia transactions.

    >

    > - [PUT /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [GET
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_get)


    ## 2026-04-28


    > **Update**: Add `kravia:invoice_reference`,
    `kravia:payment_details:bank_account:bban`,
    `kravia:payment_details:bank_account:iban`,
    `kravia:payment_details:bank_account:swift` and `kravia:payment_details:kid`
    to kravia transaction metadata

    >

    > - [GET /v1/transactions](/api-reference/transactions/transactions_get)

    > - [GET
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_get)


    ## 2026-04-24


    > **Update**: Add `sca_policy` to `dintero_psp.googlepay`.

    >

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [GET /v1/sessions](/checkout-api/session/checkout_sessions_get)

    > - [GET
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_get)


    ## 2026-04-23


    > **Update**: Add `authentication_operations` to `error_details`. Operations
    will be included when code is

    > `authentication_required` and will allow SCA and reattempt of payment.

    >

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)


    ## 2026-04-16


    > **Update**: Add `sync_invoice_file` transaction event intent for syncing
    invoice files for supported invoice payment products.

    >

    > - [POST
    /v1/events/transaction/{intent}](/checkout-api/gateways/events_transaction_post)



    ## 2026-04-10


    > **Update**: Add `account_id` to terminal operation response, fix
    `terminal_id` type (removed uuid format)

    >

    > - [POST
    /v1/admin/terminals/operations](/checkout-api/terminals/admin_terminals_operations_post)

    > - [GET
    /v1/admin/terminals/operations](/checkout-api/terminals/admin_terminals_operations_get)


    > **New**: Add optional `save_card_checkbox` value to
    `submit-dintero-psp-creditcard` operation.

    >

    > - [POST
    /v1/view/{session_id}/payments/{payment_product_type}](/checkout-api/view/checkout_sid_payments_product_type_post)


    ## 2026-03-25


    > **New**: Add Two B2B payment support with gateway configuration, redirect
    handling, and order verification callback

    >

    > - [PUT
    /v1/admin/gateways/two](/checkout-api/two-gateway/admin_checkout_id_gw_two_put)

    > - [GET
    /v1/sessions/{session_id}/two/redirect/{redirect_ref}](/checkout-api/two/checkout_sid_two_redirect_get)

    > - [POST
    /v1/sessions/{session_id}/two/callback/{callback_ref}](/checkout-api/two/checkout_two_callback_post)


    ## 2026-03-24


    > **Update**: Extend seitatech transaction with `card` and full ECR event
    metadata fields.

    > Extend `card` type with `entry_method`.

    >

    > - [GET /v1/transactions](/api-reference/transactions/transactions_get)

    > - [GET
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_get)


    ## 2026-03-26


    > **Update**: Support for `customer_reference` on
    `kravia.invoice_b2b_grouped`, `kravia.invoice_b2b` and `kravia.invoice_b2c`
    on session

    >  `billing_address`

    > - [POST
    /v1/sessions/pay](/api-reference/payment/checkout_session_pay_post)


    ## 2026-03-20


    > **Update**: Include `transaction_event_id` in `AUTH_CALLBACK_SENT` session

    > events details

    > - [GET
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_get)


    ## 2026-03-18


    > **Update**: Support for `require_identity_verification` on
    `kravia.invoice_b2c` sessions

    > events details

    > - [POST
    /v1/sessions/{session_id}](/checkout-api/session/checkout_session_post)

    > - [GET
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_get)


    ## 2026-03-13


    > **New**: Add terminal operations endpoints for sending commands to
    terminals

    >

    > - [POST
    /v1/admin/terminals/operations](/checkout-api/terminals/admin_terminals_operations_post)

    > - [GET
    /v1/admin/terminals/operations/{operation_id}](#operation/admin_terminals_operations_id_get)


    ## 2026-03-10


    > **Update**: Switch `external_token_reference` to
    `external_token_references` for card tokens

    > - [GET
    /v1/card-tokens/{token_id}](/checkout-api/card-tokens/card_tokens_token_id_get)

    > - [GET /v1/card-tokens](/checkout-api/card-tokens/card_tokens_get)


    ## 2026-03-04


    > **Update**: Add `invoice_purchase` as pay operation and
    `kravia.invoice_b2c` and `kravia.invoice_b2b` payment products.

    >

    > - [POST
    /v1/sessions/pay](/api-reference/payment/checkout_session_pay_post)



    ## 2026-03-02


    > **New**: Add `generate_payment_token_config` to `dintero_psp.creditcard`
    configuration.

    >

    > - [POST /v1/session](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/session-profile](/api-reference/session/checkout_session_profile_post)


    ## 2026-02-27


    > **Update**: Add seitatech transaction event metadata fields
    `payout_correlation_id`, `seitatech:receiptNumber` and `seitatech:outcome`

    >

    > - [GET /v1/transactions](/api-reference/transactions/transactions_get)

    > - [GET
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_get)


    > **Update**: Add `acquirer_merchant_id` and `acquirer_bin` to Click to Pay
    payment operation data.

    >

    > - [POST
    /v1/view/{session_id}/payments/{payment_product_type}](/checkout-api/view/checkout_sid_payments_product_type_post)


    ## 2026-02-11


    > **new**: Add support for default behaviour when different customer
    addresses are allowed on payment profiles.

    >

    > - [GET
    /v1/admin/sessions/profiles](/checkout-api/profiles/admin_session_profile_get)

    > - [POST
    /v1/admin/sessions/profiles](/checkout-api/profiles/admin_session_profile_post)

    > - [GET
    /v1/admin/sessions/profiles/{profile_id}](/checkout-api/profiles/admin_session_profile_details_get)

    > - [PUT
    /v1/admin/session/profiles/{profile_id}](/checkout-api/profiles/admin_session_profile_details_put)

    > - [DELETE
    /v1/admin/session/profiles/{profile_id}](#operation/admin_session_profile_delete)


    ## 2026-02-10


    > **New**: Add support for `seitatech.in_person` payment type

    >

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)


    > **Update**: Add `payout_destination_id` to `order.store` for merchant of
    record

    >

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)


    ## 2026-02-18


    > **Update**: Document support for `external_token_reference` for card
    tokens

    > - [GET
    /v1/card-tokens/{token_id}](/checkout-api/card-tokens/card_tokens_token_id_get)

    > - [GET /v1/card-tokens](/checkout-api/card-tokens/card_tokens_get)


    ## 2026-02-09


    > **update**: Update Kravia transaction event metadata to include
    `event.metadata.kravia:invoice_date`,`event.metadata.kravia:invoice_due_date`

    > `event.metadata.kravia:invoice_number`,
    `event.metadata.kravia:creditor_id`, `event.metadata.kravia:debtor_id`,
    `event.metadata.kravia:invoice_id` and `event.metadata.kravia:case_number`

    >

    > - [GET /v1/transactions](/api-reference/transactions/transactions_get)

    > - [GET
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_get)


    ## 2026-02-05


    > **new**: Add support for default behaviour when different customer
    addresses are allowed on new sessions.

    >

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [GET /v1/sessions](/checkout-api/session/checkout_sessions_get)

    > - [GET
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_get)


    ## 2026-02-04


    > **new**: Add support for payments using Two

    > - [POST
    /v1/view/{session_id}/payments/{payment_product_type}](/checkout-api/view/checkout_sid_payments_product_type_post)

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)


    ## 2026-02-04


    > **new**: Add support for configuring invoice delivery method for Kravia
    invoice payments.

    > The `invoice_delivery_method` option controls whether Dintero delivers the
    invoice or the

    > merchant delivers it themselves.

    > - Transaction metadata includes `kravia:invoice_url` for PDF download

    >

    > - [PUT /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [GET
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_get)


    ## 2026-01-28


    > **Update**: Document `/transactions/{id}/authorization` behaviour on
    `dintero.external` payments

    >

    > - [POST
    /v1/transactions/{id}/authorization](/api-reference/transactions/transaction_tid_extend_authorization_post)


    ## 2026-01-27


    > **New**: Add support for `dintero.external` payments

    >

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [GET /v1/sessions](/checkout-api/session/checkout_sessions_get)

    > - [GET
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_get)

    > - [POST
    /v1/sessions/{session_id}/cancel](/api-reference/session/checkout_session_cancel_post)

    > - [POST /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)


    ## 2026-01-26


    > **new:** Add support for appswitch deeplink URL for `swish.swish` sessions

    > with `channel=in_app` set.

    >

    > - [POST /v1/session](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/session-profile](/api-reference/session/checkout_session_profile_post)



    > **New**: Add support for `platform_type` in checkout configuration and
    transactions.

    > Indicates if the merchant operates as an `aggregator` or `marketplace`.

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [GET /v1/transactions](/api-reference/transactions/transactions_get)

    > - [GET
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_get)


    ## 2026-01-21


    > **new**: Add support for files, which will be used to retrieve files
    associated with transactions or sessions.

    >  Accessing the file will require an authorized request to request a
    downloadable URL to access the file.

    > - [GET /v1/files/{fid}](/checkout-api/files/files_fid_get)


    ## 2026-01-20


    > **Update**: Add retry policy and change enum values for `type` in error in
    transaction events. Change `type` to be an array

    > - [GET /v1/transactions](/api-reference/transactions/transactions_get)

    > - [GET
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_get)

    > - [GET /v1/sessions/pay](/api-reference/payment/checkout_session_pay_post)


    ## 2026-01-01


    > **Update**: Document support for card type `Prepaid` in
    `transaction.card.type`

    > - [GET /v1/transactions](/api-reference/transactions/transactions_get)

    > - [GET
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_get)


    ## 2025-12-19


    > **breaking**: Remove `notification_events_webhook_secret` from Kravia
    gateway configuration

    > - [PUT
    /v1/admin/gateways/kravia](/checkout-api/kravia-gateway/admin_checkout_id_gw_kravia_put)



    ## 2025-11-30


    > **Update**: Document support for `channel` for payment token sessions

    > - [POST
    /v1/sessions/payment-token](/api-reference/session/checkout_payment_token_session_post)


    > **Update**: Document support for `transaction_id` for card tokens

    > - [GET
    /v1/card-tokens/{token_id}](/checkout-api/card-tokens/card_tokens_token_id_get)

    > - [GET /v1/card-tokens](/checkout-api/card-tokens/card_tokens_get)


    > **Update**: Document support for store object on order items

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)


    > **Update**: Document support for `seitatech.in_person` payment options.

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)


    ## 2025-11-07


    > **update** Define `country` in `SessionRead` and
    `applepay.details.domain_names` for DinteroPspConfiguration

    >

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [GET /v1/sessions](/checkout-api/session/checkout_sessions_get)

    > - [GET
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_get)

    > - [GET
    /v1/admin/sessions/profiles](/checkout-api/profiles/admin_session_profile_get)

    > - [POST
    /v1/admin/sessions/profiles](/checkout-api/profiles/admin_session_profile_post)

    > - [GET
    /v1/admin/sessions/profiles/{profile_id}](/checkout-api/profiles/admin_session_profile_details_get)

    > - [PUT
    /v1/admin/session/profiles/{profile_id}](/checkout-api/profiles/admin_session_profile_details_put)

    > - [DELETE
    /v1/admin/session/profiles/{profile_id}](#operation/admin_session_profile_delete)


    ## 2025-11-05


    > **new**: Support setting `test_processor` in details for payment options

    > - [PUT /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)


    > **new**: Add support for payments using Kravia

    > - [POST
    /v1/view/{session_id}/payments/{payment_product_type}](/checkout-api/view/checkout_sid_payments_product_type_post)

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)


    ## 2025-11-02


    > **new**: Add support for enabling Kravia payment when creating payment
    sessions

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/admin/session/profiles](/checkout-api/profiles/admin_session_profile_post)

    > - [PUT
    /v1/admin/session/profiles/{profile_id}](/checkout-api/profiles/admin_session_profile_details_put)

    > - [PUT /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)


    ## 2025-11-01


    > **Update**: Add support for pre-authorization on dintero_psp.creditcard
    unscheduled MIT payment.

    >

    > - [POST
    /v1/sessions/pay](/api-reference/payment/checkout_session_pay_post)

    > - [POST
    /v1/transactions/{id}/authorization](/api-reference/transactions/transaction_tid_extend_authorization_post)

    > - [PUT /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)


    ## 2025-10-30


    > **new**: Add support for configuring Kravia gateway

    > - [PUT
    /v1/admin/gateways/kravia](/checkout-api/kravia-gateway/admin_checkout_id_gw_kravia_put)


    > **update**: Include Kravia gateway and credentials details

    > - [GET /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_get)


    > **Update**: Add support for token payments using Google Pay or
    Click-to-pay via Dintero PSP

    >

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [GET /v1/sessions](/checkout-api/session/checkout_sessions_get)

    > - [GET
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_get)

    > - [POST
    /v1/sessions/payment_token](/api-reference/session/checkout_payment_token_session_post)


    ## 2025-10-29


    > **new**: Add new payment configuration flag to allow express wallet
    payment in the Checkout UI

    >

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [GET /v1/sessions](/checkout-api/session/checkout_sessions_get)

    > - [GET
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_get)

    > - [GET
    /v1/admin/sessions/profiles](/checkout-api/profiles/admin_session_profile_get)

    > - [POST
    /v1/admin/sessions/profiles](/checkout-api/profiles/admin_session_profile_post)

    > - [GET
    /v1/admin/sessions/profiles/{profile_id}](/checkout-api/profiles/admin_session_profile_details_get)

    > - [PUT
    /v1/admin/session/profiles/{profile_id}](/checkout-api/profiles/admin_session_profile_details_put)

    > - [DELETE
    /v1/admin/session/profiles/{profile_id}](#operation/admin_session_profile_delete)


    ## 2025-10-20


    > **Update**: Add support for including `billing_address` and
    `shipping_address` in the `pay` request

    > for `dintero_psp.googlepay` payment product type.

    >

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)


    ## 2025-10-15


    > **Update**: Add support for dintero_psp.clicktopay payment

    >

    > - [POST
    /v1/view/{session_id}/payments/{payment_product_type}](/checkout-api/view/checkout_sid_payments_product_type_post)

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [GET /v1/sessions](/checkout-api/session/checkout_sessions_get)

    > - [GET
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_get)

    > - [POST
    /v1/sessions/{session_id}/cancel](/api-reference/session/checkout_session_cancel_post)

    > - [POST /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)

    >

    > **Update**: Add payment operation for Visa Click-to-Pay with rel
    `submit-dintero-psp-visa-click-to-pay`. Includes

    > `supported_networks`, `dpa_id` and `dpa_client_id` to be used with the
    Visa UCtP SDK.

    >

    > - [POST
    /v1/view/{session_id}/payments/{payment_product_type}](/checkout-api/view/checkout_sid_payments_product_type_post)


    ## 2025-10-13


    > **Update**: Add support for including `billing_address` and
    `shipping_address` in the `pay` request

    > for `dintero_psp.applepay` payment product type.

    >

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)


    ## 2025-10-01


    > **Update**: Update capture/refund endpoint to support including metadata

    > about the operation.

    > - [POST
    /v1/transactions/{id}/capture](/api-reference/transactions/transactions_id_capture_post)

    > - [POST
    /v1/transactions/{id}/refund](/api-reference/transactions/transactions_id_refund_post)


    ## 2025-09-05


    > **Update**: Update return value for `submit-dintero-psp-googlepay` to
    return `supported_networks`, `gateway_merchant_id`

    > `googlepay_merchant_id` and `gateway_id` for use when configuring Google
    Pay on the client.

    > - [POST
    /v1/view/{session_id}/payments/{payment_product_type}](/checkout-api/view/checkout_sid_payments_product_type_post)


    > **Update**: Override gateway_id in sync_status request for Klarna

    > - [POST
    /v1/events/transaction/sync_status](/checkout-api/gateways/events_transaction_post)


    ## 2025-08-25


    > **Update**: Add support for dintero_psp.googlepay

    > - [POST
    /v1/view/{session_id}/payments/{payment_product_type}](/checkout-api/view/checkout_sid_payments_product_type_post)

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [GET /v1/sessions](/checkout-api/session/checkout_sessions_get)

    > - [GET
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_get)

    > - [POST
    /v1/sessions/{session_id}/cancel](/api-reference/session/checkout_session_cancel_post)


    ## 2025-08-04


    > **New**: Define new scopes to support admin tasks without needing
    `admin:checkout`:

    > - `write:checkout:/admin/gateways`

    > - `write:checkout:/admin/checkout`

    > - [PUT /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)

    > - [POST
    /v1/admin/gateways/{gateway}/status](/checkout-api/gateways/admin_checkout_gw_type_status_post)


    ## 2025-08-03


    > **New**: Define new scope `write:checkout:/admin/session/profiles` for
    C/U/D operations on payment profiles.

    > - [POST
    /v1/admin/sessions/profiles](/checkout-api/profiles/admin_session_profile_post)

    > - [PUT
    /v1/admin/session/profiles/{profile_id}](/checkout-api/profiles/admin_session_profile_details_put)

    > - [DELETE
    /v1/admin/session/profiles/{profile_id}](#operation/admin_session_profile_delete)


    ## 2025-08-02


    > **New**: Define `Viewer-Country` in response headers of view session
    response.

    > - [GET
    /view/{session_id}/session](/checkout-api/view/checkout_sid_json_get)


    ## 2025-08-01


    > **New**: Add `metadata.merchant_country` and
    `metadata.merchant_category_code` properties to transaction.

    > - [GET /v1/transactions](/api-reference/transactions/transactions_get)

    > - [GET
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_get)


    ## 2025-07-30


    > **Update**: Document optional query parameter, `payment_return_url`, that
    will be appended to return URL

    > for when redirects should go to the appswitch URL instead of Dintero
    Checkout API.

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)


    ## 2025-06-25


    > **Update**: Add `dintero_psp.vipps` to the session configuration

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)


    ## 2025-06-03


    > **Update**: Add support for `dintero_psp.vipps` payment product

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)


    ## 2025-06-01


    > **update**: Document support for `overwrite_payout_destination_id` in
    payout

    > `dynamic_payout_destination` configuration. The new option can be used to

    > overwrite `order.payout_destination_id` set by clients creating payment

    > sessions.

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)


    > **update**: Document support for `verified_identity` for Collector
    (Walley)

    > transactions

    > - [GET
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_get)

    > - [GET /v1/transactions](/api-reference/transactions/transactions_get)


    > **update**: Document support for `authorization_code` for Collector
    (Walley)

    > B2B payment product types

    > - [POST
    /v1/sessions/pay](/api-reference/payment/checkout_session_pay_post)


    > **update**: Remove `recurrence_token` concept for `dintero_psp.creditcard`

    > All tokens for dintero_psp are now of type `payment_token`.

    > A `dintero_psp.creditcard` `payment_token` can be used for CIT,
    unscheduled MIT and recurring MIT.

    >

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST
    /v1/sessions/payment-token](/api-reference/session/checkout_payment_token_session_post)

    > - [POST
    /v1/sessions/pay](/api-reference/payment/checkout_session_pay_post)

    > - [GET
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_get)


    > **new**: Add support for Token Management.

    > Allows users to manage their payment and recurrence tokens.

    > - [GET
    /v1/card-tokens/{token_id}](/checkout-api/card-tokens/card_tokens_token_id_get)

    > - [DELETE
    /v1/card-tokens/{token_id}](/checkout-api/card-tokens/card_tokens_token_id_delete)

    > - [GET /v1/card-tokens](/checkout-api/card-tokens/card_tokens_get)

    > - [GET /v1/transactions](/api-reference/transactions/transactions_get)


    > **new**:

    > Add support for dintero_psp gateway configuration
    `dintero_psp.token_scope`.

    > - [PUT
    /v1/admin/gateways/dintero_psp](/checkout-api/dintero-psp-gateway/admin_checkout_id_gw_psp_put)


    > **new**:

    > Add support for dintero_psp configuration `token_supported_auth_methods`,

    > indicating which authentication methods to support during token
    authentication flows.

    > - [PUT
    /v1/admin/gateways/dintero_psp](/checkout-api/dintero-psp-gateway/admin_checkout_id_gw_psp_put)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions/payment-token](/api-reference/session/checkout_payment_token_session_post)


    ## 2025-05-01


    > **new**: Extend `transaction.card` to support field `product_platform`,

    > indicating whether the card is `"consumer"` or `"commercial"`.

    >

    > **new**: Extend `transaction.card.region` to support enum values
    `"eea-uk"` and `"europe"`.

    >

    > - [GET /v1/transactions](/api-reference/transactions/transactions_get)

    > - [GET
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_get)

    > - [PUT
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_put)

    > - [POST
    /v1/transactions/{id}/capture](/api-reference/transactions/transactions_id_capture_post)

    > - [POST
    /v1/transactions/{id}/authorization](/api-reference/transactions/transaction_tid_extend_authorization_post)

    > - [POST
    /v1/transactions/{id}/refund](/api-reference/transactions/transactions_id_refund_post)

    > - [POST
    /v1/transactions/{id}/void](/api-reference/transactions/transactions_id_void_post)

    > - [POST
    /v1/transactions/events/settlements](/checkout-api/transactions/transactions_events_settlements_post)


    > **update**: Support for multiple shipments.

    > For multiple shipments we have a single top-level shipping object that
    contains

    > the shipments for the order. The shipping options defined in `shipments`
    must contain

    > `shipment_items` that define what items belong to what shipment.

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [GET /v1/sessions](/checkout-api/session/checkout_sessions_get)

    > - [PUT
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_put)

    > - [GET
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_get)

    > - [GET
    /view/{session_id}/session](/checkout-api/view/checkout_sid_json_get)

    > - [POST
    examples/shipping_address_callback_url](/api-reference/example-session-callbacks/example_shipping_address_callback_url)

    > - [POST
    examples/session_url_callback](/api-reference/example-session-callbacks/example_session_post_callback_url)

    > - [GET
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_get)


    ## 2025-04-01


    > **Fix**: Add missing documentation for `PARTIALLY_CAPTURED_REFUNDED`

    > status in Transaction and TransactionEvent


    ## 2025-03-01


    > **new**: Extend `session.order` to support `event_reference`, to provide
    "default"

    > `event_reference` in case auto capture is enabled and Swish transactions

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)


    > **new**: Extend `session.configuration.channel` to support `ecommerce` and

    > update transaction model to include `channel`

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [GET
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_get)


    > **new**: Add support for Dintero PSP tokenization.

    > Set tokenizer config on gateway configuration (prerequisite).

    > Request payment token on zero and non-zero amount session.

    > Request recurernce token on zero amount session.

    > Use payment token on payment to perform unscheduled MIT or CIT.

    > Use recurernce token on payment to perform recurring MIT.

    >

    > - [PUT
    /v1/admin/gateways/dintero_psp](/checkout-api/dintero-psp-gateway/admin_checkout_id_gw_psp_put)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST
    /v1/sessions/payment-token](/api-reference/session/checkout_payment_token_session_post)

    > - [POST
    /v1/sessions/pay](/api-reference/payment/checkout_session_pay_post)


    > **new**: Add support for `includes=events.latest` query param.

    >

    > This lets you optionally include only the latest event in the session
    events

    > array when getting all sessions.

    > This is useful if you e.g. want to know the latest status of the sessions

    > but don't need the rest of the events and their data.

    >

    > - [GET /v1/sessions](/checkout-api/session/checkout_sessions_get)


    > **new**: Add support for `updated_order_result` and
    `updated_express_result`

    > object properties on session event details to indicate how a session
    update

    > modified the session.order or session.express data on the session.


    > **new**: Add support for `includes=session.events.latest` to include the

    > session that the transaction resulted from, but with only the latest event

    > in the session's events array.

    >

    > - [GET
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_get)


    ## 2025-02-03


    > **update**: `working_days` is now a range of integers to represent
    duration of working days

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [GET /v1/sessions](/checkout-api/session/checkout_sessions_get)

    > - [PUT
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_put)

    > - [GET
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_get)

    > - [GET
    /view/{session_id}/session](/checkout-api/view/checkout_sid_json_get)

    > - [POST
    examples/shipping_address_callback_url](/api-reference/example-session-callbacks/example_shipping_address_callback_url)

    > - [POST
    examples/session_url_callback](/api-reference/example-session-callbacks/example_session_post_callback_url)


    ## 2025-02-02


    > **update**: Add restrictions on integer used for `working_days`,
    `shipping_day_of_week` and `arrival_day_of_week`

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [GET /v1/sessions](/checkout-api/session/checkout_sessions_get)

    > - [PUT
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_put)

    > - [GET
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_get)

    > - [GET
    /view/{session_id}/session](/checkout-api/view/checkout_sid_json_get)

    > - [POST
    examples/shipping_address_callback_url](/api-reference/example-session-callbacks/example_shipping_address_callback_url)

    > - [POST
    examples/session_url_callback](/api-reference/example-session-callbacks/example_session_post_callback_url)


    ## 2025-02-01


    > **update**: Make `phone_number` an optional instead of required property
    for the following Swish payment types:

    >

    > - `swish.swish`

    >

    > This change was made to also support the M-Commerce payment flow.

    >

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)


    ## 2025-01-21


    > **new**: Add relative time properties on `eta` of a shipping option

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [GET /v1/sessions](/checkout-api/session/checkout_sessions_get)

    > - [PUT
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_put)

    > - [GET
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_get)

    > - [GET
    /view/{session_id}/session](/checkout-api/view/checkout_sid_json_get)

    > - [POST
    examples/shipping_address_callback_url](/api-reference/example-session-callbacks/example_shipping_address_callback_url)

    > - [POST
    examples/session_url_callback](/api-reference/example-session-callbacks/example_session_post_callback_url)


    > **new**: Add support for filtering transactions by `payout_destination_id`

    >

    > - [GET /v1/transactions](/api-reference/transactions/transactions_get)

    >


    > **update**: Make `phone_number` an optional instead of required property
    for the following Vipps payment types:

    >

    > - `vipps`

    > - `bambora.vipps`

    > - `payex.vipps`

    >

    > This change was made to simplify the Vipps checkout flow and increase
    conversion.

    >

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)


    ## 2024-12-04


    > **new**: Support `vipps.epayment` through `gateway_api_version`.

    >

    > - [PUT /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)


    ## 2024-11-25


    > **update**: Add support for new payment type `bambora.googlepay`

    >

    > - [POST /v1/admin/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/admin/sessions_profile](/api-reference/session/checkout_session_profile_post)

    > - [POST
    /v1/admin/session/profiles](/checkout-api/profiles/admin_session_profile_post)

    > - [GET
    /v1/admin/session/profiles/{profile_id}](/checkout-api/profiles/admin_session_profile_details_get)

    > - [PUT
    /v1/admin/session/profiles/{profile_id}](/checkout-api/profiles/admin_session_profile_details_put)

    > - [POST
    /v1/view/{session_id}/payments/bambora.googlepay](/checkout-api/view/checkout_sid_payments_product_type_post)


    ## 2024-11-19


    > **update**: Add support for `includes=event.success.true` to only

    > include successful events in transaction response

    >

    > - [GET
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_get)

    > - [GET /v1/transactions](/api-reference/transactions/transactions_get)


    ## 2024-11-16


    > **update**: Add support for defining `opening_hours` and `website_url` in
    `pick_up_address` for a shipping option

    >

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)


    ## 2024-11-15


    > **update**: Add support for new payment type `bambora.applepay`

    >

    > - [POST /v1/admin/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/admin/sessions_profile](/api-reference/session/checkout_session_profile_post)

    > - [POST
    /v1/admin/session/profiles](/checkout-api/profiles/admin_session_profile_post)

    > - [GET
    /v1/admin/session/profiles/{profile_id}](/checkout-api/profiles/admin_session_profile_details_get)

    > - [PUT
    /v1/admin/session/profiles/{profile_id}](/checkout-api/profiles/admin_session_profile_details_put)

    > - [POST
    /v1/view/{session_id}/payments/bambora.applepay](/checkout-api/view/checkout_sid_payments_product_type_post)


    ## 2024-11-01


    > **update**: Add support for `pay_in_store.type=full` in shipping_option to

    > enable pay during pick-up.

    >

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)


    ## 2024-10-15


    > **update**: Add support for
    `order_store_id_as_order_payout_destination_id`

    > dynamic_payout_destination_ids type to support auto selecting

    > payout_destination_id to be equal to the order store id

    >

    > - [POST
    /v1/admin/sessions/profiles](/checkout-api/profiles/admin_session_profile_post)


    ## 2024-08-01


    > **update**: Make the `social_security_number` for `collector.invoice`

    > and `collector.installment` optional for the pay endpoint. The

    > property is not needed for payments where BankId is required

    >

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)


    > **update**: Update request body validation for set gift card endpoint to
    only

    > require `pin` if `type` is set to `dintero.wallets.card_token`.

    >

    > - [PUT
    /v1/view/{session_id}/session/order/gift_cards](/checkout-api/view/checkout_sid_json_order_gift_cards_put)


    > **new**: Add payment operation `pay-bambora-creditcard-cit`, using Bambora
    CIT token to get card info.

    >

    > - [POST
    /v1/sessions/{session_id}/payments/bambora.creditcard](/checkout-api/view/checkout_sid_payments_product_type_post)


    > **new**: Add support for creating session with Bambora payment token.

    >

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)


    > **new**: Add support for paying with Bambora CIT token

    >

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)


    > **new**: Add new session intent endpoint with support for `poll_initiated`

    >

    > - [POST
    /v1/events/session/{intent}](/checkout-api/gateways/events_session_post)


    ## 2024-07-01


    > **new**: Document unsupported payment methods for Dintero gift cards.

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)


    ## 2024-07-01

    >

    > **update**: Add intent type `extend_authorization` to events intent
    endpoint

    >

    > - [POST
    /v1/events/transaction/{intent}](/checkout-api/gateways/events_transaction_post)


    ## 2024-06-02


    > **update**: Define `gift_cards` for session orders

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [GET /v1/sessions](/checkout-api/session/checkout_sessions_get)

    > - [PUT
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_put)

    > - [GET
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_get)

    > - [GET
    /view/{session_id}/session](/checkout-api/view/checkout_sid_json_get)

    > - [POST
    examples/shipping_address_callback_url](/api-reference/example-session-callbacks/example_shipping_address_callback_url)

    > - [POST
    examples/session_url_callback](/api-reference/example-session-callbacks/example_session_post_callback_url)


    ## 2024-06-01


    > **update**: Remove optional transaction properties in events intent
    endpoint

    >

    > - [POST
    /v1/events/transaction/{intent}](/checkout-api/gateways/admin_checkout_gw_type_status_post)


    > **update**: Fix enums for `card.type`


    > **update**: Fix enums for `event.metadata.vipps:transactionInfo.status`

    > Add enum values that was missing: `SALE`, `Captured`, `Cancelled` and

    > `Refund`


    > **update**: Add transaction event error `type` and `error_code` to token
    transactions

    >

    > - [POST
    /v1/sessions/pay](/api-reference/payment/checkout_session_pay_post)

    > - [GET
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_get)


    ## 2024-05-15


    > **update**: Add new transaction event type, `INITIATE_VOID`

    >

    > - [GET
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_get)


    ## 2024-05-01


    > **update**: Extend card type for Bambora transactions with `Debit` and

    > `Credit`. **Deprecating** the use of `Credit Card` as card type


    > **update**: Extend card with `region` for Bambora transactions and

    > normalize the brand to be one of `MasterCard` or `Visa`


    > **update**: Adds additional configuration options to sessions and profiles
    for `default_customer_type` and `allow_different_billing_shipping_address`.


    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/session_profile](/api-reference/session/checkout_session_profile_post)

    > - [POST
    /v1/admin/sessions/profiles](/checkout-api/profiles/admin_session_profile_post)


    > **new**: Support adding payment information events to sessions

    >

    > - [POST
    /v1/view/{session_id}/session/events/payment_information](/checkout-api/view/checkout_sid_events_pi_post)


    > **new**: Add optional `thumbnail_url` to `shippping_option` to be shown in

    > checkout.

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [GET /v1/sessions](/checkout-api/session/checkout_sessions_get)

    > - [PUT
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_put)

    > - [GET
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_get)

    > - [GET
    /view/{session_id}/session](/checkout-api/view/checkout_sid_json_get)

    > - [POST
    examples/shipping_address_callback_url](/api-reference/example-session-callbacks/example_shipping_address_callback_url)

    > - [POST
    examples/session_url_callback](/api-reference/example-session-callbacks/example_session_post_callback_url)


    ## 2024-04-01


    > **new**: Support authorization callback from Klarna

    >

    > - [POST
    /v1/{session_id}/klarna/callback/{callback_ref}](/checkout-api/klarna/checkout_sid_klarna_callback_post)


    > **new**: Support void, capture, and refund for Dintero PSP transactions

    >

    > - [POST
    /v1/transactions/{id}/capture](/api-reference/transactions/transactions_id_capture_post)

    > - [POST
    /v1/transactions/{id}/void](/api-reference/transactions/transactions_id_void_post)

    > - [POST
    /v1/transactions/{id}/refund](/api-reference/transactions/transactions_id_refund_post)

    > - [GET
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_get)


    ## 2024-03-01


    > **new**: Extend payout configuration to support `dynamic_overrides`

    > to support using the `order.store.id` to set

    > `order.payout_destination_id`. The new option enables existing

    > integration that use `order.store.id` to start using payout with

    > `order.payout_destination_id` set

    >

    > - [POST /v1/session](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/session-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST
    /v1/admin/session/profiles](/checkout-api/profiles/admin_session_profile_post)

    > - [PUT
    /v1/admin/session/profiles/{profile_id}](/checkout-api/profiles/admin_session_profile_details_put)


    > **update**: Allow splits to be empty when creating a payment session.

    > A transaction created from session with empty items/shipping_option splits

    > will require splits to be specified when capture or refund is

    > performed.

    >

    > - [POST /v1/session](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/session-profile](/api-reference/session/checkout_session_profile_post)


    > **update**: Transactions can be filtered by `customer_id`

    >

    > - [POST /v1/transactions](/api-reference/transactions/transactions_get)


    > **new**: Add support for `Dintero-Feature-Toggles` header when updating
    session

    >

    > - [PUT
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_put)


    > **new**: Add full support for configuring an Express checkout session or
    profile with custom checkboxes.

    >

    > - [POST /v1/session](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/session-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST
    /v1/admin/session/profiles](/checkout-api/profiles/admin_session_profile_post)

    > - [PUT
    /v1/admin/session/profiles/{profile_id}](/checkout-api/profiles/admin_session_profile_details_put)

    > - [PUT
    /v1/view/{session_id}/session/order/addresses](/checkout-api/view/checkout_sid_json_order_addresses_put)


    > **new**: Support finish authorizing `dintero_psp.creditcard` and handle
    redirect

    >

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)

    > - [POST
    /v1/sessions/{session_id}/dintero_psp/redirect/{redirect_ref}](/checkout-api/dintero-psp/checkout_sid_dintero_psp_redirect_get)


    ## 2024-02-20


    > **new**: Support getting payment operations for `dintero_psp.creditcard`

    >

    > - [POST
    /v1/view/{session_id}/payments/{payment_product_type}](/checkout-api/view/checkout_sid_payments_product_type_post)


    > **new**: Support `dintero_psp.creditcard` payment configuration

    >

    > - [PUT /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)

    > - [POST
    /v1/admin/session/profiles](/checkout-api/profiles/admin_session_profile_post)


    ## 2024-02-01


    > **new**: Add support for using Dintero Wallets card to partly/fully

    > authorize the payment session

    >

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [PUT
    /v1/view/{session_id}/session/order/gift_cards](/checkout-api/view/checkout_sid_json_order_gift_cards_put)

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)


    ## 2024-01-07


    > **update**: Add optional query param, `email`, to View Payment Operations

    >

    > - [POST
    /v1/view/{session_id}/payments/{payment_product_type}](/checkout-api/view/checkout_sid_payments_product_type_post)


    ## 2024-01-01


    > **add**: Support specifying `bambora_token_scope` in

    > `bambora.creditcard` payment options

    >

    > - [PUT /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)


    > **update**: Add `klarna.billie` payment option

    >

    > - [POST
    /v1/view/{session_id}/payments/{payment_product_type}](/checkout-api/view/checkout_sid_payments_product_type_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)

    > - [POST
    /v1/admin/session/profiles](/checkout-api/profiles/admin_session_profile_post)

    > - [PUT
    /v1/admin/session/profiles/{profile_id}](/checkout-api/profiles/admin_session_profile_details_put)

    > - [PUT /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)


    ## 2023-12-01


    > **update**: Add Visa Tokenization credentials to Dintero PSP gateway.

    >

    > - [PUT
    /v1/admin/gateways/dintero](/checkout-api/dintero-psp-gateway/admin_checkout_id_gw_psp_put)

    > - [GET /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_get)


    > **new**: Add partial support for configuring an Express checkout session
    with custom checkboxes.

    >

    > - [POST /v1/session](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/session-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST
    /v1/admin/session/profiles](/checkout-api/profiles/admin_session_profile_post)

    > - [PUT
    /v1/admin/session/profiles/{profile_id}](/checkout-api/profiles/admin_session_profile_details_put)


    ## 2023-11-01


    > **new**: Add support bambora tokenization

    > Set token_scope and token_api_url on gateway configuration(prerequisite)

    > Request payment(MIT) or recurrence(CIT) token on zero and non-zero amount
    session

    > Use payment or recurrence token on payment to perform MIT or CIT

    >

    > - [PUT
    /v1/admin/gateways/bambora](/checkout-api/bambora-gateway/admin_checkout_id_gw_bambora_put)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions/payment-token](/api-reference/session/checkout_payment_token_session_post)

    > - [POST
    /v1/sessions/pay](/api-reference/payment/checkout_session_pay_post)


    > **new**: Add support for zero amount sessions by introducing new

    > configuration option `configuration.dintero.zero.enable`. With the new

    > option enabled a zero order session can be created, authorized,

    > captured, refunded and voided. It make it possible to create express

    > session to capture customer information via express without require any

    > payment authorization by the customer.

    >

    > - [POST
    /v1/session-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST
    /v1/transactions/{id}/capture](/api-reference/transactions/transactions_id_capture_post)

    > - [PUT /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)

    > - [GET
    /v1/sessions/{session_id}/dintero/redirect/{redirect_ref}](/checkout-api/dintero/checkout_sid_dintero_redirect_get)


    ## 2023-10-01


    > **new**: Add support for extending transaction authorization

    >

    > - [POST
    /v1/transactions/{id}/authorization](/api-reference/transactions/transaction_tid_extend_authorization_post)


    ## 2023-09-01


    > **new**: Add Dintero PSP gateway

    >

    > - [GET /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_get)

    > - [PUT
    /v1/admin/gateways/psp](/checkout-api/dintero-psp-gateway/admin_checkout_id_gw_psp_put)


    > **new**: Add support for the Klarna EMD marketplace orders package.

    >

    > - [POST /v1/session](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/session-profile](/api-reference/session/checkout_session_profile_post)

    > - [PUT
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_put)

    > - [POST
    /v1/transactions/{id}/capture](/api-reference/transactions/transactions_id_capture_post)

    > - [POST
    /v1/transactions/{id}/refund](/api-reference/transactions/transactions_id_refund_post)


    > **new**: Add full support for the Klarna EMD travel-related transactions
    package (car rental reservation details).

    >

    > - [POST /v1/session](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/session-profile](/api-reference/session/checkout_session_profile_post)

    > - [PUT
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_put)

    > - [POST
    /v1/transactions/{id}/capture](/api-reference/transactions/transactions_id_capture_post)

    > - [POST
    /v1/transactions/{id}/refund](/api-reference/transactions/transactions_id_refund_post)


    > **new**: Add partial support for the Klarna EMD travel-related
    transactions package (hotel reservation details).

    >

    > - [POST /v1/session](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/session-profile](/api-reference/session/checkout_session_profile_post)

    > - [PUT
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_put)

    > - [POST
    /v1/transactions/{id}/capture](/api-reference/transactions/transactions_id_capture_post)

    > - [POST
    /v1/transactions/{id}/refund](/api-reference/transactions/transactions_id_refund_post)


    > **new**: Add partial support for the Klarna EMD travel-related
    transactions package (ferry reservation details).

    >

    > - [POST /v1/session](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/session-profile](/api-reference/session/checkout_session_profile_post)

    > - [PUT
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_put)

    > - [POST
    /v1/transactions/{id}/capture](/api-reference/transactions/transactions_id_capture_post)

    > - [POST
    /v1/transactions/{id}/refund](/api-reference/transactions/transactions_id_refund_post)


    > **new**: Add partial support for the Klarna EMD travel-related
    transactions package (train reservation details).

    >

    > - [POST /v1/session](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/session-profile](/api-reference/session/checkout_session_profile_post)

    > - [PUT
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_put)

    > - [POST
    /v1/transactions/{id}/capture](/api-reference/transactions/transactions_id_capture_post)

    > - [POST
    /v1/transactions/{id}/refund](/api-reference/transactions/transactions_id_refund_post)


    > **new**: Add partial support for the Klarna EMD travel-related
    transactions package (bus reservation details).

    >

    > - [POST /v1/session](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/session-profile](/api-reference/session/checkout_session_profile_post)

    > - [PUT
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_put)

    > - [POST
    /v1/transactions/{id}/capture](/api-reference/transactions/transactions_id_capture_post)

    > - [POST
    /v1/transactions/{id}/refund](/api-reference/transactions/transactions_id_refund_post)


    > **new**: Add partial support for the Klarna EMD travel-related
    transactions package (air reservation details).

    >

    > - [POST /v1/session](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/session-profile](/api-reference/session/checkout_session_profile_post)

    > - [PUT
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_put)

    > - [POST
    /v1/transactions/{id}/capture](/api-reference/transactions/transactions_id_capture_post)

    > - [POST
    /v1/transactions/{id}/refund](/api-reference/transactions/transactions_id_refund_post)


    ## 2023-08-22


    > **new**: Add support for the Klarna EMD recurring payments package.

    >

    > - [POST /v1/session](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/session-profile](/api-reference/session/checkout_session_profile_post)

    > - [PUT
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_put)

    > - [POST
    /v1/transactions/{id}/capture](/api-reference/transactions/transactions_id_capture_post)

    > - [POST
    /v1/transactions/{id}/refund](/api-reference/transactions/transactions_id_refund_post)


    ## 2023-08-15


    > **new**: Add support for the Klarna EMD event package.

    >

    > - [POST /v1/session](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/session-profile](/api-reference/session/checkout_session_profile_post)

    > - [PUT
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_put)

    > - [POST
    /v1/transactions/{id}/capture](/api-reference/transactions/transactions_id_capture_post)

    > - [POST
    /v1/transactions/{id}/refund](/api-reference/transactions/transactions_id_refund_post)


    ## 2023-08-08


    > **update**: Deprecate endpoint in favor of [PUT
    /v1/view/{session_id}/session/order/addresses](/checkout-api/view/checkout_sid_json_order_addresses_put)

    >

    > - [PUT
    /v1/view/{session_id}/session/order/shipping_address](/checkout-api/view/checkout_sid_json_order_shipping_address_put)


    ## 2023-05-19

    >

    > **new**: Add `generate_payment_token` to `session.payment_operation`.

    >

    > - [POST
    /v1/sessions/payment-token](/api-reference/session/checkout_payment_token_session_post)

    > - [GET
    /v1/sessions?payment_operation=generate_payment_token](/checkout-api/session/checkout_sessions_get)


    ## 2023-05-05

    >

    > **break**: Remove ingenico completely, i.e. payment type, payment
    operation, checkout config, gateway setup.

    >

    > - GET / POST /v1/events/gateways/ingenico/transaction/hooks

    > - GET /v1/sessions/{session_id}/ingenico/redirect/{redirect_ref}

    > - PUT /v1/admin/gateways/ingenico

    > - [PUT / GET
    /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)


    ## 2023-05-01


    > **break**: Administration of checkout gateways will no longer be

    > supported via the scope `admin:checkout` and will require `admin:dintero`.

    > This affects the following endpoints:

    >

    > - [PUT
    /v1/admin/gateways/bambora](/checkout-api/bambora-gateway/admin_checkout_id_gw_bambora_put)

    > - [PUT
    /v1/admin/gateways/collector](/checkout-api/collector-gateway/admin_checkout_id_gw_collector_put)

    > - [PUT
    /v1/admin/gateways/collector/credentials](/checkout-api/collector-gateway/admin_gateways_collector_credentials_put)

    > - [PUT
    /v1/admin/gateways/collector/override](/checkout-api/collector-gateway/admin_checkout_id_gw_override_collector_put)

    > - [PUT
    /v1/admin/gateways/ingenico](#operation/admin_checkout_id_gw_ingenico_put)

    > - [PUT
    /v1/admin/gateways/instabank](/checkout-api/instabank-gateway/admin_checkout_id_gw_instabank_put)

    > - [PUT
    /v1/admin/gateways/klarna](/checkout-api/klarna-gateway/admin_checkout_id_gw_klarna_put)

    > - [PUT
    /v1/admin/gateways/klarna/credentials](/checkout-api/klarna-gateway/admin_gateways_klarna_credentials_put)

    > - [PUT
    /v1/admin/gateways/netaxept](/checkout-api/netaxept-gateway/admin_checkout_id_gw_netaxept_put)

    > - [PUT
    /v1/admin/gateways/netaxept/override](/checkout-api/netaxept-gateway/admin_checkout_id_gw_override_netaxept_put)

    > - [PUT
    /v1/admin/gateways/payex](/checkout-api/payex-gateway/admin_checkout_id_gw_payex_put)

    > - [PUT
    /v1/admin/gateways/payex/credentials](/checkout-api/payex-gateway/admin_gateways_payex_credentials_put)

    > - [PUT
    /v1/admin/gateways/payex/override](/checkout-api/payex-gateway/admin_checkout_id_gw_override_payex_put)

    > - [PUT
    /v1/admin/gateways/santander](/checkout-api/santander-gateway/admin_checkout_id_gw_santander_put)

    > - [PUT
    /v1/admin/gateways/santander/override](/checkout-api/santander-gateway/admin_checkout_id_gw_override_santander_put)

    > - [PUT
    /v1/admin/gateways/swish](/checkout-api/swish-gateway/admin_checkout_id_gw_swish_put)

    > - [PUT
    /v1/admin/gateways/swish/override](/checkout-api/swish-gateway/admin_checkout_id_gw_override_swish_put)

    > - [PUT
    /v1/admin/gateways/vipps](/checkout-api/vipps-gateway/admin_checkout_id_gw_vipps_put)

    > - [PUT
    /v1/admin/gateways/vipps/override](/checkout-api/vipps-gateway/admin_checkout_id_gw_override_vipps_put)


    > **new**: Support `payex.mobilepay` through payex v3 when
    `gateway_api_version` is set to "payex.v3", and add payment operation for
    `pay-payex-v3-mobilepay`.

    >

    > - [PUT /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)

    > - [POST
    /v1/view/{session_id}/payments/payex.mobilepay](/checkout-api/view/checkout_sid_payments_product_type_post)


    > **new**: Support `payex.googlepay` payment product type.

    >

    > - [PUT /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)

    > - [POST
    /v1/session-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST
    /v1/view/{session_id}/payments/{payment_product_type}](/checkout-api/view/checkout_sid_payments_product_type_post)


    ## 2023-04-01


    > **new:** Add support for appswitch deeplink URL for `payex.mobilepay`
    sessions

    > with `channel=in_app` set.

    >

    > - [POST /v1/session](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/session-profile](/api-reference/session/checkout_session_profile_post)


    > **new**: Support `payex.vipps` through payex v3 when `gateway_api_version`
    is set to "payex.v3", and add payment operation for `pay-payex-v3-vipps`.

    >

    > - [PUT /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)

    > - [POST
    /v1/view/{session_id}/payments/payex.vipps](/checkout-api/view/checkout_sid_payments_product_type_post)


    > **new**: Support `payex.swish` through payex v3 when `gateway_api_version`
    is set to "payex.v3", and add payment operation for `pay-payex-v3-swish`.

    >

    > - [PUT /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)

    > - [POST
    /v1/view/{session_id}/payments/payex.swish](/checkout-api/view/checkout_sid_payments_product_type_post)


    ## 2023-03-20


    > **update**: Require `locale` for initiating checkout payment for
    `klarna.klarna`.

    >

    > - [POST
    v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)


    > **update**: Add string representation of order to response from view
    payment operations for `klarna.klarna`

    >

    > - [POST
    /v1/view/{session_id}/payments/klarna.klarna](/checkout-api/view/checkout_sid_payments_product_type_post)

    >

    ## 2023-03-01


    > **new**: Support `payex.clicktopay` payment type. Extend configuration on
    gateway and session to enable Click to Pay.

    >

    > - [PUT /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)

    > - [POST
    /v1/session-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST
    /v1/view/{session_id}/payments/{payment_product_type}](/checkout-api/view/checkout_sid_payments_product_type_post)


    > **new**: Add `version` to session

    >

    > - [POST
    /v1/view/{session_id}/payments/{payment_product_type}](/checkout-api/view/checkout_sid_payments_product_type_post)

    > - [GET
    /v1/view/{session_id}/session](/checkout-api/view/checkout_sid_json_get)

    > - [PUT
    /v1/view/{session_id}/session/order/addresses](/checkout-api/view/checkout_sid_json_order_addresses_put)

    > - [PUT
    /v1/view/{session_id}/session/order/discount_codes](/checkout-api/view/checkout_sid_json_order_discount_codes_put)

    > - [PUT
    /v1/view/{session_id}/session/order/shipping_address](/checkout-api/view/checkout_sid_json_order_shipping_address_put)

    > - [PUT
    /v1/view/{session_id}/session/order/shipping_option](/checkout-api/view/checkout_sid_json_order_items_shipping_option_put)


    > **update**: Also accept `version` property as `If-Unmodified-Since` to
    initiaite checkout payment.

    >

    > - [POST
    /v1/view/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)


    ## 2023-02-01


    > **update**: Limit refund to positive amount

    >

    > - [POST
    /v1/transactions/{id}/refund](/api-reference/transactions/transactions_id_refund_post)


    > **new**: Add support for finishing authorization of Klarna payment and
    handle redirect.

    >

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)

    > - [POST
    /v1/sessions/{session_id}/klarna/redirect/{redirect_ref}](/checkout-api/klarna/checkout_sid_klarna_redirect_get)


    ## 2023-01-01


    > **update**: Add support for `marketing_consent` when initiating

    > Instabank payment

    >

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)


    > **update**: Add support for `query_gateway` query parameter when

    > getting status of PayEx payment for a session.

    >

    > - [GET
    /v1/view/{session_id}/payex/{payment_id}/status](/checkout-api/payex/checkout_sid_payex_payment_get)


    > **new**: Support `payex.applepay` payment product type. Extend
    configuration on

    > gateway and session to enable Apple Pay.

    >

    > - [PUT /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)

    > - [POST
    /v1/session-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST
    /v1/view/{session_id}/payments/{payment_product_type}](/checkout-api/view/checkout_sid_payments_product_type_post)


    > **new**: Add support for getting payment operations for Klarna

    >

    > - [POST
    /v1/view/{session_id}/payments/{payment_product_type}](/checkout-api/view/checkout_sid_payments_product_type_post)


    > **new**: Add support for enabling Klarna payment when creating payment
    sessions

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/admin/session/profiles](/checkout-api/profiles/admin_session_profile_post)

    > - [PUT
    /v1/admin/session/profiles/{profile_id}](/checkout-api/profiles/admin_session_profile_details_put)

    > - [PUT /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)


    > **new**: Add support for configuring Klarna gateway

    >

    > - [PUT
    /v1/admin/gateways/klarna](/checkout-api/klarna-gateway/admin_checkout_id_gw_klarna_put)

    > - [PUT
    /v1/admin/gateways/klarna/credentials](/checkout-api/klarna-gateway/admin_gateways_klarna_credentials_put)


    > **update**: Include Klarna gateway and credentials details

    >

    > - [GET /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_get)


    > **update**: Update Payex transaction. Extend `card.type` with `Debit
    Card`,

    > and let `metadata.payex:payment:number` and
    `event.metadata.payex:transaction:number`

    > be either string or number.

    >

    > - [GET /v1/transactions](/api-reference/transactions/transactions_get)

    > - [GET
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_get)


    ## 2022-12-01


    > **update**: Add support for `strict-success-merchant-reference`

    > Dintero-Feature-Toggles header when creating merchant initiated session.
    The

    > new flag allow "duplicates" if existing sessions failed

    >

    > - [POST
    /v1/sessions/pay](/api-reference/payment/checkout_session_pay_post)


    > **new:** Add endpoint for handle callback for payex V3 payments

    >

    > - [POST
    /v1/sessions/{session_id}/payex-v3/callback/{callback_ref}](/checkout-api/payex-v3/checkout_payex_v3_callback_post)


    > **new:** Add endpoint for handle redirect for payex V3 payments

    >

    > - [GET
    /v1/sessions/{session_id}/payex-v3/redirect/{redirect_ref}](/checkout-api/payex-v3/checkout_sid_payex_v3_redirect_get)


    > **update:** Add support for `pay-payex-v3-creditcard` payment operations
    response

    > from endpoint

    >

    > - [POST
    /v1/view/{session_id}/payments/{payment_product_type}](/checkout-api/view/checkout_sid_payments_product_type_post)


    > **update:** Add support for specifying `gateway_api_versions` when
    configuring

    > payment options

    >

    > - [PUT /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)

    > - [GET /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_get)


    ## 2022-11-01


    > **update:** Add suport promiting credential to gateway and gateway
    override

    > The new option add support for configuring gateway and overrides when

    > credential is created or updated

    >

    > - [PUT
    /v1/admin/gateways/collector/credentials](/checkout-api/collector-gateway/admin_gateways_collector_credentials_put)

    > - [PUT
    /v1/admin/gateways/payex/credentials](/checkout-api/payex-gateway/admin_gateways_payex_credentials_put)


    ## 2022-08-01


    > **new:** Add endpoint for managing credentials for Collector gateway

    >

    > - [PUT
    /v1/admin/gateways/collector/credentials](/checkout-api/collector-gateway/admin_gateways_collector_credentials_put)


    > **new:** Add endpoint for managing credentials for PayEx gateway

    >

    > - [PUT
    /v1/admin/gateways/payex/credentials](/checkout-api/payex-gateway/admin_gateways_payex_credentials_put)


    > **new:** Add support for appswitch deeplink URL for `payex.vipps` sessions

    > with `channel=in_app` set.

    >

    > - [POST /v1/session](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/session-profile](/api-reference/session/checkout_session_profile_post)


    ## 2022-07-01


    > **new**: Add support for including metadata about discounts via
    `discount_lines`

    > when capturing or refunding a transaction.

    >

    > - [POST
    /v1/transactions/{id}/capture](/api-reference/transactions/transactions_id_capture_post)

    > - [POST
    /v1/transactions/{id}/refund](/api-reference/transactions/transactions_id_refund_post)


    > **new**: Add `metadata.payout` property to transaction, the new property
    will

    > be set if payout is enabled and state what kind of payout will be done

    >

    > - [GET
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_get)


    ## 2022-06-01


    > **change**: Extend support for void on part capture. Void can now be used
    to

    > release remaining authorization on part captured `payex.mobilepay` and

    > `payex.vipps` transactions

    >

    > - [POST
    /v1/transactions/{id}/void](/api-reference/transactions/transactions_id_void_post)


    > **new:** Add possibility to change name of session_id query parameter in
    callback_url

    >

    > - [POST /v1/session](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/session-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST
    /v1/sessions/pay](/api-reference/payment/checkout_session_pay_post)


    > **change:** Improve endpoint for handle unscheduled and recurring payments

    >

    > - Block pay request with duplicate `merchant_reference`

    > - Include `session_id` in error response, to use to check status on
    failure

    > - Add `payment_operation` to session / transaction that state the intent
    with
        the payment session was, e.g. `unscheduled_purchase` or `recurring_purchase`
    > - [POST
    /v1/sessions/pay](/api-reference/payment/checkout_session_pay_post)

    > - [GET
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_get)

    > - [GET
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_get)


    ## 2022-05-01


    > **change**: Add support for void on part capture Vipps transaction. Void
    can

    > be used to release the remaining authorization on a part captured
    transaction.

    >

    > - [POST
    /v1/transactions/{id}/void](/api-reference/transactions/transactions_id_void_post)


    > **new**: Add strict mode header to validate correct session amounts

    >

    > - [POST /v1/session](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/session-profile](/api-reference/session/checkout_session_profile_post)


    > **new**: Add support for payout splits via Dintero Payout

    >

    > - [POST
    /v1/session-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST
    /v1/transactions/{id}/capture](/api-reference/transactions/transactions_id_capture_post)

    > - [POST
    /v1/transactions/{id}/refund](/api-reference/transactions/transactions_id_refund_post)


    ## 2022-04-01


    > **new**: Add item types to distinguish between physical and digital items,
    and a category for services

    >

    > **new**: Add thumbnail url to order item to be shown in checkout

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [PUT
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_put)


    > **new**: Add possibility to update session without locking it first


    > **new**: Add possibility to update session.express

    >

    > - [PUT
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_put)


    > **new:** Document support for recurring payments.

    > Extend configuration to support generating recurring payment token for

    > `payex.creditcard` payments and performing recurring payments via the pay
    endpoint

    >

    > - [POST
    /v1/sessions/pay](/api-reference/payment/checkout_session_pay_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_get)


    ## 2022-03-01


    > new: Add shipping_mode to decide if a shipping option is required

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)


    ## 2022-02-22


    > **fix**: Require `description` when creating session profile.

    > Document that `description` is a required property for session profile.
    The

    > property has always been required by the service.

    >

    > - [POST
    /v1/admin/session/profiles](/checkout-api/profiles/admin_session_profile_post)

    > - [PUT
    /v1/admin/session/profiles/{profile_id}](/checkout-api/profiles/admin_session_profile_details_put)


    ## 2022-03-01


    > new: Support `payex.mobilepay` payment product type. Extend configuration
    on

    > gateway and session to enable MobilePay payment via PayEx PSP service.

    >

    > - [PUT /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)

    > - [POST
    /v1/session-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)

    > - [POST
    /v1/view/{session_id}/payments/{payment_product_type}](/checkout-api/view/checkout_sid_payments_product_type_post)


    ## 2022-02-01


    > **new**: Document `event_id` query parameter included in request sent to

    > session `callback_url`

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [GET
    /exaples/session_url_callback](/api-reference/example-session-callbacks/example_session_get_callback_url)


    > **new**: Store initiating system request headers on session and
    transaction.

    > Add ability to filter sessions on plugin name.

    >

    > - [GET
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_get)

    > - [GET
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_get)

    > - [GET /v1/sessions](/checkout-api/session/checkout_sessions_get)


    ## 2022-01-01


    > **new**: Add support for handle authorization redirect from Collector IdP

    >

    > - [GET
    /v1/events/gateways/collector/idp/signin](/checkout-api/collector/checkout_collector_idp_signin_get)


    > **new**: Add support for including `authorization_code` in Collector pay
    requests

    >

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)


    ## 2021-12-01


    > **change**: Add ability to keep overrides for swish gateway

    > [PUT
    /v1/admin/gateways/swish](/checkout-api/swish-gateway/admin_checkout_id_gw_swish_put)


    > new: Add support for `order.payout_destination_id` when creating new
    sessions.

    > The property will be included in the settlement reports and used if payout

    > is enabled.

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)


    > **new**: Pay with `payex.swish`, support for both E-Commerce and
    M-Commerce

    > Swish Payments.

    >

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)


    > **change**: Validate PayEx subsite, return 400 if invalid subsite is used

    >

    > - [PUT
    /v1/admin/gateways/payex](/checkout-api/payex-gateway/admin_checkout_id_gw_payex_put)

    > - [PUT
    /v1/admin/gateways/payex/override](/checkout-api/payex-gateway/admin_checkout_id_gw_override_payex_put)


    ## 2021-11-01


    > new: The `profile_id` used when creating new sessions will now be included

    > in the session and transaction `metadata.session:profile_id` property

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [GET
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_get)

    > - [GET
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_get)


    ## 2021-09-01


    > new: Support for configuring payout for payment products

    >

    > - [PUT /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)


    > new: Support including `events.request_headers` when fetching session and
    transaction,

    > and performing capture, refund or void on the transaction

    >

    > - [GET
    /v1/transactions/{transaction_id}](/api-reference/transactions/transactions_id_get)

    > - [GET
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_get)

    > - [POST
    /v1/transactions/{id}/capture](/api-reference/transactions/transactions_id_capture_post)

    > - [POST
    /v1/transactions/{id}/refund](/api-reference/transactions/transactions_id_refund_post)

    > - [POST
    /v1/transactions/{id}/void](/api-reference/transactions/transactions_id_void_post)


    ## 2021-08-01


    > **change**: Add support for `phone_number` when getting payment operations

    >

    > - [POST
    /v1/view/{session_id}/payments/{payment_product_type}](/checkout-api/view/checkout_sid_payments_product_type_post)


    > **change**: Add support for `payex.vipps` payment product type

    >

    > - [POST
    /v1/view/{session_id}/payments/{payment_product_type}](/checkout-api/view/checkout_sid_payments_product_type_post)


    ## 2021-05-01


    > new: Support `payex.vipps` payment product type. Extend configuration on

    > gateway and session to enable Vipps payment via PayEx PSP service.

    >

    > - [PUT /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)

    > - [POST
    /v1/session-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)


    ## 2021-06-01


    > new: Support `bambora.mobilepay` payment product type. Extend
    configuration on

    > gateway and session to enable MobilePay payment via Bambora Wallet
    service. The

    > payment type must be enabled by Bambora.

    >

    > - [PUT /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)

    > - [POST
    /v1/session-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)


    > doc: Fix documentation for payment-token session endpoint. `session` and

    > `payment_token` are required when creating payment-token session.

    >

    > - [POST
    /v1/sessions/payment-token](/api-reference/session/checkout_payment_token_session_post)


    > new: Support `enable_on_hold`-configuration on session configuration and
    in checkout configuration

    >

    > - [POST
    /v1/session-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [PUT /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)


    ## 2021-05-01


    > new: Support `bambora.vipps` payment product type. Extend configuration on

    > gateway and session to enable Vipps payment via Bambora Wallet service.
    The

    > payment type must be enabled by Bambora.

    >

    > - [PUT
    /v1/admin/gateways/bambora](/checkout-api/bambora-gateway/admin_checkout_id_gw_bambora_put)

    > - [PUT /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)

    > - [POST
    /v1/session-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)


    > **new**: Support session profile configuration when creating payment-token
    session

    >

    > - [POST
    /v1/sessions/payment-token](/api-reference/session/checkout_payment_token_session_post)


    > **new**: Extend shipping_address_callback response with support for
    updating

    > the checkout session in addition to returning available shipping options.
    This will allow

    > the callback endpoint to update the content of the order, like changing
    amount, or

    > currency or update the items in the order.

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    examples/shipping_address_callback_url](/api-reference/example-session-callbacks/example_shipping_address_callback_url)


    ## 2021-04-01


    > **change**: Add support for void on part capture. Void can be used to
    release

    > the remaining authorization on a part captured transaction. The support is

    > limited to `payex.creditcard` transactions.

    >

    > - [POST
    /v1/transactions/{id}/void](/api-reference/transactions/transactions_id_void_post)


    > **change**: Add support for `language` query parameter when getting
    payment

    > operations

    >

    > - [POST
    /v1/view/{session_id}/payments/{payment_product_type}](/checkout-api/view/checkout_sid_payments_product_type_post)


    > **change**: Add support Bambora creditcard payment.

    >

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)


    > **change**: Add support for bypassing the Dintero redirect for
    in_app-payments, and

    > redirect from app to app.

    >

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)


    ## 2021-03-01


    > **change** Add support for includes query parameter in session
    url.callback_url.

    > `includes` set to session will enable the sessions url.callback_url to
    include session data in the body.

    >

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)


    ## 2021-02-01


    > **new**: It is now possible to use full ISO 8601 compliant datetimes in
    date range queries.

    > Note: If timezone isn't specified, UTC is assumed

    > Note: To keep things backwards compatible, end-dates with the "yyyy-mm-dd"
    format will be

    > shifted forward by a day.

    >

    > - [GET /v1/transactions](/api-reference/transactions/transactions_get)

    > - [GET /v1/sessions](/checkout-api/session/checkout_sessions_get)


    > **new**: Add possibility to create myDintero-user in address change

    >

    > - [POST
    /v1/view/{session_id}/session/order/addresses](/checkout-api/view/checkout_sid_json_order_addresses_put)


    > **new**: Extend transaction data with embedded session data

    > `includes` now supports 'session'

    >

    > - [GET
    /v1/transactions/{id}](/api-reference/transactions/transactions_id_get)


    > **new**: Extend Vipps transaction metadata with

    > `vipps:merchantInfo.merchantSerialNumber`, the Merchant Serial Number

    > (MSN) that was used when the transaction was initiated.


    > **new** Add support for setting settlements on a transaction, one event

    > per payout to a bank account

    >

    > - [POST
    /v1/transactions/events/payout](#operation/transactions_events_payout_post)


    > **new**: Version support when updating PayEx gateway configuration. The

    > new option allows the gateway to be configured with multiple merchant

    > agreements

    >

    > - [PUT
    /v1/admin/gateways/payex](/checkout-api/payex-gateway/admin_checkout_id_gw_payex_put)

    > - [PUT
    /v1/admin/gateways/payex/override](/checkout-api/payex-gateway/admin_checkout_id_gw_override_payex_put)


    > **change**: Add support for additional query parameters.

    > `search` will match on merchant reference's and customer name

    > `transaction_id` will filter results to include only sessions associated
    with the provided transaction ids

    > `created_at.gte` will exclude all sessions created before provided date

    > `created_at.lte` will exclude all sessions created after provided date

    >

    > - [GET /v1/sessions](/checkout-api/session/checkout_sessions_get)


    ## 2021-01-01


    > **new**: Endpoint for initiating MIT payments

    >

    > - [POST
    /v1/sessions/pay](/api-reference/payment/checkout_session_pay_post)


    > **new**: Checkout sessions and profiles supports theming via
    `configuration.theme`

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /admin/session/profiles](/checkout-api/profiles/admin_session_profile_post)


    ## 2020-12-01


    > **new**: Add support for using external discount codes in Express
    checkout.

    > A session can be configured with a `express.discount_code_callback_url`
    that will be

    > invoked when the session is updated with a promotion code. The response
    from

    > the callback will then be used to adjust the order and shipping options

    > available.

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    examples/discount_code_callback_url](#operation/example_discount_code_callback_url)


    > **new**: Add support for an advance credit check of Collector B2B
    customers

    >

    > - [POST /v1/creditchecks](/checkout-api/creditchecks/creditchecks_post)


    ## 2020-11-01


    > **new**: Add support for overriding Collector gateway settings

    >

    > - [PUT
    /v1/admin/gateways/collector/override](/checkout-api/collector-gateway/admin_checkout_id_gw_override_collector_put)


    > **new** Add support for `collector.invoice_b2b_preapproved` and
    `collector.installment_b2b_preapproved` payment


    > **new** Async transaction operations. The response status from

    > capture, refund or void can now be `202` if the request was accepted

    > but the processing has not been completed.

    >

    > The transaction with an operation that was accepted will receive a

    > update later when the processing completes.

    > The event that completes the operation will include an

    > `initiate_request_id` property.

    > You can use the `callback_url` to receive a callback when the

    > processing completes.

    >

    > The status of the transaction will remain unchanged until the processing

    > of the operation completes.

    >

    > - [POST
    /v1/transactions/{id}/capture](/api-reference/transactions/transactions_id_capture_post)

    > - [POST
    /v1/transactions/{id}/refund](/api-reference/transactions/transactions_id_refund_post)

    > - [POST
    /v1/transactions/{id}/void](/api-reference/transactions/transactions_id_void_post)


    > **new** Add support for callback when transaction is updated. You can now

    > receive callbacks on captures, refunds and void by including

    > `report_event=<event>` query parameter in the `callback_url`.

    >

    >     https://example.com/callback?report_event=CAPTURE&report_event=REFUND

    >

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)


    ## 2020-10-01


    > **new** Added `in_store` as a possible payment channel for

    > payments in physical stores.

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)


    ## 2020-09-01


    > **new** Added option for configurating the payment channel.

    > See `configuration.channel`. The new option add support for

    > `in_app` channel with appswitch deeplink URL (Vipps).

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)


    > **new** Add support for optional `order.discount_lines` when creating

    > a new sessions.

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)


    > **new** Add support for updating a session

    >

    > - [PUT
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_put)

    > - [POST
    /view@{session_id}@session@lock](/checkout-api/view/checkout_sid_lock)


    > `total_income` moved from applicant to top level for instabank.invoice and
    instabank.installment.

    > The field is required, but there will be a grace period of two months
    before it is enforced.

    > Deprecated `applicant.total_income`

    >

    > - [POST /v1/sessions/pay](/checkout-api/payment/checkout_sid_pay_post)


    ## 2020-08-01


    > **new** Add support for optional `metadata` when creating

    > a new session.

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)


    > **new** Add support for optional `merchant_reference_2` when

    > creating a new session

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)


    > **new** Add support for delayed callback. You can enable the delay
    callback feature

    > by including `delay_callback=<seconds>` query parameter in the
    `callback_url`

    >

    >     https://example.com/callback?delay_callback=30

    >


    ## 2020-07-01


    > **new**: Add support for overriding Netaxept gateway settings

    >

    > - [PUT
    /v1/admin/gateways/netaxept/override](/checkout-api/netaxept-gateway/admin_checkout_id_gw_override_netaxept_put)


    > **new**: Add terminal options for Netaxept creditcard payment. Enable use
    of

    > Netaxept hosted checkout, and provided custom configuration.


    > **new**: Add support for Netaxept.

    >

    > - [GET
    /view/{session_id}/netaxept](/checkout-api/netaxept/checkout_sid_netaxept_html_get)


    > **new**: Add support for overriding PayEx gateway settings

    >

    > - [PUT
    /v1/admin/gateways/payex/override](/checkout-api/payex-gateway/admin_checkout_id_gw_override_payex_put)


    > **new**: Include payment token in transaction details

    >

    > - [GET
    /v1/transactions/{id}?includes=card.payment_token](/api-reference/transactions/transactions_id_get)


    > **new** Added option for using payment token for payex.creditcard payments

    > to prefill payment details so the customer (payer) do not need to enter
    all

    > these details for every purchase.


    > **new** Added option for generating payment token for payex.creditcard

    > payments, see `configuration.payex.creditcard`. Use the new option to

    > generate a payment token that can be used in future payments to prefill

    > the details for the creditcard.


    > **new** Added `instabank.postponement` payment type.


    > **new** Added `swish.swish` payment type, direct integration with Swish.


    ## 2020-06-01


    > **change** Add support for `ON_HOLD` transaction status. The new status

    > is limited to Collector transactions, to signal that the processing

    > of the transaction is not yet completed. The new status will be used in

    > cases where Collector performs aditional controls before approving the

    > payment.


    > **new** Add support for setting `merchant_reference_2` to an existing

    > transaction and search for transactions by `merchant_reference_2`.

    >

    > - [PUT
    /v1/transaction/{transction_id}](/api-reference/transactions/transactions_id_put)

    > - [GET /v1/transactions](/api-reference/transactions/transactions_get)


    ## 2020-05-01


    > **new** Add support for POST callback with the authorized transaction

    > included in the request body. You can enable the POST callback feature

    > by including `method=POST` query parameter in the `callback_url`

    >

    >     https://example.com/callback?method=POST

    >

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)


    ## 2020-04-01


    > **new** Add support for `instabank.installment` payment


    > **changed**: Removed error `capture` from list of valid error added to

    > the redirect to the `url.redirect_url`. The error was used for payments
    with

    > `auto-capture` enabled, and set in case where the auto capture failed.

    > The merchant can assume the transaction will be captured automatically as

    > soon as possible when creating a session with `auto-capture` enabled.

    >

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)


    > **changed**: A callback (when `url.callback_url` is set) will now be sent

    > as soon as possible after the transaction is `AUTHORIZED`. We will no
    longer

    > wait until the transaction `CAPTURED` in case when `auto-capture` is
    enabled.

    >

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)


    > **change**: Add support for creating session with Ingenico enabled

    >

    > - [POST
    /sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /admin/session/profiles](/checkout-api/profiles/admin_session_profile_post)


    > **change**: Add support for creating session with Ingenico enabled

    >

    > - [POST
    /sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /admin/session/profiles](/checkout-api/profiles/admin_session_profile_post)


    > **new** Add support for `collector.invoice_b2b` payment


    ## 2020-03-01


    > **new** Add support for configuring Ingenico gateway

    >

    > - [PUT
    /admin/gateways/ingenico](#operation/admin_checkout_id_gw_ingenico_put)


    > **new** Add support for enabling `Dintero-Signature` header for all

    > system-to-system request sent from Dintero to the merchant

    >

    > - [POST /v1/admin/signature](/checkout-api/secrets/admin_signature_post)


    > **fix**: Documentation for endpoint [GET
    /v1/admin/api-keys](/checkout-api/api-keys/admin_api_keys_get).

    > The resource returns a list of api-keys, not a single api-key.


    > **new** Add support for `collector.installment` payment


    > **new** Add support for putting merchant_terms_url in profile and session

    >

    > - [POST
    /v1/admin/session/profiles](/checkout-api/profiles/admin_session_profile_post)

    > - [PUT
    /v1/admin/session/profiles/{profile_id}](/checkout-api/profiles/admin_session_profile_details_put)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)


    > **new** Add support for overriding gateway settings

    >

    > - [PUT
    /v1/admin/gateways/vipps/override](/checkout-api/vipps-gateway/admin_checkout_id_gw_override_vipps_put)

    > - [PUT
    /v1/admin/gateways/santander/override](/checkout-api/santander-gateway/admin_checkout_id_gw_override_santander_put)


    ## 2019-12-01


    > **new** Add support for `include_session` query parameter

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)


    > **new** Add support for discount calculation on sessions.

    > The discounts will be calculated when customer is identified

    >

    > Extend the order and transaction items with new properties to

    > support discount calculation of session:

    >

    > - `discount_lines`

    > - `gross_amount`

    > - `is_change`

    > - `eligible_for_discount`

    >

    > Support calculating and updating session with discount from:

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)


    > **new** Add store property to `session.order` and transaction.

    > Adds support for including details about the sales location in the order


    > **new** Add `shipping_option` from `session.order` to to `transaction`

    >

    > - [GET /transactions](/api-reference/transactions/transactions_get)

    > - [GET
    /transactions/{id}](/api-reference/transactions/transactions_id_get)


    > **changed** Minor changes to the `shipping_option` object(s) in sessions

    >

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [GET /v1/sessions](/checkout-api/session/checkout_sessions_get)

    > - [GET
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_get)

    > - [GET
    /view/{session_id}/session](/checkout-api/view/checkout_sid_json_get)


    > **new** Add an endpoint for abandon a checkout payment

    >

    > - [POST
    /view/{session_id}/session/abandon](/checkout-api/view/view_sid_session_abandon_post)


    ## 2019-11-01


    > **changed**: Express Checkout flow added to sessions

    >

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [GET /v1/sessions](/checkout-api/session/checkout_sessions_get)

    > - [GET
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_get)

    > - [GET
    /view/{session_id}/session](/checkout-api/view/checkout_sid_json_get)


    > **new** Update a an Express Checkout session order

    >

    > - [PUT /view/{session_id}/session](#operation/checkout_sid_json_put)


    > **new**: Extend Transaction with optional `billing_address` field.


    ## 2019-10-01


    > **new**: Extend Transaction Event with correction field

    > to handle correction of status after operations errors


    > **changed**: previously required fields are now optional for
    `instabank.finance`.

    >

    > - mortgage_debt

    > - student_debt

    > - other_secured_debt


    > **changed**: Payments for _payment product type_ `instabank.invoice` now

    > contain an optional `applicant` object used for sending more details about

    > the payee. The applicant data will be required for amounts over a limit

    > specified by Instabank.

    >

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)


    > **changed**: Payment sessions with `instabank.invoice` now contains an

    > `require_applicant` boolean flag in the _instabank invoice configuration_

    > when getting the session.

    >

    > - [GET
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_get)


    > **changed**: Adds detailed debt array to `instabank.finance`.


    ## 2019-09-01


    > **changed**: Disabled `instabank.invoice` for amounts less than 500 NOK


    > **new**: Filter transaction list by `payment_product_type`:

    >

    > - instabank.finance

    > - instabank.invoice

    > - vipps

    > - payex.creditcard

    > - payex.swish


    > **new**: Filter transactions list by `card_brand`:

    >

    > - Visa

    > - MasterCard


    > **new**: Added optional `remember_me` boolean to POST pay request body

    > when initializing a payment of a session.

    >

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)


    ## 2019-07-01


    > **fix**: `Transaction.status` typo, rename `PARTICALLY_CAPTURED_REFUNDED`
    to

    > `PARTIALLY_CAPTURED_REFUNDED`.


    > **changed**: replaced `card` payment type with `payex`. The payex

    > payment type adds support for payment product types:

    >

    > - payex.creditcard

    > - payex.swish


    > **changed**: Add support for optional custom expires_at parameter when

    > creating a new session either directly or from a profile.

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)


    > **changed**: Add support for override of configuration when creating

    > a new session from a profile.

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)


    > **new**: support cancel of session

    >

    > - [POST
    /v1/sessions/{session_id}/cancel](/api-reference/session/checkout_session_cancel_post)


    > **changed**: In SessionBase, extend order with `partial_payment`

    > property that can be used in case where the payment is partial

    > and the `order.amount` is less or equal to the `order.items.amount`.

    >

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)


    ## 2019-06-01


    > **break**: Pay with `instabank.finance` type requires now additional

    > properties to comply with new regulations from Finanstilsynet.

    >

    > - [POST
    /v1/sessions/{session_id}/pay](/checkout-api/payment/checkout_sid_pay_post)
        > **changed**: In SessionMeta events, extend event with `details` object
        > and enumerate the event names available.
    > - [GET
    /v1/sessions/{session_id}](/api-reference/session/checkout_session_get)


    > **changed**: Remove `instabank.installment` and

    > `instabank.postponement` payment type. The types will no longer be

    > accepted by:

    >

    > - [PUT /v1/admin/checkout](/checkout-api/checkout/admin_checkout_id_put)

    > - [PUT
    /v1/admin/gateways/instabank](/checkout-api/instabank-gateway/admin_checkout_id_gw_instabank_put)

    > - [POST
    /v1/admin/session/profiles](/checkout-api/profiles/admin_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)


    ## 2019-05-01


    > In SessionMeta renamed field  `expiry_at` to `expires_at`.


    > **new**: PaymentConfiguration extended with optional `auto_capture`
    boolean field. If set to true the

    > checkout serivce will automatically capture the payment after the
    transaction is `AUTHORIZED`.


    > **new**: Add support for checkout with SMS.

    > A SMS with link to the checkout can now be sent when a new

    > session is created.

    > See relevant resources for more information.

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)


    ## 2019-04-01


    > **fix**: Fix documentation for the response from [api-keys](#tag/api-keys)

    > endpoints. No `gateways` property will be included in response to api-keys

    > requests.


    > **doc**: Document support for JWT Bearer authentication. Use API client

    > to get an JWT access token.

    >

    > - [Create Client](/management-auth-api/clients/aid_auth_clients_post)

    > - [Get token](/api-reference/authenticate/aid_auths_oauth_token_post)


    ## 2019-03-01


    > **break**: Administration of checkout gateways was moved to new

    > endpoints. Gateway configuration will no longer be supported via

    > the `PUT /admin/checkout` endpoint.

    >

    > - [PUT /admin/checkout](/checkout-api/checkout/admin_checkout_id_put)

    > - [POST
    /admin/gateways/{gateway}/status](/checkout-api/gateways/admin_checkout_gw_type_status_post)

    > - [PUT
    /admin/gateways/instabank](/checkout-api/instabank-gateway/admin_checkout_id_gw_instabank_put)

    > - [PUT
    /admin/gateways/vipps](/checkout-api/vipps-gateway/admin_checkout_id_gw_vipps_put)

    >

    > **removed**:

    >

    > - ~`POST /admin/gateways/{gateway}`~ (check gateway status)


    > **new**: Extend transaction.event with `created_by` property.

    > Include the user who created the event, i.e. applied an operation

    > to the transaction.


    ## 2019-01-31


    > **new**: Add support for checkout with QR-Code

    > A QR Code can now be generated for a Checkout Session.

    > See relevant resource for more information.

    >

    > - [POST
    /v1/sessions/{session_id}/qr](/checkout-api/session/qr_sessions_sid_post)


    > **new**: Add support for filter transactions with query parameters.

    > Transactions can now be filtered on: `status`, `payment_product`,

    > `merchant_reference`, `session_id`, `amount` and `created_at`.

    >

    > - [GET /v1/transactions](/api-reference/transactions/transactions_get)


    ## 2018-11-24


    > **new**: Add support for `session.url.callback_url`. Get system-to-system

    > notification when session payment is completed.

    >

    > - [POST
    /v1/sessions-profile](/api-reference/session/checkout_session_profile_post)

    > - [POST /v1/sessions](/checkout-api/session/checkout_session_post)
  version: LATEST
  license:
    name: UNLICENSED
    url: https://dintero.com
  x-logo:
    url: https://docs.dintero.com/img/dintero-dark-padded.svg
    altText: Dintero Logo
security:
  - apikey: []
tags:
  - name: Transactions
    description: |
      View and perform operations on transactions
  - name: Card Tokens
    description: |
      Manage card tokens
  - name: session
    description: |
      A Checkout Session relates to an order in your system.
      When an order has been placed you create a corresponding Checkout Session
      to receive payment for that order.
  - name: payment
    description: |
      Resources used by the customer aka user to complete the payment of a
      session.
  - name: view
    description: |
      Resources used to present the customer with payment details
  - name: api-keys
    description: |
      Manage api-keys granting access to the Checkout API
  - name: merchant-certificates
    description: |
      Manage merchant certificates (e.g. Apple Pay merchant identity
      certificates) used for native/in-app payments and custom-domain
      checkouts, instead of relying on Dintero's shared certificate.
  - name: checkout
    description: |
      Configure Checkout for the account.
  - name: profiles
    description: |
      Manage session profiles. A session profile allows configuring session
      defaults.
  - name: creditchecks
    description: |
      Credit checks for customers
  - name: view-pos
    x-displayName: view
    description: |
      Open endpoints for POS
  - name: vipps-gateway
    x-displayName: Vipps
    description: |
      Vipps integration endpoints
  - name: netaxept-gateway
    x-displayName: Netaxept
    description: |
      Netaxept integration endpoints
  - name: santander-gateway
    x-displayName: Santander
    description: |
      Santander integration endpoints
  - name: collector-gateway
    x-displayName: Collector
    description: |
      Collector integration endpoints
  - name: payex-gateway
    x-displayName: PayEx
    description: |
      PayEx integration endpoints
  - name: instabank-gateway
    x-displayName: Instabank
    description: |
      Instabank integration endpoints
  - name: klarna-gateway
    x-displayName: Klarna
    description: |
      Klarna integration endpoints
  - name: kravia-gateway
    description: |
      Kravia integration endpoints
    x-displayName: Kravia
  - name: two-gateway
    description: |
      Two B2B integration endpoints
    x-displayName: Two B2B
  - name: swish-gateway
    x-displayName: Swish
    description: |
      Swish integration endpoints
  - name: bambora-gateway
    x-displayName: Bambora
    description: |
      Bambora integration endpoints
  - name: dintero-psp-gateway
    x-displayName: Dintero PSP
    description: |
      Dintero PSP integration endpoints
  - name: example-session-callbacks
    x-displayName: callback
    description: |
      Example session callbacks
  - name: payex-v3
    description: |
      Handle Payment initiated via Swedbank Pay Checkout v3 API
  - name: vipps-epayment
    description: |
      Handle Payment initiated via Vipps ePayment API
  - name: mtls-mastercard
    description: |
      Mastercard inbound mTLS
    x-displayName: Mastercard
  - name: visa-notifications
    description: |
      Visa inbound notifications
    x-displayName: Visa
  - name: apple pay notifications
    description: |
      Apple Pay inbound notifications
    x-displayName: Apple Pay
  - name: identity
    description: |
      Identity verifications
  - name: files
    x-displayName: Files
    description: |
      File operations
  - name: terminals
    description: Terminal operations
paths:
  /sessions-profile:
    post:
      operationId: checkout_session_profile_post
      summary: checkout_session_profile_post
      description: >
        Create a corresponding Checkout Session for an order placed in your
        system

        using predefined session profile


        #### Session with Instabank


        Note that `items` is a required property when creating a session with

        Instabank configured.


        scopes:

        - admin:checkout

        - write:checkout
      tags:
        - session
        - Sessions
      x-scopes:
        - admin:checkout
        - write:checkout
      security:
        - JWT: []
        - apikey: []
      parameters:
        - name: include_session
          in: query
          description: |
            Include all details about the session created
          schema:
            type: boolean
        - $ref: '#/components/parameters/FeatureToggles'
        - $ref: '#/components/parameters/DinteroSystemName'
        - $ref: '#/components/parameters/DinteroSystemVersion'
        - $ref: '#/components/parameters/DinteroSystemPluginName'
        - $ref: '#/components/parameters/DinteroSystemPluginVersion'
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/SessionProfile'
                - $ref: '#/components/schemas/SessionCustomerTokens'
                - $ref: '#/components/schemas/SessionCustomerGiftcards'
                - $ref: '#/components/schemas/Metadata'
        required: true
      responses:
        '200':
          $ref: '#/components/responses/SessionCreated'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Create checkout session from profile
          sidebarTitle: Create checkout session from profile
  /sessions:
    post:
      operationId: checkout_session_post
      summary: checkout_session_post
      description: >
        Create a corresponding Checkout Session for an order placed in your
        system


        #### Session with Instabank


        Note that `items` is a required property when creating a session with

        Instabank configured.


        scopes:

        - admin:checkout

        - write:checkout
      tags:
        - session
        - Sessions
      x-scopes:
        - admin:checkout
        - write:checkout
      security:
        - JWT: []
        - apikey: []
      parameters:
        - name: include_session
          in: query
          description: |
            Include all details about the session created
          schema:
            type: boolean
        - $ref: '#/components/parameters/FeatureToggles'
        - $ref: '#/components/parameters/DinteroSystemName'
        - $ref: '#/components/parameters/DinteroSystemVersion'
        - $ref: '#/components/parameters/DinteroSystemPluginName'
        - $ref: '#/components/parameters/DinteroSystemPluginVersion'
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/SessionOptions'
                - $ref: '#/components/schemas/SessionCustomerTokens'
                - $ref: '#/components/schemas/SessionCustomerGiftcards'
                - $ref: '#/components/schemas/Metadata'
                - properties:
                    merchant:
                      $ref: '#/components/schemas/Merchant'
        required: true
      responses:
        '200':
          $ref: '#/components/responses/SessionCreated'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Create a checkout session
          sidebarTitle: Create a checkout session
    get:
      operationId: checkout_sessions_get
      summary: checkout_sessions_get
      description: |
        List all Checkout sessions
        scopes:
        - admin:checkout
        - read:checkout
      tags:
        - session
        - Sessions
      x-scopes:
        - admin:checkout
        - read:checkout
      security:
        - JWT: []
        - apikey: []
      parameters:
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/StartingAfter'
        - $ref: '#/components/parameters/Ids'
        - name: search
          in: query
          description: >
            Will try to match the search to either merchant_reference,
            merchant_reference_2,

            or the customer name using the format `{first_name} {last_name}`.
          schema:
            type: string
        - name: transaction_id
          in: query
          description: >-
            The id(s) of the transaction(s) that should be included in the
            result
          explode: true
          schema:
            type: array
            items:
              type: string
              format: checkout-id
        - name: created_at.gte
          in: query
          description: >-
            Session created after (ISO 8601. We recommend using a localised ISO
            8601 datetime like `2017-07-21T17:32:28Z`. If a timezone is not
            specified we assume UTC)
          schema:
            type: string
            format: isodate
        - name: created_at.lte
          in: query
          description: >-
            Session created before a date (ISO 8601. We recommend using a
            localised ISO 8601 datetime like `2017-07-21T17:32:28Z`. If a
            timezone is not specified we assume UTC)
          schema:
            type: string
            format: isodate
        - name: store_id
          in: query
          description: >
            The store_id that the session relates to.
            ?store_id=A&store_id=B&store_id=X.
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: initiating_system.dintero_system_plugin_name
          in: query
          description: |
            The dintero-system-plugin-name that the session was created with.
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: payment_operation
          in: query
          description: >
            Filter on `payment_operation`: `unscheduled_purchase`,
            `recurring_purchase`, `generate_payment_token`
          example: unscheduled_purchase
          schema:
            type: string
        - name: includes
          in: query
          description: >
            Control the data that is included in the sessions.


            - **`events.latest`**: Only include the latest event in the session
            events array.
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - events.latest
      responses:
        '200':
          description: list checkout sessions
          content:
            application/json:
              schema:
                type: array
                items:
                  allOf:
                    - $ref: '#/components/schemas/Id'
                    - $ref: '#/components/schemas/Session'
                    - $ref: '#/components/schemas/SessionRead'
                    - $ref: '#/components/schemas/SessionCancelled'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: List checkout sessions
          sidebarTitle: List checkout sessions
  /sessions/{session_id}:
    get:
      operationId: checkout_session_get
      summary: checkout_session_get
      description: |
        scopes:
        - admin:checkout
        - read:checkout
      tags:
        - session
        - Sessions
      x-scopes:
        - admin:checkout
        - read:checkout
      security:
        - JWT: []
        - apikey: []
      parameters:
        - $ref: '#/components/parameters/SessionId'
        - name: includes
          in: query
          description: >
            Include aditional data that are by default excluded from the session
            details.


            - **`events.request_headers`** Include the event headers stored for
            each event

            - **`initiating_system_request_headers`** Include the request
            headers from the initating system
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - events.request_headers
                - initiating_system_request_headers
      responses:
        '200':
          description: checkout session
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Id'
                  - $ref: '#/components/schemas/Session'
                  - $ref: '#/components/schemas/SessionRead'
                  - $ref: '#/components/schemas/SessionCancelled'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Get checkout session details
          sidebarTitle: Get checkout session details
    put:
      operationId: checkout_session_put
      summary: checkout_session_put
      description: >
        Session must be locked for paying before updating.


        **Requirements**:

        - `order.shipping_option` must be included in `express_shipping_options`
        if both are set.

        - `order.amount` must be equal to the sum of `order.items` and
        `order.shipping_option`


        scopes:

        - admin:checkout

        - read:checkout
      tags:
        - session
        - Sessions
      x-scopes:
        - admin:checkout
        - read:checkout
      security:
        - JWT: []
        - apikey: []
      parameters:
        - $ref: '#/components/parameters/SessionId'
        - name: force_shipping_address_callback
          description: >
            If `express.shipping_options` is set, there will not be a callback
            to `shipping_address_callback_url`,

            unless `force_shipping_address_callback` is also set.


            If `express.shipping_options` is not set, there will be a callback
            to `shipping_address_callback_url`.
          in: query
          schema:
            type: boolean
            default: false
        - name: update_without_lock
          description: >
            Allow updating session without it having been locked first. 


            Allowed for server-to-server when the checkout has not been rendered
            yet.
          in: query
          schema:
            type: boolean
            default: false
        - $ref: '#/components/parameters/FeatureToggles'
        - $ref: '#/components/parameters/DinteroSystemName'
        - $ref: '#/components/parameters/DinteroSystemVersion'
        - $ref: '#/components/parameters/DinteroSystemPluginName'
        - $ref: '#/components/parameters/DinteroSystemPluginVersion'
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/UpdateSessionOptions'
        required: true
      responses:
        '200':
          description: checkout session
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Id'
                  - $ref: '#/components/schemas/Session'
                  - $ref: '#/components/schemas/SessionRead'
                  - $ref: '#/components/schemas/SessionCancelled'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Update checkout session details
          sidebarTitle: Update checkout session details
  /sessions/{session_id}/cancel:
    post:
      operationId: checkout_session_cancel_post
      summary: checkout_session_cancel_post
      description: |

        Cancel a session

        The session transaction will be voided in case where it is
        initialized or authorized.

        Cancel is not allowed in case where the current transaction
        state is not initialized or authorized.

        scopes:
        - admin:checkout
        - write:checkout
      tags:
        - session
        - Sessions
      x-scopes:
        - admin:checkout
        - write:checkout
      security:
        - JWT: []
        - apikey: []
      parameters:
        - $ref: '#/components/parameters/SessionId'
        - $ref: '#/components/parameters/DinteroSystemName'
        - $ref: '#/components/parameters/DinteroSystemVersion'
        - $ref: '#/components/parameters/DinteroSystemPluginName'
        - $ref: '#/components/parameters/DinteroSystemPluginVersion'
      responses:
        '200':
          description: checkout session
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Id'
                  - $ref: '#/components/schemas/Session'
                  - $ref: '#/components/schemas/SessionRead'
                  - $ref: '#/components/schemas/SessionCancelled'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Cancel session
          sidebarTitle: Cancel session
  /sessions/{session_id}/qr:
    post:
      operationId: qr_sessions_sid_post
      summary: qr_sessions_sid_post
      description: |
        Generate a QR Code containing the URL for the Checkout Session.
        The QR Code can be displayed in POS to enable Checkout payment.

        scopes:
        - admin:checkout
        - write:checkout
      tags:
        - session
        - Sessions
      x-scopes:
        - admin:checkout
        - write:checkout
      security:
        - adminKey: []
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/SessionId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QROptions'
        required: true
      responses:
        '200':
          description: QR Code
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QRCode'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: QR Code for a Session
          sidebarTitle: QR Code for a Session
  /sessions/payment-token:
    post:
      operationId: checkout_payment_token_session_post
      summary: checkout_payment_token_session_post
      description: >

        This endpoint lets you create payment and recurrence tokens without
        reserving

        or charging any amount.


        The URL returned by this endpoint opens a web site where the customer

        can enter their payment details, e.g. card information.


        The payment details will be validated and a transaction with a

        payment/recurrence token will be created on success containing the
        payment

        token created from the customer payment details.


        - [GET
        /v1/transactions/{id}?includes=card.payment_token](/api-reference/transactions/transactions_id_get)

        - [GET
        /v1/transactions/{id}?includes=card.recurrence_token](/api-reference/transactions/transactions_id_get)


        scopes:

        - admin:checkout

        - write:checkout
      tags:
        - session
        - Sessions
      x-scopes:
        - admin:checkout
        - write:checkout
      security:
        - JWT: []
        - apikey: []
      parameters:
        - name: include_session
          in: query
          description: |
            Include all details about the session created
          schema:
            type: boolean
        - $ref: '#/components/parameters/DinteroSystemName'
        - $ref: '#/components/parameters/DinteroSystemVersion'
        - $ref: '#/components/parameters/DinteroSystemPluginName'
        - $ref: '#/components/parameters/DinteroSystemPluginVersion'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - session
                - token_provider
              properties:
                session:
                  description: |
                    The session to create the payment token from
                  allOf:
                    - $ref: '#/components/schemas/SessionPaymentToken'
                    - $ref: '#/components/schemas/Metadata'
                token_provider:
                  $ref: '#/components/schemas/TokenProvider'
        required: true
      responses:
        '200':
          $ref: '#/components/responses/SessionCreated'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Payment token session
          sidebarTitle: Payment token session
  /sessions/{session_id}/pay:
    parameters:
      - $ref: '#/components/parameters/SessionId'
    post:
      operationId: checkout_sid_pay_post
      summary: checkout_sid_pay_post
      description: >
        For Express Checkout sessions, the _`order.shipping_address`_ must be
        set on

        the session, and a _`order.items.shipping_option` item is required if
        the

        session has either an _`express.shipping_address_callback_url`_ or the

        session has at least one option in _`express.shipping_options`_.
      tags:
        - payment
      security: []
      parameters:
        - name: If-Unmodified-Since
          in: header
          description: >-
            Optional header. The put request is discarded and a 412 is returned
            if the header does not match the `updated_at` property or the
            `version` of the session.
          required: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Payment'
        required: true
      responses:
        '200':
          description: response from payment
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
        '202':
          description: response from payment
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '412':
          $ref: '#/components/responses/PreconditionFailed'
      x-mint:
        metadata:
          title: Initiate a checkout payment
          sidebarTitle: Initiate a checkout payment
  /sessions/{session_id}/redirect/{redirect_ref}:
    parameters:
      - $ref: '#/components/parameters/SessionId'
      - name: redirect_ref
        in: path
        required: true
        schema:
          type: string
    get:
      operationId: checkout_sid_redirect_get
      summary: checkout_sid_redirect_get
      tags:
        - payment
      security: []
      responses:
        '302':
          $ref: '#/components/responses/RedirectToSessionReturnUrl'
        '404':
          $ref: '#/components/responses/NotFound'
      x-mint:
        metadata:
          title: Handle redirect from payment
          sidebarTitle: Handle redirect from payment
  /sessions/pay:
    post:
      operationId: checkout_session_pay_post
      summary: checkout_session_pay_post
      description: >
        For merchant initiated payments, where the customer is not involved.


        Receives a session and pays it with the given card token.


        > Merchant is resposible for managing their retry policy for payments

        > that fails, and not retry when payment fails with `DO_NOT_RETRY`
        error.

        >

        > 200 response will be returned when request fails due to authorization
        error. Transaction

        > will have status `FAILED` and error information can  be found at
        `events.error`.

        >

        > Insufficient error handling will cause cards to be blocked

        >
        https://docs.dintero.com/docs/checkout/tokenization#do-not-try-again--excessive-reattempts


        scopes:

        - admin:checkout

        - write:checkout
      tags:
        - payment
      x-scopes:
        - admin:checkout
        - write:checkout
      security:
        - JWT: []
        - apikey: []
      parameters:
        - name: Dintero-Feature-Toggles
          in: header
          description: >
            - **`strict-merchant-reference`**: The
            `session.order.merchant_reference`
              must be unique. The pay request will fail with `400 BadRequest` error
              if `merchant_reference` is duplicated by existing session.
            - **`strict-success-merchant-reference`**: The
            `session.order.merchant_reference`
              must be unique. The pay request will fail with `400 BadRequest` error
              if `merchant_reference` is duplicated by existing session that was successfully
              authorized. This flag is less strict than **`strict-merchant-reference`**, allowing
              for duplicates session if previous session failed
          example: strict-merchant-reference
          style: simple
          schema:
            type: array
            items:
              type: string
              enum:
                - strict-merchant-reference
                - strict-success-merchant-reference
        - $ref: '#/components/parameters/DinteroSystemName'
        - $ref: '#/components/parameters/DinteroSystemVersion'
        - $ref: '#/components/parameters/DinteroSystemPluginName'
        - $ref: '#/components/parameters/DinteroSystemPluginVersion'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                session:
                  description: |
                    The session to create the payment from
                  allOf:
                    - $ref: '#/components/schemas/PaySessionOptions'
                    - $ref: '#/components/schemas/SessionCustomerTokens'
                    - $ref: '#/components/schemas/Metadata'
                payment:
                  $ref: '#/components/schemas/PayPayment'
        required: true
      responses:
        '200':
          description: Transaction created
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Transaction'
                  - $ref: '#/components/schemas/SessionPayResult'
        '400':
          description: Bad / Invalid request
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - $ref: '#/components/schemas/SessionPayResult'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - $ref: '#/components/schemas/SessionPayResult'
        default:
          description: Request failed with 4XX error
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Error'
                  - $ref: '#/components/schemas/SessionPayResult'
      x-mint:
        metadata:
          title: Create and pay merchant initiated session
          sidebarTitle: Create and pay merchant initiated session
  /view/{session_id}:
    get:
      operationId: checkout_sid_html_get
      summary: checkout_sid_html_get
      tags:
        - view
      security: []
      parameters:
        - $ref: '#/components/parameters/SessionId'
        - name: language
          in: query
          schema:
            type: string
        - name: ui
          in: query
          schema:
            type: string
            enum:
              - fullscreen
              - inline
              - modal
        - name: scc
          in: query
          description: >-
            Optional query parameter. SMS-confirm-code. To verify the identity
            of the payee.
          schema:
            type: string
        - name: show_payment_type
          in: query
          description: >-
            Optional query parameter. If specified the checkout will only show
            the specified payment type(s).
          schema:
            type: string
        - name: hide_language
          in: query
          description: >-
            Optional query parameter. If specified language selector in checkout
            will be hidden.
          schema:
            type: string
            enum:
              - 'true'
        - name: hide_items
          in: query
          description: >-
            Optional query parameter. If specified items will be hidden when
            checkout is not embedded.
          schema:
            type: string
            enum:
              - 'true'
      responses:
        '302':
          description: Checkout page
          headers:
            Location:
              description: |
                the URL to redirect to Checkout
                - `sid` will be appended to the URL as a `query` string, the
                  `session_id` for Checkout page
              schema:
                type: string
      x-mint:
        metadata:
          title: Get the Checkout page
          sidebarTitle: Get the Checkout page
  /view/{session_id}/payments/{payment_product_type}:
    post:
      operationId: checkout_sid_payments_product_type_post
      summary: checkout_sid_payments_product_type_post
      tags:
        - view
      security: []
      parameters:
        - $ref: '#/components/parameters/SessionId'
        - name: payment_product_type
          in: path
          required: true
          schema:
            type: string
            enum:
              - bambora.applepay
              - bambora.creditcard
              - bambora.googlepay
              - bambora.mobilepay
              - collector.installment
              - collector.invoice
              - collector.invoice_b2b
              - collector.invoice_b2b_preapproved
              - dintero_psp.creditcard
              - dintero_psp.vipps
              - dintero_psp.googlepay
              - dintero_psp.applepay
              - dintero_psp.clicktopay
              - payex.creditcard
              - payex.mobilepay
              - payex.swish
              - payex.vipps
              - payex.applepay
              - payex.clicktopay
              - payex.googlepay
              - santander.debit_account
              - klarna.klarna
              - klarna.billie
              - kravia.invoice_b2b
              - kravia.invoice_b2b_grouped
              - kravia.invoice_b2c
              - two.invoice_b2b
        - name: language
          in: query
          description: |
            Preferred language to use in the payment operation
          example: nb-NO
          schema:
            type: string
        - name: phone_number
          in: query
          description: |
            Preferred phone number to use in the payment operation
          example: '+4738260107'
          schema:
            type: string
            format: E.164
            pattern: ^\+?[1-9]\d{1,14}$
        - name: email
          in: query
          description: |
            Preferred email to use in the payment operation
          example: example@email.com
          schema:
            type: string
        - name: organization_number
          in: query
          description: |
            The organization number that the payment is for.
          example: '919656396'
          schema:
            type: string
        - name: country
          in: query
          description: |
            The country to ship to. Required for `klarna` payment types.
          example: 'NO'
          schema:
            type: string
        - name: force_new
          in: query
          description: >
            Forces the checkout-service to create a new payment session in the
            underlying gateway. Used for `dintero_psp` when

            3Dsecure is cancelled of failed and the user wants to retry the
            payment.
          schema:
            type: string
            enum:
              - 'true'
        - name: domain_name
          in: query
          description: >
            Used for apple pay to set the merchants domain name when the
            checkout frontend is embedded on the merchants website.
          schema:
            type: string
      responses:
        '200':
          $ref: '#/components/responses/PaymentOperations'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Get payment operations
          sidebarTitle: Get payment operations
  /view/{session_id}/age-verification:
    get:
      operationId: checkout_sid_age_verification_get
      summary: checkout_sid_age_verification_get
      description: >
        Starts age verification for the session. The endpoint is returned as the

        `complete-age-verification` operation for every payment product type
        while

        age verification is required.


        Successful verification records an `AGE_VERIFICATION_COMPLETED` session
        event with

        `verified_identity.age_over`. The operation is then no longer returned.


        Failed verification redirects to the session URL with
        `merchant_reference`

        (when available) and one of these `error` codes:


        - `cancel`: The customer cancelled the verification

        - `authorization-failed`: Authorization with the identity provider
        failed

        - `failed`: The verification could not be completed

        - `age-requirement-not-met`: The customer did not meet the age
        requirement
      tags:
        - view
      security: []
      parameters:
        - $ref: '#/components/parameters/SessionId'
      responses:
        '302':
          description: Redirect to the identity provider or the session URL
          headers:
            Location:
              description: URL to redirect the customer to.
              schema:
                type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          description: Session not found error
          content:
            text/html:
              schema:
                allOf:
                  - $ref: '#/components/schemas/SessionNotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Start age verification
          sidebarTitle: Start age verification
  /view/{session_id}/session:
    get:
      operationId: checkout_sid_json_get
      summary: checkout_sid_json_get
      tags:
        - view
      security: []
      parameters:
        - $ref: '#/components/parameters/SessionId'
        - in: header
          name: Viewer-Country
          description: >
            The country of the viewer, used to determine the correct currency
            and

            payment methods.
          required: false
          schema:
            type: string
            format: iso3166-alpha2
      responses:
        '200':
          description: checkout session
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Id'
                  - $ref: '#/components/schemas/SessionOptions'
                  - $ref: '#/components/schemas/SessionRead'
                  - $ref: '#/components/schemas/SessionOperations'
                  - $ref: '#/components/schemas/SessionLock'
                  - $ref: '#/components/schemas/SessionEventVersion'
                  - $ref: '#/components/schemas/SessionDetailsMasked'
        '404':
          description: Session not found error
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/SessionNotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Get checkout details
          sidebarTitle: Get checkout details
  /view/{session_id}/session/abandon:
    parameters:
      - name: session_id
        in: path
        description: The session ID
        required: true
        schema:
          type: string
    post:
      operationId: view_sid_session_abandon_post
      summary: view_sid_session_abandon_post
      description: |
        Abandon a checkout payment before completing payment.
      tags:
        - view
      security: []
      responses:
        '302':
          description: Rejected to session URL with status cancelled
          headers:
            Location:
              description: >
                the URL to redirect a page to.


                - `merchant_reference` query parameter will always be included
                in
                  the redirect.
                - `error` will always be included, set to cancelled
              schema:
                type: string
        '404':
          $ref: '#/components/responses/NotFound'
      x-mint:
        metadata:
          title: Abandon a checkout payment
          sidebarTitle: Abandon a checkout payment
  /view/{session_id}/session/lock:
    post:
      operationId: checkout_sid_lock
      summary: checkout_sid_lock
      description: |
        When locked, the session can not be paid.
        Locking the session is only available when express is enabled.
      tags:
        - view
      security: []
      parameters:
        - $ref: '#/components/parameters/SessionId'
      responses:
        '200':
          description: Information about the lock
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionLock'
        '400':
          $ref: '#/components/responses/BadRequest'
        '412':
          $ref: '#/components/responses/PreconditionFailed'
      x-mint:
        metadata:
          title: Lock a checkout session
          sidebarTitle: Lock a checkout session
  /view/{session_id}/session/order/addresses:
    put:
      operationId: checkout_sid_json_order_addresses_put
      summary: checkout_sid_json_order_addresses_put
      description: >
        Changes the `order.shipping_address` and `order.billing_address`
        submitted by end user in the Express Checkout flow.


        If the _`express.shipping_address_callback_url`_ is set, the
        _`express.shipping_options`_

        in the response will be updated to show the available shipping options
        for

        the updated address.


        Also changes the checkboxes that are part of the session as they are

        checked or unchecked by the end user in the Express Checkout flow.
      tags:
        - view
      security: []
      parameters:
        - $ref: '#/components/parameters/SessionId'
        - name: If-Unmodified-Since
          in: header
          description: >-
            Optional header. The put request is discarded and a 412 is returned
            if the header does not match the `updated_at` property of the
            session.
          required: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ViewSessionUpdateAddress'
        required: true
      responses:
        '200':
          description: checkout session
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Id'
                  - $ref: '#/components/schemas/SessionOptions'
                  - $ref: '#/components/schemas/SessionRead'
                  - $ref: '#/components/schemas/SessionOperations'
                  - $ref: '#/components/schemas/SessionEventVersion'
                  - $ref: '#/components/schemas/SessionDetailsMasked'
        '404':
          $ref: '#/components/responses/NotFound'
        '412':
          $ref: '#/components/responses/PreconditionFailed'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Set Express Checkout addresses and checkboxes
          sidebarTitle: Set Express Checkout addresses and checkboxes
  /view/{session_id}/session/order/discount_codes:
    put:
      operationId: checkout_sid_json_order_discount_codes_put
      summary: checkout_sid_json_order_discount_codes_put
      description: >
        Changes the `order.discount_codes` submitted by end user in the Express
        Checkout flow.


        If the _`express.discount_codes_callback_url`_ is set, the session will
        be

        updated with discount on the order and the shipping options.
      tags:
        - view
      security: []
      parameters:
        - $ref: '#/components/parameters/SessionId'
        - name: If-Unmodified-Since
          in: header
          description: >-
            Optional header. The put request is discarded and a 412 is returned
            if the header does not match the `updated_at` property of the
            session.
          required: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ViewSessionUpdateDiscountCodes'
        required: true
      responses:
        '200':
          description: Session updated with discounts
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Id'
                  - $ref: '#/components/schemas/SessionOptions'
                  - $ref: '#/components/schemas/SessionRead'
                  - $ref: '#/components/schemas/SessionOperations'
                  - $ref: '#/components/schemas/SessionEventVersion'
                  - $ref: '#/components/schemas/SessionDetailsMasked'
        '204':
          description: No discounts
        '404':
          $ref: '#/components/responses/NotFound'
        '412':
          $ref: '#/components/responses/PreconditionFailed'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Set Express Checkout discount codes
          sidebarTitle: Set Express Checkout discount codes
  /view/{session_id}/session/order/gift_cards:
    put:
      operationId: checkout_sid_json_order_gift_cards_put
      summary: checkout_sid_json_order_gift_cards_put
      description: >
        Change the active `gift_cards` for the session. Updating with empty gift
        cards

        removes all gift cards from the session.
      tags:
        - view
      security: []
      parameters:
        - $ref: '#/components/parameters/SessionId'
        - name: If-Unmodified-Since
          in: header
          description: >-
            Optional header. The put request is discarded and a 412 is returned
            if the header does not match the `updated_at` property of the
            session.
          required: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ViewSessionUpdateGiftcards'
        required: true
      responses:
        '200':
          description: Session updated with gift cards
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Id'
                  - $ref: '#/components/schemas/SessionOptions'
                  - $ref: '#/components/schemas/SessionRead'
                  - $ref: '#/components/schemas/SessionOperations'
                  - $ref: '#/components/schemas/SessionEventVersion'
                  - $ref: '#/components/schemas/SessionDetailsMasked'
        '204':
          description: No gift cards used
        '404':
          $ref: '#/components/responses/NotFound'
        '412':
          $ref: '#/components/responses/PreconditionFailed'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Set gift card
          sidebarTitle: Set gift card
  /view/{session_id}/session/order/shipping_address:
    put:
      operationId: checkout_sid_json_order_shipping_address_put
      summary: checkout_sid_json_order_shipping_address_put
      description: >
        **Deprecated** in favor of [PUT
        /v1/view/{session_id}/session/order/addresses](/checkout-api/view/checkout_sid_json_order_addresses_put)


        Changes the order.shipping_address, submitted by end user in the Express
        Checkout flow.


        If the _`express.shipping_address_callback_url`_ is set, the
        _`express.shipping_options`_

        in the response will be updated to show the available shipping options
        for

        the updated address.
      tags:
        - view
      security: []
      parameters:
        - $ref: '#/components/parameters/SessionId'
        - name: If-Unmodified-Since
          in: header
          description: >-
            Optional header. The put request is discarded and a 412 is returned
            if the header does not match the `updated_at` property of the
            session.
          required: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderAddress'
        required: true
      responses:
        '200':
          description: checkout session
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Id'
                  - $ref: '#/components/schemas/SessionOptions'
                  - $ref: '#/components/schemas/SessionRead'
                  - $ref: '#/components/schemas/SessionOperations'
                  - $ref: '#/components/schemas/SessionEventVersion'
                  - $ref: '#/components/schemas/SessionDetailsMasked'
        '404':
          $ref: '#/components/responses/NotFound'
        '412':
          $ref: '#/components/responses/PreconditionFailed'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Set Express Checkout shipping address
          sidebarTitle: Set Express Checkout shipping address
  /view/{session_id}/session/order/shipping_option:
    put:
      operationId: checkout_sid_json_order_items_shipping_option_put
      summary: checkout_sid_json_order_items_shipping_option_put
      description: >
        Changes the selected shipping_option, submitted by end user in the 
        Express Checkout flow.
      tags:
        - view
      security: []
      parameters:
        - $ref: '#/components/parameters/SessionId'
        - name: If-Unmodified-Since
          in: header
          description: >-
            Optional header. The put request is discarded and a 412 is returned
            if the header does not match the `updated_at` property of the
            session.
          required: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MultiShipmentTopLevelShippingOption'
        required: true
      responses:
        '200':
          description: checkout session
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Id'
                  - $ref: '#/components/schemas/SessionOptions'
                  - $ref: '#/components/schemas/SessionRead'
                  - $ref: '#/components/schemas/SessionOperations'
                  - $ref: '#/components/schemas/SessionEventVersion'
                  - $ref: '#/components/schemas/SessionDetailsMasked'
        '404':
          $ref: '#/components/responses/NotFound'
        '412':
          $ref: '#/components/responses/PreconditionFailed'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Set Express Checkout shipping option
          sidebarTitle: Set Express Checkout shipping option
  /view/{session_id}/session/publish/scc:
    post:
      operationId: checkout_sid_send_scc
      summary: checkout_sid_send_scc
      description: |
        Send a SMS with a payment verification code
      tags:
        - view
      security: []
      parameters:
        - $ref: '#/components/parameters/SessionId'
      responses:
        '200':
          description: Verification code sent
        '202':
          description: Verification code resent
        '400':
          $ref: '#/components/responses/BadRequest'
      x-mint:
        metadata:
          title: Send a verification code to the customer
          sidebarTitle: Send a verification code to the customer
  /view/{session_id}/session/events/payment_information:
    post:
      operationId: checkout_sid_events_pi_post
      summary: checkout_sid_events_pi_post
      tags:
        - view
      security: []
      parameters:
        - $ref: '#/components/parameters/SessionId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentInformationEvent'
        required: true
      responses:
        '204':
          description: Payment information event added
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Add payment information
          sidebarTitle: Add payment information
  /examples/discount_code_callback_url:
    post:
      operationId: example_discount_codes_callback_url
      summary: example_discount_codes_callback_url
      description: |
        This API endpoint on the merchant side allows Dintero to get
        shipping_options and order with discounts based on the provided
        session that had its `order.discount_codes` updated.
      tags:
        - example-session-callbacks
      security: []
      requestBody:
        $ref: '#/components/requestBodies/example_discount_codes_callback_urlOptions'
      responses:
        '200':
          description: Session Discount update
          content:
            application/json:
              schema:
                type: object
                required:
                  - shipping_options
                properties:
                  order:
                    $ref: '#/components/schemas/DiscountCodesOrderUpdate'
                  shipping_options:
                    type: array
                    description: >
                      Shipping options that will be presented to the end user
                      after the

                      callback


                      - If the merchant is not able to ship the order to the end
                      users
                        shipping address, use an empty array.
                      - If there is only one option, a free delivery, the order
                      still
                        has to contain one option with a _`price.amount`_ of 0.
                    items:
                      $ref: '#/components/schemas/MultiShipmentShippingOption'
      x-mint:
        metadata:
          title: Discount codes Update
          sidebarTitle: Discount codes Update
  /examples/session_url_callback:
    parameters:
      - name: Dintero-Signature
        in: header
        description: >
          Dintero signature that can be used to verify the payload from the

          callback.


          Only include if a signature secret exist:


          - [POST
          /v1/admin/signature](/checkout-api/secrets/admin_signature_post)
        schema:
          type: string
      - name: event-delivery
        in: header
        description: |
          A unique delivery ID to identify the event, which can be useful for
          tracking and troubleshooting purposes
        schema:
          type: string
      - name: transaction_id
        in: query
        description: The Id for the transaction created
        required: true
        schema:
          type: string
      - name: session_id
        in: query
        description: Session Id. Either `session_id` or `sid` is required.
        required: false
        schema:
          type: string
      - name: sid
        in: query
        description: >-
          Session Id if `sid_parameter_name=sid`. Either `session_id` or `sid`
          is required.
        required: false
        schema:
          type: string
      - name: merchant_reference
        in: query
        description: The merchants reference
        required: true
        schema:
          type: string
      - name: time
        in: query
        description: ISO 8601 format for when the transaction was created
        required: true
        schema:
          type: string
          format: date-time
      - name: error
        in: query
        description: Error code
        required: false
        example: authorization
        schema:
          type: string
      - name: event
        in: query
        description: Event applied to transaction
        required: false
        schema:
          type: string
      - name: event_id
        in: query
        description: Id for the event applied to transaction
        required: false
        example: '3'
        schema:
          type: string
      - name: method
        in: query
        description: The method to use when delivering the callback
        required: false
        example: POST
        schema:
          type: string
      - name: report_error
        in: query
        description: Report error callback
        required: false
        schema:
          type: boolean
      - name: delay_callback
        in: query
        description: Delay before delivering the callback
        required: false
        schema:
          type: integer
      - name: report_event
        in: query
        description: Deliver callback on othe transaction events
        required: false
        example: CAPTURE
        schema:
          type: string
    get:
      operationId: example_session_get_callback_url
      summary: example_session_get_callback_url
      security: []
      description: |
        This API endpoint on the merchant side allows Dintero to notify
        the `session.url.callback_url` when the payment is completed

        > The `transaction_id` is optional if `report_error=true`
      tags:
        - example-session-callbacks
      responses:
        '200':
          description: Callback handled
          content:
            application/json:
              schema:
                type: object
      x-mint:
        metadata:
          title: Session Callback
          sidebarTitle: Session Callback
    post:
      operationId: example_session_post_callback_url
      summary: example_session_post_callback_url
      security: []
      description: >
        This API endpoint on the merchant side allows Dintero to notify

        the `session.url.callback_url` when the payment is completed

        > POST is only use if `callback_url` includes `method=POST` query
        parameter.


        > The `body` and `transaction_id` is optional if `report_error=true`
      tags:
        - example-session-callbacks
      parameters:
        - name: method
          in: query
          description: POST method used to deliver the callback
          required: true
          example: POST
          schema:
            type: string
        - name: includes
          in: query
          description: Aditional data included
          required: true
          example: session
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/Transaction'
      responses:
        '200':
          description: Callback handled
          content:
            application/json:
              schema:
                type: object
      x-mint:
        metadata:
          title: Session Callback
          sidebarTitle: Session Callback
  /examples/shipping_address_callback_url:
    post:
      operationId: example_shipping_address_callback_url
      summary: example_shipping_address_callback_url
      description: |
        This API endpoint on the merchant side allows Dintero to get
        shipping options based on the provided session after an address
        update
      tags:
        - example-session-callbacks
      security: []
      requestBody:
        $ref: '#/components/requestBodies/example_discount_codes_callback_urlOptions'
      responses:
        '200':
          description: Session shipping options update
          content:
            application/json:
              schema:
                type: object
                required:
                  - shipping_options
                properties:
                  shipping_options:
                    type: array
                    description: >
                      Shipping options that will be presented to the end user
                      after the

                      callback


                      - If the merchant is not able to ship the order to the end
                      users
                        shipping address, use an empty array.
                      - If there is only one option, a free delivery, the order
                      still
                        has to contain one option with a _`price.amount`_ of 0.
                    items:
                      $ref: '#/components/schemas/MultiShipmentShippingOption'
                  order:
                    $ref: >-
                      #/components/schemas/ShippingAddressCallbackSessionOrderUpdate
      x-mint:
        metadata:
          title: Address Update
          sidebarTitle: Address Update
  /transactions:
    get:
      operationId: transactions_get
      summary: transactions_get
      description: |
        scopes:
        - admin:checkout
        - read:checkout
      x-scopes:
        - admin:checkout
        - read:checkout
      security:
        - JWT: []
        - apikey: []
      tags:
        - Transactions
      parameters:
        - $ref: '#/components/parameters/Ids'
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/StartingAfter'
        - name: status
          in: query
          description: |
            The status of the transaction.
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - AUTHORIZATION_VOIDED
                - AUTHORIZED
                - CAPTURED
                - DECLINED
                - FAILED
                - INITIATED
                - ON_HOLD
                - PARTIALLY_CAPTURED
                - PARTIALLY_REFUNDED
                - PARTIALLY_CAPTURED_REFUNDED
                - REFUNDED
                - UNKNOWN
        - name: payment_product
          in: query
          description: The type of payment product used
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: payment_product_type
          in: query
          description: The payment product type
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: card_brand
          in: query
          description: The card brand for the payment
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: merchant_reference
          in: query
          description: The merchant reference used
          schema:
            type: string
        - name: merchant_reference_2
          in: query
          description: The second merchant reference on the transaction
          schema:
            type: string
        - name: session_id
          in: query
          description: >
            The session id(s) associated with the transactions.
            ?session_id=A&session_id=B&session_id=X.
          explode: true
          schema:
            type: array
            items:
              type: string
              format: checkout-id
        - name: store_id
          in: query
          description: >
            The store_id that the transaction belongs to.
            ?store_id=A&store_id=B&store_id=X.
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: payout_correlation_id
          in: query
          description: >
            Filter by the `payout_correlation_id`. Different format between
            payment providers. ?payout_correlation_id=A,B
          style: form
          explode: false
          schema:
            type: array
            items:
              type: string
        - name: currency
          in: query
          description: |
            The currency of the transaction. ?currency=NOK&currency=SEK.
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: amount
          in: query
          description: Exact transaction amount, amount authorized.
          schema:
            type: integer
            minimum: 0
        - name: amount.gte
          in: query
          description: Lower limit for filtering on transaction amount, amount authorized.
          schema:
            type: integer
            minimum: 0
        - name: amount.lte
          in: query
          description: Upper limit for filtering on transaction amount, amount authorized.
          schema:
            type: integer
        - name: created_at.gte
          in: query
          description: >-
            Transaction created after (ISO 8601. We recommend using a localised
            ISO 8601 datetime like `2017-07-21T17:32:28Z`. If a timezone is not
            specified we assume UTC)
          schema:
            type: string
            format: isodate
        - name: created_at.lte
          in: query
          description: >-
            Transaction created before a date (ISO 8601. We recommend using a
            localised ISO 8601 datetime like `2017-07-21T17:32:28Z`. If a
            timezone is not specified we assume UTC)
          schema:
            type: string
            format: isodate
        - name: captured_at.gte
          in: query
          description: >-
            Transaction captured after date (This param is subject to change in
            the future) (ISO 8601. We recommend using a localised ISO 8601
            datetime like `2017-07-21T17:32:28Z`. If a timezone is not specified
            we assume UTC)
          schema:
            type: string
            format: isodate
        - name: captured_at.lte
          in: query
          description: >-
            Transaction captured before date (This param is subject to change in
            the future) (ISO 8601. We recommend using a localised ISO 8601
            datetime like `2017-07-21T17:32:28Z`. If a timezone is not specified
            we assume UTC)
          schema:
            type: string
            format: isodate
        - name: refunded_at.gte
          in: query
          description: >-
            Transaction refunded after date (This param is subject to change in
            the future) (ISO 8601. We recommend using a localised ISO 8601
            datetime like `2017-07-21T17:32:28Z`. If a timezone is not specified
            we assume UTC)
          schema:
            type: string
            format: isodate
        - name: refunded_at.lte
          in: query
          description: >-
            Transaction refunded before date (This param is subject to change in
            the future) (ISO 8601. We recommend using a localised ISO 8601
            datetime like `2017-07-21T17:32:28Z`. If a timezone is not specified
            we assume UTC)
          schema:
            type: string
            format: isodate
        - name: search
          in: query
          description: >
            Will try to match the search to either transaction_id, session_id or
            merchant_reference, merchant_reference_2,

            phone_number, email or the customer name using the format
            `{first_name} {last_name}`, or token_id using value of
            `card.payment_token_id`.
          schema:
            type: string
        - name: payment_operation
          in: query
          description: |
            Filter on `payment_operation`
          example:
            - unscheduled_purchase
            - recurring_purchase
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - unscheduled_purchase
                - recurring_purchase
                - invoice_payment
                - generate_payment_token
        - name: customer_id
          in: query
          description: Filter transactions on the `customer.customer_id`.
          schema:
            type: string
        - name: includes
          in: query
          description: |
            Control the data that is included in the transactions

            - **`events.success.true`** Include only event where success is true
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - events.success.true
        - name: payout_destination_id
          in: query
          description: >
            Filter transactions on `payout_destination_id` and
            `items[].splits[].payout_destination_id`.
          schema:
            type: string
        - name: token_id
          in: query
          description: >
            Filter transactions on token_id(s) associated with the transactions,
            using `card.payment_token_id`. ?token_id=A&token_id=B&token_id=X.
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: authorization_expires_at.gte
          in: query
          description: >-
            Transaction authorization expiry greater than or equal to filter.
            Compares the value to `metadata.authorization_expiration` in the
            most recent `AUTHORIZE` event, only present for payments via the
            dintero_psp and klarna gateway. (ISO 8601. We recommend using a
            localised ISO 8601 datetime like `2017-07-21T17:32:28Z`. If a
            timezone is not specified we assume UTC)
          schema:
            type: string
            format: isodate
        - name: authorization_expires_at.lte
          in: query
          description: >-
            Transaction authorization expiry less than or equal to filter.
            Compares the value to `metadata.authorization_expiration` in the
            most recent `AUTHORIZE` event, only present for payments via the
            dintero_psp and klarna gateway. (ISO 8601. We recommend using a
            localised ISO 8601 datetime like `2017-07-21T17:32:28Z`. If a
            timezone is not specified we assume UTC)
          schema:
            type: string
            format: isodate
        - name: terminal_id
          in: query
          description: Filter by terminal ID.
          schema:
            type: string
        - name: channel
          in: query
          description: Filter by channel.
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - ecommerce
                - in_app
                - in_store
      responses:
        '200':
          description: Transactions
          content:
            application/json:
              schema:
                type: array
                items:
                  allOf:
                    - $ref: '#/components/schemas/Transaction'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: List all transactions
          sidebarTitle: List all transactions
  /transactions/{id}:
    get:
      operationId: transactions_id_get
      summary: transactions_id_get
      description: |
        scopes:
        - admin:checkout
        - read:checkout
      x-scopes:
        - admin:checkout
        - read:checkout
      security:
        - JWT: []
        - apikey: []
      tags:
        - Transactions
      parameters:
        - $ref: '#/components/parameters/TransactionId'
        - name: includes
          in: query
          description: >
            Include additional data that are by default excluded from the
            transaction details.


            - **`card.payment_token`**: Include the payment_token generated from
            the transaction.
              Only available for transaction with a session that enabled generate_payment_token.
            - **`card.recurrence_token`**: Include the recurrence generated from
            the transaction.
              Only available for transaction with a session that enabled generate_recurrence_token.
            - **`session`** Include the session that the transaction resulted
            from.

            - **`session.events.latest`** Include the session that the
            transaction resulted from with only the latest event in its events
            array.

            - **`events.request_headers`** Include the event headers stored for
            each event.

            - **`events.success.true`** Include events where success is true.

            - **`initiating_system_request_headers`** Include the request
            headers from the initiating system.
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - card.payment_token
                - card.recurrence_token
                - session
                - session.events.latest
                - events.request_headers
                - events.success.true
                - initiating_system_request_headers
      responses:
        '200':
          description: Transaction
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Transaction'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        '503':
          $ref: '#/components/responses/ProcessorTemporarilyUnavailable'
      x-mint:
        metadata:
          title: Get a transaction
          sidebarTitle: Get a transaction
    put:
      operationId: transactions_id_put
      summary: transactions_id_put
      description: |
        scopes:
        - admin:checkout
        - write:checkout
      x-scopes:
        - admin:checkout
        - write:checkout
      security:
        - JWT: []
        - apikey: []
      tags:
        - Transactions
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                merchant_reference_2:
                  type: string
                  description: >-
                    A reference specified by the merchant to identify the
                    transaction, can be updated after the transaction has been
                    created
      responses:
        '200':
          description: Transaction
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Transaction'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        '503':
          $ref: '#/components/responses/ProcessorTemporarilyUnavailable'
      x-mint:
        metadata:
          title: Update a transaction
          sidebarTitle: Update a transaction
  /transactions/{id}/capture:
    post:
      operationId: transactions_id_capture_post
      summary: transactions_id_capture_post
      description: |
        Captures a transaction that was created with the Checkout
        endpoint with a `capture_now` value of `false`.

        #### Capture Instabank transaction

        Note that `items` is required when capturing a transaction
        with `payment_product=instabank`. The items must include
        the lines to Capture, with `line_id`, `quantity` and `amount`.

        scopes:
        - admin:checkout
        - write:checkout
      x-scopes:
        - admin:checkout
        - write:checkout
      security:
        - JWT: []
        - apikey: []
      tags:
        - Transactions
      parameters:
        - $ref: '#/components/parameters/TransactionId'
        - name: includes
          in: query
          description: >
            Include aditional data in the returned data that are by default
            excluded from the transaction details.


            - **`events.request_headers`** Include the event headers stored for
            each event **deprecated**

            - **`initiating_system_request_headers`** Include the request
            headers from the initating system **deprecated**


            From 2023-09, `events.request_headers` and
            `initiating_system_request_headers` will be included by default
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - events.request_headers
                - initiating_system_request_headers
        - $ref: '#/components/parameters/DinteroSystemName'
        - $ref: '#/components/parameters/DinteroSystemVersion'
        - $ref: '#/components/parameters/DinteroSystemPluginName'
        - $ref: '#/components/parameters/DinteroSystemPluginVersion'
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/StringMetadata'
                - type: object
                  required:
                    - amount
                  properties:
                    amount:
                      type: integer
                      format: int32
                      description: The amount to be captured
                      example: 29990
                    capture_reference:
                      type: string
                      description: |
                        A reference specified by the merchant to identify the
                        transaction
                    items:
                      type: array
                      description: >
                        Info about the captured order items


                        #### Instabank

                        `required` if the transaction `payment_product` is
                        *instabank*.

                        The capture will then be applied to the items included.
                      items:
                        allOf:
                          - $ref: '#/components/schemas/OrderItem'
                          - required:
                              - amount
                              - line_id
                            properties:
                              discount_lines:
                                description: Metadata about discounts given
                                type: array
                                items:
                                  $ref: '#/components/schemas/DiscountItem'
                              line_id:
                                type: string
                                description: >
                                  the number of the line (or id), must be
                                  `unique` between

                                  all items. `required` when Instabank payment
                                  is configured.
                                example: '1'
                              amount:
                                type: integer
                                description: |
                                  The total monetary amount of the line item
                                example: 29990
                                format: int32
                    final_capture:
                      type: boolean
                      default: false
                      description: >-
                        Indicates whether the capture is final. If `true`
                        additional captures on the transaction are not allowed
                        and the authorization on any remaining uncaptured amount
                        will be voided. Only applies to transactions where the
                        `payment_product` is `dintero_psp`.
      responses:
        '200':
          description: Capture created
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Transaction'
        '202':
          $ref: '#/components/responses/TransactionOperationAccepted'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        '503':
          $ref: '#/components/responses/Conflict'
      x-mint:
        metadata:
          title: Capture a transaction
          sidebarTitle: Capture a transaction
  /transactions/{id}/authorization:
    post:
      operationId: transaction_tid_extend_authorization_post
      summary: transaction_tid_extend_authorization_post
      description: >
        This endpoint is used to update an existing authorization:


        **Use cases:**


        1. **Extend authorization (Klarna)**
           - Provider: `klarna`
           - Purpose: Extend the lifetime of an existing authorization.
           - Required fields:
             - `reason` (string): The reason for the extension.
             - `reference` (string): A reference specified by the merchant to identify the transaction.

        2. **Update order amount (Klarna)**
           - Provider: `klarna`
           - Purpose: Update the authorized amount for an existing Klarna order.
           - Required fields:
             - `amount` (number): The new amount to authorize.
             - `items` (array): List of transaction items. Sum of item amounts must equal the updated transaction amount.
             - `description` (string): Optional description of the order.
             - `reason` (string): Optional reason for the update.
             - `reference` (string): Optional merchant reference to identify the transaction.

        3. **Update pre-authorization (Dintero PSP)**
           - Provider: `dintero_psp`
           - Purpose: Update the pre-authorized amount and/or finalize the authorization.
           - Required fields:
             - `amount` (number):
               The new amount to authorize.
               - If `final_authorization=false`, the new amount **must be greater than** the previous pre-authorized amount.
               - If `final_authorization=true`, the amount **may be increased, reduced, or unchanged**.
             - `final_authorization` (boolean):
               Indicates whether this is the final authorization step.
               - `true`: Finalizes the authorization and locks the transaction for further updates.
               - `false`: Keeps the pre-authorization open for future updates.
             - `reference` (string): Optional merchant reference to identify the transaction.
             - `items` (array): Optional list of transaction items to update. If the transaction already has items, this field is required. When present, sum of item amounts must equal the updated transaction amount.

        4. **Authorize external transaction (Dintero External)**
            - Provider: `dintero`
            - Purpose: Authorize a transaction currently on hold.
            - If `amount` or `items` are provided, the API will validate if the details are consistent with the order in the transaction.

        ---

        **Notes:**

        - For Klarna:
          - If `amount` is **not provided**: Extend authorization flow is used (use case 1). Only `reason` and `reference` are relevant.
          - If `amount` **is provided**: Update order amount flow is used (use case 2). `amount` is required; `items` and `description` are optional.
        - For pre-authorization: Only `amount`, `final_authorization`, and
        `reference` are relevant.
      x-scopes:
        - admin:checkout
        - write:checkout
      security:
        - JWT: []
        - apikey: []
      tags:
        - Transactions
      parameters:
        - $ref: '#/components/parameters/TransactionId'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                reason:
                  type: string
                  description: The reason of the extension
                reference:
                  type: string
                  description: |
                    A reference specified by the merchant to identify the
                    transaction
                amount:
                  type: number
                  description: The new amount to authorize.
                final_authorization:
                  type: boolean
                  description: |
                    Indicates whether this is the final authorization step.
                items:
                  type: array
                  description: >
                    Optional list of transaction items to update.

                    If the transaction already has items, this field is
                    required.

                    When present, sum of item amounts must equal the updated
                    transaction amount.
                  items:
                    allOf:
                      - $ref: '#/components/schemas/OrderItem'
                      - $ref: '#/components/schemas/OrderDiscountItem'
                description:
                  type: string
                  description: >
                    Description of the order. Used when updating Klarna order
                    amounts.
      responses:
        '200':
          description: Transaction updated
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Transaction'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Update transaction authorization
          sidebarTitle: Update transaction authorization
  /transactions/{id}/refund:
    post:
      operationId: transactions_id_refund_post
      summary: transactions_id_refund_post
      description: |
        Once a transaction has been successfully captured,
        a refund operation is available. Like other operations,
        refund can be partial or total

        #### Refund Instabank transaction

        Note that `items` is required when refunding a transaction
        with `payment_product=instabank`. The items must include the
        lines to Refund, with `line_id`, `quantity` and `amount`.

        #### Refund `seitatech.in_person` transaction

        `terminal_id` is required when refunding a `seitatech.in_person`
        transaction. The cardholder must be present to approve the refund
        on a terminal active on the same `payout_destination_id` as the
        original transaction.

        scopes:
        - admin:checkout
        - write:checkout
      x-scopes:
        - admin:checkout
        - write:checkout
      security:
        - JWT: []
        - apikey: []
      tags:
        - Transactions
      parameters:
        - $ref: '#/components/parameters/TransactionId'
        - name: includes
          in: query
          description: >
            Include aditional data in the returned data that are by default
            excluded from the transaction details.


            - **`events.request_headers`** Include the event headers stored for
            each event **deprecated**

            - **`initiating_system_request_headers`** Include the request
            headers from the initating system **deprecated**


            From 2023-09, `events.request_headers` and
            `initiating_system_request_headers` will be included by default
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - events.request_headers
                - initiating_system_request_headers
        - $ref: '#/components/parameters/DinteroSystemName'
        - $ref: '#/components/parameters/DinteroSystemVersion'
        - $ref: '#/components/parameters/DinteroSystemPluginName'
        - $ref: '#/components/parameters/DinteroSystemPluginVersion'
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/StringMetadata'
                - type: object
                  required:
                    - amount
                  properties:
                    amount:
                      type: integer
                      format: int32
                      description: The amount to be refunded
                    reason:
                      type: string
                      description: The reason of the refund
                    refund_reference:
                      type: string
                      description: |
                        A reference specified by the merchant to identify the
                        transaction
                    terminal_id:
                      type: string
                      description: >
                        Required for `seitatech.in_person` refunds. The
                        cardholder

                        must be present at the terminal to approve the refund.


                        > The terminal must be active on the same

                        > `payout_destination_id` as the original transaction.

                        > A valid `terminal_id` always returns `202 Accepted`.

                        > If the terminal is offline, the `INITIATE_REFUND`
                        event

                        > expires after 120 seconds and the transaction is
                        updated

                        > with a failed refund event.
                      example: T0292
                    items:
                      type: array
                      description: >
                        Info about the refunded order items


                        #### Instabank

                        `required` if the transaction `payment_product` is
                        *instabank*.

                        The refund will then be applied to the items included.
                      items:
                        allOf:
                          - $ref: '#/components/schemas/OrderItem'
                          - required:
                              - amount
                              - line_id
                            properties:
                              discount_lines:
                                description: Metadata about discounts given
                                type: array
                                items:
                                  $ref: '#/components/schemas/DiscountItem'
                              line_id:
                                type: string
                                description: >
                                  the number of the line (or id), must be
                                  `unique` between

                                  all items. `required` when Instabank payment
                                  is configured.
                                example: '1'
                              amount:
                                type: integer
                                format: int32
                                description: |
                                  The total monetary amount of the line item
                                example: 29990
        required: true
      responses:
        '200':
          description: Refund created
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Transaction'
        '202':
          $ref: '#/components/responses/TransactionOperationAccepted'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        '503':
          $ref: '#/components/responses/ProcessorTemporarilyUnavailable'
      x-mint:
        metadata:
          title: Refund transaction
          sidebarTitle: Refund transaction
  /transactions/{id}/void:
    post:
      operationId: transactions_id_void_post
      summary: transactions_id_void_post
      description: |
        At any moment before capture of a transaction, it is
        possible to cancel an authorization. This operation is
        called voiding and can be performed by doing a POST to
        this endpoint

        #### Void on part capture

        Void after a part capture will cancel the difference between
        the capture amount and the authorization amount.

        Void on part capture is only supported on following types:
          - `payex.creditcard`
          - `payex.mobilepay`
          - `payex.vipps`
          - `payex.applepay`
          - `payex.clicktopay`
          - `payex.googlepay`
          - `vipps`
          - `klarna.klarna`
          - `klarna.billie`

        scopes:
        - admin:checkout
        - write:checkout
      x-scopes:
        - admin:checkout
        - write:checkout
      security:
        - JWT: []
        - apikey: []
      tags:
        - Transactions
      parameters:
        - $ref: '#/components/parameters/TransactionId'
        - name: includes
          in: query
          description: >
            Include aditional data in the returned data that are by default
            excluded from the transaction details.


            - **`events.request_headers`** Include the event headers stored for
            each event **deprecated**

            - **`initiating_system_request_headers`** Include the request
            headers from the initating system **deprecated**


            From 2023-09, `events.request_headers` and
            `initiating_system_request_headers` will be included by default
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - events.request_headers
                - initiating_system_request_headers
        - $ref: '#/components/parameters/DinteroSystemName'
        - $ref: '#/components/parameters/DinteroSystemVersion'
        - $ref: '#/components/parameters/DinteroSystemPluginName'
        - $ref: '#/components/parameters/DinteroSystemPluginVersion'
      responses:
        '200':
          description: Transaction voided
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Transaction'
        '202':
          $ref: '#/components/responses/TransactionOperationAccepted'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        '503':
          $ref: '#/components/responses/ProcessorTemporarilyUnavailable'
      x-mint:
        metadata:
          title: Void transaction
          sidebarTitle: Void transaction
  /transactions/events/settlements:
    post:
      operationId: transactions_events_settlements_post
      summary: transactions_events_settlements_post
      description: |
        Add settlement events to list of transactions

        scopes:
        - admin:checkout
      tags:
        - Transactions
      x-scopes:
        - admin:checkout
      security:
        - JWT: []
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - required:
                    - transactions
                  properties:
                    transactions:
                      type: array
                      minItems: 1
                      maxItems: 100
                      description: |
                        Each transaction can have multiple settlements
                      items:
                        type: object
                        required:
                          - id
                          - settlements
                        properties:
                          id:
                            type: string
                            description: |
                              The transaction id
                            example: P00000000.465UfBENeLpkBvwmqfTC4k
                          settlements:
                            $ref: '#/components/schemas/TransactionSettlementsWrite'
        required: true
      responses:
        '200':
          description: Transactions updated
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Transaction'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Update transactions with settlements
          sidebarTitle: Update transactions with settlements
  /card-tokens/{token_id}:
    get:
      operationId: card_tokens_token_id_get
      summary: card_tokens_token_id_get
      description: |
        scopes:
        - admin:checkout
      x-scopes:
        - admin:checkout
      security:
        - JWT: []
        - apikey: []
      tags:
        - Card Tokens
      parameters:
        - name: token_id
          in: path
          required: true
          description: |
            `payment_token_id` or `recurrence_token_id`
          schema:
            type: string
      responses:
        '200':
          description: Card Token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardTokenRead'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Get card token
          sidebarTitle: Get card token
    delete:
      operationId: card_tokens_token_id_delete
      summary: card_tokens_token_id_delete
      description: |
        scopes:
        - admin:checkout
      x-scopes:
        - admin:checkout
      security:
        - JWT: []
        - apikey: []
      tags:
        - Card Tokens
      parameters:
        - name: token_id
          in: path
          required: true
          description: >
            The `payment_token_id` or `recurrence_token_id` for the token to
            delete.
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                reason:
                  type: string
                  maxLength: 128
                  description: Short description of the reason for the token deletion.
                  example: Profile deleted
                requestor:
                  type: string
                  enum:
                    - CARDHOLDER
                    - MERCHANT
                  default: MERCHANT
                  description: Entity initiating the token deletion.
                  example: MERCHANT
        required: true
      responses:
        '200':
          description: Card Token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardTokenRead'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Delete card token
          sidebarTitle: Delete card token
  /card-tokens:
    get:
      operationId: card_tokens_get
      summary: card_tokens_get
      description: >
        Use query parameters to filter the search. 

        To list all Transactions related to a Card Token, use [GET
        /v1/transactions](/api-reference/transactions/transactions_get) with
        query `?search={token_id}`.


        scopes:

        - admin:checkout
      x-scopes:
        - admin:checkout
      security:
        - JWT: []
        - apikey: []
      tags:
        - Card Tokens
      parameters:
        - name: customer_id
          in: query
          description: |
            Filter by customer_id
          schema:
            type: string
        - name: relationship_id
          in: query
          description: |
            Filter by relationship_id
          schema:
            type: string
        - name: status
          in: query
          description: |
            Filter by status
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - ACTIVE
                - INACTIVE
                - SUSPENDED
                - CANCELLED
                - DELETED
        - name: include_deleted
          description: |
            Include deleted card tokens in the response
          in: query
          schema:
            type: boolean
            default: false
        - $ref: '#/components/parameters/Limit'
        - name: starting_after
          in: query
          description: >
            The cursor to use in the next request to get the next page of
            results
          schema:
            type: string
      responses:
        '200':
          description: Card Tokens
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CardTokenRead'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: List card tokens
          sidebarTitle: List card tokens
  /admin/api-keys:
    post:
      operationId: admin_api_keys_post
      summary: admin_api_keys_post
      description: |
        scopes:
        - admin:checkout
      tags:
        - api-keys
      x-scopes:
        - admin:checkout
        - write:checkout
      security:
        - adminKey: []
        - JWT: []
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/ApiKey'
                - $ref: '#/components/schemas/ApiKeyValue'
                - properties:
                    api_key:
                      type: string
                      description: specify the api-key
                      pattern: ^[PT]{1}\d{8}.*$
        required: true
      responses:
        '200':
          description: api-key
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiKeyRead'
                  - properties:
                      api_key:
                        type: string
                        readOnly: true
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Create api-key
          sidebarTitle: Create api-key
    get:
      operationId: admin_api_keys_get
      summary: admin_api_keys_get
      description: |
        scopes:
        - admin:checkout
      tags:
        - api-keys
      x-scopes:
        - admin:checkout
      security:
        - adminKey: []
        - JWT: []
      parameters:
        - name: include_deleted
          description: |
            include deleted api-keys in the response
          in: query
          schema:
            type: boolean
            default: false
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/StartingAfter'
      responses:
        '200':
          description: api keys
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiKeyRead'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: List api-keys
          sidebarTitle: List api-keys
  /admin/api-keys/{api_key_id}:
    delete:
      operationId: admin_parameters_api_key_delete
      summary: admin_parameters_api_key_delete
      description: |
        scopes:
        - admin:checkout
      tags:
        - api-keys
      x-scopes:
        - admin:checkout
      security:
        - adminKey: []
        - JWT: []
      parameters:
        - name: api_key_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: api-key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiKeyRead'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Delete api-key
          sidebarTitle: Delete api-key
  /admin/api-keys/{api_key_id}/rotate-api-key:
    post:
      operationId: admin_api_keys_api_key_id_rotate_post
      summary: admin_api_keys_api_key_id_rotate_post
      description: |
        scopes:
        - admin:checkout
      tags:
        - api-keys
      x-scopes:
        - admin:checkout
      security:
        - adminKey: []
        - JWT: []
      parameters:
        - name: api_key_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: api-key
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiKeyRead'
                  - properties:
                      api_key:
                        type: string
                        readOnly: true
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Rotate api-key
          sidebarTitle: Rotate api-key
  /admin/merchant-certificates:
    get:
      operationId: admin_merchant_certificates_get
      summary: admin_merchant_certificates_get
      description: |
        Returns all payment keys/certificates for the account and provider.
        Defaults to `apple_pay` when `provider` is omitted.

        scopes:
        - admin:checkout
      tags:
        - merchant-certificates
      x-scopes:
        - admin:checkout
      security:
        - JWT: []
        - adminKey: []
      parameters:
        - name: provider
          in: query
          required: false
          description: |
            Filter keys by provider. Defaults to apple_pay.
          schema:
            type: string
        - name: limit
          in: query
          required: false
          description: |
            Maximum number of keys to return. Defaults to 10.
          schema:
            type: integer
            minimum: 1
        - name: starting_after
          in: query
          required: false
          description: |
            Cursor for pagination: the `id` of the last key from the
            previous page. Returns keys created before that key.
          schema:
            type: string
        - name: include_deleted
          in: query
          required: false
          description: |
            Include revoked/expired keys in the response. Defaults to false.
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: List of payment keys
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PaymentKey'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: List payment keys
          sidebarTitle: List payment keys
    post:
      operationId: admin_merchant_certificates_post
      summary: admin_merchant_certificates_post
      description: |
        Generates an ECC-P256 key pair in PSP and returns a Certificate
        Signing Request (CSR) in base64-encoded DER format. The certificate
        subject is determined by PSP; submit the CSR to Apple to obtain a
        signed certificate, then upload it via the certificate endpoint.

        scopes:
        - admin:checkout
      tags:
        - merchant-certificates
      x-scopes:
        - admin:checkout
      security:
        - JWT: []
        - adminKey: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentKeyGenerateRequest'
        required: true
      responses:
        '201':
          description: Payment key created with CSR
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentKeyGenerated'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Generate payment key CSR
          sidebarTitle: Generate payment key CSR
  /admin/merchant-certificates/{key_id}:
    delete:
      operationId: admin_merchant_certificates_key_id_delete
      summary: admin_merchant_certificates_key_id_delete
      description: |
        Revokes a payment key/certificate in PSP. Revoked keys cannot be used
        for Apple Pay payments. `key_id` alone identifies the key; no
        provider is needed.

        scopes:
        - admin:checkout
      tags:
        - merchant-certificates
      x-scopes:
        - admin:checkout
      security:
        - JWT: []
        - adminKey: []
      parameters:
        - name: key_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Key revoked
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentKeyRevoked'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Revoke a payment key
          sidebarTitle: Revoke a payment key
  /admin/merchant-certificates/{key_id}/certificate:
    post:
      operationId: admin_merchant_certificates_key_id_certificate_post
      summary: admin_merchant_certificates_key_id_certificate_post
      description: |
        Uploads the Apple-signed certificate for a previously generated key.
        The certificate must be in base64-encoded DER format. On success the
        key transitions to active status and can be used for Apple Pay
        payments. `key_id` alone identifies the key; no provider is needed.

        scopes:
        - admin:checkout
      tags:
        - merchant-certificates
      x-scopes:
        - admin:checkout
      security:
        - JWT: []
        - adminKey: []
      parameters:
        - name: key_id
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentKeyCertificateRequest'
        required: true
      responses:
        '200':
          description: Certificate uploaded, key is now active
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentKeyActive'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Upload payment key certificate
          sidebarTitle: Upload payment key certificate
  /admin/checkout:
    put:
      operationId: admin_checkout_id_put
      summary: admin_checkout_id_put
      description: |
        scopes:
        - admin:checkout
        - write:checkout:/admin/checkout
      tags:
        - checkout
      x-scopes:
        - admin:checkout
        - write:checkout:/admin/checkout
      security:
        - adminKey: []
        - JWT: []
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/CheckoutConfigWrite'
        required: true
      responses:
        '200':
          description: Payment configuration
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Id'
                  - $ref: '#/components/schemas/CheckoutConfig'
                  - $ref: '#/components/schemas/CheckoutConfigWrite'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Update payment checkout configuration
          sidebarTitle: Update payment checkout configuration
    get:
      operationId: admin_checkout_id_get
      summary: admin_checkout_id_get
      description: |
        scopes:
        - admin:checkout
        - read:checkout
      tags:
        - checkout
      x-scopes:
        - admin:checkout
        - read:checkout
      security:
        - adminKey: []
        - JWT: []
      parameters:
        - name: includes
          in: query
          description: >
            Include aditional data that are by default excluded from the
            checkout details.


            - **`credentials`**: Include credentials details for gateways.
              Only available with `admin:checkout` scope.
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - credentials
      responses:
        '200':
          description: Payment configuration
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Id'
                  - $ref: '#/components/schemas/CheckoutConfig'
                  - $ref: '#/components/schemas/CheckoutConfigWrite'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Get payment checkout configuration
          sidebarTitle: Get payment checkout configuration
  /view/{session_id}/netaxept:
    get:
      operationId: checkout_sid_netaxept_html_get
      summary: checkout_sid_netaxept_html_get
      tags:
        - netaxept
      security: []
      parameters:
        - $ref: '#/components/parameters/SessionId'
        - name: language
          in: query
          description: >
            Indicates which language is used in the Netaxept hosted payment
            window
          schema:
            type: string
            enum:
              - no_NO
              - sv_SE
              - da_DK
              - fi_FI
              - en_GB
              - de_DE
              - fr_FR
              - ru_RU
              - pl_PL
              - nl_NL
              - es_ES
              - it_IT
              - pt_PT
              - et_EE
              - lv_LV
              - lt_LT
            default: no_NO
      responses:
        '302':
          description: Netaxept hosted payment window
          headers:
            Location:
              description: |
                the URL to redirect to Netaxept hosted payment window
              schema:
                type: string
      x-mint:
        metadata:
          title: Redirect to Netaxept hosted payment window
          sidebarTitle: Redirect to Netaxept hosted payment window
  /view/{session_id}/payex/{payment_id}/status:
    get:
      operationId: checkout_sid_payex_payment_get
      summary: checkout_sid_payex_payment_get
      tags:
        - payex
      security: []
      parameters:
        - $ref: '#/components/parameters/SessionId'
        - name: payment_id
          in: path
          required: true
          schema:
            type: string
        - name: query_gateway
          in: query
          description: |
            Resolve payment status from PayEx
          schema:
            type: boolean
            default: false
      responses:
        '200':
          description: PayEx payment completed, go to next step.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionPayPollStatus'
        '202':
          description: PayEx payment not completed, keep polling.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionPayPollStatus'
        '404':
          description: PayEx payment not found.
      x-mint:
        metadata:
          title: Get status of session PayEx payment
          sidebarTitle: Get status of session PayEx payment
  /view/{session_id}/swish/{payment_request_id}/status:
    get:
      operationId: checkout_sid_swish_get
      summary: checkout_sid_swish_get
      description: >
        Get status about the Swish session. Will check if the session contains a
        transaction_id,

        and if the transaction is paid with the given Swish payment_request_id.
      tags:
        - swish
      security: []
      parameters:
        - $ref: '#/components/parameters/SessionId'
        - name: payment_request_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Swish payment completed, go to next step.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionPayPollStatus'
        '202':
          description: Swish payment not completed, keep polling.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionPayPollStatus'
        '404':
          description: Swish payment not found.
      x-mint:
        metadata:
          title: Get status about the Swish session.
          sidebarTitle: Get status about the Swish session.
  /view/{session_id}/vipps:
    get:
      operationId: checkout_sid_html_vipps_get
      summary: checkout_sid_html_vipps_get
      tags:
        - vipps
      security: []
      parameters:
        - $ref: '#/components/parameters/SessionId'
      responses:
        '302':
          description: Checkout page
          headers:
            Location:
              description: |
                the URL to redirect to Vipps
                - `sid` will be used to find the approval url
              schema:
                type: string
      x-mint:
        metadata:
          title: Get the Vipps push notification page
          sidebarTitle: Get the Vipps push notification page
  /admin/gateways/bambora:
    put:
      operationId: admin_checkout_id_gw_bambora_put
      summary: admin_checkout_id_gw_bambora_put
      description: |
        scopes:
        - admin:dintero
      tags:
        - bambora-gateway
      x-scopes:
        - admin:dintero
        - write:checkout:/admin/gateways
      security:
        - adminKey: []
        - JWT: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - bambora
              properties:
                bambora:
                  $ref: '#/components/schemas/BamboraGwWrite'
        required: true
      responses:
        '204':
          description: Gateway updated
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Update Bambora gateway
          sidebarTitle: Update Bambora gateway
  /admin/gateways/collector/credentials:
    put:
      operationId: admin_gateways_collector_credentials_put
      summary: admin_gateways_collector_credentials_put
      description: |
        scopes:
        - admin:dintero
      tags:
        - collector-gateway
      x-scopes:
        - admin:dintero
        - write:checkout:/admin/gateways
      security:
        - adminKey: []
        - JWT: []
      parameters:
        - name: overwrite
          description: Overwrite an existing credentials
          in: query
          schema:
            type: boolean
            default: false
        - name: validate_credential
          in: query
          schema:
            type: boolean
            default: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CollectorCredential'
        required: true
      responses:
        '200':
          description: Updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialResponse'
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Create Collector credentials
          sidebarTitle: Create Collector credentials
  /admin/gateways/collector/override:
    put:
      operationId: admin_checkout_id_gw_override_collector_put
      summary: admin_checkout_id_gw_override_collector_put
      description: |
        scopes:
        - admin:dintero
      tags:
        - collector-gateway
      x-scopes:
        - admin:dintero
        - write:checkout:/admin/gateways
      security:
        - adminKey: []
        - JWT: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - store_id
              properties:
                store_id:
                  type: string
                override:
                  description: >-
                    Override properties for given store. Will delete override if
                    null.
                  allOf:
                    - $ref: '#/components/schemas/CollectorGwStoreOverrideWrite'
                  nullable: true
      responses:
        '204':
          description: Gateway updated
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Update overrides for Collector Gateway
          sidebarTitle: Update overrides for Collector Gateway
  /admin/gateways/collector:
    put:
      operationId: admin_checkout_id_gw_collector_put
      summary: admin_checkout_id_gw_collector_put
      description: |
        scopes:
        - admin:dintero
      tags:
        - collector-gateway
      x-scopes:
        - admin:dintero
        - write:checkout:/admin/gateways
      security:
        - adminKey: []
        - JWT: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - collector
              properties:
                collector:
                  $ref: '#/components/schemas/CollectorGwWrite'
        required: true
      responses:
        '204':
          description: Gateway updated
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Update Collector gateway
          sidebarTitle: Update Collector gateway
  /admin/gateways/{gateway}/status:
    post:
      operationId: admin_checkout_gw_type_status_post
      summary: admin_checkout_gw_type_status_post
      description: |
        verify the gateway configuration

        scopes:
        - admin:checkout
        - write:checkout:/admin/gateways
      tags:
        - gateways
      x-scopes:
        - admin:checkout
        - write:checkout:/admin/gateways
      security:
        - adminKey: []
        - JWT: []
      parameters:
        - name: gateway
          in: path
          required: true
          schema:
            type: string
            enum:
              - bambora
              - collector
              - instabank
              - netaxept
              - payex
              - santander
              - swish
              - vipps
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GatewayStatusResponse'
      responses:
        '200':
          description: Gateway status
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: number
                    description: the gateway status
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Check gateway status
          sidebarTitle: Check gateway status
  /admin/gateways/instabank:
    put:
      operationId: admin_checkout_id_gw_instabank_put
      summary: admin_checkout_id_gw_instabank_put
      description: |
        scopes:
        - admin:dintero
      tags:
        - instabank-gateway
      x-scopes:
        - admin:dintero
        - write:checkout:/admin/gateways
      security:
        - adminKey: []
        - JWT: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - instabank
              properties:
                instabank:
                  $ref: '#/components/schemas/InstabankGwWrite'
        required: true
      responses:
        '204':
          description: Gateway updated
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Update Instabank gateway
          sidebarTitle: Update Instabank gateway
  /admin/gateways/klarna/credentials:
    put:
      operationId: admin_gateways_klarna_credentials_put
      summary: admin_gateways_klarna_credentials_put
      description: |
        scopes:
        - admin:dintero
      tags:
        - klarna-gateway
      x-scopes:
        - admin:dintero
        - write:checkout:/admin/gateways
      security:
        - adminKey: []
        - JWT: []
      parameters:
        - name: overwrite
          description: Overwrite an existing credential
          in: query
          schema:
            type: boolean
            default: false
        - name: validate_credential
          in: query
          schema:
            type: boolean
            default: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KlarnaCredential'
        required: true
      responses:
        '200':
          description: Updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialResponse'
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Create Klarna credentials
          sidebarTitle: Create Klarna credentials
  /admin/gateways/klarna:
    put:
      operationId: admin_checkout_id_gw_klarna_put
      summary: admin_checkout_id_gw_klarna_put
      description: |
        scopes:
        - admin:dintero
      tags:
        - klarna-gateway
      x-scopes:
        - admin:dintero
        - write:checkout:/admin/gateways
      security:
        - adminKey: []
        - JWT: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - klarna
              properties:
                klarna:
                  $ref: '#/components/schemas/KlarnaGwWrite'
        required: true
      responses:
        '204':
          description: Gateway updated
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Update Klarna gateway
          sidebarTitle: Update Klarna gateway
  /admin/gateways/netaxept/override:
    put:
      operationId: admin_checkout_id_gw_override_netaxept_put
      summary: admin_checkout_id_gw_override_netaxept_put
      description: |
        scopes:
        - admin:dintero
      tags:
        - netaxept-gateway
      x-scopes:
        - admin:dintero
        - write:checkout:/admin/gateways
      security:
        - adminKey: []
        - JWT: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - store_id
              properties:
                store_id:
                  type: string
                override:
                  description: >-
                    Override properties for given store. Will delete override if
                    null.
                  allOf:
                    - $ref: '#/components/schemas/NetaxeptGwStoreOverride'
                  nullable: true
      responses:
        '204':
          description: Gateway updated
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Update overrides for Netaxept Gateway
          sidebarTitle: Update overrides for Netaxept Gateway
  /admin/gateways/netaxept:
    put:
      operationId: admin_checkout_id_gw_netaxept_put
      summary: admin_checkout_id_gw_netaxept_put
      description: |
        scopes:
        - admin:dintero
      tags:
        - netaxept-gateway
      x-scopes:
        - admin:dintero
        - write:checkout:/admin/gateways
      security:
        - adminKey: []
        - JWT: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - netaxept
              properties:
                netaxept:
                  $ref: '#/components/schemas/NetaxeptGwWrite'
        required: true
      responses:
        '204':
          description: Gateway updated
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Update Netaxept gateway
          sidebarTitle: Update Netaxept gateway
  /admin/gateways/payex/credentials:
    put:
      operationId: admin_gateways_payex_credentials_put
      summary: admin_gateways_payex_credentials_put
      description: |
        scopes:
        - admin:dintero
      tags:
        - payex-gateway
      x-scopes:
        - admin:dintero
        - write:checkout:/admin/gateways
      security:
        - adminKey: []
        - JWT: []
      parameters:
        - name: overwrite
          description: Overwrite an existing credential
          in: query
          schema:
            type: boolean
            default: false
        - name: validate_credential
          in: query
          schema:
            type: boolean
            default: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PayExCredential'
        required: true
      responses:
        '200':
          description: Updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialResponse'
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Create PayEx credentials
          sidebarTitle: Create PayEx credentials
  /admin/gateways/payex/override:
    put:
      operationId: admin_checkout_id_gw_override_payex_put
      summary: admin_checkout_id_gw_override_payex_put
      description: |
        scopes:
        - admin:dintero
      tags:
        - payex-gateway
      x-scopes:
        - admin:dintero
        - write:checkout:/admin/gateways
      security:
        - adminKey: []
        - JWT: []
      parameters:
        - name: keep_versions
          description: |
            keep existing override versions when updating the overridej
          in: query
          schema:
            type: boolean
            default: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - store_id
              properties:
                store_id:
                  type: string
                override:
                  description: >-
                    Override properties for given store. Will delete override if
                    null.
                  allOf:
                    - $ref: '#/components/schemas/PayExGwStoreOverride'
                    - $ref: '#/components/schemas/GwVersionWrite'
                  nullable: true
      responses:
        '204':
          description: Gateway updated
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Update overrides for PayEx Gateway
          sidebarTitle: Update overrides for PayEx Gateway
  /admin/gateways/payex:
    put:
      operationId: admin_checkout_id_gw_payex_put
      summary: admin_checkout_id_gw_payex_put
      description: |
        scopes:
        - admin:dintero
      tags:
        - payex-gateway
      x-scopes:
        - admin:dintero
        - write:checkout:/admin/gateways
      security:
        - adminKey: []
        - JWT: []
      parameters:
        - name: keep_overrides
          description: |
            keep existing overrides when updating the gateway
          in: query
          schema:
            type: boolean
            default: true
        - name: keep_versions
          description: |
            keep existing overrides when updating the gateway
          in: query
          schema:
            type: boolean
            default: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - payex
              properties:
                payex:
                  allOf:
                    - $ref: '#/components/schemas/PayExGwWrite'
                    - $ref: '#/components/schemas/GwVersionWrite'
        required: true
      responses:
        '204':
          description: Gateway updated
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Update PayEx gateway
          sidebarTitle: Update PayEx gateway
  /admin/gateways/santander/override:
    put:
      operationId: admin_checkout_id_gw_override_santander_put
      summary: admin_checkout_id_gw_override_santander_put
      description: |
        scopes:
        - admin:dintero
      tags:
        - santander-gateway
      x-scopes:
        - admin:dintero
        - write:checkout:/admin/gateways
      security:
        - adminKey: []
        - JWT: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - store_id
              properties:
                store_id:
                  type: string
                override:
                  description: >-
                    Override properties for given store. Will delete override if
                    null.
                  allOf:
                    - $ref: '#/components/schemas/SantanderGwStoreOverrideWrite'
                  nullable: true
      responses:
        '204':
          description: Gateway updated
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Update store override for Santander gateway
          sidebarTitle: Update store override for Santander gateway
  /admin/gateways/santander:
    put:
      operationId: admin_checkout_id_gw_santander_put
      summary: admin_checkout_id_gw_santander_put
      description: |
        scopes:
        - admin:dintero
      tags:
        - santander-gateway
      x-scopes:
        - admin:dintero
        - write:checkout:/admin/gateways
      security:
        - adminKey: []
        - JWT: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - santander
              properties:
                santander:
                  $ref: '#/components/schemas/SantanderGwWrite'
        required: true
      responses:
        '204':
          description: Gateway updated
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Update Santander gateway
          sidebarTitle: Update Santander gateway
  /admin/gateways/swish/override:
    put:
      operationId: admin_checkout_id_gw_override_swish_put
      summary: admin_checkout_id_gw_override_swish_put
      description: |
        scopes:
        - admin:dintero
      tags:
        - swish-gateway
      x-scopes:
        - admin:dintero
        - write:checkout:/admin/gateways
      security:
        - adminKey: []
        - JWT: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - store_id
              properties:
                store_id:
                  type: string
                override:
                  description: >-
                    Override properties for given store. Will delete override if
                    null.
                  allOf:
                    - $ref: '#/components/schemas/SwishGwStoreOverrideWrite'
                  nullable: true
      responses:
        '204':
          description: Gateway updated
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Update store override for Swish gateway
          sidebarTitle: Update store override for Swish gateway
  /admin/gateways/swish:
    put:
      operationId: admin_checkout_id_gw_swish_put
      summary: admin_checkout_id_gw_swish_put
      description: |
        scopes:
        - admin:dintero
      tags:
        - swish-gateway
      x-scopes:
        - admin:dintero
        - write:checkout:/admin/gateways
      security:
        - adminKey: []
        - JWT: []
      parameters:
        - name: keep_overrides
          description: |
            keep existing overrides when updating the gateway
          in: query
          schema:
            type: boolean
            default: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - swish
              properties:
                swish:
                  $ref: '#/components/schemas/SwishGwWrite'
        required: true
      responses:
        '204':
          description: Gateway updated
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Update Swish gateway
          sidebarTitle: Update Swish gateway
  /admin/gateways/vipps/override:
    put:
      operationId: admin_checkout_id_gw_override_vipps_put
      summary: admin_checkout_id_gw_override_vipps_put
      description: |
        scopes:
        - admin:dintero
      tags:
        - vipps-gateway
      x-scopes:
        - admin:dintero
        - write:checkout:/admin/gateways
      security:
        - adminKey: []
        - JWT: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - store_id
              properties:
                store_id:
                  type: string
                override:
                  description: >-
                    Override properties for given store. Will delete override if
                    null.
                  allOf:
                    - $ref: '#/components/schemas/VippsGwStoreOverrideWrite'
                  nullable: true
      responses:
        '204':
          description: Gateway updated
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Update overrides for Vipps Gateway
          sidebarTitle: Update overrides for Vipps Gateway
  /admin/gateways/vipps:
    put:
      operationId: admin_checkout_id_gw_vipps_put
      summary: admin_checkout_id_gw_vipps_put
      description: |
        scopes:
        - admin:dintero
      tags:
        - vipps-gateway
      x-scopes:
        - admin:dintero
        - write:checkout:/admin/gateways
      security:
        - adminKey: []
        - JWT: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - vipps
              properties:
                vipps:
                  $ref: '#/components/schemas/VippsGwWrite'
        required: true
      responses:
        '204':
          description: Gateway updated
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Update Vipps gateway
          sidebarTitle: Update Vipps gateway
  /admin/gateways/dintero_psp:
    put:
      operationId: admin_checkout_id_gw_psp_put
      summary: admin_checkout_id_gw_psp_put
      description: |
        scopes:
        - admin:dintero
      tags:
        - dintero-psp-gateway
      x-scopes:
        - admin:dintero
        - write:checkout:/admin/gateways
      security:
        - adminKey: []
        - JWT: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - dintero_psp
              properties:
                dintero_psp:
                  allOf:
                    - $ref: '#/components/schemas/DinteroPspGwRead'
        required: true
      responses:
        '204':
          description: Gateway updated
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Update Dintero PSP gateway
          sidebarTitle: Update Dintero PSP gateway
  /admin/gateways/kravia:
    put:
      operationId: admin_checkout_id_gw_kravia_put
      summary: admin_checkout_id_gw_kravia_put
      description: |
        scopes:
        - admin:dintero
      tags:
        - kravia-gateway
      x-scopes:
        - admin:dintero
        - write:checkout:/admin/gateways
      security:
        - adminKey: []
        - JWT: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - kravia
              properties:
                kravia:
                  $ref: '#/components/schemas/KraviaGwRead'
        required: true
      responses:
        '204':
          description: Gateway updated
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Update Kravia gateway
          sidebarTitle: Update Kravia gateway
  /admin/gateways/two:
    put:
      operationId: admin_checkout_id_gw_two_put
      summary: admin_checkout_id_gw_two_put
      description: |
        scopes:
        - admin:dintero
      tags:
        - two-gateway
      x-scopes:
        - admin:dintero
        - write:checkout:/admin/gateways
      security:
        - adminKey: []
        - JWT: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - two
              properties:
                two:
                  $ref: '#/components/schemas/TwoGwRead'
        required: true
      responses:
        '204':
          description: Gateway updated
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Update Two B2B gateway
          sidebarTitle: Update Two B2B gateway
  /admin/terminals/operations:
    get:
      operationId: admin_terminals_operations_get
      summary: admin_terminals_operations_get
      description: >
        List terminal operations. Supports filtering by terminal_id and
        operation_id.


        scopes:

        - admin:checkout

        - read:checkout:/admin/terminals
      tags:
        - terminals
      x-scopes:
        - admin:checkout
        - read:checkout:/admin/terminals
      security:
        - JWT: []
      parameters:
        - name: terminal_id
          in: query
          description: Filter operations by terminal identifier.
          schema:
            type: string
        - name: operation_id
          in: query
          description: Filter by operation identifier.
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Terminal operations
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TerminalOperation'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: List terminal operation results
          sidebarTitle: List terminal operation results
    post:
      operationId: admin_terminals_operations_post
      summary: admin_terminals_operations_post
      description: |
        Send a command to a payment terminal.

        The response is returned immediately after the command is dispatched
        to the terminal. The terminal's response is processed asynchronously.

        scopes:
        - admin:checkout
        - write:checkout:/admin/terminals
      tags:
        - terminals
      x-scopes:
        - admin:checkout
        - write:checkout:/admin/terminals
      security:
        - JWT: []
      parameters:
        - name: Idempotency-Key
          in: header
          description: >-
            Optional idempotency key to ensure the operation is only executed
            once.
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TerminalOperationRequest'
        required: true
      responses:
        '200':
          description: Terminal operation created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TerminalOperation'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          description: Operation already pending for terminal
          headers:
            Retry-After:
              description: |
                Indicates how many seconds to wait before retrying.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Post terminal operation
          sidebarTitle: Post terminal operation
  /admin/session/profiles/{profile_id}:
    get:
      operationId: admin_session_profile_details_get
      summary: admin_session_profile_details_get
      description: |
        scopes:
        - admin:checkout
        - write:checkout:/admin/session/profiles
        - read:checkout
      tags:
        - profiles
      x-scopes:
        - admin:checkout
        - read:checkout
      security:
        - adminKey: []
        - JWT: []
      parameters:
        - name: profile_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Session profile
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Id'
                  - $ref: '#/components/schemas/ProfileConfiguration'
                  - $ref: '#/components/schemas/ProfileConfigurationResponse'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Get session profile details
          sidebarTitle: Get session profile details
    put:
      operationId: admin_session_profile_details_put
      summary: admin_session_profile_details_put
      description: |
        scopes:
        - admin:checkout
        - write:checkout:/admin/session/profiles
      tags:
        - profiles
      x-scopes:
        - admin:checkout
        - write:checkout:/admin/session/profiles
      security:
        - adminKey: []
        - JWT: []
      parameters:
        - name: profile_id
          in: path
          required: true
          schema:
            type: string
      requestBody:
        $ref: >-
          #/components/requestBodies/admin_session_profile_details_putConfiguration
      responses:
        '200':
          description: Session profile
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ProfileConfiguration'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Update session profile
          sidebarTitle: Update session profile
    delete:
      operationId: admin_session_profile_details_delete
      summary: admin_session_profile_details_delete
      description: |
        scopes:
        - admin:checkout
        - write:checkout:/admin/session/profiles
      tags:
        - profiles
      security:
        - adminKey: []
        - JWT: []
      x-scopes:
        - admin:checkout
        - write:checkout:/admin/session/profiles
      parameters:
        - name: profile_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Session profile
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Id'
                  - $ref: '#/components/schemas/ProfileConfiguration'
                  - $ref: '#/components/schemas/ProfileConfigurationResponse'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Delete session profile
          sidebarTitle: Delete session profile
  /admin/session/profiles:
    post:
      operationId: admin_session_profile_post
      summary: admin_session_profile_post
      description: |
        scopes:
        - admin:checkout
        - write:checkout:/admin/session/profiles
        - read:checkout
      tags:
        - profiles
      x-scopes:
        - admin:checkout
        - write:checkout:/admin/session/profiles
        - read:checkout
      security:
        - adminKey: []
        - JWT: []
      requestBody:
        $ref: >-
          #/components/requestBodies/admin_session_profile_details_putConfiguration
      responses:
        '200':
          description: Session profile
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Id'
                  - $ref: '#/components/schemas/ProfileConfiguration'
                  - $ref: '#/components/schemas/ProfileConfigurationResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Create session profile
          sidebarTitle: Create session profile
    get:
      operationId: admin_session_profile_get
      summary: admin_session_profile_get
      description: |
        scopes:
        - admin:checkout
      tags:
        - profiles
      x-scopes:
        - admin:checkout
      security:
        - adminKey: []
        - JWT: []
      parameters:
        - $ref: '#/components/parameters/Limit'
        - $ref: '#/components/parameters/StartingAfter'
      responses:
        '200':
          description: Payment configuration
          content:
            application/json:
              schema:
                type: array
                items:
                  allOf:
                    - $ref: '#/components/schemas/Id'
                    - $ref: '#/components/schemas/ProfileConfiguration'
                    - $ref: '#/components/schemas/ProfileConfigurationResponse'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: List profiles
          sidebarTitle: List profiles
  /admin/signature:
    post:
      operationId: admin_signature_post
      summary: admin_signature_post
      description: >
        Dintero can optionally sign all request it sends to your endpoints.


        We do so by including a signature in the request `Dintero-Signature`

        header. This allows you to verify that the request was done by

        Dintero, not by a third party.


        *`v0-hmac-sha256`*


        ```

        <timestamp>\n<account_id>\n<method>\n<hostname>\n<pathname>\n<query>

        ```


        ```

        secret: 123

        timestamp: 1582236537

        account_id: P00000000

        method: GET

        url: https://example.com/callback?B=123&A=992


        Dintero-Signature: t=1582236537,
            v0-hmac-sha256=6bed2ab1b919d460ef7465a20dc6c97260dca73fab6647106ca525f0908df64a
        ```


        > The timestamp (`t`) in the Dintero-Signature, is included in the
        signature payload to

        > mitigate `replay attach`. If your signature is valid but the timestamp
        is too old, you

        > can have your application reject the request. We recommend that your
        application have

        > a tolerance of five minutes between the timestamp and the current
        time.


        > *NOTE:* The query parameters must be sorted.


        scopes:

        - admin:checkout

        - write:checkout
      tags:
        - secrets
      x-scopes:
        - admin:checkout
        - write:checkout
      security:
        - adminKey: []
        - JWT: []
      responses:
        '200':
          description: signature secret
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SignatureV0'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Create signature secret
          sidebarTitle: Create signature secret
    get:
      operationId: admin_signature_get
      summary: admin_signature_get
      description: |
        Get the current signature secret Dintero uses when create the
        `Dintero-Signature` header included in requests it sends to your
        endpoints.

        scopes:
        - admin:checkout
        - read:checkout
      tags:
        - secrets
      x-scopes:
        - admin:checkout
        - read:checkout
      security:
        - adminKey: []
        - JWT: []
      responses:
        '200':
          description: signature secret
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SignatureV0'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Get signature secret
          sidebarTitle: Get signature secret
  /branding/logos/{logos}/variant/{variant}/color/{color}/width/{width}/{template}:
    get:
      operationId: branding_logoframe
      summary: branding_logoframe
      description: >-
        Endpoint that returns an svg that can be used to show the world your
        payment options. [Go to the documentation for the checkout branding
        endpoints.](/docs/checkout/display-payment-logos)
      security: []
      tags:
        - Generate checkout image
      parameters:
        - name: logos
          description: >
            logos for payment types separated by underscore eg.
            `visa_mastercard_vipps_swish_instabank`
          in: path
          required: true
          schema:
            type: string
        - name: variant
          description: |
            Image variant, multi-colors or mono-colored.
          in: path
          required: true
          schema:
            type: string
            enum:
              - colors
              - mono
        - name: color
          description: >
            rgb hex color without the \# character or an rbg() or rgba() color
            code.
          in: path
          required: true
          schema:
            type: string
        - name: width
          description: |
            width of image
          in: path
          required: true
          schema:
            type: string
            pattern: ^[0-9]*$
        - name: template
          description: |
            Template for branding image
          in: path
          required: true
          schema:
            type: string
            enum:
              - dintero_top_frame.svg
              - logos.svg
      responses:
        '200':
          description: An svg image
        '404':
          description: Not found
      x-mint:
        metadata:
          title: Get payment logos image
          sidebarTitle: Get payment logos image
  /branding/profiles/{profile_id}/variant/{variant}/color/{color}/width/{width}/{template}:
    get:
      operationId: branding_profile
      summary: branding_profile
      description: >-
        Endpoint that returns an svg that can be used to show the world your
        payment options. [Go to the documentation for the checkout branding
        endpoints.](/docs/checkout/display-payment-logos)
      tags:
        - Generate checkout image
      parameters:
        - name: profile_id
          description: |
            Profile Id like `P00112233.abc123def321aAabBb9z9cccDdd`
          in: path
          required: true
          schema:
            type: string
        - name: variant
          description: |
            Image variant, multi-colors or mono-colored.
          in: path
          required: true
          schema:
            type: string
            enum:
              - colors
              - mono
        - name: color
          description: >
            rgb hex color without the \# character or an rbg() or rgba() color
            code
          in: path
          required: true
          schema:
            type: string
        - name: width
          description: |
            width of image
          in: path
          required: true
          schema:
            type: string
            pattern: ^[0-9]*$
        - name: template
          description: |
            Template for branding image
          in: path
          required: true
          schema:
            type: string
            enum:
              - dintero_top_frame.svg
              - logos.svg
      responses:
        '200':
          description: svg image
        '404':
          description: Not found
      x-mint:
        metadata:
          title: Get checkout profile image
          sidebarTitle: Get checkout profile image
  /callbacks/collector/antifraud:
    get:
      operationId: checkout_sid_collector_callback_post
      summary: checkout_sid_collector_callback_post
      tags:
        - collector
      security: []
      parameters:
        - name: InvoiceNo
          in: query
          required: true
          schema:
            type: string
        - name: OrderNo
          in: query
          required: true
          schema:
            type: string
        - name: InvoiceStatus
          in: query
          required: true
          schema:
            type: integer
      responses:
        '202':
          description: callback handled
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Handle Collector Anti-fraud callback after an update
          sidebarTitle: Handle Collector Anti-fraud callback after an update
  /creditchecks:
    post:
      operationId: creditchecks_post
      summary: creditchecks_post
      description: |
        Perform a credit check

        scopes:
        - admin:checkout
        - write:checkout
      tags:
        - creditchecks
      x-scopes:
        - admin:checkout
        - write:checkout
      security:
        - JWT: []
        - apikey: []
      requestBody:
        content:
          application/json:
            schema:
              required:
                - credit_providers
                - amount
                - currency
                - applicant
              type: object
              properties:
                store:
                  type: object
                  properties:
                    id:
                      type: string
                      description: |
                        Identifiying store where the customer will use credit
                check_type:
                  description: >
                    * synchronous - (default) the answer will come directly in
                    the response
                  type: string
                  enum:
                    - synchronous
                credit_providers:
                  type: array
                  items:
                    type: string
                    enum:
                      - collector
                amount:
                  type: integer
                  description: |
                    reward amount for the the ref used,
                    monetary amount in smallest unit for the currency
                  example: 10000
                currency:
                  type: string
                  format: iso4217-code
                  example: NOK
                  description: >-
                    The three-character ISO-4217 currency.
                    https://en.wikipedia.org/wiki/ISO_4217
                applicant:
                  type: object
                  properties:
                    billing_address:
                      $ref: '#/components/schemas/OrderAddress'
      responses:
        '200':
          description: credit check result
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    description: Unique identifier of credit check
                    type: string
                    format: uuid
                  created_at:
                    type: string
                    format: date
                  amount:
                    description: The amount applied for
                    type: integer
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        credit_provider:
                          type: string
                          enum:
                            - collector
                        status:
                          type: string
                          enum:
                            - approved
                            - rejected
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Perform a credit check
          sidebarTitle: Perform a credit check
  /events/gateways/collector/idp/signin/test:
    get:
      operationId: checkout_collector_idp_signin_test_get
      summary: checkout_collector_idp_signin_test_get
      tags:
        - collector
      parameters:
        - name: code
          in: query
          schema:
            type: string
        - name: error
          in: query
          schema:
            type: string
        - name: error_description
          in: query
          schema:
            type: string
      security: []
      responses:
        '200':
          description: Result from authorization
      x-mint:
        metadata:
          title: Handle authorization redirect from test IdP
          sidebarTitle: Handle authorization redirect from test IdP
  /events/gateways/collector/idp/signin:
    get:
      operationId: checkout_collector_idp_signin_get
      summary: checkout_collector_idp_signin_get
      tags:
        - collector
      parameters:
        - name: code
          in: query
          schema:
            type: string
        - name: error
          in: query
          schema:
            type: string
        - name: error_description
          in: query
          schema:
            type: string
      security: []
      responses:
        '200':
          description: Result from authorization
      x-mint:
        metadata:
          title: Handle authorization redirect from IdP
          sidebarTitle: Handle authorization redirect from IdP
  /events/gateways/netaxept/transaction/hooks:
    post:
      operationId: checkout_netaxept_webhooks_post
      summary: checkout_netaxept_webhooks_post
      tags:
        - netaxept
      security: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                TransactionId:
                  type: string
        description: Content of webhook event
        required: true
      responses:
        '200':
          description: webhook handled
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Handle Netaxept callback
          sidebarTitle: Handle Netaxept callback
  /events/gateways/swish/transaction/payment/{session_id}/{callback_ref}:
    parameters:
      - $ref: '#/components/parameters/SessionId'
      - name: callback_ref
        in: path
        required: true
        schema:
          type: string
    post:
      operationId: checkout_swish_payment_callback_post
      summary: checkout_swish_payment_callback_post
      tags:
        - swish
      security: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SwishPaymentCallback'
        description: Content of payment callback
        required: true
      responses:
        '200':
          description: webhook handled
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Handle Swish payment callback
          sidebarTitle: Handle Swish payment callback
  /events/gateways/swish/transaction/refund/{id}/{callback_ref}:
    parameters:
      - $ref: '#/components/parameters/TransactionId'
      - name: callback_ref
        in: path
        required: true
        schema:
          type: string
    post:
      operationId: checkout_swish_refund_callback_post
      summary: checkout_swish_refund_callback_post
      tags:
        - swish
      security: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SwishRefundCallback'
        description: Content of refund callback
        required: true
      responses:
        '200':
          description: callback handled
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Handle Swish refund callback
          sidebarTitle: Handle Swish refund callback
  /events/gateways/vipps/payment/hooks:
    post:
      operationId: checkout_vipps_webhooks_post
      summary: checkout_vipps_webhooks_post
      tags:
        - vipps-epayment
      security: []
      parameters:
        - name: x-ms-date
          in: header
          required: true
          description: |
            Parameter required to authenticate the webhook event
          schema:
            type: string
            format: date
        - name: x-ms-content-sha256
          in: header
          description: >
            Parameter to check that the request content has not been modified
            and

            required to authenticate the webhook event
          required: true
          schema:
            type: string
        - name: host
          in: header
          description: |
            Parameter required to authenticate the webhook event
          required: true
          schema:
            type: string
        - name: authorization
          in: header
          description: |
            Parameter required to authenticate the webhook event
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/VippsWebhook'
        required: true
      responses:
        '200':
          description: webhook handled
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Handle Vipps callback
          sidebarTitle: Handle Vipps callback
  /events/transaction/{intent}:
    post:
      operationId: events_transaction_post
      summary: events_transaction_post
      description: |
        Handle async update of transaction.

        scopes:
        - admin:checkout
      tags:
        - gateways
      x-scopes:
        - admin:checkout
      security:
        - JWT: []
      parameters:
        - name: intent
          description: >
            **retry_auto_capture**


            Retry the capture of a transaction that was created

            by a session with auto-capture enabled. A success is

            return if the transaction new state is captured.


            **cancel_unknown**


            Cancel a transaction that failed the athorization check

            done before the redirect to the merchant.


            **sync_status**


            Sync the status of a transaction that is not in sync with

            the status in the payment gateway


            **poll_initiated**


            Poll the status of a transaction with status `INITIATED` from

            the payment gateway. Trigger callback on transaction if the payment

            gateway status is no longer `INITIATED`

            > Intended for cases where expected callback from payment gateway

            > was never received


            **poll_initiated_refund**


            Poll the status of a transaction with a "pending" `INITIATE_REFUND`

            event from the payment gateway. Trigger callback on transaction if

            the pending refund have been completed

            > Intended for cases where refund is async operation where the
            payment

            > gateway does not deliver callback when the operation completes


            Poll the status of a transaction with status `INITIATED` from

            the payment gateway. Trigger callback on transaction if the payment

            gateway status is no longer `INITIATED`

            > Intended for cases where expected callback from payment gateway

            > was never received


            **retry_initiated_refund**


            Retry a refund for a transaction where latest event is
            `INITIATE_REFUND`

            > Intended for cases where the refund was attempted but did not

            > receive immediate success, as opposed to `poll_initiated_refund` 

            > which only polls for a missing callback on a pending refund


            **retry_refund**


            Retry refund of a transaction with status `CAPTURED` that

            was created from a session that is cancelled.


            **extend_authorization**


            Extend authorization for a transaction with status `AUTHORIZED`,

            `PARTIALLY_CAPTURED`, or `PARTIALLY_CAPTURED_REFUNDED`.

            > Currently only available for klarna transactions.


            **sync_invoice_file**

             Sync invoice file data for supported invoice payment products.
          in: path
          required: true
          schema:
            type: string
            enum:
              - cancel_unknown
              - retry_auto_capture
              - retry_refund
              - sync_status
              - poll_initiated
              - extend_authorization
              - sync_invoice_file
              - poll_initiated_refund
              - retry_initiated_refund
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - required:
                    - id
                    - transaction
                  properties:
                    id:
                      type: string
                      description: |
                        The transaction id
                      example: P00000000.465UfBENeLpkBvwmqfTC4k
                    transaction:
                      type: object
                      required:
                        - payment_product
                        - payment_product_type
                        - amount
                        - currency
                      properties:
                        payment_product:
                          description: >
                            The payment product corresponding to this
                            transaction
                          type: string
                        payment_product_type:
                          type: string
                          description: >
                            The payment product type corresponding to this
                            transaction
                        amount:
                          type: integer
                          description: >
                            Non-negative, minor units. Total amount of the
                            transaction
                          example: 72200
                        currency:
                          type: string
                          format: iso4217-code
                          example: NOK
                          description: ISO 4217 transaction currency
                    sync_status:
                      type: object
                      properties:
                        klarna:
                          type: object
                          properties:
                            gateway_id:
                              type: string
                              description: >
                                The gateway ID to set for Klarna transactions.

                                This is used (only) in cases where the
                                transaction has failed on our side without being
                                authorized,

                                but is actually authorized in Klarna.


                                We have then lost the connection to Klarna and
                                need to use this ID to identify the transaction
                                in Klarna.
                              example: b71b86e8-bc24-4a59-945c-ec8d1520acad
        required: true
      responses:
        '200':
          description: Transaction updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: process transaction event
          sidebarTitle: process transaction event
  /events/session/{intent}:
    post:
      operationId: events_session_post
      summary: events_session_post
      description: |
        Handle async update of session.

        scopes:
        - admin:checkout
      tags:
        - gateways
      x-scopes:
        - admin:checkout
      security:
        - JWT: []
      parameters:
        - name: intent
          description: >
            **poll_initiated**


            Poll the status of a session from the payment gateway. Trigger
            callback

            when ready
          in: path
          required: true
          schema:
            type: string
            enum:
              - poll_initiated
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SessionIntentRequest'
        required: true
      responses:
        '200':
          description: Session updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Session'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: process session event
          sidebarTitle: process session event
  /events/gateways/kravia/notifications/{env}:
    post:
      operationId: checkout_kravia_notifications_post
      summary: checkout_kravia_notifications_post
      description: >
        This endpoint is used to handle notifications from Kravia payment
        gateway.

        Kravia does not support dynamic webhook URLs per session, so the webhook
        URL is fixed.
      tags:
        - kravia
      security: []
      parameters:
        - name: env
          in: path
          required: true
          schema:
            type: string
            enum:
              - test
              - prod
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - header
                - data
                - signature
              properties:
                header:
                  type: object
                  properties:
                    algorithm:
                      type: string
                data:
                  type: object
                  properties:
                    timestamp:
                      type: number
                    eventType:
                      type: string
                    claimId:
                      type: number
                signature:
                  type: string
        required: true
      responses:
        '204':
          description: Webhook handled
        '400':
          $ref: '#/components/responses/BadRequest'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Handle Kravia notifications
          sidebarTitle: Handle Kravia notifications
  /idp/{provider}/{env}/callback:
    get:
      operationId: checkout_idp_verification_callback_get
      summary: checkout_idp_verification_callback_get
      description: >
        Generic endpoint for handling redirects from identity providers (IdP)
        after user authentication.

        Current IDP provider uses OAuth2 protocol, so the callback URL is static
        and should be registered with the IdP.
      tags:
        - identity
      parameters:
        - name: env
          in: path
          required: true
          schema:
            type: string
            enum:
              - test
              - prod
        - name: provider
          in: path
          required: true
          schema:
            type: string
            enum:
              - criipto
        - name: code
          in: query
          schema:
            type: string
        - name: state
          in: query
          schema:
            type: string
        - name: error
          in: query
          schema:
            type: string
        - name: error_description
          in: query
          description: Human-readable error description
          schema:
            type: string
      security: []
      responses:
        '302':
          $ref: '#/components/responses/RedirectToSessionReturnUrl'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Handle authorization redirect from IdP
          sidebarTitle: Handle authorization redirect from IdP
  /sessions/{session_id}/bambora/callback/{callback_ref}:
    parameters:
      - $ref: '#/components/parameters/SessionId'
      - name: callback_ref
        in: path
        required: true
        schema:
          type: string
    get:
      operationId: checkout_bambora_callback_get
      summary: checkout_bambora_callback_get
      tags:
        - bambora
      security: []
      parameters:
        - name: txnid
          in: query
          schema:
            type: string
        - name: orderid
          in: query
          schema:
            type: string
        - name: reference
          in: query
          schema:
            type: string
        - name: amount
          in: query
          schema:
            type: string
        - name: currency
          in: query
          schema:
            type: string
        - name: date
          in: query
          schema:
            type: string
        - name: time
          in: query
          schema:
            type: string
        - name: feeid
          in: query
          schema:
            type: string
        - name: txnfee
          in: query
          schema:
            type: string
        - name: paymenttype
          in: query
          schema:
            type: string
        - name: walletname
          in: query
          schema:
            type: string
        - name: cardno
          in: query
          schema:
            type: string
        - name: expmonth
          in: query
          schema:
            type: string
        - name: expyear
          in: query
          schema:
            type: string
        - name: subscriptionid
          in: query
          schema:
            type: string
        - name: tokenid
          in: query
          schema:
            type: string
        - name: eci
          in: query
          schema:
            type: string
        - name: issuercountry
          in: query
          schema:
            type: string
        - name: hash
          in: query
          schema:
            type: string
      responses:
        '200':
          description: callback handled
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Handle Bambora callback
          sidebarTitle: Handle Bambora callback
  /sessions/{session_id}/bambora/redirect/{redirect_ref}:
    parameters:
      - $ref: '#/components/parameters/SessionId'
      - name: redirect_ref
        in: path
        required: true
        schema:
          type: string
    get:
      operationId: checkout_sid_bambora_redirect_get
      summary: checkout_sid_bambora_redirect_get
      tags:
        - bambora
      security: []
      parameters:
        - name: action
          in: query
          schema:
            type: string
            enum:
              - accept
              - cancel
              - decline
        - name: txnid
          in: query
          schema:
            type: string
        - name: orderid
          in: query
          schema:
            type: string
        - name: reference
          in: query
          schema:
            type: string
        - name: amount
          in: query
          schema:
            type: string
        - name: currency
          in: query
          schema:
            type: string
        - name: date
          in: query
          schema:
            type: string
        - name: time
          in: query
          schema:
            type: string
        - name: feeid
          in: query
          schema:
            type: string
        - name: txnfee
          in: query
          schema:
            type: string
        - name: paymenttype
          in: query
          schema:
            type: string
        - name: walletname
          in: query
          schema:
            type: string
        - name: cardno
          in: query
          schema:
            type: string
        - name: expmonth
          in: query
          schema:
            type: string
        - name: expyear
          in: query
          schema:
            type: string
        - name: subscriptionid
          in: query
          schema:
            type: string
        - name: tokenid
          in: query
          schema:
            type: string
        - name: eci
          in: query
          schema:
            type: string
        - name: issuercountry
          in: query
          schema:
            type: string
        - name: hash
          in: query
          schema:
            type: string
      responses:
        '302':
          $ref: '#/components/responses/RedirectToSessionReturnUrl'
        '404':
          $ref: '#/components/responses/NotFound'
      x-mint:
        metadata:
          title: Handle redirect from payment
          sidebarTitle: Handle redirect from payment
  /sessions/{session_id}/collector/redirect:
    parameters:
      - $ref: '#/components/parameters/SessionId'
    get:
      operationId: checkout_sid_collector_redirect_get
      summary: checkout_sid_collector_redirect_get
      tags:
        - collector
      security: []
      responses:
        '302':
          description: Redirect to session URL on payment completed
          headers:
            Location:
              description: >
                the URL to redirect a page to.


                - `transaction_id` will be appended to the URL as a `query`
                string
                  parameter if the Checkout completed successfully.
                - `error` query parameter will be appended to the URL in case of
                  error. There will be multiple error-params in case of failures with multiple payment providers.
                - `ppt` - payment provider type - query parameter will be
                appended to the URL in case of error.
                  There will be multiple ppt-params in case of failures with multiple payment providers.
                - `merchant_reference` query parameter will always be included
                in
                  the redirect.
              schema:
                type: string
        '404':
          $ref: '#/components/responses/NotFound'
      x-mint:
        metadata:
          title: Handle redirect from payment
          sidebarTitle: Handle redirect from payment
  /sessions/{session_id}/dintero/redirect/{redirect_ref}:
    get:
      operationId: checkout_sid_dintero_redirect_get
      summary: checkout_sid_dintero_redirect_get
      tags:
        - dintero
      security: []
      parameters:
        - $ref: '#/components/parameters/SessionId'
        - name: redirect_ref
          in: path
          required: true
          description: |
            Signed redirect reference prefixed by the payment product type
          example: dintero.zero.complete.fe4f9c...
          schema:
            type: string
      responses:
        '302':
          $ref: '#/components/responses/RedirectToSessionReturnUrl'
        '404':
          $ref: '#/components/responses/NotFound'
      x-mint:
        metadata:
          title: Handle redirect from payment
          sidebarTitle: Handle redirect from payment
  /sessions/{session_id}/dintero_psp/redirect/{redirect_ref}:
    get:
      operationId: checkout_sid_dintero_psp_redirect_get
      summary: checkout_sid_dintero_psp_redirect_get
      tags:
        - dintero_psp
      security: []
      parameters:
        - $ref: '#/components/parameters/SessionId'
        - name: redirect_ref
          in: path
          required: true
          description: |
            Signed redirect reference prefixed by the payment product type
          example: dintero_psp.creditcard.complete.fe4f9c...
          schema:
            type: string
        - name: payment_reference
          in: query
          description: >
            Payment reference used when creating payment in PSP. Should be set
            on Vipps payments
          schema:
            type: string
      responses:
        '302':
          $ref: '#/components/responses/RedirectToSessionReturnUrl'
        '404':
          $ref: '#/components/responses/NotFound'
      x-mint:
        metadata:
          title: Handle redirect from payment
          sidebarTitle: Handle redirect from payment
  /sessions/{session_id}/klarna/redirect/{redirect_ref}:
    get:
      operationId: checkout_sid_klarna_redirect_get
      summary: checkout_sid_klarna_redirect_get
      tags:
        - klarna
      security: []
      parameters:
        - $ref: '#/components/parameters/SessionId'
        - name: redirect_ref
          in: path
          required: true
          description: |
            Signed redirect reference prefixed by the payment product type
          example: klarna.klarna.complete.fe4f9c...
          schema:
            type: string
      responses:
        '302':
          $ref: '#/components/responses/RedirectToSessionReturnUrl'
        '404':
          $ref: '#/components/responses/NotFound'
      x-mint:
        metadata:
          title: Handle redirect from payment
          sidebarTitle: Handle redirect from payment
  /sessions/{session_id}/klarna/callback/{callback_ref}:
    post:
      operationId: checkout_sid_klarna_callback_post
      summary: checkout_sid_klarna_callback_post
      description: |
        Handle authorization callback received from Klarna
      tags:
        - klarna
      security: []
      parameters:
        - $ref: '#/components/parameters/SessionId'
        - name: callback_ref
          in: path
          required: true
          description: |
            Signed callback reference prefixed by the payment product type
          example: klarna.klarna.fe4f9cfre...
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - authorization_token
                - session_id
              properties:
                authorization_token:
                  type: string
                session_id:
                  type: string
                merchant_reference1:
                  type: string
                merchant_reference2:
                  type: string
        required: true
      responses:
        '200':
          description: callback handled
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Handle Klarna callback
          sidebarTitle: Handle Klarna callback
  /sessions/{session_id}/netaxept/redirect/{redirect_ref}:
    parameters:
      - $ref: '#/components/parameters/SessionId'
      - name: redirect_ref
        in: path
        required: true
        schema:
          type: string
    get:
      operationId: checkout_sid_netaxept_redirect_get
      summary: checkout_sid_netaxept_redirect_get
      tags:
        - netaxept
      security: []
      parameters:
        - name: transactionId
          in: query
          schema:
            type: string
        - name: responseCode
          in: query
          schema:
            type: string
      responses:
        '302':
          $ref: '#/components/responses/RedirectToSessionReturnUrl'
        '404':
          $ref: '#/components/responses/NotFound'
      x-mint:
        metadata:
          title: Handle redirect from payment
          sidebarTitle: Handle redirect from payment
  /sessions/{session_id}/payex/callback/{payment_product_type}:
    post:
      operationId: checkout_sid_callback_post
      summary: checkout_sid_callback_post
      description: |
        Creates a transaction from the session with status determined
        by the payment status provided by Payex.
      tags:
        - payex
      security: []
      parameters:
        - $ref: '#/components/parameters/SessionId'
        - name: payment_product_type
          in: path
          required: true
          schema:
            type: string
            enum:
              - payex.creditcard
              - payex.mobilepay
              - payex.swish
              - payex.vipps
        - name: token
          in: query
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/PayExCallback'
        required: true
      responses:
        '202':
          description: callback handled
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Handle Payex callback after a change or update
          sidebarTitle: Handle Payex callback after a change or update
  /sessions/{session_id}/payex/redirect/{action}/{payment_product_type}:
    parameters:
      - $ref: '#/components/parameters/SessionId'
      - name: action
        in: path
        required: true
        schema:
          type: string
          enum:
            - complete
            - cancel
      - name: payment_product_type
        in: path
        required: true
        schema:
          type: string
          enum:
            - payex.creditcard
            - payex.mobilepay
            - payex.swish
            - payex.vipps
    get:
      operationId: checkout_sid_payex_redirect_get
      summary: checkout_sid_payex_redirect_get
      tags:
        - payex
      security: []
      responses:
        '302':
          $ref: '#/components/responses/RedirectToSessionReturnUrl'
        '404':
          $ref: '#/components/responses/NotFound'
      x-mint:
        metadata:
          title: Handle redirect from payment
          sidebarTitle: Handle redirect from payment
  /sessions/{session_id}/payex-v3/callback/{callback_ref}:
    post:
      operationId: checkout_payex_v3_callback_post
      summary: checkout_payex_v3_callback_post
      description: |
        Creates a transaction from the session with status determined
        by the payment status provided by Payex.
      tags:
        - payex-v3
      security: []
      parameters:
        - $ref: '#/components/parameters/SessionId'
        - name: callback_ref
          in: path
          required: true
          description: |
            Signed callback reference prefixed by the payment product type
          example: payex.creditcard.ef9f0c...
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/PayExV3Callback'
        required: true
      responses:
        '200':
          description: callback handled
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Handle Payex callback after a change or update
          sidebarTitle: Handle Payex callback after a change or update
  /sessions/{session_id}/payex-v3/redirect/{redirect_ref}:
    get:
      operationId: checkout_sid_payex_v3_redirect_get
      summary: checkout_sid_payex_v3_redirect_get
      tags:
        - payex-v3
      security: []
      parameters:
        - $ref: '#/components/parameters/SessionId'
        - name: redirect_ref
          in: path
          required: true
          description: |
            Signed redirect reference prefixed by the payment product type
          example: payex.creditcard.complete.fe4f9c...
          schema:
            type: string
      responses:
        '302':
          $ref: '#/components/responses/RedirectToSessionReturnUrl'
        '404':
          $ref: '#/components/responses/NotFound'
      x-mint:
        metadata:
          title: Handle redirect from payment
          sidebarTitle: Handle redirect from payment
  /sessions/{session_id}/santander/redirect:
    parameters:
      - $ref: '#/components/parameters/SessionId'
    get:
      operationId: checkout_sid_santander_redirect_get
      summary: checkout_sid_santander_redirect_get
      tags:
        - santander
      security: []
      responses:
        '302':
          description: Redirect to session URL on payment completed
          headers:
            Location:
              description: >
                the URL to redirect a page to.


                - `transaction_id` will be appended to the URL as a `query`
                string
                  parameter if the Checkout completed successfully.
                - `error` query parameter will be appended to the URL in case of
                  error. There will be multiple error-params in case of failures with multiple payment providers.
                - `ppt` - payment provider type - query parameter will be
                appended to the URL in case of error.
                  There will be multiple ppt-params in case of failures with multiple payment providers.
                - `merchant_reference` query parameter will always be included
                in
                  the redirect.
              schema:
                type: string
        '404':
          $ref: '#/components/responses/NotFound'
      x-mint:
        metadata:
          title: Handle redirect from payment
          sidebarTitle: Handle redirect from payment
  /sessions/{session_id}/swish/redirect/{redirect_ref}:
    parameters:
      - $ref: '#/components/parameters/SessionId'
      - name: redirect_ref
        in: path
        required: true
        schema:
          type: string
    get:
      operationId: checkout_sid_swish_redirect_get
      summary: checkout_sid_swish_redirect_get
      tags:
        - swish
      security: []
      responses:
        '302':
          $ref: '#/components/responses/RedirectToSessionReturnUrl'
        '404':
          $ref: '#/components/responses/NotFound'
      x-mint:
        metadata:
          title: Handle redirect from payment
          sidebarTitle: Handle redirect from payment
  /sessions/{session_id}/vipps/v2/payments/{order_id}:
    post:
      operationId: checkout_sid_vipps_payments_orderid_post
      summary: checkout_sid_vipps_payments_orderid_post
      tags:
        - vipps
      security: []
      parameters:
        - $ref: '#/components/parameters/SessionId'
        - name: order_id
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/VippsCallback'
        required: true
      responses:
        '202':
          description: callback handled
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Handle Vipps callback after the payment request
          sidebarTitle: Handle Vipps callback after the payment request
  /sessions/{session_id}/vipps/redirect/{redirect_ref}:
    get:
      operationId: checkout_sid_vipps_epayment_redirect_get
      summary: checkout_sid_vipps_epayment_redirect_get
      tags:
        - vipps-epayment
      security: []
      parameters:
        - $ref: '#/components/parameters/SessionId'
        - name: redirect_ref
          in: path
          required: true
          description: |
            Signed redirect reference prefixed by the payment product type
          example: vipps.complete.fe4f9c...
          schema:
            type: string
      responses:
        '302':
          $ref: '#/components/responses/RedirectToSessionReturnUrl'
        '404':
          $ref: '#/components/responses/NotFound'
      x-mint:
        metadata:
          title: Handle redirect from payment
          sidebarTitle: Handle redirect from payment
  /sessions/{session_id}/two/redirect/{redirect_ref}:
    parameters:
      - $ref: '#/components/parameters/SessionId'
      - name: redirect_ref
        in: path
        required: true
        schema:
          type: string
    get:
      operationId: checkout_sid_two_redirect_get
      summary: checkout_sid_two_redirect_get
      tags:
        - two
      security: []
      parameters:
        - name: action
          in: query
          schema:
            type: string
            enum:
              - accept
              - cancel
      responses:
        '302':
          $ref: '#/components/responses/RedirectToSessionReturnUrl'
        '404':
          $ref: '#/components/responses/NotFound'
      x-mint:
        metadata:
          title: Handle redirect from payment
          sidebarTitle: Handle redirect from payment
  /sessions/{session_id}/two/callback/{callback_ref}:
    parameters:
      - $ref: '#/components/parameters/SessionId'
      - name: callback_ref
        in: path
        required: true
        schema:
          type: string
    post:
      operationId: checkout_two_callback_post
      summary: checkout_two_callback_post
      tags:
        - two
      security: []
      responses:
        '200':
          description: OK
        '404':
          $ref: '#/components/responses/NotFound'
      x-mint:
        metadata:
          title: Handle Two B2B callback
          sidebarTitle: Handle Two B2B callback
  /files/{fid}:
    get:
      operationId: files_fid_get
      summary: files_fid_get
      tags:
        - files
      security: []
      parameters:
        - $ref: '#/components/parameters/FileId'
      responses:
        '200':
          description: File response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FileReadObject'
        '400':
          $ref: '#/components/responses/BadRequest'
        '410':
          $ref: '#/components/responses/Gone'
      x-mint:
        metadata:
          title: Get file
          sidebarTitle: Get file
  /mtls/v1/checkout/mastercard/notifications/card:
    post:
      operationId: mtls_mastercard_notifications_card_post
      summary: mtls_mastercard_notifications_card_post
      description: |
        Endpoint used by Mastercard for token notifications, via ALB mTLS
        passthrough.

        The request is forwarded to Dintero PSP service after verifying mTLS
        client certificate.
      security: []
      tags:
        - mtls-mastercard
      parameters:
        - name: X-Src-Response-Host
          in: header
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                encryptedDigitalCardUpdateNotifications:
                  type: string
                  description: Object for encrypted digitalCardUpdateNotifications.
                digitalCardUpdateNotifications:
                  type: array
                  description: Object for plain digitalCardUpdateNotifications.
                  items: {}
      responses:
        '204':
          $ref: '#/components/responses/NoContent'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Mastercard card notifications
          sidebarTitle: Mastercard card notifications
  /mtls/v1/checkout/mastercard/notifications/dpa:
    post:
      operationId: mtls_mastercard_notifications_dpa_post
      summary: mtls_mastercard_notifications_dpa_post
      description: >
        Endpoint used by Mastercard for merchant DPA notifications, via ALB mTLS

        passthrough.


        Publishes the notification to auth service after verifying mTLS client
        certificate.
      security: []
      tags:
        - mtls-mastercard
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - batchId
                - batchStatus
                - items
              properties:
                requestId:
                  type: string
                batchId:
                  type: string
                batchStartTime:
                  type: string
                batchEndTime:
                  type: string
                batchStatus:
                  type: string
                errorMessage:
                  nullable: true
                  type: string
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      action:
                        type: string
                      serviceId:
                        type: string
                      trid:
                        type: string
                      status:
                        type: string
                      programName:
                        type: string
                      error:
                        properties:
                          status:
                            type: number
                          reason:
                            type: string
                          message:
                            type: string
                          errordetail:
                            type: array
                            items:
                              type: object
                              properties:
                                message:
                                  type: string
                                reason:
                                  type: string
                                source:
                                  type: string
                                sourceType:
                                  type: string
                        nullable: true
                        type: object
                      dpaResults:
                        type: array
                        items:
                          type: object
                          properties:
                            dpaName:
                              type: string
                            srcDpaId:
                              type: string
                            status:
                              type: string
                            error:
                              properties:
                                status:
                                  type: number
                                reason:
                                  type: string
                                message:
                                  type: string
                                errordetail:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      message:
                                        type: string
                                      reason:
                                        type: string
                                      source:
                                        type: string
                                      sourceType:
                                        type: string
                              nullable: true
                              type: object
      responses:
        '204':
          $ref: '#/components/responses/NoContent'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Mastercard DPA notifications
          sidebarTitle: Mastercard DPA notifications
  /mtls/v1/checkout/mastercard/notifications/batch/enrollmentrecord:
    post:
      operationId: mtls_mastercard_notifications_batch_enrollment_record_post
      summary: mtls_mastercard_notifications_batch_enrollment_record_post
      description: |
        Endpoint used by Mastercard for batch notification, via ALB mTLS
        passthrough.

        The request is forwarded to Dintero PSP service after verifying mTLS
        client certificate.
      security: []
      tags:
        - mtls-mastercard
      parameters:
        - name: X-Src-Response-Host
          in: header
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - batchId
                - externalBatchId
                - enrollmentRecordNotifications
              properties:
                batchId:
                  type: string
                externalBatchId:
                  type: string
                eventTimeStamp:
                  type: string
                enrollmentRecordNotifications:
                  type: array
                  items: {}
      responses:
        '204':
          $ref: '#/components/responses/NoContent'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Mastercard Batch notifications
          sidebarTitle: Mastercard Batch notifications
  /checkout/visa/notifications/token/{api_name}:
    post:
      operationId: visa_notifications_token_post
      summary: visa_notifications_token_post
      description: >
        Endpoint used by Visa for token notifications. The request is forwarded
        to Dintero PSP service.
      security: []
      tags:
        - visa-notifications
      parameters:
        - name: x-pay-token
          in: header
          schema:
            type: string
        - name: taskType
          in: query
          schema:
            type: string
        - name: eventType
          in: query
          schema:
            type: string
        - name: apiKey
          in: query
          schema:
            type: string
        - name: clientAppID
          in: query
          schema:
            type: string
        - name: relationshipID
          in: query
          schema:
            type: string
        - name: api_name
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties: {}
        description: >-
          Object with notification payload. Contents of payload depends on the
          notification type.
        required: true
      responses:
        '204':
          description: >-
            No content, the service completed successfully and there is no
            content to be returned.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Visa token notifications
          sidebarTitle: Visa token notifications
  /checkout/applepay/merchant/{merchant_id}/notification/merchantToken/{event_id}:
    get:
      operationId: apple_pay_notifications_token_get
      summary: apple_pay_notifications_token_get
      description: >
        Endpoint used by Apple Pay for token notifications. The request is
        forwarded to Dintero PSP service.
      security: []
      tags:
        - apple pay notifications
      parameters:
        - name: merchant_id
          in: path
          required: true
          schema:
            type: string
        - name: event_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: |
            Notification is recieved successfully.
        '500':
          $ref: '#/components/responses/ServerError'
      x-mint:
        metadata:
          title: Apple Pay token notifications
          sidebarTitle: Apple Pay token notifications
x-tagGroups:
  - name: Checkout
    tags:
      - session
      - payment
      - view
      - identity
      - example-session-callbacks
  - name: Manage
    tags:
      - Transactions
      - Card Tokens
  - name: Admin
    tags:
      - api-keys
      - merchant-certificates
      - checkout
      - gateways
      - profiles
      - secrets
      - terminals
  - name: Admin Gateways
    tags:
      - bambora-gateway
      - collector-gateway
      - instabank-gateway
      - netaxept-gateway
      - payex-gateway
      - santander-gateway
      - swish-gateway
      - vipps-gateway
      - klarna-gateway
      - dintero-psp-gateway
      - kravia-gateway
      - two-gateway
  - name: Branding
    tags:
      - Generate checkout image
  - name: Gateways
    tags:
      - bambora
      - collector
      - dintero
      - dintero_psp
      - netaxept
      - payex
      - payex-v3
      - santander
      - swish
      - vipps
      - vipps-epayment
      - klarna
      - kravia
      - two
  - name: Creditchecks
    tags:
      - creditchecks
  - name: Inbound mTLS
    tags:
      - mtls-mastercard
  - name: Inbound notifications
    tags:
      - visa-notifications
      - apple pay notifications
  - name: Files
    tags:
      - files
servers:
  - url: https://checkout.dintero.com/v1
components:
  parameters:
    FeatureToggles:
      name: Dintero-Feature-Toggles
      in: header
      description: >
        Feature toggles that will change how the API works.


        These feature toggles are usually the preferred way to use the API, but
        they break the current API.


        - strict-session-amounts: `order.amount` must equal the sum of amounts
        in `order.items` + `order.shipping_option.amount` when creating sessions
      style: simple
      schema:
        type: array
        items:
          type: string
          enum:
            - strict-session-amounts
    DinteroSystemName:
      name: Dintero-System-Name
      in: header
      description: |
        The name of the ecommerce solution

        Example: `woocommerce`
      schema:
        type: string
        maxLength: 120
    DinteroSystemVersion:
      name: Dintero-System-Version
      in: header
      description: |
        The version number of the ecommerce solution

        Example: `5.4`
      schema:
        type: string
        maxLength: 120
    DinteroSystemPluginName:
      name: Dintero-System-Plugin-Name
      in: header
      description: |
        The name of the ecommerce plugin

        Example: `Dintero.Checkout.WooCommerce`
      schema:
        type: string
        maxLength: 120
    DinteroSystemPluginVersion:
      name: Dintero-System-Plugin-Version
      in: header
      description: |
        The version number of the ecommerce plugin

        Example: `2.3.4`
      schema:
        type: string
        maxLength: 120
    Limit:
      name: limit
      in: query
      description: |
        A limit on the number of objects to be returned. Limit can range
        between 1 and 100 items, and the default is 10 items.
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 10
    StartingAfter:
      name: starting_after
      in: query
      description: |
        cursor for use in pagination. starting_after is an object ID
        that defines your place in the list. For instance, if you make
        a list request and receive 100 objects, ending with `obj_foo`,
        your subsequent call can include `starting_after=obj_foo`
        in order to fetch the next page of the list.
      required: false
      schema:
        type: string
        format: checkout-id
    Ids:
      name: id
      in: query
      description: |
        List of ids that should be included in the result. ?id=A&id=B&id=X
      explode: true
      schema:
        type: array
        items:
          type: string
          format: checkout-id
    SessionId:
      name: session_id
      in: path
      description: The session ID
      required: true
      schema:
        type: string
        format: checkout-id
    TransactionId:
      name: id
      in: path
      description: The ID of the transaction
      required: true
      schema:
        type: string
        format: checkout-id
    FileId:
      name: fid
      in: path
      description: The ID of the file
      required: true
      schema:
        type: string
        format: file-id
  responses:
    SessionCreated:
      description: checkout session created
      content:
        application/json:
          schema:
            type: object
            properties:
              id:
                type: string
                description: The id of the checkout session
              url:
                type: string
                format: uri
                example: >-
                  https://checkout.api.dintero.com/v1/view/9ea1610a357dc8189081c4cb955f26f612d91367
                description: |
                  URL for the Checkout session
              publish:
                $ref: '#/components/schemas/PublishConfiguration'
              session:
                allOf:
                  - $ref: '#/components/schemas/Id'
                  - $ref: '#/components/schemas/Session'
                  - $ref: '#/components/schemas/SessionRead'
                  - $ref: '#/components/schemas/SessionCancelled'
    BadRequest:
      description: Bad / Invalid request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    AccessForbidden:
      description: Access forbidden, invalid JWT token was used
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ServerError:
      description: Unexpected Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource was not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    PreconditionFailed:
      description: Precondition failed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    RedirectToSessionReturnUrl:
      description: Redirect to session accept/cancel URL on payment completed
      headers:
        Location:
          description: |
            the URL to redirect a page to.

            - `transaction_id` will be appended to the URL as a `query` string
              parameter if the Checkout completed successfully.
            - `error` query parameter will be appended to the URL in case of
              error
            - `merchant_reference` query parameter will always be included in
              the redirect.
          schema:
            type: string
    PaymentOperations:
      description: Payment Operations
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/PaymentOperations'
              - $ref: '#/components/schemas/SessionEventVersion'
    ProcessorTemporarilyUnavailable:
      description: Processor temporarily unavailable
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    TransactionOperationAccepted:
      description: |
        Request accepted for processing.
      headers:
        event-request-id:
          description: |
            The request_id of the event that was accepted for processing.
            The transaction will be updated with a new event with
            `correlation_request_id` set when the operation completes.
          schema:
            type: string
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Transaction'
    Conflict:
      description: Conflict
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Gone:
      description: Resource is no longer available
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NoContent:
      description: >-
        No content, the service completed successfully and there is no content
        to be returned.
  requestBodies:
    admin_session_profile_details_putConfiguration:
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/ProfileConfiguration'
      required: true
    example_discount_codes_callback_urlOptions:
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Id'
              - $ref: '#/components/schemas/Session'
              - $ref: '#/components/schemas/SessionRead'
      required: true
  securitySchemes:
    JWT:
      type: http
      description: >
        Bearer authentication (token authentication) should be used for
        accessing the API.


        Use [Get Token](/api-reference/authenticate/aid_auths_oauth_token_post)
        to get an access token for client credentials.

        Pass the token in the request header:

            Authorization: Bearer {access_token}

        where the **access_token** is JSON Web Tokens (JWT).
      scheme: bearer
      bearerFormat: JWT
    apikey:
      type: apiKey
      in: header
      description: >
        X-API-Key authentication for accessing regular endpoints. Use

        [Create api-key](/checkout-api/api-keys/admin_api_keys_post) to create a
        key.


        The content of the header should look like the following:

            x-api-key: {api_key}
      name: x-api-key
    adminKey:
      type: apiKey
      in: header
      description: >
        X-API-Key authentication for accessing admin endpoints. Use

        [Create api-key](/checkout-api/api-keys/admin_api_keys_post) to create a
        key.


        The content of the header should look like the following:

            x-api-key: {api_key}
      name: x-api-key
  schemas:
    PaymentInformationEventKlarna:
      type: object
      x-discriminator-value: klarna.klarna
      allOf:
        - $ref: '#/components/schemas/PaymentInformationEventBase'
        - $ref: '#/components/schemas/KlarnaPaymentInformation'
        - properties:
            payment_product_type:
              type: string
              enum:
                - klarna.klarna
      title: klarna.klarna
    PaymentInformationEventKlarnaBillie:
      type: object
      x-discriminator-value: klarna.billie
      allOf:
        - $ref: '#/components/schemas/PaymentInformationEventBase'
        - $ref: '#/components/schemas/KlarnaBilliePaymentInformation'
        - properties:
            payment_product_type:
              type: string
              enum:
                - klarna.billie
      title: klarna.billie
    SwishPayment:
      type: object
      x-discriminator-value: swish.swish
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - type: object
          properties:
            phone_number:
              type: string
              pattern: ^\+?\d{5,15}$
              description: |
                mobile number of a person / company, ITU/E.123 format with
                international prefix (+PPNNNNNNNNN...)
            remember_me:
              type: boolean
              description: >
                If true will either make the backend add or update a signed
                cookie with

                customer data. If false the cookie will be removed. If not set,

                any existing cookie will remain unchanged
            payment_product_type:
              type: string
              enum:
                - swish.swish
      title: swish.swish
    VippsPayment:
      type: object
      x-discriminator-value: vipps
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - type: object
          properties:
            phone_number:
              type: string
              pattern: ^\+?\d{5,15}$
              description: |
                mobile number of a person / company, ITU/E.123 format with
                international prefix (+PPNNNNNNNNN...)
            remember_me:
              type: boolean
              description: >
                If true will either make the backend add or update a signed
                cookie with

                customer data. If false the cookie will be removed. If not set,

                any existing cookie will remain unchanged
            payment_product_type:
              type: string
              enum:
                - vipps
      title: vipps
    BamboraMobilePayPayment:
      type: object
      x-discriminator-value: bambora.mobilepay
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - required:
            - phone_number
          properties:
            phone_number:
              type: string
              pattern: ^\+?\d{5,15}$
              description: |
                mobile number of a person / company, ITU/E.123 format with
                international prefix (+PPNNNNNNNNN...)
            remember_me:
              type: boolean
              description: >
                If true will either make the backend add or update a signed
                cookie with

                customer data. If false the cookie will be removed. If not set,

                any existing cookie will remain unchanged
            payment_product_type:
              type: string
              enum:
                - bambora.mobilepay
      title: bambora.mobilepay
    PayExCreditcardPayment:
      type: object
      x-discriminator-value: payex.creditcard
      allOf:
        - $ref: '#/components/schemas/PayPaymentBase'
        - required:
            - operation
          properties:
            operation:
              type: string
              enum:
                - unscheduled_purchase
                - recurring_purchase
            payment_product_type:
              type: string
              enum:
                - payex.creditcard
      title: payex.creditcard
    BamboraCreditcardPayment:
      type: object
      x-discriminator-value: bambora.creditcard
      allOf:
        - $ref: '#/components/schemas/PayPaymentBase'
        - required:
            - operation
          properties:
            operation:
              type: string
              enum:
                - unscheduled_purchase
                - recurring_purchase
            payment_product_type:
              type: string
              enum:
                - bambora.creditcard
      title: bambora.creditcard
    DinteroPspCreditcardMitPayment:
      type: object
      x-discriminator-value: dintero_psp.creditcard
      allOf:
        - $ref: '#/components/schemas/PayPaymentBase'
        - required:
            - operation
          properties:
            operation:
              type: string
              enum:
                - unscheduled_purchase
                - recurring_purchase
            payment_product_type:
              type: string
              enum:
                - dintero_psp.creditcard
      title: dintero_psp.creditcard
    DinteroPspApplePayPayment:
      type: object
      x-discriminator-value: dintero_psp.applepay
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - required:
            - psp_transaction_id
          properties:
            psp_transaction_id:
              type: string
              description: >
                Transaction id received from psp-service when creating applepay
                transaction
            billing_address:
              $ref: '#/components/schemas/OrderAddress'
            shipping_address:
              $ref: '#/components/schemas/OrderAddress'
            payment_product_type:
              type: string
              enum:
                - dintero_psp.applepay
      title: dintero_psp.applepay
    CollectorInvoiceB2BPayment:
      type: object
      x-discriminator-value: collector.invoice_b2b
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - $ref: '#/components/schemas/CollectorPaymentDetails'
        - required:
            - shipping_address
            - billing_address
          properties:
            shipping_address:
              $ref: '#/components/schemas/CollectorB2BAddress'
            billing_address:
              $ref: '#/components/schemas/CollectorB2BAddress'
            remember_me:
              type: boolean
              description: >
                If true will either make the backend add or update a signed
                cookie with

                customer data. If false the cookie will be removed. If not set,

                any existing cookie will remain unchanged
            authorization_code:
              type: string
              description: |
                Code from authorized customer.
            payment_product_type:
              type: string
              enum:
                - collector.invoice_b2b
      title: collector.invoice_b2b
    CollectorFinancePayment:
      type: object
      x-discriminator-value: collector.finance
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - $ref: '#/components/schemas/CollectorDetails'
        - $ref: '#/components/schemas/CollectorPaymentDetails'
        - required:
            - shipping_address
            - billing_address
          properties:
            shipping_address:
              $ref: '#/components/schemas/CollectorAddress'
            billing_address:
              $ref: '#/components/schemas/CollectorAddress'
            remember_me:
              type: boolean
              description: >
                If true will either make the backend add or update a signed
                cookie with

                customer data. If false the cookie will be removed. If not set,

                any existing cookie will remain unchanged
            authorization_code:
              type: string
              description: |
                Code from authorized customer.
            payment_product_type:
              type: string
              enum:
                - collector.finance
      title: collector.finance
    CollectorAuthorizationOperation:
      description: |
        Contains href URI to authorize customer
      type: object
      x-discriminator-value: authorization-code-collector
      allOf:
        - $ref: '#/components/schemas/PaymentOperationBase'
        - properties:
            href:
              type: string
              description: |
                Contains the URI to authorize customer
              example: https://idp.collectorbank.se/authorize?acr_values=...
            rel:
              type: string
              enum:
                - authorization-code-collector
      title: authorization-code-collector
    AgeVerificationPaymentOperation:
      description: >
        Contains the URI used to start age verification for a payment product
        type.
      type: object
      x-discriminator-value: complete-age-verification
      allOf:
        - $ref: '#/components/schemas/PaymentOperationBase'
        - type: object
          required:
            - href
            - method
            - content_type
          properties:
            href:
              type: string
              format: uri
            method:
              type: string
              enum:
                - GET
            content_type:
              type: string
              enum:
                - text/html
            rel:
              type: string
              enum:
                - complete-age-verification
      title: complete-age-verification
    CollectorInvoiceB2BPaymentOperation:
      description: |
        Contains href URI to initiate a pay with Collector Invoice B2B
      type: object
      x-discriminator-value: pay-collector-invoice-b2b
      allOf:
        - $ref: '#/components/schemas/PaymentOperationBase'
        - required:
            - shipping_address
          properties:
            href:
              type: string
              description: |
                Contains the URI to initiate a payment.
              example: https://checkout.dintero.com/v1/sessions/{session_id}/pay
            shipping_address:
              $ref: '#/components/schemas/CollectorB2BPaymentOperationAddress'
            rel:
              type: string
              enum:
                - pay-collector-invoice-b2b
      title: pay-collector-invoice-b2b
    SantanderPayment:
      type: object
      x-discriminator-value: santander.debit_account
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - $ref: '#/components/schemas/SantanderDetails'
        - $ref: '#/components/schemas/SantanderPaymentDetails'
        - properties:
            payment_product_type:
              type: string
              enum:
                - santander.debit_account
      title: santander.debit_account
    CollectorInstallmentPaymentOperation:
      description: |
        Contains href URI to initiate a pay with Collector Installment
      type: object
      x-discriminator-value: pay-collector-installment
      allOf:
        - $ref: '#/components/schemas/PaymentOperationBase'
        - required:
            - product
          properties:
            href:
              type: string
              description: |
                Contains the URI to initiate a payment.
              example: https://checkout.dintero.com/v1/sessions/{session_id}/pay
            product:
              $ref: '#/components/schemas/CollectorProduct'
            rel:
              type: string
              enum:
                - pay-collector-installment
      title: pay-collector-installment
    PayExV3ApplepayPaymentOperation:
      description: >
        Contains href URI to initiate an Apple Pay payment with Swedbank Pay
        (v3)
      type: object
      x-discriminator-value: pay-payex-v3-applepay
      allOf:
        - required:
            - content_type
            - href
          properties:
            content_type:
              type: string
              enum:
                - application/javascript
            href:
              type: string
              description: |
                Contains the URI to initiate a payment.
              example: https://ecom.payex.com/payment/core/js...
            rel:
              type: string
              enum:
                - pay-payex-v3-applepay
        - $ref: '#/components/schemas/PaymentOperationBase'
      title: pay-payex-v3-applepay
    SendSCCPaymentOperation:
      description: |
        Send SSC verification code
      type: object
      x-discriminator-value: publish-secret-confirmation-code
      allOf:
        - $ref: '#/components/schemas/PaymentOperationBase'
        - properties:
            href:
              type: string
              description: |
                Contains the URI to to send SCC code.
              example: >-
                https://checkout.dintero.com/view/{session_id}/sessions/publish/scc
            rel:
              type: string
              enum:
                - publish-secret-confirmation-code
      title: publish-secret-confirmation-code
    PayExTokenProvider:
      type: object
      x-discriminator-value: payex.creditcard
      allOf:
        - $ref: '#/components/schemas/TokenProviderBase'
        - required:
            - token_types
          properties:
            token_types:
              type: array
              items:
                type: string
                enum:
                  - payment_token
                  - recurrence_token
            payment_product_type:
              type: string
              enum:
                - payex.creditcard
      title: payex.creditcard
    BamboraTokenProvider:
      type: object
      x-discriminator-value: bambora.creditcard
      allOf:
        - $ref: '#/components/schemas/TokenProviderBase'
        - required:
            - token_types
          properties:
            token_types:
              type: array
              items:
                type: string
                enum:
                  - payment_token
            payment_product_type:
              type: string
              enum:
                - bambora.creditcard
      title: bambora.creditcard
    DinteroPspCardTokenProvider:
      type: object
      x-discriminator-value: dintero_psp.creditcard
      allOf:
        - $ref: '#/components/schemas/TokenProviderBase'
        - required:
            - token_types
          properties:
            token_types:
              type: array
              items:
                type: string
                enum:
                  - payment_token
            token_supported_auth_methods:
              $ref: '#/components/schemas/DinteroPspTokenAuthMethods'
            payment_product_type:
              type: string
              enum:
                - dintero_psp.creditcard
      title: dintero_psp.creditcard
    DinteroPspGooglePayTokenProvider:
      type: object
      x-discriminator-value: dintero_psp.googlepay
      allOf:
        - $ref: '#/components/schemas/TokenProviderBase'
        - required:
            - token_types
          properties:
            token_types:
              type: array
              items:
                type: string
                enum:
                  - payment_token
            token_supported_auth_methods:
              $ref: '#/components/schemas/DinteroPspTokenAuthMethods'
            payment_product_type:
              type: string
              enum:
                - dintero_psp.googlepay
      title: dintero_psp.googlepay
    DinteroPspClickToPayPayTokenProvider:
      type: object
      x-discriminator-value: dintero_psp.clicktopay
      allOf:
        - $ref: '#/components/schemas/TokenProviderBase'
        - required:
            - token_types
          properties:
            token_types:
              type: array
              items:
                type: string
                enum:
                  - payment_token
            token_supported_auth_methods:
              $ref: '#/components/schemas/DinteroPspTokenAuthMethods'
            payment_product_type:
              type: string
              enum:
                - dintero_psp.clicktopay
      title: dintero_psp.clicktopay
    PayExV3ClickToPayPaymentOperation:
      description: >
        Contains href URI to initiate a Click to Pay payment using Swedbank Pay
        (v3)
      type: object
      x-discriminator-value: pay-payex-v3-clicktopay
      allOf:
        - required:
            - content_type
            - href
          properties:
            content_type:
              type: string
              enum:
                - application/javascript
            href:
              type: string
              description: |
                Contains the URI to initiate a payment.
              example: https://ecom.payex.com/payment/core/js...
            rel:
              type: string
              enum:
                - pay-payex-v3-clicktopay
        - $ref: '#/components/schemas/PaymentOperationBase'
      title: pay-payex-v3-clicktopay
    PayExV3SwishPaymentOperation:
      description: |
        Contains href URI to initiate a Swish payment with Swedbank Pay (v3)
      type: object
      x-discriminator-value: pay-payex-v3-swish
      allOf:
        - required:
            - content_type
            - href
          properties:
            content_type:
              type: string
              enum:
                - application/javascript
            href:
              type: string
              description: |
                Contains the URI to initiate a payment.
              example: https://ecom.payex.com/payment/core/js...
            rel:
              type: string
              enum:
                - pay-payex-v3-swish
        - $ref: '#/components/schemas/PaymentOperationBase'
      title: pay-payex-v3-swish
    PayExV3VippsPaymentOperation:
      description: |
        Contains href URI to initiate a Vipps payment with Swedbank Pay (v3)
      type: object
      x-discriminator-value: pay-payex-v3-vipps
      allOf:
        - required:
            - content_type
            - href
          properties:
            content_type:
              type: string
              enum:
                - application/javascript
            href:
              type: string
              description: |
                Contains the URI to initiate a payment.
              example: https://ecom.payex.com/payment/core/js...
            rel:
              type: string
              enum:
                - pay-payex-v3-vipps
        - $ref: '#/components/schemas/PaymentOperationBase'
      title: pay-payex-v3-vipps
    PayExV3MobilePayPaymentOperation:
      description: |
        Contains href URI to initiate a MobilePay payment with Swedbank Pay (v3)
      type: object
      x-discriminator-value: pay-payex-v3-mobilepay
      allOf:
        - required:
            - content_type
            - href
          properties:
            content_type:
              type: string
              enum:
                - application/javascript
            href:
              type: string
              description: |
                Contains the URI to initiate a payment.
              example: https://ecom.payex.com/payment/core/js...
            rel:
              type: string
              enum:
                - pay-payex-v3-mobilepay
        - $ref: '#/components/schemas/PaymentOperationBase'
      title: pay-payex-v3-mobilepay
    PayExV3GooglePayPaymentOperation:
      description: >
        Contains href URI to initiate a Google Pay payment using Swedbank Pay
        (v3)
      type: object
      x-discriminator-value: pay-payex-v3-googlepay
      allOf:
        - required:
            - content_type
            - href
          properties:
            content_type:
              type: string
              enum:
                - application/javascript
            href:
              type: string
              description: |
                Contains the URI to initiate a payment.
              example: https://ecom.payex.com/payment/core/js...
            rel:
              type: string
              enum:
                - pay-payex-v3-googlepay
        - $ref: '#/components/schemas/PaymentOperationBase'
      title: pay-payex-v3-googlepay
    PayExVippsPayment:
      type: object
      x-discriminator-value: payex.vipps
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - type: object
          properties:
            phone_number:
              type: string
              pattern: ^\+?\d{5,15}$
              description: |
                mobile number of a person / company, ITU/E.123 format with
                international prefix (+PPNNNNNNNNN...)
            remember_me:
              type: boolean
              description: >
                If true will either make the backend add or update a signed
                cookie with

                customer data. If false the cookie will be removed. If not set,

                any existing cookie will remain unchanged
            payment_product_type:
              type: string
              enum:
                - payex.vipps
      title: payex.vipps
    KlarnaPaymentOperation:
      description: |
        Contains href URI to initiate a pay with Klarna
      type: object
      x-discriminator-value: pay-klarna
      allOf:
        - required:
            - client_token
            - content_type
            - href
            - method
            - rel
            - order
          properties:
            rel:
              type: string
              enum:
                - pay-klarna
            href:
              type: string
              description: |
                Contains the URI to initiate a payment.
              example: https://checkout.dintero.com/v1/sessions/{session_id}/pay
            method:
              type: string
              enum:
                - POST
            client_token:
              type: string
              description: >
                Client token to be passed to the JS client while initializing
                the

                JS SDK
            order:
              type: string
              description: >
                String representation of the payment order to be used with the
                payment operations.
            content_type:
              type: string
              enum:
                - application/json
        - $ref: '#/components/schemas/PaymentOperationBase'
      title: pay-klarna
    CollectorInvoiceB2BPreapprovedPayment:
      type: object
      x-discriminator-value: collector.invoice_b2b_preapproved
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - $ref: '#/components/schemas/CollectorPaymentDetails'
        - required:
            - shipping_address
            - company_id
          properties:
            shipping_address:
              $ref: '#/components/schemas/CollectorB2BAddress'
            scc:
              type: string
              description: >-
                Optional query parameter. SMS-confirm-code. To verify the
                identity of the payee.
            company_id:
              type: string
              description: Id to represent the company being paid from
            remember_me:
              type: boolean
              description: >
                If true will either make the backend add or update a signed
                cookie with

                customer data. If false the cookie will be removed. If not set,

                any existing cookie will remain unchanged
            authorization_code:
              type: string
              description: |
                Code from authorized customer.
            payment_product_type:
              type: string
              enum:
                - collector.invoice_b2b_preapproved
      title: collector.invoice_b2b_preapproved
    BamboraVippsPayment:
      type: object
      x-discriminator-value: bambora.vipps
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - type: object
          properties:
            phone_number:
              type: string
              pattern: ^\+?\d{5,15}$
              description: |
                mobile number of a person / company, ITU/E.123 format with
                international prefix (+PPNNNNNNNNN...)
            remember_me:
              type: boolean
              description: >
                If true will either make the backend add or update a signed
                cookie with

                customer data. If false the cookie will be removed. If not set,

                any existing cookie will remain unchanged
            payment_product_type:
              type: string
              enum:
                - bambora.vipps
      title: bambora.vipps
    PayExV3PaymentOperation:
      description: |
        Contains href URI to initiate a pay with Swedbank Pay (v3)
      type: object
      x-discriminator-value: pay-payex-v3-creditcard
      allOf:
        - required:
            - content_type
            - href
          properties:
            content_type:
              type: string
              enum:
                - application/javascript
            href:
              type: string
              description: |
                Contains the URI to initiate a payment.
              example: https://ecom.payex.com/payment/core/js...
            rel:
              type: string
              enum:
                - pay-payex-v3-creditcard
        - $ref: '#/components/schemas/PaymentOperationBase'
      title: pay-payex-v3-creditcard
    PayExSwishPayment:
      type: object
      x-discriminator-value: payex.swish
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - properties:
            phone_number:
              type: string
              pattern: ^\+?\d{5,15}$
              description: >
                mobile number of a person / company, ITU/E.123 format with

                international prefix (+PPNNNNNNNNN...)


                The `redirect_url` in the response will be a Swish URL that will

                open the app with the payment request if no phone_number is
                provided.
            remember_me:
              type: boolean
              description: >
                If true will either make the backend add or update a signed
                cookie with

                customer data. If false the cookie will be removed. If not set,

                any existing cookie will remain unchanged
            payment_product_type:
              type: string
              enum:
                - payex.swish
      title: payex.swish
    InstabankPostponementPayment:
      type: object
      x-discriminator-value: instabank.postponement
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - $ref: '#/components/schemas/InstabankDetails'
        - $ref: '#/components/schemas/InstabankPaymentDetails'
        - required:
            - product_code
          properties:
            product_code:
              type: string
              example: '633'
            applicant:
              $ref: '#/components/schemas/InstabankApplication'
            remember_me:
              type: boolean
              description: >
                If true will either make the backend add or update a signed
                cookie with

                customer data. If false the cookie will be removed. If not set,

                any existing cookie will remain unchanged
            payment_product_type:
              type: string
              enum:
                - instabank.postponement
      title: instabank.postponement
    BamboraPaymentOperation:
      description: |
        Contains href URI to initiate a pay with Bambora Checkout
      type: object
      x-discriminator-value: pay-bambora-creditcard
      allOf:
        - $ref: '#/components/schemas/PaymentOperationBase'
        - required:
            - session
            - href
          properties:
            session:
              type: object
              required:
                - token
              properties:
                token:
                  type: string
                  example: fb49265d30aa4f1bb327b943c4d43b14
            href:
              type: string
              description: |
                Contains the URI to initiate a payment.
              example: https://v1.checkout.bambora.com/fb49265d30aa4f1bb327b943c4d43b14
            rel:
              type: string
              enum:
                - pay-bambora-creditcard
      title: pay-bambora-creditcard
    BamboraApplePayPaymentOperation:
      description: |
        Contains a wallet session for Bambora Apple Pay payment.
      type: object
      x-discriminator-value: pay-bambora-applepay
      allOf:
        - $ref: '#/components/schemas/PaymentOperationBase'
        - required:
            - merchant_country
            - supported_networks
            - wallet_session
          properties:
            merchant_country:
              type: string
              description: |
                The country code of the merchant.
              example: 'NO'
            supported_networks:
              type: array
              items:
                type: string
            wallet_session:
              type: object
              required:
                - identifier
                - callback_url
                - payment_session
              properties:
                identifier:
                  type: string
                callback_url:
                  type: string
                payment_session:
                  type: string
            rel:
              type: string
              enum:
                - pay-bambora-applepay
      title: pay-bambora-applepay
    BamboraGooglePayPaymentOperation:
      description: |
        Contains a wallet session for Bambora Google Pay payment.
      type: object
      x-discriminator-value: pay-bambora-googlepay
      allOf:
        - $ref: '#/components/schemas/PaymentOperationBase'
        - required:
            - merchant_country
            - supported_networks
            - gateway_merchant_id
            - googlepay_merchant_id
            - wallet_session
          properties:
            merchant_country:
              type: string
              description: |
                The country code of the merchant.
              example: 'NO'
            supported_networks:
              type: array
              items:
                type: string
            gateway_merchant_id:
              type: string
              description: |
                The gateway merchant ID.
            googlepay_merchant_id:
              type: string
              description: |
                The Google Pay merchant ID.
            wallet_session:
              type: object
              required:
                - identifier
                - callback_url
              properties:
                identifier:
                  type: string
                callback_url:
                  type: string
            rel:
              type: string
              enum:
                - pay-bambora-googlepay
      title: pay-bambora-googlepay
    BamboraPaymentOperationCit:
      description: |
        Contains href URI to initiate pay with Bambora using stored card token
      type: object
      x-discriminator-value: pay-bambora-creditcard-cit
      allOf:
        - $ref: '#/components/schemas/PaymentOperationBase'
        - required:
            - stored_card_info
            - href
          properties:
            stored_card_info:
              type: object
              allOf:
                - $ref: '#/components/schemas/TruncatedCardInfo'
            href:
              type: string
              description: |
                Contains the URI to initiate a payment.
              example: https://checkout.dintero.com/v1/sessions/{session_id}/pay
            rel:
              type: string
              enum:
                - pay-bambora-creditcard-cit
      title: pay-bambora-creditcard-cit
    InstabankInstallmentPayment:
      type: object
      x-discriminator-value: instabank.installment
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - $ref: '#/components/schemas/InstabankDetails'
        - $ref: '#/components/schemas/InstabankPaymentDetails'
        - required:
            - product_code
          properties:
            product_code:
              type: string
              example: '633'
            applicant:
              $ref: '#/components/schemas/InstabankApplication'
            remember_me:
              type: boolean
              description: >
                If true will either make the backend add or update a signed
                cookie with

                customer data. If false the cookie will be removed. If not set,

                any existing cookie will remain unchanged
            payment_product_type:
              type: string
              enum:
                - instabank.installment
      title: instabank.installment
    ViewPaymentOperation:
      description: |
        Contains href URI of the JavaScript used to create a Hosted View
        iframe directly without redirecting the consumer to a separate
        payment page
      type: object
      x-discriminator-value: view-payment
      allOf:
        - $ref: '#/components/schemas/PaymentOperationBase'
        - properties:
            href:
              type: string
              description: >
                Contains the URI of the JavaScript used to create

                a Hosted View iframe directly without redirecting the consumer
                to

                separate payment page.
            rel:
              type: string
              enum:
                - view-payment
      title: view-payment
    CollectorInstallmentPayment:
      type: object
      x-discriminator-value: collector.installment
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - $ref: '#/components/schemas/CollectorPaymentDetails'
        - required:
            - shipping_address
            - billing_address
            - product
          properties:
            product:
              type: object
              required:
                - id
              properties:
                id:
                  type: string
                  description: Id of the payment product
                  example: IF_3_001
            shipping_address:
              $ref: '#/components/schemas/CollectorAddress'
            billing_address:
              $ref: '#/components/schemas/CollectorAddress'
            remember_me:
              type: boolean
              description: >
                If true will either make the backend add or update a signed
                cookie with

                customer data. If false the cookie will be removed. If not set,

                any existing cookie will remain unchanged
            authorization_code:
              type: string
              description: |
                Code from authorized customer.
            social_security_number:
              minLength: 10
              maxLength: 12
              type: string
              description: >
                The social security number of the customer. For Norway, the
                length

                is 11. For Sweden, it's either 10 or 12 digits.
            payment_product_type:
              type: string
              enum:
                - collector.installment
      title: collector.installment
    CollectorInstallmentB2BPreapprovedPayment:
      type: object
      x-discriminator-value: collector.installment_b2b_preapproved
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - $ref: '#/components/schemas/CollectorPaymentDetails'
        - required:
            - shipping_address
            - company_id
            - product
          properties:
            product:
              type: object
              required:
                - id
              properties:
                id:
                  type: string
                  description: Id of the payment product
                  example: IF_3_001
            shipping_address:
              $ref: '#/components/schemas/CollectorB2BAddress'
            scc:
              type: string
              description: >-
                Optional query parameter. SMS-confirm-code. To verify the
                identity of the payee.
            company_id:
              type: string
              description: Id to represent the company being paid from
            remember_me:
              type: boolean
              description: >
                If true will either make the backend add or update a signed
                cookie with

                customer data. If false the cookie will be removed. If not set,

                any existing cookie will remain unchanged
            authorization_code:
              type: string
              description: |
                Code from authorized customer.
            payment_product_type:
              type: string
              enum:
                - collector.installment_b2b_preapproved
      title: collector.installment_b2b_preapproved
    CollectorInvoicePayment:
      type: object
      x-discriminator-value: collector.invoice
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - $ref: '#/components/schemas/CollectorPaymentDetails'
        - required:
            - shipping_address
            - billing_address
          properties:
            shipping_address:
              $ref: '#/components/schemas/CollectorAddress'
            billing_address:
              $ref: '#/components/schemas/CollectorAddress'
            remember_me:
              type: boolean
              description: >
                If true will either make the backend add or update a signed
                cookie with

                customer data. If false the cookie will be removed. If not set,

                any existing cookie will remain unchanged
            authorization_code:
              type: string
              description: |
                Code from authorized customer.
            social_security_number:
              minLength: 10
              maxLength: 12
              type: string
              description: >
                The social security number of the customer. For Norway, the
                length

                is 11. For Sweden, it's either 10 or 12 digits.
            payment_product_type:
              type: string
              enum:
                - collector.invoice
      title: collector.invoice
    KlarnaPayment:
      type: object
      x-discriminator-value: klarna.klarna
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - required:
            - authorization_token
            - billing_address
            - shipping_address
            - locale
          properties:
            authorization_token:
              type: string
              description: >
                Token received from Klarna on the client-side after successful
                authorization
            billing_address:
              $ref: '#/components/schemas/KlarnaAddress'
            shipping_address:
              $ref: '#/components/schemas/KlarnaAddress'
            locale:
              type: string
              example: en-GB
              pattern: ^[A-Za-z]{2}-[A-Za-z]{2}$
              description: |
                Combination of purchase country and language. Example: `"en-GB"`
            payment_product_type:
              type: string
              enum:
                - klarna.klarna
      title: klarna.klarna
    KlarnaBilliePayment:
      type: object
      x-discriminator-value: klarna.billie
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - $ref: '#/components/schemas/KlarnaBilliePaymentInformation'
        - required:
            - authorization_token
          properties:
            authorization_token:
              type: string
              description: >
                Token received from Klarna on the client-side after successful
                authorization
            payment_product_type:
              type: string
              enum:
                - klarna.billie
      title: klarna.billie
    KraviaB2BInvoicePayment:
      type: object
      x-discriminator-value: kravia.invoice_b2b
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - required:
            - billing_address
          properties:
            billing_address:
              $ref: '#/components/schemas/KraviaB2BAddress'
            payment_product_type:
              type: string
              enum:
                - kravia.invoice_b2b
      title: kravia.invoice_b2b
    KraviaGroupedB2BInvoicePayment:
      type: object
      x-discriminator-value: kravia.invoice_b2b_grouped
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - required:
            - billing_address
          properties:
            billing_address:
              $ref: '#/components/schemas/KraviaB2BAddress'
            payment_product_type:
              type: string
              enum:
                - kravia.invoice_b2b_grouped
      title: kravia.invoice_b2b_grouped
    KraviaB2CInvoicePayment:
      type: object
      x-discriminator-value: kravia.invoice_b2c
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - required:
            - billing_address
          properties:
            billing_address:
              $ref: '#/components/schemas/KraviaAddress'
            payment_product_type:
              type: string
              enum:
                - kravia.invoice_b2c
      title: kravia.invoice_b2c
    KraviaGroupedB2BInvoicePaymentOperation:
      description: |
        Contains href URI to initiate a pay with Kravia grouped Invoice B2B
      type: object
      x-discriminator-value: pay-kravia-invoice-b2b-grouped
      allOf:
        - $ref: '#/components/schemas/PaymentOperationBase'
        - properties:
            rel:
              type: string
              enum:
                - pay-kravia-invoice-b2b-grouped
      title: pay-kravia-invoice-b2b-grouped
    KraviaB2BInvoicePaymentOperation:
      description: |
        Contains href URI to initiate a pay with Kravia Invoice B2B
      type: object
      x-discriminator-value: pay-kravia-invoice-b2b
      allOf:
        - $ref: '#/components/schemas/PaymentOperationBase'
        - properties:
            rel:
              type: string
              enum:
                - pay-kravia-invoice-b2b
      title: pay-kravia-invoice-b2b
    KraviaB2CInvoicePaymentOperation:
      description: |
        Contains href URI to initiate a pay with Kravia Invoice B2C
      type: object
      x-discriminator-value: pay-kravia-invoice-b2c
      allOf:
        - $ref: '#/components/schemas/PaymentOperationBase'
        - properties:
            rel:
              type: string
              enum:
                - pay-kravia-invoice-b2c
      title: pay-kravia-invoice-b2c
    KraviaB2BInvoicePayPayment:
      type: object
      x-discriminator-value: kravia.invoice_b2b
      allOf:
        - $ref: '#/components/schemas/PayPaymentBase'
        - required:
            - operation
            - days_until_due
          properties:
            operation:
              type: string
              description: >
                Invoice payment operation requires
                `session.order.billing_address` to be provided with the required
                fields,

                for b2b invoices:
                  - first_name
                  - last_name
                  - address_line
                  - postal_code
                  - country
                  - email
                  - business_name
                  - organization_number
              enum:
                - invoice_payment
            days_until_due:
              type: integer
              description: |
                Number of days until the invoice is due.
              minimum: 0
              maximum: 365
            invoice_channel:
              $ref: '#/components/schemas/InvoiceChannel'
            payment_product_type:
              type: string
              enum:
                - kravia.invoice_b2b
      title: kravia.invoice_b2b
    KraviaB2CInvoicePayPayment:
      type: object
      x-discriminator-value: kravia.invoice_b2c
      allOf:
        - $ref: '#/components/schemas/PayPaymentBase'
        - required:
            - operation
            - days_until_due
          properties:
            operation:
              type: string
              description: >
                Invoice payment operation requires
                `session.order.billing_address` to be provided with the required
                fields,

                for b2c invoices:
                  - first_name
                  - last_name
                  - address_line
                  - postal_code
                  - country
                  - email
              enum:
                - invoice_payment
            days_until_due:
              type: integer
              description: |
                Number of days until the invoice is due.
              minimum: 0
              maximum: 365
            invoice_channel:
              $ref: '#/components/schemas/InvoiceChannel'
            payment_product_type:
              type: string
              enum:
                - kravia.invoice_b2c
      title: kravia.invoice_b2c
    TwoB2BInvoicePaymentOperation:
      description: |
        Contains href URI to initiate a pay with Two B2B
      type: object
      x-discriminator-value: pay-two-invoice-b2b
      allOf:
        - $ref: '#/components/schemas/PaymentOperationBase'
        - required:
            - payment_intent_reference
            - href
          properties:
            payment_intent_reference:
              type: string
              description: A payment intent reference to include with payment initiation
            href:
              type: string
              description: Contains the URI to initiate a payment.
            rel:
              type: string
              enum:
                - pay-two-invoice-b2b
      title: pay-two-invoice-b2b
    TwoB2BInvoicePayment:
      type: object
      x-discriminator-value: two.invoice_b2b
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - required:
            - payment_terms_duration_days
            - billing_address
          properties:
            payment_intent_reference:
              type: string
              description: A payment intent reference to include with payment initiation
            payment_terms_duration_days:
              type: integer
              minimum: 0
              maximum: 90
            billing_address:
              allOf:
                - required:
                    - first_name
                    - last_name
                    - phone_number
                    - email
                    - organization_number
                    - country
                    - business_name
                    - address_line
                    - postal_code
                    - postal_place
                - $ref: '#/components/schemas/TwoB2BAddress'
            shipping_address:
              allOf:
                - required:
                    - business_name
                    - country
                    - address_line
                    - postal_code
                    - postal_place
                - $ref: '#/components/schemas/TwoB2BAddress'
            payment_product_type:
              type: string
              enum:
                - two.invoice_b2b
      title: two.invoice_b2b
    TwoB2BOrderIntent:
      type: object
      allOf:
        - required:
            - billing_address
          properties:
            billing_address:
              allOf:
                - required:
                    - first_name
                    - last_name
                    - phone_number
                    - email
                    - organization_number
                    - country
                    - business_name
                - $ref: '#/components/schemas/TwoB2BAddress'
            shipping_address:
              allOf:
                - required:
                    - business_name
                    - country
                    - address_line
                    - postal_code
                    - postal_place
                - $ref: '#/components/schemas/TwoB2BAddress'
    PayExMobilePayPayment:
      type: object
      x-discriminator-value: payex.mobilepay
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - required:
            - phone_number
          properties:
            phone_number:
              type: string
              pattern: ^\+?\d{5,15}$
              description: |
                mobile number of a person / company, ITU/E.123 format with
                international prefix (+PPNNNNNNNNN...)
            remember_me:
              type: boolean
              description: >
                If true will either make the backend add or update a signed
                cookie with

                customer data. If false the cookie will be removed. If not set,

                any existing cookie will remain unchanged
            payment_product_type:
              type: string
              enum:
                - payex.mobilepay
      title: payex.mobilepay
    InstabankFinancePayment:
      type: object
      x-discriminator-value: instabank.finance
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - $ref: '#/components/schemas/InstabankDetails'
        - $ref: '#/components/schemas/InstabankApplication'
        - $ref: '#/components/schemas/InstabankPaymentDetails'
        - properties:
            remember_me:
              type: boolean
              description: >
                If true will either make the backend add or update a signed
                cookie with

                customer data. If false the cookie will be removed. If not set,

                any existing cookie will remain unchanged
            payment_product_type:
              type: string
              enum:
                - instabank.finance
      title: instabank.finance
    InstabankInvoicePayment:
      type: object
      x-discriminator-value: instabank.invoice
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - $ref: '#/components/schemas/InstabankDetails'
        - $ref: '#/components/schemas/InstabankPaymentDetails'
        - properties:
            applicant:
              $ref: '#/components/schemas/InstabankApplication'
            remember_me:
              type: boolean
              description: >
                If true will either make the backend add or update a signed
                cookie with

                customer data. If false the cookie will be removed. If not set,

                any existing cookie will remain unchanged
            payment_product_type:
              type: string
              enum:
                - instabank.invoice
      title: instabank.invoice
    DinteroPayment:
      type: object
      x-discriminator-value: dintero.zero
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - properties:
            payment_product_type:
              type: string
              enum:
                - dintero.zero
      title: dintero.zero
    DinteroWalletsPayment:
      type: object
      x-discriminator-value: dintero.wallets
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - properties:
            payment_product_type:
              type: string
              enum:
                - dintero.wallets
      title: dintero.wallets
    DinteroPspViewCardPaymentOperation:
      description: |
        Contains href URI to view card GUI for Dintero PSP creditcard payment
      type: object
      x-discriminator-value: view-dintero-psp-creditcard
      allOf:
        - required:
            - href
            - method
            - rel
            - content_type
          properties:
            href:
              type: string
              description: >
                Contains the URI to view card GUI for Dintero PSP creditcard
                payment
              example: https://payments.psp.dintero.com/keys/v1
            method:
              type: string
              enum:
                - GET
            content_type:
              type: string
              enum:
                - text/html
            rel:
              type: string
              enum:
                - view-dintero-psp-creditcard
        - $ref: '#/components/schemas/PaymentOperationBase'
      title: view-dintero-psp-creditcard
    DinteroPspSubmitCardPaymentOperation:
      description: |
        Contains href URI to submit card details to Dintero PSP
      type: object
      x-discriminator-value: submit-dintero-psp-creditcard
      allOf:
        - required:
            - href
            - method
            - rel
            - content_type
          properties:
            href:
              type: string
              description: |
                Contains the URI to submit card details to Dintero PSP
              example: >
                https://payments.psp.dintero.com/card/v1/{account_id}/payments/{payment_id}/transactions
            method:
              type: string
              enum:
                - POST
            content_type:
              type: string
              enum:
                - application/json
            save_card_checkbox:
              type: string
              enum:
                - opt_in
                - opt_out
              description: |
                Indicates how the save card checkbox should be handled.

                - Not provided: Checkbox should not be visible
                - `opt_in`: Checkbox should be unchecked by default
                - `opt_out`: Checkbox should be checked by default
            rel:
              type: string
              enum:
                - submit-dintero-psp-creditcard
        - $ref: '#/components/schemas/PaymentOperationBase'
      title: submit-dintero-psp-creditcard
    DinteroPspSubmitGooglePayPaymentOperation:
      description: >
        Contains href URI to submit Google Pay encrypted payload details to
        Dintero PSP
      type: object
      x-discriminator-value: submit-dintero-psp-googlepay
      allOf:
        - required:
            - href
            - method
            - rel
            - content_type
            - supported_networks
            - gateway_merchant_id
            - googlepay_merchant_id
            - gateway_id
          properties:
            href:
              type: string
              description: >
                Contains the URI to submit Google Pay encrypted payload details
                to Dintero PSP
              example: >
                https://payments.psp.dintero.com/google-pay/v1/{account_id}/payments/{payment_id}/transactions
            method:
              type: string
              enum:
                - POST
            content_type:
              type: string
              enum:
                - application/json
            supported_networks:
              type: array
              items:
                type: string
                enum:
                  - MASTERCARD
                  - VISA
            googlepay_merchant_id:
              type: string
              description: >-
                The merchant ID for Google Pay. If you are integrating with
                Google Pay yourself you should not use this value
            gateway_merchant_id:
              type: string
              description: The gateway merchant ID for Google pay
            gateway_id:
              type: string
              enum:
                - dintero
              description: The gateway ID to use for Google Pay
            rel:
              type: string
              enum:
                - submit-dintero-psp-googlepay
        - $ref: '#/components/schemas/PaymentOperationBase'
      title: submit-dintero-psp-googlepay
    DinteroPspPayCardPaymentOperation:
      description: |
        Contains href URI to initiate a pay with Dintero PSP creditcard
      type: object
      x-discriminator-value: pay-dintero-psp-creditcard
      allOf:
        - required:
            - href
            - method
            - rel
            - content_type
          properties:
            href:
              type: string
              description: |
                Contains the URI to initiate a pay with Dintero PSP creditcard
              example: |
                https://checkout.dintero.com/v1/sessions/{session_id}/pay
            method:
              type: string
              enum:
                - POST
            content_type:
              type: string
              enum:
                - application/json
            rel:
              type: string
              enum:
                - pay-dintero-psp-creditcard
        - $ref: '#/components/schemas/PaymentOperationBase'
      title: pay-dintero-psp-creditcard
    DinteroPspPayTokenOperation:
      description: |
        Contains href URI to initiate a pay with Dintero PSP using token.
        Note that there will be one token operation per token
      type: object
      x-discriminator-value: pay-dintero-psp-token
      allOf:
        - required:
            - href
            - method
            - rel
            - content_type
            - token_id
            - metadata
          properties:
            href:
              type: string
              description: |
                Contains the URI to initiate a pay with Dintero PSP creditcard
              example: |
                https://checkout.dintero.com/v1/sessions/{session_id}/pay
            method:
              type: string
              enum:
                - POST
            content_type:
              type: string
              enum:
                - application/json
            token_id:
              type: string
              description: ID of token to use for payment
            metadata:
              type: object
              description: Metadata for card token
              required:
                - brand
              properties:
                card_last_4:
                  type: string
                  description: Last 4 digits of card PAN
                brand:
                  type: string
                  enum:
                    - visa
                    - mastercard
                  description: Brand of card
                card_art_front_href:
                  type: string
                  description: URI to card art for front of card
                card_art_symbol_href:
                  type: string
                  description: URI to card art for symbol
            rel:
              type: string
              enum:
                - pay-dintero-psp-token
        - $ref: '#/components/schemas/PaymentOperationBase'
      title: pay-dintero-psp-token
    DinteroPspCreditcardPayment:
      type: object
      x-discriminator-value: dintero_psp.creditcard
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - required:
            - psp_transaction_id
          properties:
            psp_transaction_id:
              type: string
              description: >
                Transaction id received from psp-service when creating card
                transaction
            payment_product_type:
              type: string
              enum:
                - dintero_psp.creditcard
      title: dintero_psp.creditcard
    DinteroPspVippsPayment:
      type: object
      x-discriminator-value: dintero_psp.vipps
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - type: object
          properties:
            phone_number:
              type: string
              pattern: ^\+?\d{5,15}$
              description: |
                mobile number of a person / company, ITU/E.123 format with
                international prefix (+PPNNNNNNNNN...)
            remember_me:
              type: boolean
              description: >
                If true will either make the backend add or update a signed
                cookie with

                customer data. If false the cookie will be removed. If not set,

                any existing cookie will remain unchanged
            payment_product_type:
              type: string
              enum:
                - dintero_psp.vipps
      title: dintero_psp.vipps
    DinteroPspGooglePayPayment:
      type: object
      x-discriminator-value: dintero_psp.googlepay
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - required:
            - psp_transaction_id
          properties:
            psp_transaction_id:
              type: string
              description: >
                Transaction id received from psp-service when creating card
                transaction
            billing_address:
              $ref: '#/components/schemas/OrderAddress'
            shipping_address:
              $ref: '#/components/schemas/OrderAddress'
            payment_product_type:
              type: string
              enum:
                - dintero_psp.googlepay
      title: dintero_psp.googlepay
    DinteroPspApplePaySubmitOperation:
      description: |
        Contains the URI to initiate a payment.
      type: object
      x-discriminator-value: submit-dintero-psp-applepay
      allOf:
        - required:
            - href
            - method
            - rel
            - content_type
            - merchant_country
            - supported_networks
          properties:
            href:
              type: string
              description: |
                Contains the URI to initiate a payment.
              example: >
                https://payments.psp-test.dintero.com/apple-pay/v1/account_id/payments/payment_id/transactions"
            method:
              type: string
              enum:
                - POST
            content_type:
              type: string
              enum:
                - application/json
            merchant_country:
              type: string
              description: |
                The country code of the merchant.
            supported_networks:
              type: array
              items:
                type: string
                enum:
                  - MASTERCARD
                  - VISA
            rel:
              type: string
              enum:
                - submit-dintero-psp-applepay
        - $ref: '#/components/schemas/PaymentOperationBase'
      title: submit-dintero-psp-applepay
    DinteroPspApplePayMerchantValidationOperation:
      description: |
        Contains the URI to validate merchant and get merchant session object
      type: object
      x-discriminator-value: validate-dintero-psp-applepay-merchant
      allOf:
        - required:
            - href
            - method
            - rel
            - content_type
          properties:
            href:
              type: string
              description: >
                Contains the URI to validate merchant and get merchant session
                object
              example: >
                https://payments.psp-test.dintero.com/applepay/v1/{account_id}/validate
            method:
              type: string
              enum:
                - GET
            content_type:
              type: string
              enum:
                - application/json
            rel:
              type: string
              enum:
                - validate-dintero-psp-applepay-merchant
        - $ref: '#/components/schemas/PaymentOperationBase'
      title: validate-dintero-psp-applepay-merchant
    BamboraCreditcardCitPayment:
      type: object
      x-discriminator-value: bambora.creditcard
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - required:
            - browser_information
          properties:
            remember_me:
              type: boolean
              description: >
                If true will either make the backend add or update a signed
                cookie with

                customer data. If false the cookie will be removed. If not set,

                any existing cookie will remain unchanged
            browser_information:
              type: object
              required:
                - java_enabled
                - javascript_enabled
                - color_depth
                - screen_width
                - screen_height
                - timezone_offset
              properties:
                java_enabled:
                  type: boolean
                  description: >
                    Whether browser can execute Java or not. The value of
                    navigator.javaEnabled browser property.
                javascript_enabled:
                  type: boolean
                  description: |
                    Whether browser can execute JavaScript or not.
                color_depth:
                  type: number
                  description: >
                    The bit depth of the colour palette for displaying images,
                    in bits per pixel. The value of screen.colorDepth browser
                    property.
                  example: 24
                screen_height:
                  type: number
                  description: >
                    Total height of the browser screen in pixels. The value of
                    screen.height browser property.
                  example: 1080
                screen_width:
                  type: number
                  description: >
                    Total width of the browser screen in pixels. The value of
                    screen.width browser property.
                  example: 1920
                timezone_offset:
                  type: number
                  description: >
                    Time difference between UTC time and the browser local time,
                    in minutes.
                  example: 180
            payment_product_type:
              type: string
              enum:
                - bambora.creditcard
      title: bambora.creditcard
    SeitatechInPersonPayment:
      type: object
      x-discriminator-value: seitatech.in_person
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - properties:
            payment_product_type:
              type: string
              enum:
                - seitatech.in_person
      title: seitatech.in_person
    AmountLimitLTERule:
      type: object
      x-discriminator-value: amount_lte
      allOf:
        - $ref: '#/components/schemas/SCARuleBase'
        - $ref: '#/components/schemas/AmountLimit'
        - properties:
            type:
              type: string
              enum:
                - amount_lte
      title: amount_lte
    DinteroPspVisaClickToPayPayment:
      type: object
      x-discriminator-value: dintero_psp.clicktopay
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - required:
            - psp_transaction_id
          properties:
            psp_transaction_id:
              type: string
              description: >
                Transaction id received from psp-service when creating card
                transaction
            payment_product_type:
              type: string
              enum:
                - dintero_psp.clicktopay
      title: dintero_psp.clicktopay
    DinteroPspSubmitVisaClickToPayPaymentOperation:
      description: >
        Contains href URI to submit Visa Click-to-Pay payment details to Dintero
        PSP.
      type: object
      x-discriminator-value: submit-dintero-psp-visa-click-to-pay
      allOf:
        - required:
            - href
            - method
            - rel
            - content_type
            - supported_networks
            - dpa_id
            - dpa_client_id
            - acquirer_merchant_id
            - acquirer_bin
            - merchant_country_code
          properties:
            href:
              type: string
              description: >
                Contains the URI to submit Visa Click-to-Pay payment details to
                Dintero PSP.
            method:
              type: string
              enum:
                - POST
            content_type:
              type: string
              enum:
                - application/json
            supported_networks:
              type: array
              items:
                type: string
                enum:
                  - mastercard
                  - visa
            dpa_id:
              type: string
              description: Unique identifier for the DPA (Digital Payment App) partner.
            dpa_client_id:
              type: string
              description: >-
                The dpa_client_id is a reference identifier for the merchant for
                the DPA. This will generally be the account ID.
            merchant_category_code:
              type: string
              minLength: 1
              maxLength: 4
              description: Merchant category code (MCC) for the merchant account.
            acquirer_merchant_id:
              type: string
              pattern: ^[PT]{1}\d{8}$
              minLength: 9
              maxLength: 9
              example: P12345678
              description: The merchant account ID at Dintero.
            merchant_country_code:
              type: string
              format: iso3166-alpha2
              example: 'NO'
              description: The merchant's country code.
            acquirer_bin:
              type: string
              pattern: ^\d{6}$
              example: '012345'
              minLength: 6
              maxLength: 6
              description: Bank Identification Number (BIN) for the acquirer.
            acquirer_bins:
              description: >-
                Bank Identification Number (BIN) for the acquirer for different
                schemes.
              type: object
              properties:
                visa:
                  type: string
                  pattern: ^\d{6}$
                  example: '012345'
                  minLength: 6
                  maxLength: 6
                  description: Visa Bank Identification Number (BIN) for the acquirer.
                mastercard:
                  type: string
                  pattern: ^\d{6}$
                  example: '012345'
                  minLength: 6
                  maxLength: 6
                  description: >-
                    Mastercard Bank Identification Number (BIN) for the
                    acquirer.
            rel:
              type: string
              enum:
                - submit-dintero-psp-visa-click-to-pay
        - $ref: '#/components/schemas/PaymentOperationBase'
      title: submit-dintero-psp-visa-click-to-pay
    DinteroExternalPayment:
      type: object
      x-discriminator-value: dintero.external
      allOf:
        - $ref: '#/components/schemas/PaymentBase'
        - properties:
            payment_product_type:
              type: string
              enum:
                - dintero.external
      title: dintero.external
    TerminalOperationRequest:
      discriminator:
        propertyName: operation
        mapping:
          end_of_day: '#/components/schemas/TerminalOperationEndOfDayRequest'
          send_logs: '#/components/schemas/TerminalOperationSendLogsRequest'
          check_update: '#/components/schemas/TerminalOperationCheckUpdateRequest'
          open_menu: '#/components/schemas/TerminalOperationOpenMenuRequest'
      oneOf:
        - $ref: '#/components/schemas/TerminalOperationEndOfDayRequest'
        - $ref: '#/components/schemas/TerminalOperationSendLogsRequest'
        - $ref: '#/components/schemas/TerminalOperationCheckUpdateRequest'
        - $ref: '#/components/schemas/TerminalOperationOpenMenuRequest'
    TerminalOperationEndOfDayRequest:
      x-discriminator-value: end_of_day
      allOf:
        - $ref: '#/components/schemas/TerminalOperationRequestBase'
        - type: object
          properties:
            parameters:
              type: object
              properties:
                operator_id:
                  type: string
                  description: >-
                    Identifies the operator initiating end of day. If not
                    provided, current active operator is used.
            operation:
              type: string
              enum:
                - end_of_day
      title: end_of_day
    TerminalOperationSendLogsRequest:
      x-discriminator-value: send_logs
      allOf:
        - $ref: '#/components/schemas/TerminalOperationRequestBase'
        - properties:
            operation:
              type: string
              enum:
                - send_logs
      title: send_logs
    TerminalOperationCheckUpdateRequest:
      x-discriminator-value: check_update
      allOf:
        - $ref: '#/components/schemas/TerminalOperationRequestBase'
        - properties:
            operation:
              type: string
              enum:
                - check_update
      title: check_update
    TerminalOperationOpenMenuRequest:
      x-discriminator-value: open_menu
      allOf:
        - $ref: '#/components/schemas/TerminalOperationRequestBase'
        - properties:
            operation:
              type: string
              enum:
                - open_menu
      title: open_menu
    TerminalOperation:
      discriminator:
        propertyName: operation
        mapping:
          end_of_day: '#/components/schemas/TerminalOperationEndOfDay'
          send_logs: '#/components/schemas/TerminalOperationSendLogs'
          check_update: '#/components/schemas/TerminalOperationCheckUpdate'
          open_menu: '#/components/schemas/TerminalOperationOpenMenu'
      description: Terminal operation. The shape depends on the operation field.
      oneOf:
        - $ref: '#/components/schemas/TerminalOperationEndOfDay'
        - $ref: '#/components/schemas/TerminalOperationSendLogs'
        - $ref: '#/components/schemas/TerminalOperationCheckUpdate'
        - $ref: '#/components/schemas/TerminalOperationOpenMenu'
    TerminalOperationEndOfDay:
      x-discriminator-value: end_of_day
      allOf:
        - $ref: '#/components/schemas/TerminalOperationBase'
        - type: object
          properties:
            parameters:
              type: object
              description: Parameters of the operation.
              properties:
                operator_id:
                  type: string
                  description: >-
                    Identifies the operator initiating end of day. If not
                    provided, current active operator is used.
            result:
              description: Present when status is COMPLETED.
              type: object
              properties:
                outcome:
                  type: string
                  description: Result of the end of day operation.
                  enum:
                    - accepted
                    - offline_accepted
                    - not_accepted
                    - no_user_found
                batch_id:
                  type: string
                  description: Batch identifier.
                start_of_day_at:
                  type: string
                  format: date-time
                  description: Timestamp of start of day. Only present if the day is open.
                last_end_of_day_at:
                  type: string
                  format: date-time
                  description: Timestamp of the last successful end of day.
                purchases_count:
                  type: integer
                  description: Number of purchases in the batch.
                purchases_amount:
                  type: integer
                  description: Total amount of purchases in the batch, in minor units.
                reversals_count:
                  type: integer
                  description: Number of reversals in the batch.
                reversals_amount:
                  type: integer
                  description: Total amount of reversals in the batch, in minor units.
                sale_amount:
                  type: integer
                  description: Total sale amount for the batch, in minor units.
                tip_amount:
                  type: integer
                  description: Total tip amount for the batch, in minor units.
            operation:
              type: string
              enum:
                - end_of_day
      title: end_of_day
    TerminalOperationSendLogs:
      x-discriminator-value: send_logs
      allOf:
        - $ref: '#/components/schemas/TerminalOperationBase'
        - properties:
            operation:
              type: string
              enum:
                - send_logs
      title: send_logs
    TerminalOperationCheckUpdate:
      x-discriminator-value: check_update
      allOf:
        - $ref: '#/components/schemas/TerminalOperationBase'
        - type: object
          properties:
            result:
              description: Present when status is COMPLETED.
              type: object
              properties:
                terminal_reboot:
                  type: boolean
                  description: Whether the terminal will reboot.
            operation:
              type: string
              enum:
                - check_update
      title: check_update
    TerminalOperationOpenMenu:
      x-discriminator-value: open_menu
      allOf:
        - $ref: '#/components/schemas/TerminalOperationBase'
        - properties:
            operation:
              type: string
              enum:
                - open_menu
      title: open_menu
    CallbackUrl:
      type: string
      format: uri
      pattern: https?://*
      example: https://example.com/callback?method=GET
      description: >
        URL that Checkout will call when the session

        payment is complete and the transaction has been authorized.


        > **Callback is only delivered to HTTPS URLs**


        > A callback done with a transaction with status `ON_HOLD` will receive

        > an aditional callback (later) when the transaction state changes
        status

        > from `ON_HOLD`.


        > The callback may be received after the transaction is `CAPTURED`

        > in case when the transaction was created from a session where

        > `auto_capture` was enabled.


        Unlike the `return_url` the `callback_url` is system-to-system

        which means delivery is guaranteed.


        Once a session payment is complete the callback_url is invoked as a

        `GET` request to notify your system that the payment has been approved.


        - A callback_url with `method=POST` query parameter will be invoked as a
          `POST` request with the transaction included in the request body.

        - A callback_url with `report_error=true` will enable the callback_url
          to be called if the payment failed with error `cancelled`, `authorization`
          or `failed`.

        - A callback_url with `delay_callback=<seconds>` will delay the callback
          before trying to deliver the callback. The **maximum** delay is 60 seconds.

        - A callback_url with `report_event={EVENT}` will enable the
        callback_url
          to be called if a payment event has been applied to the transaction. Valid
          values are `CAPTURE`, `REFUND` and `VOID`. The callback_url can contain
          multiple `report_event` query parameters. An `event` query parameter will be
          included in the request sent to the callback_url.

        - A callback_url with `includes=session` will enable the callback_url
          to include the session data in the body.

        - A callback_url with `sid_parameter_name=sid` will change the query
        param `session_id`
          to `sid` to avoid false session fixation alarms in firewalls. Possible values: `sid`, `session_id`

        A successful delivery to an HTTPS callback_url sometimes requires

        more than one attempt. This can be the case, for example, if the server

        hosting the callback_url is down for maintenance or is experiencing

        heavy traffic.


        Dintero attempts a retry only after a failed delivery attempt, following

        situations is considered as failed delivery

         - HTTP status code 100 to 101 and 500 to 599 (inclusive)
           (HTTP status code 400 to 499 is considered as permanent failure)
         - A request timeout (10 seconds)
         - Any connection error such as connection timeout, bad certificate, etc

        Failed delivery will be retried 20 times.

         query name        | type          | description                  | required
        ------------------ | :-----------: | :--------------------------- |
        :-----------

        transaction_id     | string        | Transaction Id               | true

        session_id         | string        | Session Id                   | true

        sid                | string        | Session Id when
        sid_parameter_name=sid | true

        merchant_reference | string        | The merchants reference      | true

        time               | string        | ISO 8601 format              | true

        error              | string        | Error code                   |
        false

        event              | string        | event applied                |
        false

        event_id           | string        | event id for callback        |
        false

        includes           | string array  | include additional data      |
        false


        > The transaction_id is optional when callback_url enables
        `report_error`

        > where error query will be included in case where the payment was
        completed

        > without creating an authorized transaction.


        > It is not possible to use `https://localhost` or `http://127.0.0.1`
        for

        > the callback URL as Checkout backend would then call itself.


        See [validating
        callbacks](https://docs.dintero.com/docs/checkout/validating-callbacks)
        to see how you can verify the integrity of the callbacks,
    SessionUrls:
      type: object
      required:
        - return_url
      properties:
        return_url:
          type: string
          format: uri
          example: https://example.com/accept
          description: >
            URL to page where Checkout will redirect the

            customer to after the Checkout process has ended.


            If a transaction was completed successfully, a `transaction_id`

            will be appended to the URL as a `query` string parameter


            > A `transaction_id` will be appended to the URL if the

            > Checkout failed with `error=capture`


            > A transaction with status `ON_HOLD` must be handled as a payment

            > that is pending approval, where the transaction will later be
            updated

            > with a final payment staus `AUTHORIZED` or `FAILED`.

            > We recommend that `callback_url` is used to receive the callback
            when

            > the transaction changes status from `ON_HOLD` to `AUTHORIZED` or
            `FAILED`.

            > Alternative is to do an hourly/daily poll on the transaction to
            check

            > if the status has changed.


            *Example*:

               ```
               https://example.com/accept?transaction_id=T00000000.3YkJXSdSnUBXcmQSzn7uJj
               ```

             query name        | type         | description                    | required
            ------------------ | :----------: | ------------------------------ |
            :-----------:

            transaction_id     |   string     | Transaction Id                 |
            false

            error              |   string     | Error code identifying cause   |
            false

            merchant_reference |   string     | The merchants reference        |
            true


            In case of that something went wrong with the payment flow, an

            `error` query parameter will be appended to the URL. The value

            of the error is a code identifying the cause.


            error         | Description

            ------------- | ------------

            cancelled     | Customer cancelled the checkout payment

            authorization | Customer failed to authorize the payment

            failed        | The transaction has been rejected by us, or an error
            has occurred during transaction processing


            ### configuration.channel=in_app


            The `in_app` channel is intended for payments done from mobile
            devices

            where `url.return_url` can be set to the application's appswitch
            URL.


            #### initial_recipient=merchant


            If the query-param `initial_recipient=merchant` is appended to the

            appswitch URL, the payment app will switch directly to the app,

            i.e. without doing a redirect.


            **The option is not supported for:**


            - payex.vipps

            - payex.swish

            - bambora.mobilepay


            Following query parameters will be added to the `return_url`

             query name               | type         | description                    | required
            ------------------------- | :----------: |
            ------------------------------ | :-----------:

            transaction_id            |   string     | Transaction
            Id                 | false

            session_id                |   string     | Session
            Id                     | false

            error                     |   string     | Error code identifying
            cause   | false

            payment_return_url        |   string     | Redirect URL to Dintero
            API    | false

            merchant_reference        |   string     | The merchants
            reference        | true


            If the `payment_return_url` is present, you can use it to get a url
            containing the `session_id`

            or `transaction_id`. `payment_return_url` will only be present when
            `configuration.channel=in_app`

            and `initial_recipient=merchant` is appended on the appswitch URL.


            > The `payment_return_url` may initially return `202 Accepted` if
            the

            > payment confirmation is not ready yet.

            > Once ready, a `302 Found` redirect is returned to the `return_url`


            You will in this case be required to poll for status on the payment
            by using the

            `session_id` or `transaction_id` to poll from the endpoints:


            - [GET
            /v1/sessions/{session_id}](/api-reference/session/checkout_session_get)

            - [GET
            /v1/transactions/{transaction_id}](/api-reference/transactions/transactions_id_get)


            Poll the transaction until it has been updated with one of these
            statuses:


            - AUTHORIZED

            - CAPTURED

            - FAILED


            In case no `transaction_id` is included in the return url, poll the

            session to get the `transaction_id`


            Example url:
            `myapp://?initial_recipient=merchant&transaction_id=T12345678.abc&merchant_reference=mref123&session_id=T12345678.abd`
        callback_url:
          $ref: '#/components/schemas/CallbackUrl'
        merchant_terms_url:
          type: string
          format: uri
          pattern: https?://*
          example: https://example.com/terms.html
          description: >
            URL to a webpage with the merchant's Terms of Service. Will be
            linked to from the checkout.
    SessionCustomer:
      type: object
      properties:
        customer_id:
          type: string
          description: |
            Customer id
        email:
          type: string
          example: john.doe@example.com
          description: |
            Customer email address
        phone_number:
          type: string
          example: '+4799999999'
          description: |
            Customer phone number, ITU/E.123 format with
            international prefix (+PPNNNNNNNNN...)
    OrderAddress:
      type: object
      description: Address
      properties:
        first_name:
          type: string
          example: John
        last_name:
          type: string
          example: Doe
        address_line:
          type: string
          description: Gaustadalleen 21
        address_line_2:
          type: string
          description: PB 123
        co_address:
          type: string
          example: Land Lord
        business_name:
          type: string
          description: Name of the company
        postal_code:
          type: string
          description: The zip code / postal code of the address.
          example: '0349'
        postal_place:
          type: string
          description: The name of the postal code
          example: Oslo
        country:
          type: string
          format: iso3166-alpha2
          description: Country of the location
          example: 'NO'
        phone_number:
          type: string
          pattern: ^\+?\d{5,15}$
          description: |
            mobile number of a person / company, ITU/E.123 format with
            international prefix (+PPNNNNNNNNN...)
        email:
          type: string
          description: |
            The email address of a person or an organization
        latitude:
          type: number
        longitude:
          type: number
        comment:
          type: string
          description: |
            Comment about the address
        organization_number:
          type: string
          description: |
            The organization number of the customer.
        organization_type:
          type: string
          description: |
            Type indicating what kind of organization it is.
        customer_reference:
          type: string
          description: The customer's reference
        cost_center:
          type: string
          description: For companies that needs to specify a cost center.
    PayoutFeeSplit:
      type: object
      description: >
        Specify how fees are handled with splits. The default behaviour is to
        share

        the fees proportional with all splits destinations
      required:
        - type
      properties:
        type:
          type: string
          description: >
            - **`proportional`**: Fees are shared proportionally across
            `destinations`, weighted by each destination's split amount. Every
            destination must also be included in `splits`.

            - **`equal_fee_only`**: Fees are shared equally across
            `destinations`. These destinations must not be included in `splits`
            and receive no income from the order - they only accumulate fee
            debt.
          enum:
            - proportional
            - equal_fee_only
        destinations:
          type: array
          description: >
            Seller ids that will be debited for the payment fees.


            - When `type` is `proportional`, all destinations must also be
            included in the list of `splits`.

            - When `type` is `equal_fee_only`, destinations must not be included
            in `splits`. The fee is divided equally between them, and they
            receive no income from the order - only fee debt.
          minItems: 1
          items:
            type: string
            maxLength: 40
    PayoutSplit:
      type: object
      required:
        - payout_destination_id
        - amount
      properties:
        payout_destination_id:
          type: string
          maxLength: 40
          example: seller-1
          description: >
            An id that identifies the seller


            Note: The seller must be configured before the funds will be paid
            out. See
            https://docs.dintero.com/docs/checkout/split-payment/add-payout-destinations
        amount:
          type: integer
          format: int32
          example: 29700
          minimum: 0
          description: |
            The split amount in smallest unit for the currency, e.g. cents.
    EmdEvent:
      type: array
      description: >
        Only required if the item is related to an event or multiple events,

        like for example tickets to a concert.


        If you are selling an event package as a single ticket or item that

        includes multiple events, for example a festival, you need to provide

        information about all the individual events that are part of the
        package.
      items:
        type: object
        required:
          - event_name
          - event_company
          - genre_of_event
          - start_time
          - end_time
          - ticket_delivery_method
          - ticket_delivery_recipient
        properties:
          event_name:
            type: string
            description: Name of the event, e.g. "Fancy Singer"
            example: Michael Jackson
          event_company:
            type: string
            description: Name of the company arranging the event, e.g. "Happy Parties Ltd."
            example: Diamond Events
          genre_of_event:
            type: string
            description: Category or type of venue, e.g. "Pop"
            example: Pop
          arena_name:
            type: string
            description: Name of the venue, e.g. "Song Arena"
            example: Oslo Spektrum
          arena_location:
            type: object
            required:
              - city
              - country
            properties:
              street_address:
                type: string
                description: >-
                  Street address representing the venue location, e.g. "Sonja
                  Henies plass 2"
                example: Sonja Henies plass 2
              postal_code:
                type: string
                description: Postal code for the venue location, e.g. "0185"
                example: '0185'
              city:
                type: string
                description: City that the venue is located in, e.g. "Oslo"
                example: Oslo
              country:
                type: string
                description: >
                  Country that the venue is located in (ISO 3166-1 alpha-2
                  format), e.g. "NO"
                example: 'NO'
          start_time:
            type: string
            format: date-time
            description: >
              Start time of the event (ISO 8601 format), e.g.
              "2023-08-16T15:00:00Z".


              If a timezone is not specified we assume UTC.
            example: '2023-08-16T15:00:00Z'
          end_time:
            type: string
            format: date-time
            description: >
              End time of the event (ISO 8601 format), e.g.
              "2023-08-16T16:00:00Z".


              If a timezone is not specified we assume UTC.
            example: '2023-08-16T16:00:00Z'
          access_controlled_venue:
            type: boolean
            description: >-
              If tickets are digitally checked when entering the venue, e.g.
              true
            example: true
          ticket_delivery_method:
            type: string
            enum:
              - pick_up
              - email
              - post
              - phone
            example: email
          ticket_delivery_recipient:
            type: string
            description: >
              Name of the recipient the ticket is delivered to, e.g.
              "recipient@mail.com".


              If email or phone, then use either the email address or the phone
              number respectively.
            example: recipient@mail.com
          affiliate_name:
            type: string
            description: |
              Name of the affiliate that originated the purchase.
            example: Klarna affiliate
    EmdSubscription:
      type: object
      description: |
        Details related to the subscription.
      required:
        - subscription_name
        - start_time
        - end_time
        - auto_renewal_of_subscription
      properties:
        subscription_name:
          type: string
          description: Name of the product on subscription, e.g. "Contact lenses"
          example: Contact lenses
        start_time:
          type: string
          format: date-time
          description: |
            The start time of the subscription (ISO 8601 format),
            e.g. "2023-08-16T15:00:00Z".

            If a timezone is not specified we assume UTC
          example: '2023-08-16T15:00:00Z'
        end_time:
          type: string
          format: date-time
          description: |
            The end time of the subscription (ISO 8601 format),
            e.g. "2023-09-16T15:00:00Z".

            If a timezone is not specified we assume UTC
          example: '2023-09-16T15:00:00Z'
        auto_renewal_of_subscription:
          type: boolean
          description: |
            Whether the subscription will be auto renewed upon expiry, e.g. true
          example: true
        affiliate_name:
          type: string
          description: |
            Name of the affiliate that originated the purchase.
          example: Klarna affiliate
    EmdCustomerAccountInfo:
      type: object
      description: >
        Information related to the customer that wants to purchase the
        subscription.
      required:
        - unique_account_identifier
        - account_registration_date
        - account_last_modified
      properties:
        unique_account_identifier:
          type: string
          description: |
            Unique name / number to identify the specific customer account.
            Max 24 characters, e.g. "Adam Adamsson"
          example: Adam Adamsson
        account_registration_date:
          type: string
          description: |
            The date and time the account was registered (ISO 8601 format),
            e.g. "2023-08-16T15:00:00Z".

            If a timezone is not specified we assume UTC.
          example: '2023-08-16T15:00:00Z'
        account_last_modified:
          type: string
          description: |
            The date and time the account was last modified (ISO 8601 format),
            e.g. "2023-10-16T15:00:00Z".

            If a timezone is not specified we assume UTC.
          example: '2023-10-16T15:00:00Z'
    EmdRecurring:
      type: object
      description: >
        Only required if the item is related to a subscription.


        If that is the case, you need to provide information about both the
        subscription

        and the customer account.
      required:
        - subscription
        - customer_account_info
      properties:
        subscription:
          $ref: '#/components/schemas/EmdSubscription'
        customer_account_info:
          $ref: '#/components/schemas/EmdCustomerAccountInfo'
    EmdAirReservationDetailsItinerary:
      type: object
      required:
        - departure
        - arrival
        - carrier
        - departure_date
        - ticket_delivery_method
        - ticket_delivery_recipient
      properties:
        departure:
          type: string
          description: IATA Airport Code (three letters), e.g. "OSL"
          example: OSL
        departure_city:
          type: string
          description: City the flight departs from, e.g. "Oslo"
          example: Oslo
        arrival:
          type: string
          description: IATA Airport Code (three letters), e.g. "MUC"
          example: MUC
        arrival_city:
          type: string
          description: City the flight arrives in, e.g. "Munich"
          example: Munich
        carrier:
          type: string
          description: IATA Airline standard (two letters or digits), e.g. "LH"
          example: LH
        segment_price:
          type: integer
          description: |
            Price for that specific segment of the flight
            in smallest unit of local currency, e.g. 200000
          example: 200000
        departure_date:
          type: string
          description: |
            Departure date (ISO 8601 format), e.g. "2023-08-16T15:00:00Z"

            If a timezone is not specified, we assume UTC.
          example: '2023-08-16T15:00:00Z'
        ticket_delivery_method:
          type: string
          enum:
            - pick_up
            - email
            - post
            - phone
          example: phone
        ticket_delivery_recipient:
          type: string
          description: >
            Name of the recipient the ticket is delivered to, e.g. "Maximilian".


            If email or phone, then use either the email address or the phone
            number respectively.
          example: '97712123'
        passenger_id:
          type: array
          description: IDs of all the passengers included in this itinerary.
          example:
            - 1
          items:
            type: integer
        class:
          type: string
          description: Travel class, e.g. "First Class"
          example: First Class
    EmdTravelInsurance:
      type: object
      properties:
        insurance_company:
          type: string
          description: >-
            Name of the company which offers the insurance, e.g. "Oopsie
            Insurance Ltd."
          example: Oopsie Insurance Ltd.
        insurance_type:
          type: string
          enum:
            - cancellation
            - travel
            - cancellation_travel
            - bankruptcy
          description: Type of insurance, e.g. "travel"
          example: travel
        insurance_price:
          type: integer
          description: |
            Price of the insurance in smallest unit of local currency,
            e.g. 50000
          example: 50000
    EmdTravelPassenger:
      type: object
      required:
        - first_name
        - last_name
      properties:
        id:
          type: integer
          description: Passenger id, e.g. 1
          example: 1
        title:
          type: string
          enum:
            - mr
            - mrs
            - ms
            - ''
          description: |
            Passenger title, e.g. "mr".

            Blank if under 12 years.
          example: mr
        first_name:
          type: string
          description: First name of the passenger, e.g. "Paul"
          example: Paul
        last_name:
          type: string
          description: Last name of the passenger, e.g. "Lamb"
          example: Lamb
    EmdAirReservationDetails:
      type: object
      description: |
        Details about the reservation of airline tickets.
      required:
        - itinerary
      properties:
        pnr:
          type: string
          description: |
            Trip booking number, e.g. "VH67899"
          example: VH67899
        itinerary:
          type: array
          description: >
            Itinerary data, one per segment.


            If you are selling a ticket that contains one flight from Oslo to
            Munich,

            and another flight from Munich to Dubai, you need to provide one

            itinerary object for each of these two flights, and so on.
          items:
            $ref: '#/components/schemas/EmdAirReservationDetailsItinerary'
        insurance:
          type: array
          description: Insurance data, one per segment
          items:
            $ref: '#/components/schemas/EmdTravelInsurance'
        passengers:
          type: array
          description: Passenger data, one per passenger.
          items:
            $ref: '#/components/schemas/EmdTravelPassenger'
        affiliate_name:
          type: string
          description: Name of the affiliate that originated the purchase.
          example: Klarna affiliate
    EmdBusReservationDetailsItinerary:
      type: object
      required:
        - departure_city
        - arrival_city
        - carrier
        - departure_date
        - ticket_delivery_method
        - ticket_delivery_recipient
      properties:
        departure_city:
          type: string
          description: City the bus departs from, e.g. "Oslo"
          example: Oslo
        arrival_city:
          type: string
          description: City the bus arrives in, e.g. "Munich"
          example: Munich
        carrier:
          type: string
          description: Name of transportation company. "Big Bus Travels Ltd."
          example: Big Bus Travels Ltd.
        segment_price:
          type: integer
          description: |
            Price for that specific segment of the bus journey
            in smallest unit of local currency, e.g. 200000
          example: 200000
        departure_date:
          type: string
          description: |
            Departure date (ISO 8601 format), e.g. "2023-08-16T15:00:00Z".

            If a timezone is not specified, we assume UTC.
          example: '2023-08-16T15:00:00Z'
        ticket_delivery_method:
          type: string
          enum:
            - pick_up
            - email
            - post
            - phone
          example: phone
        ticket_delivery_recipient:
          type: string
          description: >
            Name of the recipient the ticket is delivered to, e.g. "Maximilian".


            If email or phone, then use either the email address or the phone
            number respectively.
          example: '97712123'
        passenger_id:
          type: array
          description: IDs of all the passengers included in this itinerary.
          example:
            - 1
          items:
            type: integer
        class:
          type: string
          description: Travel class, e.g. "First Class"
          example: First Class
    EmdBusReservationDetails:
      type: object
      description: |
        Details about the reservation of bus tickets.
      required:
        - itinerary
      properties:
        pnr:
          type: string
          description: |
            Trip booking number, e.g. "VH67899"
          example: VH67899
        itinerary:
          type: array
          description: >
            Itinerary data, one per segment.


            If you are selling a ticket that contains one bus journey from Oslo
            to Munich,

            and another bus journey from Munich to Rome, you need to provide one

            itinerary object for each of these two bus journeys, and so on.
          items:
            $ref: '#/components/schemas/EmdBusReservationDetailsItinerary'
        insurance:
          type: array
          description: Insurance data, one per segment
          items:
            $ref: '#/components/schemas/EmdTravelInsurance'
        passengers:
          type: array
          description: Passenger data, one per passenger.
          items:
            $ref: '#/components/schemas/EmdTravelPassenger'
        affiliate_name:
          type: string
          description: Name of the affiliate that originated the purchase.
          example: Klarna affiliate
    EmdTrainReservationDetailsItinerary:
      type: object
      required:
        - departure_city
        - arrival_city
        - carrier
        - departure_date
        - ticket_delivery_method
        - ticket_delivery_recipient
        - passenger_id
      properties:
        departure_city:
          type: string
          description: City the train departs from, e.g. "Oslo"
          example: Oslo
        arrival_city:
          type: string
          description: City the train arrives in, e.g. "Munich"
          example: Munich
        carrier:
          type: string
          description: Name of transportation company. "Big Train Travels Ltd."
          example: Big Train Travels Ltd.
        segment_price:
          type: integer
          description: |
            Price for that specific segment of the train journey
            in smallest unit of local currency, e.g. 200000
          example: 200000
        departure_date:
          type: string
          description: |
            Departure date (ISO 8601 format), e.g. "2023-08-16T15:00:00Z".

            If a timezone is not specified, we assume UTC.
          example: '2023-08-16T15:00:00Z'
        ticket_delivery_method:
          type: string
          enum:
            - pick_up
            - email
            - post
            - phone
          example: phone
        ticket_delivery_recipient:
          type: string
          description: >
            Name of the recipient the ticket is delivered to, e.g. "Maximilian".


            If email or phone, then use either the email address or the phone
            number respectively.
          example: '97712123'
        passenger_id:
          type: array
          description: IDs of all the passengers included in this itinerary.
          example:
            - 1
          items:
            type: integer
        class:
          type: string
          description: Travel class, e.g. "First Class"
          example: First Class
    EmdTrainReservationDetails:
      type: object
      description: |
        Details about the reservation of train tickets.
      required:
        - itinerary
      properties:
        pnr:
          type: string
          description: |
            Trip booking number, e.g. "VH67899"
          example: VH67899
        itinerary:
          type: array
          description: >
            Itinerary data, one per segment.


            If you are selling a ticket that contains one train journey from
            Oslo to Munich,

            and another train journey from Munich to Rome, you need to provide
            one

            itinerary object for each of these two train journeys, and so on.
          items:
            $ref: '#/components/schemas/EmdTrainReservationDetailsItinerary'
        insurance:
          type: array
          description: Insurance data, one per segment
          items:
            $ref: '#/components/schemas/EmdTravelInsurance'
        passengers:
          type: array
          description: Passenger data, one per passenger.
          items:
            $ref: '#/components/schemas/EmdTravelPassenger'
        affiliate_name:
          type: string
          description: Name of the affiliate that originated the purchase.
          example: Klarna affiliate
    EmdFerryReservationDetailsItinerary:
      type: object
      required:
        - departure_city
        - arrival_city
        - carrier
        - departure_date
        - ticket_delivery_method
        - ticket_delivery_recipient
      properties:
        departure_city:
          type: string
          description: City the ferry departs from, e.g. "Oslo"
          example: Oslo
        arrival_city:
          type: string
          description: City the ferry arrives in, e.g. "Munich"
          example: Munich
        carrier:
          type: string
          description: Name of transportation company. "Big Ferry Travels Ltd."
          example: Big Ferry Travels Ltd.
        segment_price:
          type: integer
          description: |
            Price for that specific segment of the ferry journey
            in smallest unit of local currency, e.g. 200000
          example: 200000
        departure_date:
          type: string
          description: |
            Departure date (ISO 8601 format), e.g. "2023-08-16T15:00:00Z".

            If a timezone is not specified, we assume UTC.
          example: '2023-08-16T15:00:00Z'
        ticket_delivery_method:
          type: string
          enum:
            - pick_up
            - email
            - post
            - phone
          example: phone
        ticket_delivery_recipient:
          type: string
          description: >
            Name of the recipient the ticket is delivered to, e.g. "Maximilian".


            If email or phone, then use either the email address or the phone
            number respectively.
          example: '97712123'
        passenger_id:
          type: array
          description: IDs of all the passengers included in this itinerary.
          example:
            - 1
          items:
            type: integer
        class:
          type: string
          description: Travel class, e.g. "First Class"
          example: First Class
    EmdFerryReservationDetails:
      type: object
      description: |
        Details about the reservation of ferry tickets.
      required:
        - itinerary
      properties:
        pnr:
          type: string
          description: |
            Trip booking number, e.g. "VH67899"
          example: VH67899
        itinerary:
          type: array
          description: >
            Itinerary data, one per segment.


            If you are selling a ticket that contains one ferry journey from
            Oslo to Kiel,

            and another ferry journey from Kiel to Gothenburg, you need to
            provide one

            itinerary object for each of these two ferry journeys, and so on.
          items:
            $ref: '#/components/schemas/EmdFerryReservationDetailsItinerary'
        insurance:
          type: array
          description: Insurance data, one per segment
          items:
            $ref: '#/components/schemas/EmdTravelInsurance'
        passengers:
          type: array
          description: Passenger data, one per passenger.
          items:
            $ref: '#/components/schemas/EmdTravelPassenger'
        affiliate_name:
          type: string
          description: Name of the affiliate that originated the purchase.
          example: Klarna affiliate
    EmdHotelReservationDetailsItinerary:
      type: object
      required:
        - start_time
        - end_time
        - number_of_rooms
        - passenger_id
        - ticket_delivery_method
        - ticket_delivery_recipient
        - hotel_price
      properties:
        hotel_name:
          type: string
          description: Name of the hotel, e.g. "Premium Hotel"
          example: Premium Hotel
        address:
          type: object
          description: Address details of the hotel.
          required:
            - city
            - country
          properties:
            street_address:
              type: string
              description: Street address of the hotel, e.g. "Karl Johans gt. 31"
              example: Karl Johans gt. 31
            postal_code:
              type: string
              description: Postal code of the hotel, e.g. "0159"
              example: '0159'
            city:
              type: string
              description: City the hotel is located in, e.g. "Oslo"
              example: Oslo
            country:
              type: string
              description: >
                Country the hotel is located in (ISO 3166-1 alpha-2 format),
                e.g. "NO",
              example: 'NO'
        start_time:
          type: string
          description: >
            Start time of the hotel stay (ISO 8601 format), e.g.
            "2023-08-16T15:00:00Z".


            If a timezone is not specified, we assume UTC.
          example: '2023-08-16T15:00:00Z'
        end_time:
          type: string
          description: >
            End time of the hotel stay (ISO 8601 format), e.g.
            "2023-08-20T15:00:00Z".


            If a timezone is not specified, we assume UTC.
          example: '2023-08-20T15:00:00Z'
        number_of_rooms:
          type: integer
          description: Number of rooms booked, e.g. 2
          example: 2
        passenger_id:
          type: array
          description: IDs of all the passengers included in this itinerary.
          example:
            - 1
          items:
            type: integer
        ticket_delivery_method:
          type: string
          enum:
            - pick_up
            - email
            - post
            - phone
          example: phone
        ticket_delivery_recipient:
          type: string
          description: >
            Name of the recipient the ticket is delivered to, e.g. "Maximilian".


            If email or phone, then use either the email address or the phone
            number respectively.
          example: '97712123'
        hotel_price:
          type: integer
          description: >
            Price for the hotel stay in smallest unit of local currency, e.g.
            200000
          example: 200000
        class:
          type: string
          description: Travel class, e.g. "First Class"
          example: First Class
    EmdHotelReservationDetails:
      type: object
      description: |
        Details about the reservation of hotel rooms.
      required:
        - itinerary
      properties:
        pnr:
          type: string
          description: |
            Trip booking number, e.g. "VH67899"
          example: VH67899
        itinerary:
          type: array
          description: |
            Hotel itinerary data, one per hotel stay.

            If you are selling a package that contains multiple hotel stays,
            you need to provide itinerary data for each of the individual stays.
          items:
            $ref: '#/components/schemas/EmdHotelReservationDetailsItinerary'
        insurance:
          type: array
          description: Insurance data, one per segment
          items:
            $ref: '#/components/schemas/EmdTravelInsurance'
        passengers:
          type: array
          description: Passenger data, one per passenger.
          items:
            $ref: '#/components/schemas/EmdTravelPassenger'
        affiliate_name:
          type: string
          description: Name of the affiliate that originated the purchase.
          example: Klarna affiliate
    EmdCarRentalReservationDetailsItinerary:
      type: object
      required:
        - rental_company
        - start_time
        - end_time
      properties:
        rental_company:
          type: string
          description: Name of the car rental company, e.g. "Premium Cars Ltd."
          example: Premium Cars
        drivers_id:
          type: array
          description: Driver IDs.
          items:
            type: integer
          example:
            - 1
        pick_up_location:
          type: object
          description: Details related to the pick up location.
          required:
            - city
            - country
          properties:
            street_address:
              type: string
              description: >-
                Street address where the car should be picked up, e.g. "Karl
                Johans gt. 31"
              example: Karl Johans gt. 31
            postal_code:
              type: string
              description: Postal code where the car should be picked up, e.g. "0159"
              example: '0159'
            city:
              type: string
              description: City where the car should be picked up, e.g. "Oslo"
              example: Oslo
            country:
              type: string
              description: >
                Country where the car should be picked up (ISO 3166-1 alpha-2
                format), e.g. "NO",
              example: 'NO'
        drop_off_location:
          type: object
          description: Details related to the drop off location.
          required:
            - city
            - country
          properties:
            street_address:
              type: string
              description: >-
                Street address where the car should be dropped off, e.g. "Karl
                Johans gt. 31"
              example: Karl Johans gt. 31
            postal_code:
              type: string
              description: Postal code where the car should be dropped off, e.g. "0159"
              example: '0159'
            city:
              type: string
              description: City where the car should be dropped off, e.g. "Oslo"
              example: Oslo
            country:
              type: string
              description: >
                Country where the car should be dropped off (ISO 3166-1 alpha-2
                format), e.g. "NO"
              example: 'NO'
        start_time:
          type: string
          description: >
            Start time of the car rental reservation (ISO 8601 format), e.g.
            "2023-08-16T15:00:00Z".


            If a timezone is not specified, we assume UTC.
          example: '2023-08-16T15:00:00Z'
        end_time:
          type: string
          description: >
            End time of the car rental reservation (ISO 8601 format), e.g.
            "2023-08-20T15:00:00Z".


            If a timezone is not specified, we assume UTC.
          example: '2023-08-20T15:00:00Z'
        car_price:
          type: integer
          description: >
            Price for the car rental reservation in smallest unit of local
            currency, e.g. 500000
          example: 500000
        class:
          type: string
          description: Travel class, e.g. "Premium Cars Premium Class"
          example: Premium Cars Premium Class
    EmdCarRentalReservationDetails:
      type: object
      description: |
        Details about the reservation of rental cars.
      required:
        - itinerary
        - drivers
      properties:
        pnr:
          type: string
          description: |
            Trip booking number, e.g. "VH67899"
          example: VH67899
        itinerary:
          type: array
          description: >
            Car rental itinerary data, one per car rental.


            If you are selling a package that contains multiple car rentals,

            you need to provide itinerary data for each of the individual
            rentals.
          items:
            $ref: '#/components/schemas/EmdCarRentalReservationDetailsItinerary'
        insurance:
          type: array
          description: Insurance data, one per segment
          items:
            $ref: '#/components/schemas/EmdTravelInsurance'
        drivers:
          type: array
          description: Driver data, one per driver.
          items:
            $ref: '#/components/schemas/EmdTravelPassenger'
        affiliate_name:
          type: string
          description: Name of the affiliate that originated the purchase.
          example: Klarna affiliate
    EmdTravel:
      type: object
      description: |
        Only required if the item is part of a travel-related transaction.

        If that is the case, you need to provide information about the itinerary
        to be booked.
      properties:
        air_reservation_details:
          $ref: '#/components/schemas/EmdAirReservationDetails'
        bus_reservation_details:
          $ref: '#/components/schemas/EmdBusReservationDetails'
        train_reservation_details:
          $ref: '#/components/schemas/EmdTrainReservationDetails'
        ferry_reservation_details:
          $ref: '#/components/schemas/EmdFerryReservationDetails'
        hotel_reservation_details:
          $ref: '#/components/schemas/EmdHotelReservationDetails'
        car_rental_reservation_details:
          $ref: '#/components/schemas/EmdCarRentalReservationDetails'
    EmdMarketplaceAccountLastModified:
      type: object
      required:
        - password
        - email
        - listing
        - login
        - address
      properties:
        password:
          type: string
          format: date-time
          description: |
            Date and time that the password was last modified (ISO 8601 format),
            e.g. "2023-08-17T15:00:00Z".

            If a timezone is not specified we assume UTC.
          example: '2023-08-17T15:00:00Z'
        email:
          type: string
          format: date-time
          description: |
            Date and time that the email was last modified (ISO 8601 format),
            e.g. "2023-08-17T15:00:00Z".

            If a timezone is not specified we assume UTC.
          example: '2023-08-17T15:00:00Z'
        listing:
          type: string
          format: date-time
          description: >
            Date and time that the listing details were last modified (ISO 8601
            format),

            e.g. "2023-08-17T15:00:00Z".


            If a timezone is not specified we assume UTC.
          example: '2023-08-17T15:00:00Z'
        login:
          type: string
          format: date-time
          description: >
            Date and time that the login details were last changed (ISO 8601
            format),

            e.g. "2023-08-17T15:00:00Z".


            If a timezone is not specified we assume UTC.
          example: '2023-08-17T15:00:00Z'
        address:
          type: string
          format: date-time
          description: >
            Date and time that the (physical) address was last modified (ISO
            8601 format),

            e.g. "2023-08-17T15:00:00Z".


            If a timezone is not specified we assume UTC.
          example: '2023-08-17T15:00:00Z'
    EmdMarketplaceSellerInfo:
      type: object
      description: |
        Details related to the seller involved in the marketplace order.
      required:
        - sub_merchant_id
        - product_category
        - account_registration_date
        - account_last_modified
        - number_of_trades
      properties:
        unique_account_identifier_seller:
          type: object
          description: Details about the seller.
          properties:
            email:
              type: string
              description: |
                Seller's email address, e.g. "seller@mail.com"
            phone_number:
              type: string
              description: Seller's phone number, e.g. "97712123"
              example: '97712123'
            other:
              type: string
        sub_merchant_id:
          type: string
          description: |
            Name or unique number of the selling/delivering merchant,
            e.g. "Marketbrick Ltd."
          example: Marketbrick Ltd.
        product_category:
          type: string
          description: |
            Name of the category to which the specific good belongs to,
            according to the selling merchant's categorization, e.g. "Phones".
          example: Phones
        product_name:
          type: string
          description: |
            Name of the good purchased.
          example: iPhone 14 Pro Max
        account_registration_date:
          type: string
          format: date-time
          description: |
            Date and time that the account was registered (ISO 8601 format),
            e.g. "2023-08-16T15:00:00Z".

            If a timezone is not specified we assume UTC.
          example: '2023-08-16T15:00:00Z'
        account_last_modified:
          $ref: '#/components/schemas/EmdMarketplaceAccountLastModified'
        seller_rating:
          type: number
          description: |
            Current rating of the good purchased according
            to the marketplace's rating scale, e.g. 5
          example: 5
        number_of_trades:
          type: integer
          description: |
            Number of trades the sub-merchant did in the last 12 months, e.g. 23
          example: 23
        volume_of_trades:
          type: integer
          description: |
            Volumes of trades the sub-merchant did in the last 12 months,
            e.g. 230
          example: 230
    EmdMarketplaceWinnerInfo:
      type: object
      description: |
        Details related to the winner involved in the marketplace order.
      required:
        - account_registration_date
        - account_last_modified
        - number_of_trades
      properties:
        unique_account_identifier_winner:
          type: object
          description: Details about the winner.
          properties:
            email:
              type: string
              description: |
                Winner's email address, e.g. "winner@mail.com"
            phone_number:
              type: string
              description: Winner's phone number, e.g. "97712123"
              example: '97712123'
            other:
              type: string
        account_registration_date:
          type: string
          format: date-time
          description: |
            Date and time that the account was registered (ISO 8601 format),
            e.g. "2023-08-16T15:00:00Z".

            If a timezone is not specified we assume UTC.
          example: '2023-08-16T15:00:00Z'
        account_last_modified:
          $ref: '#/components/schemas/EmdMarketplaceAccountLastModified'
        number_of_trades:
          type: integer
          description: |
            Number of trades the winner did in the last 12 months, e.g. 23
          example: 23
        volume_of_trades:
          type: integer
          description: |
            Volumes of trades the winner did in the last 12 months,
            e.g. 230
          example: 230
    EmdMarketplaceOrder:
      type: object
      description: >
        Only required if them item is related to a marketplace order.


        If that is the case, you need to provide information about both the
        seller and

        the winner.
      required:
        - seller_info
        - winner_info
      properties:
        seller_info:
          $ref: '#/components/schemas/EmdMarketplaceSellerInfo'
        winner_info:
          $ref: '#/components/schemas/EmdMarketplaceWinnerInfo'
    Emd:
      type: object
      description: >
        Details related to [Klarna
        EMD](https://docs.klarna.com/klarna-payments/in-depth-knowledge/extra-merchant-data/).


        Some items require extra information to be provided when using

        Klarna as an enabled payment option.
      properties:
        event:
          $ref: '#/components/schemas/EmdEvent'
        subscription:
          $ref: '#/components/schemas/EmdRecurring'
        travel:
          $ref: '#/components/schemas/EmdTravel'
        marketplace_order:
          $ref: '#/components/schemas/EmdMarketplaceOrder'
    Address:
      type: object
      required:
        - address_line
        - postal_place
        - country
      properties:
        address_line:
          type: string
          example: Sommerkroveien 34
        address_line_2:
          type: string
          example: PB 123
        postal_code:
          type: string
          example: '0349'
        postal_place:
          type: string
          example: Oslo
        country:
          type: string
          format: iso-3166-1
          description: |
            ISO 3166-1 country code
          example: 'NO'
    Store:
      type: object
      required:
        - id
      properties:
        id:
          type: string
          example: sc029
        name:
          type: string
          description: |
            name of the store, aka trade name of the store
          example: SC Oslo
        business_name:
          type: string
          description: |
            Official name of the person or entity that owns the store.
          example: SC Oslo AS
        address:
          $ref: '#/components/schemas/Address'
        chain:
          type: string
          example: SuperChain
        email:
          type: string
          example: contact@superchain.com
        gln:
          type: string
          example: '5790001398644'
        organization_number:
          type: string
          example: 123456789MVA
        phone_number:
          type: string
          example: '+4738260107'
        mcc:
          type: string
          format: iso-18245
          description: |
            A four-digit Merchant Category Code (MCC) for the store
            [ISO 18245:2003](https://www.iso.org/standard/33365.html)
          example: '5814'
          minimum: 4
          maximum: 4
        bax:
          type: string
          example: '102603'
          description: |
            Merchant number associated with the stores
            payment terminal
        terminal_id:
          type: string
          description: |
            Id to a specific point-of-sale (POS) terminal
            or workstation
          example: T0292
        payout_destination_id:
          type: string
          maxLength: 40
          description: |
            The payout destination id for the merchant of record,
            i.e. the seller responsible for the transaction.

            Required when `seitatech.in_person` payment is enabled.
          example: seller-1
    OrderItem:
      type: object
      description: |
        details about order item
      properties:
        id:
          type: string
          description: |
            The ID or SKU of the product on the line
          example: item_01
        groups:
          type: array
          description: |
            The groups the product on the line belongs to
          example:
            - id: B234
              name: Stol
          items:
            type: object
            required:
              - id
            properties:
              id:
                type: string
                description: Group ID
              name:
                type: string
                description: Group name
        line_id:
          type: string
          description: |
            the number of the line (or id), must be `unique` between
            all items. `required` when Instabank payment is configured.
          example: '1'
        version:
          type: number
          readOnly: true
          description: |
            The version where the item was added or last updated, see the
            events for the source.
        description:
          type: string
          description: |
            A short, localized description of the line item
          example: Stablestol
        quantity:
          type: number
          description: >
            The quantity of the product in the item line.


            Quantities are usually whole numbers, but can also be decimal, in
            cases where the product is sold by weight, volume or other
            denominations.
          example: 1
        amount:
          type: integer
          description: >
            The total monetary amount of the line item, including VAT and
            discounts.


            In smallest unit for the currency, e.g. cents
          example: 2000
        vat_amount:
          type: integer
          description: |
            The VAT of the `amount` parameter. Only
            used for display purposes.

            In smallest unit for the currency, e.g. cents
          example: 400
        vat:
          type: number
          description: >
            The VAT percentage. Supports up to 2 decimal places. If the vat is
            20% the number should be 20, not 0.2.
          example: 20
        unit_volume:
          type: number
          description: |
            The volume of one item in m³ (cubic meters)
        unit_weight:
          type: number
          description: |
            The volume of one item in kg (kilo grams)
        unit_dimensional_weight:
          type: number
          description: >
            The dimensional weight (also known as volumetric) value unit of one
            item. [Dimensional weight at
            Wikipedia](https://en.wikipedia.org/wiki/Dimensional_weight)
        type:
          type: string
          description: >
            The type of order item this is.


            - **physical** - a physical item which must be delivered or handed
            over

            - **digital** - a digital item which doesn't need shipping

            - **service** - payment for services like maintenance performed in
            your home

            - **gift_card** - usage of a gift card, where the amount is usually
            a negative number

            - **shipping** - payment for shipping of the order

            - **surcharge** - extra incurred costs, like taxes or necessary
            rounding
          enum:
            - physical
            - digital
            - service
            - gift_card
            - shipping
            - surcharge
        fee_split:
          $ref: '#/components/schemas/PayoutFeeSplit'
        splits:
          type: array
          description: >
            An array of objects specifying how the amount should be split
            between

            sellers when using Dintero Payout


            Specify an empty array if the splits will be provided during
            capture.

            `auto_capture` cannot be enabled when splits are defined as empty
            array.
          items:
            $ref: '#/components/schemas/PayoutSplit'
        thumbnail_url:
          type: string
          description: >
            URL to a thumbnail of the item. Will be displayed when redirecting
            to the session.


            Recommended limitations for the image:


            - all images should preferrably have the same dimensions

            - max file size should be less than 2MB
          format: uri
        emd:
          $ref: '#/components/schemas/Emd'
        store:
          allOf:
            - $ref: '#/components/schemas/Store'
          description: |
            Store metadata, it can be used to track supplier/vendor/partner
            information when the main `order.store` is a marketplace / reseller
    DiscountType:
      type: string
      enum:
        - customer
        - periodic
        - manual
        - loyalty
        - total
        - employee
        - external
    DiscountItem:
      type: object
      properties:
        amount:
          type: integer
          example: 4400
          description: |
            Monetary amount in smallest unit for the currency
        percentage:
          type: number
          description: |
            Optional, set if the amount given was from a percentage discount
          example: 44
        discount_type:
          $ref: '#/components/schemas/DiscountType'
        discount_id:
          type: string
          example: 766da0ef-9283-42bd-b012-0582344ec53c
        description:
          type: string
        line_id:
          type: integer
          example: 1
    OrderDiscountItem:
      description: Discount details for an order item
      properties:
        eligible_for_discount:
          type: boolean
          default: false
          example: true
          description: |
            The item is eligible for discount
        is_changed:
          type: boolean
          description: |
            Discount applied to amount
        gross_amount:
          type: number
          readOnly: true
          description: |
            The origin item amount before any discount
        discount_lines:
          type: array
          items:
            $ref: '#/components/schemas/DiscountItem'
    RelativeTime:
      description: Relative time for delivery or pick-up
      type: object
      properties:
        working_days:
          type: array
          description: >
            The expected range of days until the relative time is reached.

            A range of `[0,0]` means the relative time is today. `[0,3]` means
            the relative time is within the next 3 days.
          example:
            - 1
            - 2
          minItems: 2
          maxItems: 2
          items:
            type: number
            minimum: 0
        shipping_day_of_week:
          type: number
          description: |
            The day of the week the relative time for shipping is on.
            1 is Monday, 2 is Tuesday, ..., 7 is Sunday.
          example: 3
          minimum: 1
          maximum: 7
        arrival_day_of_week:
          type: number
          description: |
            The day of the week the relative time for arrival is on.
            1 is Monday, 2 is Tuesday, ..., 7 is Sunday.
          example: 3
          minimum: 1
          maximum: 7
    OpeningHours:
      type: object
      properties:
        open_now:
          type: boolean
          description: |
            Indicates if the location is open now.
          example: true
        periods:
          type: array
          items:
            type: object
            description: |
              A period of time when the opening hours are valid.
            properties:
              opens_at:
                type: string
                format: time
                example: '08:00'
              closes_at:
                type: string
                format: time
                example: '16:00'
              day_of_week:
                type: number
                description: |
                  The day of the week when the opening hours are valid.
                example: 1
        timezone:
          type: string
          description: |
            The timezone of the location.
          example: Europe/Oslo
    ShippingAddressDetails:
      type: object
      description: Additional information about the shipping address
      properties:
        website_url:
          type: string
          description: |
            The website URL of the customer.
        opening_hours:
          $ref: '#/components/schemas/OpeningHours'
    ShippingOption:
      type: object
      description: |
        A shipping option
      required:
        - id
        - line_id
        - amount
        - operator
        - title
      properties:
        id:
          type: string
          description: >
            Id of this shipping option product.


            The express checkout will group all products with the same id. Used
            for

            grouping delivery to the same address at different time slots, or
            for

            grouping deliveries to different pick up points.
          example: bring-pick-up-00001
        line_id:
          type: string
          description: |
            Unique id of the specific configuration of this shipping product
          example: bring-pick-up-00001-location-0a1f6b
        countries:
          description: Countries where this shipping option can be used
          type: array
          items:
            type: string
            format: iso3166-alpha2
            example: 'NO'
        amount:
          type: integer
          description: >
            The monetary amount of the shipping option, including VAT and
            discounts.


            In smallest unit for the currency, e.g. cents
          example: 3900
        vat_amount:
          type: integer
          description: |
            The VAT of the `amount` parameter. Only
            used for display purposes.
          example: 975
        vat:
          type: number
          description: >
            The VAT percentage. Supports up to 2 decimal places. If the vat is
            20% the number should be 20, not 0.2.
          example: 25
        title:
          type: string
          description: |
            A shipping option title. Eg. "Standard"
          example: Standard
        description:
          type: string
          description: |
            A short description of the shipping option product
          example: Pick up at your nearest postal office
        delivery_method:
          type: string
          enum:
            - delivery
            - pick_up
            - unspecified
            - none
          example: pick_up
        operator:
          type: string
          description: |
            Name of company that provides shipping service
          example: Bring
        operator_product_id:
          type: string
          description: |
            The operators own id for this shipping product
          example: pick-up-00001-location-0a1f6b
        eta:
          description: Estimated time of arrival
          type: object
          allOf:
            - $ref: '#/components/schemas/RelativeTime'
            - properties:
                starts_at:
                  type: string
                  format: date-time
                  example: '2020-10-14T19:00:00Z'
                ends_at:
                  type: string
                  format: date-time
                  example: '2020-10-14T20:00:00Z'
        time_slot:
          description: A specified time for delivery to customer
          type: object
          properties:
            starts_at:
              type: string
              format: date-time
              example: '2020-10-14T19:00:00Z'
            ends_at:
              type: string
              format: date-time
              example: '2020-10-14T20:00:00Z'
        pick_up_address:
          type: object
          allOf:
            - $ref: '#/components/schemas/OrderAddress'
            - $ref: '#/components/schemas/ShippingAddressDetails'
            - properties:
                distance:
                  type: number
                  description: |
                    Distance in kilometers from the shipping_address.
        metadata:
          type: object
          description: Additional metadata about the shipping_option
          maxProperties: 20
          additionalProperties:
            oneOf:
              - type: string
              - type: number
          example:
            operator_dest: XAB1239
            number_x: 1921
        environmental_data:
          type: object
          description: |
            Environmental data about the shipping option
          required:
            - description
          properties:
            description:
              type: string
              description: |
                A short description of the environmental data, something like
                - "Fossil free",
                - "Carbon neutral"
                - "Low emissions"
                - "Renewable Energy Sourced"
                - "Eco-certified Fleet"
              example: Fossil free
            details:
              type: array
              items:
                type: object
                required:
                  - label
                  - value
                properties:
                  label:
                    description: |
                      Give context to the value field. Example:
                      - "CO2 emissions"
                      - "Energy consumption"
                      - "Carbon footprint"
                      - "Carbon offset"
                      - "Trees planted"
                      - "Renewable energy percentage"
                    type: string
                    example: Carbon offset
                    maxLength: 50
                  value:
                    type: string
                    example: 1KG CO2
                    maxLength: 50
        thumbnail_url:
          type: string
          description: |
            URL to a thumbnail of the shipping option. Will be displayed when
            redirecting to the session.
            Recommended limitations for the image:
              - all images should preferrably have the same dimensions
              - max file size should be less than 2MB
          format: uri
    SplitShippingOption:
      allOf:
        - $ref: '#/components/schemas/ShippingOption'
        - properties:
            pay_in_store:
              description: >
                Enable pay in-store during pick-up. The amount to be paid will
                be zero.

                Requires that the payment method `dintero.zero` is enabled
              type: object
              required:
                - type
              properties:
                type:
                  type: string
                  enum:
                    - full
            fee_split:
              $ref: '#/components/schemas/PayoutFeeSplit'
            splits:
              type: array
              description: >
                An array of objects specifying how the amount should be split
                between

                sellers when using Dintero Payout


                Specify an empty array if the splits will be provided during
                capture.

                `auto_capture` cannot be enabled when splits are defined as
                empty array.
              items:
                $ref: '#/components/schemas/PayoutSplit'
    MultiShipmentItem:
      type: object
      required:
        - line_id
      properties:
        line_id:
          type: string
          example: line-id-1
          description: |
            The line_id or an item in order.items
        quantity:
          type: number
          description: |
            The quantity of the product in the item line.
    MultiShipmentShippingOption:
      allOf:
        - $ref: '#/components/schemas/SplitShippingOption'
        - properties:
            shipment_id:
              type: string
              description: >-
                For orders that have multiple shipments. The shipping options
                will be grouped by `shipment_id`. The top-level multi shipment
                shipping option array at `order.shipping_option.shipments` will
                contain one shipping option per `shipment_id` found in the
                shipping options sprovided in `express.shipping_options`.

                In order to present multiple shipping options for a given
                `shipment_id` set the same shipment_id to all the shipping
                options for that shipment.
            shipment_items:
              type: array
              description: >
                An array of objects specifying what items will be delivered by
                this shipment. Should

                only be specified when an order has multiple shipments so the
                checkout knows what

                items will be shipped by the shipping options.


                If there are multiple shipments the session (and resulting
                transaction) will have a

                single top-level shipping object that contains multiple
                `shipments` for the order.
              items:
                $ref: '#/components/schemas/MultiShipmentItem'
    MultiShipmentTopLevelShippingOption:
      allOf:
        - $ref: '#/components/schemas/SplitShippingOption'
        - properties:
            shipments:
              type: array
              description: >
                For multiple shipments we have a single top-level shipping
                object that contains

                the shipments for the order. The shipping options defined in
                `shipments` must contain

                `shipment_items` that define what items belong to what shipment.


                For multiple shipments:
                  - do not define `splits` on the toplevel shipping option
                  - do not define `fee_split` on the toplevel shipping option
                  - the `pay_in_store` option is not compatible with `shipments`
                  - empty shipments array is not allowed
                  - single item multi shipping option is not allowed
              minItems: 2
              items:
                $ref: '#/components/schemas/MultiShipmentShippingOption'
    Giftcard:
      type: object
      required:
        - type
        - card_id
        - amount
      properties:
        type:
          type: string
          enum:
            - dintero.wallets
        card_id:
          type: string
        amount:
          type: integer
          description: |
            Non-negative, minor units. Total amount for the gift card
        masked_card_token:
          type: string
    SessionOrderUpdate:
      type: object
      properties:
        amount:
          type: integer
          format: int32
          example: 72200
          description: >
            The amount to authorize/capture including VAT and discounts.

            In smallest unit for the currency, e.g. cents


            The `amount` should be equal to the sum of the `items.amount` +
            `shipping_option.amount`.
        currency:
          type: string
          format: iso4217-code
          example: NOK
          description: >-
            The three-character ISO-4217 currency.
            https://en.wikipedia.org/wiki/ISO_4217
        vat_amount:
          type: integer
          format: int32
          example: 13660
          description: >
            The VAT of the `amount` parameter.

            Only used for display purposes.


            In smallest unit for the currency, e.g. cents


            The `vat_amount` should be equal to the sum of the
            `items.vat_amount` + `shipping_option.vat_amount`.
        merchant_reference_2:
          type: string
          description: |
            A reference by the merchant to identify the corresponding
            order for the Checkout Session
        event_reference:
          type: string
          description: >
            Default event_reference to include in transaction events. The value
            is included

            in the settlement report


            Use of `capture_reference` and `refund_reference` during capture and
            refund

            overrides the provided value
        shipping_address:
          $ref: '#/components/schemas/OrderAddress'
        billing_address:
          $ref: '#/components/schemas/OrderAddress'
        partial_payment:
          type: boolean
          default: false
          description: |
            This is a partial payment where the `order.amount` can be lower or
            equal to the sum of `order.items.amount`
        items:
          type: array
          description: >
            Details about the order items.


            #### Instabank

            `required` if Instabank payment is configured in and partial_payment
            is false.

            All items must include a unique `line_id`, quantity and amount


            #### Collector Bank

            `required` if Collector Bank payment is configured in and
            partial_payment is false.

            All items must include a unique `line_id`, quantity and amount
          items:
            allOf:
              - $ref: '#/components/schemas/OrderItem'
              - $ref: '#/components/schemas/OrderDiscountItem'
          example:
            - amount: 2000
              quantity: 2
              line_id: '1'
              description: Forsvinnignspølse
              vat: 20
              id: '10'
            - amount: 6600
              quantity: 2
              line_id: '2'
              description: Vissvossafår på neppebrød
              vat: 20
              id: '6'
              eligible_for_discount: true
              is_changed: true
              gross_amount: 10000
              discount_lines:
                - amount: 4400
                  discount_type: customer
                  discount_id: ed960ace-eb16-4e2e-ae52-b27647ccae8d
                  description: Vossafestpris
                  line_id: 1
            - amount: 59700
              quantity: 3
              line_id: '3'
              description: Luftboller
              vat: 20
              id: '1'
        gross_amount:
          type: number
          readOnly: true
          description: |
            The origin amount to authorize/capture including VAT
            before any discount, only set if the session was updated
            when calculating discounts.

            In smallest unit for the currency, e.g. cents
        is_changed:
          type: boolean
          readOnly: true
          description: |
            The original order amount was changed by discount
            given.
        shipping_option:
          $ref: '#/components/schemas/MultiShipmentTopLevelShippingOption'
        store:
          $ref: '#/components/schemas/Store'
        discount_lines:
          description: |
            Discounts given, additions to any items discount_lines.
          type: array
          items:
            $ref: '#/components/schemas/DiscountItem'
        discount_codes:
          type: array
          items:
            type: string
            example: SUMMER20
        gift_cards:
          type: array
          description: |
            The gift cards selected, the part of `order.amount` that will be
            authorized using gift cards
          maxItems: 1
          items:
            $ref: '#/components/schemas/Giftcard'
        emd:
          $ref: '#/components/schemas/Emd'
    SessionOrder:
      type: object
      required:
        - amount
        - currency
      allOf:
        - $ref: '#/components/schemas/SessionOrderUpdate'
        - required:
            - merchant_reference
          properties:
            payout_destination_id:
              type: string
              maxLength: 40
              description: >
                An id that identifies the seller, value will be included

                in the settlement reports.


                Note: The seller must be configured before the funds will be
                paid out. See
                https://docs.dintero.com/docs/checkout/split-payment/add-payout-destinations
            merchant_reference:
              type: string
              description: |
                A reference by the merchant to identify the corresponding
                order for the Checkout Session
    Checkbox:
      type: object
      required:
        - id
        - label
      properties:
        id:
          type: string
          description: |
            ID to assign to the checkbox so you can reference it later
        label:
          type: string
          description: |
            Label that should be visible next to the checkbox
          minLength: 2
          maxLength: 99
        checked:
          type: boolean
          description: |
            If the checkbox should be checked by default or not
        required:
          type: boolean
          description: |
            If the checkbox should be required or not
        link:
          type: object
          required:
            - url
            - text
          properties:
            url:
              type: string
              description: Link URL
            text:
              type: string
              description: Link text
              example: Terms for checkbox action
    CheckboxConfiguration:
      type: array
      description: |
        Configuration for checkboxes that should be part of the checkout
      items:
        $ref: '#/components/schemas/Checkbox'
      maxItems: 2
    SessionBase:
      type: object
      required:
        - order
        - url
      properties:
        url:
          $ref: '#/components/schemas/SessionUrls'
        customer:
          $ref: '#/components/schemas/SessionCustomer'
        order:
          $ref: '#/components/schemas/SessionOrder'
        expires_at:
          type: string
          format: date-time
        checkboxes:
          $ref: '#/components/schemas/CheckboxConfiguration'
    SessionCustomerTokens:
      type: object
      description: |
        Enable customer payment tokens in the session
      properties:
        customer:
          type: object
          properties:
            tokens:
              type: object
              properties:
                bambora.creditcard:
                  type: object
                  properties:
                    payment_token:
                      type: string
                      description: >
                        Preload the store payment data related to the payment

                        token and let the customer make a purchase without
                        having

                        to enter all card data


                        - The `bambora.creditcard` must be enabled in the
                        session
                          configuration to activate the use of provided payment token
                        - Use the `bambora.creditcard.generate_payment_token`
                        option to
                          generate the token.
                payex.creditcard:
                  type: object
                  properties:
                    payment_token:
                      type: string
                      description: >
                        Preload the store payment data related to the payment

                        token and let the customer make a purchase without
                        having

                        to enter all card data


                        - The `payex.creditcard` must be enabled in the session
                          configuration to activate the use of provided payment token
                        - Use the `payex.creditcard.generate_payment_token`
                        option to
                          generate the token.
                    recurrence_token:
                      type: string
                      description: >
                        Preload the store payment data related to the recurrence

                        token and let the customer make a purchase without
                        having

                        to enter all card data


                        - The `payex.creditcard` must be enabled in the session
                          configuration to activate the use of provided payment token
                        - Use the `payex.creditcard.generate_recurrence_token`
                        option to
                          generate the token.
                dintero_psp.creditcard:
                  type: object
                  properties:
                    payment_token:
                      type: string
                      description: >
                        Preload the store payment data related to the payment

                        token and make a purchase without having to enter card
                        data


                        - The `dintero_psp.creditcard` must be enabled in the
                        session
                          configuration to activate the use of provided payment token
                        - Use the
                        `dintero_psp.creditcard.generate_payment_token` option
                        to
                          generate the token.
    AutoCaptureConfiguration:
      properties:
        auto_capture:
          type: boolean
          description: >
            If `true` the transaction from the payment session will be captured

            automatically after the transaction has been `AUTHORIZED`. The
            checkout

            sessions `callback_url` will not be called until after the
            transaction

            has been `CAPTURED`.


            If `auto_capture` is not specified it defaults to `false`.


            A successful auto-capture of a transaction sometimes requires more

            than one capture attempt. This can be the case if the payment
            gateway

            is down or is experiencing heavy traffic.


            Dintero will attempts capture retries for 48 hours, the
            `callback_url`

            will be invoked when capture succeeds.


            Manual capture of a transaction that is pending auto-capture will

            stop the auto-capture process from completing the capture.
    PublishConfiguration:
      description: |
        Publish checkout message to the customer.
      type: array
      items:
        type: object
        required:
          - type
          - channel
        properties:
          channel:
            type: string
            enum:
              - sms
              - push
          type:
            type: string
            enum:
              - checkout-link
              - app
              - terminal
          id:
            type: string
            readOnly: true
          status:
            type: string
            readOnly: true
            description: |
              status of the message sent to the customer.

              **`skipped`** will used in case where publish
              cannot be sent given the `session.customer`.
            enum:
              - sent
              - skipped
              - failed
    SessionPayability:
      type: string
      description: >-
        Determines if the payment_product_type is currently available for
        payment
      enum:
        - payable
        - disabled_by_gateway
        - disabled_by_order_amount
    BamboraConfiguration:
      type: object
      description: Bambora configuration
      properties:
        type:
          description: Denotes what kind of config parameter this is
          type: string
          enum:
            - payment_type
        applepay:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: Enable Apple Pay Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
        creditcard:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable Credit Card Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            generate_payment_token:
              type: boolean
              default: false
              description: |
                generate payment token to use for future payments

                The generated payment token will be made available from
                the transaction details.
        googlepay:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: Enable Google Pay Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
        mobilepay:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable MobilePay Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
        vipps:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable Vipps Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
    DinteroConfiguration:
      type: object
      description: Dintero configuration
      properties:
        type:
          description: Denotes what kind of config parameter this is
          type: string
          enum:
            - payment_type
        wallets:
          type: object
          description: >
            Allow the payment session to be fully or partially authorized with

            Dintero Wallets gift card.


            Please note that the following payment methods are not supported
            together

            with Dintero Wallets gift cards: `vipps`, `swish.swish`,

            `klarna.billie`, `instabank`, `collector`, and `netaxept`.

            Creating a session with Dintero Wallets and either of the
            abovementioned

            payment types enabled will result in an error.
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable gift card
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
        zero:
          type: object
          description: >
            Allow initiating pay on zero amount session, the payability will
            only

            be enabled if the session order amount is zero. Initiating a
            `dintero.zero`

            payment will result in a transaction with `dintero.zero` payment
            product type

            that will be excluded from settlement reports (as it will not have
            any payout)
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable zero amount session
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
        external:
          type: object
          description: |
            Allow initiating pay on an external payment method.
          required:
            - enabled
            - display
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable external payment method
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            display:
              type: object
              description: |
                Display configuration for the payment method
              required:
                - payment_method_label
                - button_label
              properties:
                payment_method_label:
                  type: string
                  maxLength: 50
                  description: |
                    Label to be shown in Checkout for the payment method
                content:
                  type: object
                  description: >
                    Supplimentary content to be rendered within the payment
                    method.


                    Having both `content.title` and `content.description`
                    omitted will render just the pay button in the payment
                    method.
                  properties:
                    title:
                      type: string
                      maxLength: 50
                      description: >
                        Title to be shown over the pay button within the payment
                        method. If omitted, it will not be rendered.
                    description:
                      type: string
                      maxLength: 255
                      description: >
                        Description to be shown underneath the title within the
                        payment method. If omitted, it will not be rendered.
                button_label:
                  type: string
                  maxLength: 50
                  description: >
                    Label to be shown on the pay button within the payment
                    method
                terms:
                  type: array
                  description: |
                    Terms & conditions to be presented for the payment method
                  items:
                    type: object
                    maxItems: 5
                    required:
                      - ref
                      - href
                      - label
                    properties:
                      ref:
                        type: string
                        description: |
                          Reference for the link
                      label:
                        type: string
                        description: |
                          Label to use in place of the link
                      href:
                        type: string
                        format: uri
                        description: |
                          URL of the link
    DinteroPspTokenAuthMethods:
      type: array
      description: >
        Indicates which authentication methods to support during token
        authentication flows.

        The list order determines which method is preferred.

        Methods are subject to card and device support.


        - `3DS`: Carholder authentication through 3D-Secure.

        - `PASSKEY`: Cardholder is prompted to create and authenticate with a
        device-bound Passkey.
      example:
        - PASSKEY
        - 3DS
      items:
        type: string
        enum:
          - 3DS
          - PASSKEY
    SCARule:
      discriminator:
        propertyName: type
        mapping:
          amount_lte: '#/components/schemas/AmountLimitLTERule'
      oneOf:
        - $ref: '#/components/schemas/AmountLimitLTERule'
    DinteroPaymentOptionSCAPolicy:
      type: object
      description: >
        Configuration for SCA (Strong Customer Authentication) policies for
        Dintero PSP payment methods.

        Allows merchants to set up exemptions for when SCA can be skipped for a
        transaction.

        If SCA is skipped for a transaction the merchant will generally have
        liability for the transaction.
      properties:
        network_exemptions:
          type: object
          description: >
            Configuration for network exemptions, such as low_value and low_risk
            exemptions.

            The merchant can choose to enable/disable each exemption type, but
            they need to be

            approved to use them by Dintero. Low risk exemption takes precedence
            over low value exemption.
          properties:
            low_value:
              type: boolean
              description: >
                If true the low value exemption can be passed to issuer if the
                transaction amount is below 30 EUR or equivalent.
              example: true
            low_risk:
              type: boolean
              description: |
                If true the low risk exemption can be passed to issuer.
              example: true
        liability_rules:
          type: array
          description: |
            List of rules for when SCA can be skipped for a transaction.
            If multiple rules match the most restrictive rule will be applied.
          items:
            $ref: '#/components/schemas/SCARule'
    DinteroPspConfiguration:
      type: object
      description: Dintero PSP configuration
      properties:
        type:
          description: Denotes what kind of config parameter this is
          type: string
          enum:
            - payment_type
        creditcard:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable creditcard
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            generate_payment_token:
              type: boolean
              default: false
              description: |
                generate payment token to use for future payments

                The generated payment token will be made available from
                the transaction details.
            token_supported_auth_methods:
              $ref: '#/components/schemas/DinteroPspTokenAuthMethods'
            sca_policy:
              $ref: '#/components/schemas/DinteroPaymentOptionSCAPolicy'
            generate_payment_token_config:
              type: object
              additionalProperties: false
              description: >
                Configuration for generating payment token. If
                `generate_payment_token` is true and 

                configuration is omitted, the card will be tokenized.
              properties:
                save_card_checkbox:
                  type: string
                  enum:
                    - opt_in
                    - opt_out
                  description: >
                    `opt_in` - Cardholder needs to opt-in to saving card, so the
                    checkbox should not be checked by default.

                    `opt_out` - Cardholder needs to opt-out of saving card, so
                    the checkbox should be checked by default.


                    `generate_payment_token` must be true for this to have any
                    effect. If `generate_payment_token` is true

                    and `save_card_checkbox` is omitted, the card will be
                    tokenized.
        vipps:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable Vipps
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            sca_policy:
              $ref: '#/components/schemas/DinteroPaymentOptionSCAPolicy'
        applepay:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable Apple Pay
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            sca_policy:
              $ref: '#/components/schemas/DinteroPaymentOptionSCAPolicy'
            details:
              type: object
              properties:
                domain_names:
                  description: >
                    An array of domain names used for embedding the checkout
                    with Apple Pay. The value is just the domain name, without
                    the protocol, port or path.
                  type: array
                  items:
                    type: string
                    example: example.dintero.com
                token_event_notification_url:
                  type: string
                  description: >
                    URL used for recieving of merchant token notifications. It
                    should

                    be set as `tokenNotificationURL` parameter when
                    reccuring/MIT

                    payment is being created.
        googlepay:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable Google Pay
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            sca_policy:
              $ref: '#/components/schemas/DinteroPaymentOptionSCAPolicy'
            generate_payment_token:
              type: boolean
              default: false
              description: |
                generate payment token to use for future payments

                The generated payment token will be made available from
                the transaction details.
        clicktopay:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable Visa Click-to-Pay
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            generate_payment_token:
              type: boolean
              default: false
              description: |
                generate payment token to use for future payments

                The generated payment token will be made available from
                the transaction details.
            sca_policy:
              $ref: '#/components/schemas/DinteroPaymentOptionSCAPolicy'
    InstabankFinanceProduct:
      type: object
      required:
        - product_code
        - minimum_monthly_balance_rate
        - origination_fee
        - notification_fee
        - loan_example
      properties:
        product_code:
          type: string
          example: '630'
        minimum_monthly_balance_rate:
          type: string
          description: >
            The minimum monthly installment basis as a percentage of the account
            balance.
          format: ^([0-9]*[.])?[0-9]+$
          example: '1.67'
        annual_interest_rate:
          type: string
          description: |
            The interest rate for the payment product.
          format: ^([0-9]*[.])?[0-9]+$
          example: '0.0'
        effective_annual_interest_rate:
          type: string
          readOnly: true
          description: |
            The effective annual interest rate for the payment product
          example: '0.0'
        origination_fee:
          type: integer
          description: |
            The startup fee for the payment product.
          minimum: 0
          example: 9500
        notification_fee:
          type: integer
          description: |
            The notification fee for the payment product.
          minimum: 0
          example: 3900
        minimum_amount:
          type: integer
          description: |
            Minimum order amount for this product. The product option will be
            excluded in payments where the order amount is less than the minimum
            amount.
          example: 20000
          minimum: 1
        loan_example:
          type: object
          required:
            - amount
            - years
            - total_amount
            - cost
            - effective_annual_interest_rate
          properties:
            amount:
              type: integer
              description: |
                The amount loaned in the example.
              minimum: 0
              example: 2500000
            years:
              type: integer
              description: |
                Years of payment in the example.
              minimum: 1
              example: 1
            total_amount:
              type: integer
              description: |
                The total amount paid back in the example.
              minimum: 0
              example: 2772300
            cost:
              type: integer
              description: |
                The cost of the loan in the example.
              minimum: 0
              example: 272300
            effective_annual_interest_rate:
              type: string
              readOnly: true
              format: ^([0-9]*[.])?[0-9]+$
              description: |
                The effective annual interest rate in the example
              example: '21.38'
        branding_image_url:
          type: string
          description: Url for a custom branding image
    InstabankInvoiceProduct:
      type: object
      required:
        - product_code
        - due_in_days
        - invoice_fee
        - require_applicant_amount
      properties:
        product_code:
          type: string
          example: '632'
        due_in_days:
          type: integer
          minimum: 0
          description: Number of days before the payment is due.
          example: 10
        minimum_amount:
          type: integer
          description: |
            Minimum order amount for this product. The product option will be
            excluded in payments where the order amount is less than the minimum
            amount.
          example: 20000
          minimum: 1
        invoice_fee:
          type: integer
          description: |
            The fee for the payment product
          minimum: 0
          example: 9500
        require_applicant_amount:
          type: integer
          description: >
            The limit for when instabank will require a full applicant during
            payment.
          minimum: 0
          example: 7500000
        branding_image_url:
          type: string
          description: Url for a custom branding image
    InstabankInstallmentProduct:
      type: object
      description: |
        Payment product configuration
      required:
        - product_code
        - credit_time
        - origination_fee
        - notification_fee
        - annual_interest_rate
      properties:
        minimum_amount:
          type: integer
          description: |
            Minimum order amount for this product. The product option will be
            excluded in payments where the order amount is less than the minimum
            amount.
          example: 20000
          minimum: 1
        product_code:
          type: string
          example: '633'
        credit_time:
          type: integer
          description: |
            Number of months
          minimum: 1
          example: 36
        origination_fee:
          type: integer
          description: |
            The startup fee for the payment product
          minimum: 0
          example: 9500
        notification_fee:
          type: integer
          description: |
            The notification fee for the payment product
          minimum: 0
          example: 3900
        annual_interest_rate:
          type: string
          description: |
            The interest rate for the payment product.
          format: ^([0-9]*[.])?[0-9]+$
          example: '0.0'
        effective_annual_interest_rate:
          type: string
          readOnly: true
          description: |
            The effective annual interest rate for the payment product
          example: '54.69'
        total_amount:
          type: integer
          readOnly: true
          example: 309400
          description: The total amount to pay
        monthly_amount:
          type: integer
          readOnly: true
          example: 100000
          description: The amount to pay pr month
        first_monthly_amount:
          type: integer
          readOnly: true
          description: |
            The amount to pay in the first invoice. Origantion fee is added
            to the first invoice.
          example: 109500
        require_applicant_amount:
          type: integer
          description: >
            The limit for when instabank will require a full applicant during
            payment.
          minimum: 0
          example: 2500000
        loan_example:
          type: object
          required:
            - amount
            - years
            - total_amount
            - cost
            - effective_annual_interest_rate
          properties:
            amount:
              type: integer
              description: |
                The amount loaned in the example.
              minimum: 0
              example: 2500000
            years:
              type: integer
              description: |
                Years of payment in the example.
              minimum: 1
              example: 1
            total_amount:
              type: integer
              description: |
                The total amount paid back in the example.
              minimum: 0
              example: 2772300
            cost:
              type: integer
              description: |
                The cost of the loan in the example.
              minimum: 0
              example: 272300
            effective_annual_interest_rate:
              type: string
              readOnly: true
              format: ^([0-9]*[.])?[0-9]+$
              description: |
                The effective annual interest rate in the example
              example: '21.38'
        branding_image_url:
          type: string
          description: Url for a custom branding image
    InstabankPostponementProduct:
      type: object
      description: |
        Payment product configuration
      required:
        - product_code
        - postponement_months
        - origination_fee
        - annual_interest_rate
      properties:
        minimum_amount:
          type: integer
          description: |
            Minimum order amount for this product. The product option will be
            excluded in payments where the order amount is less than the minimum
            amount.
          example: 20000
          minimum: 1
        product_code:
          type: string
          example: '633'
        postponement_months:
          type: integer
          description: |
            Number of months
          minimum: 1
          example: 36
        origination_fee:
          type: integer
          description: |
            The startup fee for the payment product
          minimum: 0
          example: 9500
        notification_fee:
          type: integer
          description: |
            The notification fee for the payment product
          minimum: 0
          example: 3900
        annual_interest_rate:
          type: string
          description: |
            The interest rate for the payment product.
          format: ^([0-9]*[.])?[0-9]+$
          example: '0.0'
        effective_annual_interest_rate:
          type: string
          readOnly: true
          description: |
            The effective annual interest rate for the payment product
          example: '54.69'
        total_amount:
          type: integer
          readOnly: true
          example: 309400
          description: The total amount to pay
        require_applicant_amount:
          type: integer
          description: >
            The limit for when instabank will require a full applicant during
            payment.
          minimum: 0
          example: 2500000
        loan_example:
          type: object
          required:
            - amount
            - years
            - total_amount
            - cost
            - effective_annual_interest_rate
          properties:
            amount:
              type: integer
              description: |
                The amount loaned in the example.
              minimum: 0
              example: 2500000
            years:
              type: integer
              description: |
                Years of payment in the example.
              minimum: 1
              example: 1
            total_amount:
              type: integer
              description: |
                The total amount paid back in the example.
              minimum: 0
              example: 2772300
            cost:
              type: integer
              description: |
                The cost of the loan in the example.
              minimum: 0
              example: 272300
            effective_annual_interest_rate:
              type: string
              readOnly: true
              format: ^([0-9]*[.])?[0-9]+$
              description: |
                The effective annual interest rate in the example
              example: '21.38'
        branding_image_url:
          type: string
          description: Url for a custom branding image
    InstabankConfiguration:
      type: object
      properties:
        finance:
          type: object
          description: finance payment
          required:
            - enabled
          properties:
            enabled:
              description: enable finance payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            product:
              allOf:
                - readOnly: true
                - $ref: '#/components/schemas/InstabankFinanceProduct'
        invoice:
          type: object
          description: invoice payment
          required:
            - enabled
          properties:
            enabled:
              description: enable invoice payment (only for amounts greater than 500 NOK)
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            require_applicant:
              type: boolean
            product:
              allOf:
                - readOnly: true
                - $ref: '#/components/schemas/InstabankInvoiceProduct'
        installment:
          type: object
          description: Fixed Part Payment
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
              default: payment_product_type
            enabled:
              description: enable Instabank Installment Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            products:
              readOnly: true
              type: array
              items:
                $ref: '#/components/schemas/InstabankInstallmentProduct'
        postponement:
          type: object
          description: Postpone payment
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
              default: payment_product_type
            enabled:
              description: enable Instabank Postponement Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            products:
              readOnly: true
              type: array
              items:
                $ref: '#/components/schemas/InstabankPostponementProduct'
    NetaxeptConfiguration:
      type: object
      description: Netaxept configuration
      properties:
        type:
          description: Denotes what kind of config parameter this is
          type: string
          enum:
            - payment_type
        creditcard:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable Credit Card Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            terminal:
              type: object
              description: |
                Use Netaxept terminal instead of Dintero Checkout

                See https://shop.nets.eu/web/partners/register
              required:
                - terminal
                - terminal_single_page
              properties:
                terminal:
                  type: string
                  enum:
                    - /Terminal/default.aspx
                    - /terminal/mobile/default.aspx
                terminal_design:
                  description: >
                    Name of the terminal template to use, created in Netaxept
                    Admin
                  type: string
                terminal_single_page:
                  description: Set hosted payment window to single page
                  type: boolean
                terminal_layout:
                  type: string
    PayExConfiguration:
      type: object
      properties:
        dynamic_descriptor:
          type: string
          maxLength: 40
          description: |
            A textual description max 40 characters of the purchase.
        swish:
          type: object
          required:
            - enabled
          properties:
            enabled:
              description: enable Payex Swish Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
        creditcard:
          type: object
          required:
            - enabled
          properties:
            enabled:
              description: enable Credit Card Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            generate_payment_token:
              type: boolean
              default: false
              description: |
                generate payment token to use for future payments

                The generated payment token will be made available from
                the transaction details.
            generate_recurrence_token:
              type: boolean
              default: false
              description: >
                generate recurrence payment token to use for future payments


                The generated recurrence payment token will be made available
                from

                the transaction details.
            no_cvc:
              type: boolean
              description: >
                Disable the CVC field for payments where payment token is used.

                > To use this feature it has to be enabled on the contract with
                Swedbank Pay.
        mobilepay:
          type: object
          required:
            - enabled
          properties:
            enabled:
              description: enable Payex MobilePay Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
        vipps:
          type: object
          required:
            - enabled
          properties:
            enabled:
              description: enable Payex Vipps Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
        applepay:
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable PayEx Apple Pay payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
        clicktopay:
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable PayEx Click to Pay payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
        googlepay:
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable PayEx Google Pay payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
    VippsConfiguration:
      type: object
      required:
        - enabled
      properties:
        enabled:
          description: enable vipps payment
          type: boolean
        payability:
          $ref: '#/components/schemas/SessionPayability'
        dynamic_descriptor:
          type: string
          maxLength: 100
          description: |
            A short reference / descriptor that can be displayed to
            the end user
    CollectorB2BAddress:
      type: object
      required:
        - business_name
        - organization_number
        - address_line
        - postal_code
        - postal_place
        - country
        - phone_number
        - email
      properties:
        business_name:
          type: string
          description: ACME Inc
          maxLength: 50
        organization_number:
          minLength: 9
          maxLength: 12
          type: string
          description: >
            The organization number of the customer. For Norway, the length is
            9. For Sweden, it's either 10 or 12 digits.
        address_line:
          type: string
          description: Gaustadalleen 21
          maxLength: 50
        address_line_2:
          type: string
          description: More details about address.
          maxLength: 50
        co_address:
          type: string
          description: CO-Address if applicable.
          maxLength: 50
        postal_code:
          type: string
          description: The zip code / postal code of the address.
          example: '0349'
          maxLength: 50
        postal_place:
          type: string
          description: The name of the postal code
          example: Oslo
          maxLength: 50
        country:
          type: string
          format: iso3166-alpha2
          description: Country of the location
          example: 'NO'
        phone_number:
          type: string
          pattern: ^\+?\d{5,15}$
          description: |
            mobile number of a person / company, ITU/E.123 format with
            international prefix (+PPNNNNNNNNN...)
        email:
          type: string
          maxLength: 100
          description: |
            The email address of a person or an organisation
        customer_reference:
          type: string
          description: The customer's reference
          maxLength: 50
        cost_center:
          type: string
          description: For companies that needs to specify a cost center.
          maxLength: 64
        first_name:
          type: string
          example: John
          maxLength: 50
        last_name:
          type: string
          example: Doe
          maxLength: 50
        address_id:
          type: string
          example: address_1
          description: >
            The unique identification of the address from the available
            addresses for the business
    CollectorConfiguration:
      type: object
      description: Collector configuration
      properties:
        type:
          description: Denotes what kind of config parameter this is
          enum:
            - payment_type
        dynamic_descriptor:
          type: string
          maxLength: 40
          description: |
            A textual description max 40 characters of the purchase.
        invoice:
          type: object
          description: Invoice / Part Payment
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
              default: payment_product_type
            enabled:
              description: enable Collector Bank Invoice Payment
              type: boolean
            countries:
              type: array
              items:
                type: string
                format: iso-3166-1
            options:
              type: object
              properties:
                enable_on_hold:
                  description: >
                    Create the collector transaction with status `ON_HOLD` and
                    let

                    the Collector callback update the transaction state from
                    `ON_HOLD`

                    to `AUTHORIZED` or `FAILED`.


                    A callback will be sent to the `callback_url` when the
                    transaction

                    changes state from `ON_HOLD` to any new state.


                    This will override the payment option `enable_on_hold` and
                    gateway config `options.enable_on_hold`-setting.
                  type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
        invoice_b2b:
          type: object
          description: Invoice / Part Payment
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
              default: payment_product_type
            payability:
              $ref: '#/components/schemas/SessionPayability'
            enabled:
              description: enable Collector Bank Invoice Payment B2B
              type: boolean
            countries:
              type: array
              items:
                type: string
                format: iso-3166-1
            options:
              type: object
              properties:
                disable_collector_b2b_address_enforcement:
                  type: boolean
                  default: false
                  description: >
                    For `collector.invoice_b2b`. By default, the
                    shipping_address B2B payments will be restricted to

                    the registered addresses of a company.


                    Setting this on the session will override the
                    `collector_b2b_address_enforcement` in `payment_options`

                    on the checkout configuration.
                enable_on_hold:
                  description: >
                    Create the collector transaction with status `ON_HOLD` and
                    let

                    the Collector callback update the transaction state from
                    `ON_HOLD`

                    to `AUTHORIZED` or `FAILED`.


                    A callback will be sent to the `callback_url` when the
                    transaction

                    changes state from `ON_HOLD` to any new state.


                    This will override the gateway's
                    `options.enable_on_hold`-setting.
                  type: boolean
        invoice_b2b_preapproved:
          type: object
          description: Invoice for pre-approved B2B-customers
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
              default: payment_product_type
            payability:
              $ref: '#/components/schemas/SessionPayability'
            enabled:
              description: enable Collector Bank Invoice Payment B2B
              type: boolean
            countries:
              type: array
              items:
                type: string
                format: iso-3166-1
            accounts:
              description: >
                All Collector B2B accounts configured for the customer's phone
                number at the merchant.
              type: array
              items:
                type: object
                properties:
                  billing_address:
                    $ref: '#/components/schemas/CollectorB2BAddress'
                  company_id:
                    type: string
                    description: Token to represent the company
        finance:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
              default: payment_product_type
            enabled:
              description: enable Collector Bank Finance Payment
              type: boolean
            countries:
              type: array
              items:
                type: string
                format: iso-3166-1
            payability:
              $ref: '#/components/schemas/SessionPayability'
        installment:
          type: object
          description: Fixed Part Payment
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
              default: payment_product_type
            enabled:
              description: enable Collector Bank Installment Payment
              type: boolean
            countries:
              type: array
              items:
                type: string
                format: iso-3166-1
            options:
              type: object
              properties:
                enable_on_hold:
                  description: >
                    Create the collector transaction with status `ON_HOLD` and
                    let

                    the Collector callback update the transaction state from
                    `ON_HOLD`

                    to `AUTHORIZED` or `FAILED`.


                    A callback will be sent to the `callback_url` when the
                    transaction

                    changes state from `ON_HOLD` to any new state.


                    This will override the gateway's
                    `options.enable_on_hold`-setting.
                  type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
    KlarnaConfiguration:
      type: object
      description: Klarna configuration
      properties:
        type:
          description: Denotes what kind of config parameter this is
          type: string
          enum:
            - payment_type
        klarna:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable Klarna Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
        billie:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable Klarna B2B Payment with Billie
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
    InvoiceChannel:
      type: string
      description: |
        Invoice channel to use for delivering  the invoice.
      default: kravia
      enum:
        - merchant
        - kravia
    KraviaConfiguration:
      type: object
      description: Kravia configuration
      properties:
        type:
          description: Denotes what kind of config parameter this is
          type: string
          enum:
            - payment_type
        invoice_b2b:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable Kravia Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            days_until_due:
              type: integer
              description: |
                The number of days until the invoice is due.
              minimum: 0
              maximum: 365
              format: date
            require_identity_verification:
              type: boolean
              default: true
              description: >
                Whether identity verification is required, before allowing

                payments.

                Defaults to true, it will require the customer to verify
                themselves

                before making a payment via methods like BankID, if false no
                verification

                will be required.
            invoice_channel:
              $ref: '#/components/schemas/InvoiceChannel'
        invoice_b2b_grouped:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable Kravia grouped invoices
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            invoice_schedule:
              type: object
              properties:
                interval:
                  description: >
                    The interval at which the invoice should be issued. The
                    invoice

                    will be issued on the first day of the interval.
                  type: string
                  enum:
                    - monthly
                    - quarterly
            days_until_due:
              type: number
              format: int32
              description: |
                The number of days until the invoice is due.
              minimum: 0
              maximum: 365
            require_identity_verification:
              type: boolean
              default: true
              description: >
                Whether identity verification is required, before allowing

                payments.

                Defaults to true, it will require the customer to verify
                themselves

                before making a payment via methods like BankID, if false no
                verification

                will be required.
            invoice_channel:
              allOf:
                - $ref: '#/components/schemas/InvoiceChannel'
                - readOnly: true
        invoice_b2c:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable Kravia B2C invoice
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            days_until_due:
              type: integer
              description: |
                The number of days until the invoice is due.
              minimum: 0
              maximum: 365
              format: date
            invoice_channel:
              $ref: '#/components/schemas/InvoiceChannel'
            require_identity_verification:
              type: boolean
              default: true
              description: >
                Whether identity verification is required, before allowing

                payments.

                Defaults to true, it will require the customer to verify
                themselves

                before making a payment via methods like BankID, if false no
                verification

                will be required. In b2c cases this is only available when the
                merchant will

                distribute the invoice themselves.
    TwoConfiguration:
      type: object
      description: Two configuration
      properties:
        type:
          description: Denotes what kind of config parameter this is
          type: string
          enum:
            - payment_type
        invoice_b2b:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable Two Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            duration_days:
              type: integer
              description: The number of days until the invoice is due.
              enum:
                - 14
                - 30
    SantanderConfiguration:
      type: object
      properties:
        type:
          description: Denotes what kind of config parameter this is
          enum:
            - payment_type
        debit_account:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              enum:
                - payment_product_type
            enabled:
              description: enable Santander Finance Debit Account
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            branding_name:
              type: string
              description: The name of the chain
            accounts:
              description: Debit accounts belonging to the customer's phone number
              type: array
              items:
                type: object
                properties:
                  account_number_token:
                    type: string
                    description: Token to represent the account number
                  masked_account_number:
                    type: string
                    description: Representation of the account number for display purposes
    SeitatechConfiguration:
      type: object
      description: Seitatech configuration
      properties:
        type:
          description: |
            Denotes what kind of config parameter this is
          type: string
          enum:
            - payment_type
        in_person:
          type: object
          description: >
            Enabling `in_person` via Seitatech requires `order.store.id`,
            `order.store.terminal_id` and `order.store.payout_destination_id` to
            be set. The terminal must be registered via the management API with
            a store and payout destination.


            Add a `publish` configuration with `channel: push` and  `type:
            terminal` to auto-initiate the payment on the terminal.


            Use callbacks and webhooks to receive notification when the
            in-person payment is completed.
          required:
            - enabled
          properties:
            type:
              type: string
              description: \ Denotes what kind of config parameter this is
              enum:
                - payment_product_type
            enabled:
              description: enable in person payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
    SwishConfiguration:
      type: object
      description: Swish configuration
      properties:
        type:
          description: Denotes what kind of config parameter this is
          type: string
          enum:
            - payment_type
        swish:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable Swish Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            payout_enabled:
              description: Flag to check if Dintero handles payout for this payment product
              type: boolean
    PayoutConfiguration:
      type: object
      description: |
        Payout configuration
      properties:
        dynamic_payout_destination_ids:
          type: array
          description: >
            Use the order store id to control what `payout_destination_id`
            should

            be use


            A session created with the option set must have a store id that
            resolves

            to a payout_destination_id or have payout_destination_id set


            A session where both `order.store.id` and
            `order.payout_destination_id`

            will not be updated with match from `dynamic_payout_destination` if

            `overwrite_payout_destination_id` is not set to `true`             


            - **`order_store_id`**: May specific store id to specifc payout
            destination id

            - **`order_store_id_as_order_payout_destination_id`**: Use store id
            as payout destination id
          minItems: 1
          items:
            type: object
            required:
              - type
            properties:
              type:
                type: string
                enum:
                  - order_store_id
                  - order_store_id_as_order_payout_destination_id
              order_store_id:
                type: string
                description: Required if type is `order_store_id`
                example: STORE_123
              order_payout_destination_id:
                type: string
                description: Required if type is `order_store_id`
                example: PD_123
              overwrite_payout_destination_id:
                description: |
                  Only applicable when type is `order_store_id`.

                  Overwrite existing order payout_destination_id
                type: boolean
                default: false
        payment_products:
          type: array
          readOnly: true
          description: |
            The payment products where payout is enabled
          minItems: 1
          items:
            type: object
            required:
              - payment_product
            properties:
              payment_product:
                type: string
                description: Payment product
                enum:
                  - bambora
                  - collector
                  - payex
                  - klarna
                  - swish
                  - dintero_psp
                  - kravia
                  - seitatech
    AgeVerificationConfiguration:
      type: object
      description: >
        Configure age verification for a given payment session. When enabled,
        the

        customer must complete age verification before completing checkout.
      required:
        - enabled
        - minimum_age_required
      properties:
        enabled:
          type: boolean
          description: >
            Use this flag to enable or disable age verification for a given
            payment session.
        minimum_age_required:
          type: integer
          description: |
            The minimum age required to complete the payment session.
          example: 18
    PaymentConfiguration:
      type: object
      allOf:
        - $ref: '#/components/schemas/AutoCaptureConfiguration'
        - properties:
            channel:
              type: string
              enum:
                - ecommerce
                - in_app
                - in_store
                - hosted
              default: ecommerce
              description: >
                `channel` enables special behaviour for various scenarios.


                The majority of web integrations will not need to set this
                property.


                ### ecommerce


                The default channel (also used if channel is not specified). The

                url in the session created response body opens the Dintero
                Checkout

                page.


                ### in_app


                The `in_app` channel is intended for payments done from

                mobile devices where `url.return_url` can be set to the

                application's appswitch URL.


                #### Session deeplink URL


                Creating a session with `channel=in_app` will return an

                appswitch deeplink URL if the enabled payment options in

                the session supports it


                Appswitch deeplink is currently only supported for sessions

                that has only Vipps enabled via Dintero PSP, Vipps, Worldline

                (bambora) or Swedbank (payex), MobilePay enabled via

                Woldline (bambora) or Swedbank (payex) or Swish

                  - configuration.vipps.enabled
                  - configuration.payex.vipps.enabled
                  - configuration.payex.mobilepay.enabled
                  - configuration.dintero_psp.vipps.enabled
                  - configuration.bambora.vipps.enabled
                  - configuration.swish.swish.enabled

                > `in_app` is currently not supported when express is enabled

                > `in_app` with deeplink URL is not supported if `publish` is
                enabled


                ### in_store


                The `in_store` channel is intended for payments done

                in physical stores.


                Depending on the payment_type, choosing `in_store` will

                change the behaviour of the payment.


                ### hosted


                The `hosted` channel will skip the Dintero Checkout page and the

                returned `url` takes the end user directly to the payment
                service's

                payment page, if the enabled payment options in the session
                support it.


                If the url to the hosted page is a universal link then visiting
                the

                url can launch an app if the device used supports universal
                links

                and the payment app is installed on the device. The Vipps and

                MobilePay hosted page acts as a universal link.


                The `hosted` channel is currently only supported for sessions
                that

                have a single payment method enabled and the payment method is
                one of the

                following:
                  - configuration.vipps.enabled
                  - configuration.payex.vipps.enabled
                  - configuration.payex.mobilepay.enabled
                  - configuration.dintero_psp.vipps.enabled
                  - configuration.bambora.vipps.enabled

                If the session contains more than one enabled payment method, or
                the

                payment method does not support the `hosted` channel, the
                setting is

                ignored and the `url` will open the Dintero Checkout (the
                default

                `ecommerce` behaviour).
            publish:
              $ref: '#/components/schemas/PublishConfiguration'
            active_payment_types:
              type: object
              properties:
                enabled:
                  type: boolean
                  description: >
                    Use this flag as wildcard to include all active payment
                    types

                    configured for a given currency when creating a payment
                    session.
            default_payment_type:
              type: string
              description: >
                Configure the default payment type, the selected payment when

                loading the checkout window. The value must be an enabled
                payment type.
              enum:
                - bambora.applepay
                - bambora.creditcard
                - bambora.googlepay
                - bambora.mobilepay
                - bambora.vipps
                - dintero.zero
                - dintero_psp.applepay
                - dintero_psp.creditcard
                - dintero_psp.vipps
                - dintero_psp.googlepay
                - dintero_psp.clicktopay
                - instabank.finance
                - instabank.invoice
                - instabank.installment
                - instabank.postponement
                - vipps
                - payex.creditcard
                - payex.mobilepay
                - payex.swish
                - payex.vipps
                - payex.applepay
                - payex.clicktopay
                - payex.googlepay
                - collector.finance
                - collector.invoice
                - collector.invoice_b2b
                - collector.invoice_b2b_preapproved
                - collector.installment_b2b_preapproved
                - collector.installment
                - santander.debit_account
                - swish.swish
                - netaxept.creditcard
                - klarna.klarna
                - klarna.billie
                - kravia.invoice_b2b
                - kravia.invoice_b2b_grouped
                - kravia.invoice_b2c
                - seitatech.in_person
                - two.invoice_b2b
            bambora:
              $ref: '#/components/schemas/BamboraConfiguration'
            dintero:
              $ref: '#/components/schemas/DinteroConfiguration'
            dintero_psp:
              $ref: '#/components/schemas/DinteroPspConfiguration'
            instabank:
              $ref: '#/components/schemas/InstabankConfiguration'
            netaxept:
              $ref: '#/components/schemas/NetaxeptConfiguration'
            payex:
              $ref: '#/components/schemas/PayExConfiguration'
            vipps:
              $ref: '#/components/schemas/VippsConfiguration'
            collector:
              $ref: '#/components/schemas/CollectorConfiguration'
            klarna:
              $ref: '#/components/schemas/KlarnaConfiguration'
            kravia:
              $ref: '#/components/schemas/KraviaConfiguration'
            two:
              $ref: '#/components/schemas/TwoConfiguration'
            santander:
              $ref: '#/components/schemas/SantanderConfiguration'
            seitatech:
              $ref: '#/components/schemas/SeitatechConfiguration'
            swish:
              $ref: '#/components/schemas/SwishConfiguration'
            payout:
              $ref: '#/components/schemas/PayoutConfiguration'
            allow_express_wallet_payment:
              type: boolean
              description: >
                When enabled, wallet payments (like Apple Pay and Google Pay)

                can be used in their express mode, allowing customers to
                complete

                purchases with a single tap, bypassing the standard checkout
                flow.
              default: false
              example: false
            age_verification:
              $ref: '#/components/schemas/AgeVerificationConfiguration'
    DiscountsConfiguration:
      properties:
        discounts:
          type: object
          description: |
            Configuration for discounts calculations
          properties:
            type:
              type: string
              readOnly: true
              enum:
                - discounts
            express_discount_codes:
              type: object
              required:
                - enabled
              properties:
                payability:
                  $ref: '#/components/schemas/SessionPayability'
                enabled:
                  type: boolean
                  description: >
                    The discounts will be given by the configured express
                    callback url.


                    The callback URL will be invoked when the session is updated

                    with a discount code, and the response used to update the
                    discounts

                    on the order items and the shipping options.
            order:
              type: object
              description: |
                Configure discounts calculation on the session order.
              required:
                - enabled
              properties:
                enabled:
                  description: >
                    Enable discount calculation on order

                    items eligible for discount


                    - A session that has the `customer.customer_id` set will
                    have
                      its discounts calculated when the session is created.

                    - A session with no customer_id will only have the discounts
                      calculated when the customer is identified by the checkout
                      page.

                    - The autorized amount will be the net amount from the
                      original session amount specified when the session was
                      created.
                  type: boolean
                  default: false
    SessionThemeConfiguration:
      type: object
      properties:
        theme:
          type: object
          description: |
            Customize the appearance of the checkout.
          properties:
            backdrop:
              type: string
              description: |
                Color on backdrop shown in desktop mode

                Color, supported formats are
                - hex: `#ff0000`
                - rgb: `rgb(255,0,0)`
                - rgba: `rgba(255,0,0,0.5)`
            primary:
              type: string
              description: |
                Primary color used on pay button and other buttons.

                Color, supported formats are
                - hex: `#ff0000`
                - rgb: `rgb(255,0,0)`
                - rgba: `rgba(255,0,0,0.5)`
            cardRadius:
              type: string
              description: |
                Radius on card element in the checkout.
            buttonRadius:
              type: string
              description: |
                Radius on buttons in the checkout.
    CountryConfiguration:
      properties:
        countries:
          description: |
            Country preferences
          type: object
          properties:
            preferred_country:
              description: |
                Country to use as default in address and phone country code
              type: string
              format: iso3166-alpha2
            allow_countries:
              description: >
                List of countries where the customer is allowed to set their
                address.

                If empty, all countries are allowed, except for the ones in
                `deny_countries`.


                A country can not be in both `allow_countries` and
                `deny_countries`.
              type: array
              items:
                type: string
                format: iso3166-alpha2
            deny_countries:
              description: >
                List of countries where the customer is not allowed to set their
                address.


                A country can not be in both `allow_countries` and
                `deny_countries`.
              type: array
              items:
                type: string
                format: iso3166-alpha2
    DefaultCustomerTypeConfiguration:
      properties:
        default_customer_type:
          description: |
            Customer type to use as default for the customer.
          type: string
          enum:
            - b2c
            - b2b
    AllowDifferentBillingShippingAddressConfiguration:
      properties:
        allow_different_billing_shipping_address:
          description: >
            Allow that the shipping and billing address can be different.


            An array of strings, the values `b2c` and `b2b` can be used to

            limit the what types of customer that are allowed to submit
            different

            addresses for shipping and billing.


            By default we limit the shipping and billing addresses to be equal
            for

            both B2C and B2B customers.
          type: array
          default: []
          items:
            type: string
            enum:
              - b2c
              - b2b
    Merchant:
      type: object
      description: |
        Configure merchant information used in the
        checkout.
      required:
        - name
        - logo_url
      properties:
        name:
          type: string
        logo_url:
          type: string
          pattern: https?://*
          format: uri
        website:
          type: string
        email:
          type: string
        phone_number:
          type: string
        merchant_category_code:
          type: string
        platform_type:
          type: string
          description: |
            Type of platform the merchant is.
          enum:
            - aggregator
            - marketplace
        country:
          type: string
          format: iso3166-alpha2
        postal_code:
          type: string
        postal_place:
          type: string
        address_line:
          type: string
        address_line_2:
          type: string
    SessionExpressUpdate:
      type: object
      required:
        - shipping_options
      properties:
        shipping_options:
          type: array
          description: >
            Shipping options that will be presented to the end user after the

            end user has submitted a shipping address.


            To dynamically update the shipping_options when the
            _`order.shipping_address`_ is

            changed by the end user in the checkout, use the

            _`url.shipping_address_callback_url`_.

             If the merchant is not able to ship the order to the end users shipping address, use an empty array.

             If there is only one option, a free delivery, the order still has to contain one option with a _`price.amount`_ of 0.
          items:
            $ref: '#/components/schemas/ShippingOption'
        shipping_mode:
          type: string
          enum:
            - shipping_required
            - shipping_not_required
          default: shipping_required
    SessionExpress:
      type: object
      properties:
        express:
          description: >
            ### Present only for _Express Checkout_ sessions.


            An _Express Checkout_ session is a session where the end user will
            submit a

            shipping address and then select a shipping option before the before
            a

            payment method is selected and the payment is initiated.


            Endpoints used in the _Express Checkout_ flow.

            1. [Set shipping
            address](/checkout-api/view/checkout_sid_json_order_shipping_address_put)

            2. [Set shipping
            option](/checkout-api/view/checkout_sid_json_order_items_shipping_option_put)
          type: object
          allOf:
            - $ref: '#/components/schemas/SessionExpressUpdate'
            - properties:
                discount_codes:
                  description: |
                    Enable discount codes for Express Checkout
                  properties:
                    max_count:
                      type: number
                      description: >
                        Limit how many discount codes can be added by the
                        customer
                    callback_url:
                      type: string
                      format: uri
                      pattern: https?://*
                      example: >-
                        https://example.com/order/00128110/discount_codes_updated
                      description: >
                        URL that Checkout will POST to when the user has
                        submitted/changed

                        the discount codes for an express session.


                        Dintero will not attempt a retry after a failed delivery
                        attempt.

                        Following situations is considered as failed delivery


                        - HTTP status codes that are not 200.

                        - A request timeout (60 seconds)

                        - Any connection error such as connection timeout, bad
                        certificate, etc


                        The response from the callback will be used to update
                        the order amount,

                        items discount_lines and shipping options.


                        See [POST
                        example/discount_codes_callback_url](/api-reference/example-session-callbacks/example_discount_codes_callback_url)

                        for details about the request and response.
                shipping_address_callback_url:
                  type: string
                  format: uri
                  pattern: https?://*
                  example: https://example.com/order/00128110/address_updated
                  description: >
                    URL that Checkout will POST to when the end user has
                    submitted/changed

                    a shipping address for an express-session.


                    Dintero will not attempt a retry after a failed delivery
                    attempt.

                    Following situations is considered as failed delivery


                    - HTTP status codes that are not 200.

                    - A request timeout (60 seconds)

                    - Any connection error such as connection timeout, bad
                    certificate, etc


                    The response from the callback will be used to update the
                    shipping options.


                    See [POST
                    example/shipping_address_callback_url](/api-reference/example-session-callbacks/example_shipping_address_callback_url)

                    for details about the request and response.
                customer_types:
                  type: array
                  description: >
                    Limit the lind of customers that can be submitted via the
                    address form in the express checkout.
                  default:
                    - b2c
                    - b2b
                  items:
                    type: string
                    enum:
                      - b2c
                      - b2b
                default_different_billing_shipping_address:
                  description: >
                    Configure the default behavior for how Checkout presents the
                    shipping and billing addresses.


                    If `[]`, Checkout defaults to assuming the shipping and
                    billing addresses are the same.


                    If `["b2b"]`, Checkout defaults to assuming different
                    addresses for B2B only.


                    If `["b2c"]`, Checkout defaults to assuming different
                    addresses for B2C only.


                    If `["b2b", "b2c"]`, Checkout defaults to assuming different
                    addresses for all customer types.


                    If omitted, Checkout defaults to the same behaviour as
                    setting `[]`.


                    This will only have an effect if
                    `allow_different_billing_shipping_address` is set.
                  type: array
                  default: []
                  items:
                    type: string
                    enum:
                      - b2c
                      - b2b
    SessionProfile:
      type: object
      allOf:
        - $ref: '#/components/schemas/SessionBase'
        - $ref: '#/components/schemas/SessionCustomerTokens'
        - required:
            - profile_id
          properties:
            configuration:
              description: |
                Override configuration for the profile.
              allOf:
                - $ref: '#/components/schemas/PaymentConfiguration'
                - $ref: '#/components/schemas/DiscountsConfiguration'
                - $ref: '#/components/schemas/SessionThemeConfiguration'
                - $ref: '#/components/schemas/CountryConfiguration'
                - $ref: '#/components/schemas/DefaultCustomerTypeConfiguration'
                - $ref: >-
                    #/components/schemas/AllowDifferentBillingShippingAddressConfiguration
            profile_id:
              type: string
              description: |
                configuration profile
            merchant:
              $ref: '#/components/schemas/Merchant'
        - $ref: '#/components/schemas/SessionExpress'
        - properties:
            express:
              type: object
              properties:
                shipping_options:
                  type: array
                  items:
                    $ref: '#/components/schemas/MultiShipmentShippingOption'
    SessionCustomerGiftcards:
      type: object
      description: |
        Enable customer gift cards in session
      properties:
        customer:
          type: object
          properties:
            gift_cards:
              type: object
              properties:
                dintero.wallets:
                  type: array
                  description: |
                    Preload checkout with Wallets cards and let the customer
                    use it during checkout by providing PIN to activate the
                    card (e.g. use Wallets card as giftcard)

                    - The `dintero.wallets` must be enabled in the session
                      configuration to activate the use of the provided gift card
                      tokens
                  maxItems: 1
                  items:
                    type: object
                    required:
                      - card_id
                    properties:
                      card_id:
                        type: string
    Metadata:
      type: object
      properties:
        metadata:
          type: object
          description: |
            Additional metadata about the resource

            > We recommend that keys used are prefixed with `ext` to avoid
            > collision with reserved keys

            - `dintero`
            - `merchant`
            - `session`
            - `event`
            - `payout`
            - `gateway`
            - `bambora`
            - `collector`
            - `instabank`
            - `klarna`
            - `kravia`
            - `netaxept`
            - `payex`
            - `santander`
            - `swish`
            - `vipps`
          maxProperties: 10
          additionalProperties:
            oneOf:
              - type: string
              - type: number
          example:
            ext_system_x_id: XAB1239
            ext_number_x: 1921
            ext_original_currency: USD
            ext_original_amount: 3007
            ext_conversion_rate_ppm: 997258
            ext_conversion_timestamp: '2025-09-09T08:12:30Z'
    Id:
      type: object
      properties:
        id:
          type: string
          description: |
            An ID that uniquely identifies the resource
        created_at:
          type: string
          format: date-time
          description: |
            The date-time when the resource was created
    SessionOptions:
      type: object
      allOf:
        - $ref: '#/components/schemas/SessionBase'
        - $ref: '#/components/schemas/SessionExpress'
        - properties:
            express:
              type: object
              properties:
                shipping_options:
                  type: array
                  items:
                    $ref: '#/components/schemas/MultiShipmentShippingOption'
        - required:
            - configuration
          properties:
            configuration:
              allOf:
                - $ref: '#/components/schemas/PaymentConfiguration'
                - $ref: '#/components/schemas/DiscountsConfiguration'
                - $ref: '#/components/schemas/SessionThemeConfiguration'
                - $ref: '#/components/schemas/CountryConfiguration'
                - $ref: '#/components/schemas/DefaultCustomerTypeConfiguration'
                - $ref: >-
                    #/components/schemas/AllowDifferentBillingShippingAddressConfiguration
    SystemRequestHeaders:
      type: object
      properties:
        dintero-system-name:
          type: string
          description: The name of the ecommerce solution
          example: woocommerce
        dintero-system-version:
          type: string
          description: The version number of the ecommerce solution
          example: 5.0.0
        dintero-system-plugin-name:
          type: string
          description: The name of the ecommerce plugin
          example: Dintero.Checkout.WooCommerce
        dintero-system-plugin-version:
          type: string
          description: The version number of the ecommerce plugin
          example: 2021.03.02
        user-agent:
          type: string
          description: The user-agent that performed the request
          example: 'Mozilla: Mozilla/5.0'
    PaymentOperationIntent:
      type: string
      enum:
        - unscheduled_purchase
        - recurring_purchase
        - generate_payment_token
      description: |
        Initiated by the merchant or used to generate a token
    RequestHeaders:
      type: object
      allOf:
        - $ref: '#/components/schemas/SystemRequestHeaders'
        - type: object
          properties:
            dintero-checkout-instance-id:
              type: string
              description: The instance of the checkout that performed the request
              example: abcd-14134556135
    CollectorB2BPaymentOperationAddress:
      type: object
      required:
        - business_name
        - organization_number
        - address_line
        - postal_code
        - postal_place
        - country
      properties:
        business_name:
          type: string
          description: ACME Inc
          maxLength: 50
        organization_number:
          minLength: 9
          maxLength: 12
          type: string
          description: >
            The organization number of the customer. For Norway, the length is
            9. For Sweden, it's either 10 or 12 digits.
        address_line:
          type: string
          description: Gaustadalleen 21
          maxLength: 50
        postal_code:
          type: string
          description: The zip code / postal code of the address.
          example: '0349'
          maxLength: 50
        postal_place:
          type: string
          description: The name of the postal code
          example: Oslo
          maxLength: 50
        country:
          type: string
          format: iso3166-alpha2
          description: Country of the location
          example: 'NO'
        address_id:
          type: string
          example: address_1
          description: >
            The unique identification of the address from the available
            addresses for the business
    CollectorProduct:
      type: object
      description: |
        Collector payment product
      required:
        - id
        - type
        - credit_time
        - campaign_fee
        - origination_fee
        - notification_fee
        - total_amount
        - monthly_amount
        - first_monthly_amount
      properties:
        id:
          type: string
          description: |
            Id for the payment product
          example: IF_3_001
        type:
          type: string
          enum:
            - interest_free
            - annuity
          example: interest_free
        credit_time:
          type: integer
          description: |
            Number of months
          example: 3
        campaign_fee:
          description: |
            The fee for a "Buy now – pay later" Payment product
          type: integer
          example: 0
        origination_fee:
          type: integer
          description: |
            The startup fee for the payment product
          example: 9500
        notification_fee:
          type: integer
          description: |
            The notification fee for the payment product
          example: 3900
        annual_interest_rate:
          type: string
          description: |
            The interest rate for the payment product.
          example: '0.0'
        effective_annual_interest_rate:
          type: string
          description: |
            The effective annual interest rate for the payment product
          example: '54.69'
        total_amount:
          type: integer
          example: 309400
          description: The total amount to pay
        monthly_amount:
          type: integer
          example: 100000
          description: The amount to pay pr month
        first_monthly_amount:
          type: integer
          description: |
            The amount to pay in the first invoice. Origantion fee is added
            to the first invoice.
          example: 109500
    MyDinteroUserCreation:
      type: object
      description: |
        Options for myDintero
      required:
        - actions
        - terms
      properties:
        actions:
          description: |
            Actions to perform on the customer
          type: array
          items:
            type: string
            enum:
              - create_user
              - skip
        terms:
          required:
            - id
            - url
          description: |
            Terms and conditions accepted
          type: object
          properties:
            id:
              description: |
                id of the myDintero terms and conditions
              type: string
              format: uuid
            url:
              type: string
              format: uri
              pattern: https?://*
              example: https://example.com/toc
              description: |
                Url to the terms and conditions accepted by the customer
    VerifiedIdentity:
      type: object
      description: |
        Verified identity of the customer aka payer
      required:
        - type
        - iss
        - aud
        - acr
        - auth_time
        - national_idp
        - national_country
      properties:
        type:
          type: string
          enum:
            - collector-idp
            - dintero-idp
        iss:
          type: string
          format: uri
          maxLength: 100
          example: https://idp-uat.collectorbank.se
        sub:
          type: string
          maxLength: 100
        aud:
          type: string
          maxLength: 100
        acr:
          type: string
          format: uri
          maxLength: 100
          description: Authentication Context Class Reference.
          example: urn:collectorbank:ac:method:nbid
        auth_time:
          type: string
          format: date-time
        national_idp:
          type: string
          maxLength: 20
        national_country:
          type: string
          format: iso3166-alpha2
          maxLength: 2
          example: 'NO'
        nonce:
          type: string
        name:
          type: string
          maxLength: 100
          example: John Doe
        given_name:
          type: string
          maxLength: 100
          example: John
        family_name:
          type: string
          maxLength: 100
          example: Doe
        age_over:
          type: integer
          description: Verified age threshold.
          example: 18
    SessionMeta:
      type: object
      properties:
        id:
          type: string
          description: The ID of the Checkout
        created_at:
          type: string
          format: date-time
          description: Time when the Checkout was created
        updated_at:
          type: string
          format: date-time
          description: Last time when the Checkout was updated
        expires_at:
          type: string
          format: date-time
          description: |
            The session expiration time after which the
            Checkout page wouldn't be available
        customer_ip:
          type: string
          description: |
            The IP of the customer upon visiting the page.
            If the page is visited multiple times, the
            field is always updated with the last known value.
        user_agent:
          type: string
          description: |
            The full user agent of the device the customer
            used when visiting the checkout page
        initiating_system_request_headers:
          $ref: '#/components/schemas/SystemRequestHeaders'
        payment_operation:
          $ref: '#/components/schemas/PaymentOperationIntent'
        events:
          type: array
          description: |
            Checkout process events
          items:
            type: object
            properties:
              created_at:
                type: string
                format: date-time
              id:
                type: string
              request_id:
                type: string
              name:
                type: string
                enum:
                  - INITIATED
                  - VISITED
                  - COMPLETED
                  - AUTHORIZED
                  - DECLINED
                  - PAY_LOCK_START
                  - PAY_LOCK_META
                  - PAY_LOCK_END
                  - PAY_FAILED
                  - ON_HOLD_CALLBACK_SENT
                  - AUTH_CALLBACK_SENT
                  - FAILED
                  - UNKNOWN
                  - PAYMENT_TOKEN_FLOW_START
                  - UPDATE_SESSION
                  - CANCELLED
                  - SET_BILLING_ADDRESS
                  - SET_DISCOUNT_CODES
                  - SET_SHIPPING_ADDRESS
                  - SET_SHIPPING_OPTION
                  - SET_GIFT_CARD
                  - PUSH_NOTIFICATION_SENT
                  - SECRET_CONFIRMATION_CODE_SENT
                  - SET_MY_DINTERO
                  - ADD_PAYMENT_INFORMATION
                  - AGE_VERIFICATION_COMPLETED
              request_headers:
                $ref: '#/components/schemas/RequestHeaders'
              details:
                type: object
                properties:
                  error:
                    type: string
                  payment_product_type:
                    type: string
                  amount:
                    type: integer
                  shipping_option:
                    $ref: '#/components/schemas/MultiShipmentTopLevelShippingOption'
                  shipping_address:
                    $ref: '#/components/schemas/OrderAddress'
                  bambora:
                    type: object
                    properties:
                      session_token:
                        type: string
                      session_url:
                        type: string
                      wallet_session_id:
                        type: string
                  klarna:
                    type: object
                    required:
                      - client_token
                      - session_id
                    properties:
                      client_token:
                        type: string
                      session_id:
                        type: string
                  seitatech:payment_reference:
                    type: string
                  seitatech:terminal_id:
                    type: string
                  seitatech:terminal_tms_id:
                    type: string
                  payex:payment:id:
                    type: string
                  vipps:payment:id:
                    type: string
                  vipps:gateway_api_version:
                    type: string
                  collector:invoice_b2b:addresses:
                    type: array
                    items:
                      $ref: '#/components/schemas/CollectorB2BPaymentOperationAddress'
                  collector:installment:products:
                    type: array
                    items:
                      $ref: '#/components/schemas/CollectorProduct'
                  my_dintero:
                    $ref: '#/components/schemas/MyDinteroUserCreation'
                  organization_number:
                    type: string
                  previous_order:
                    $ref: '#/components/schemas/SessionOrder'
                  updated_order:
                    $ref: '#/components/schemas/SessionOrder'
                  updated_order_result:
                    type: object
                    properties:
                      status:
                        type: string
                        enum:
                          - NOT_MODIFIED
                        example: NOT_MODIFIED
                        description: |
                          The status of the order object after the update,
                          e.g. if the update modified the order object or not.
                  previous_express:
                    $ref: '#/components/schemas/SessionExpress'
                  updated_express:
                    $ref: '#/components/schemas/SessionExpress'
                  updated_express_result:
                    type: object
                    properties:
                      status:
                        type: string
                        enum:
                          - NOT_MODIFIED
                        example: NOT_MODIFIED
                        description: |
                          The status of the express object after the update,
                          e.g. if the update modified the express object or not.
                  gift_card:
                    type: object
                    properties:
                      card_id:
                        type: string
                      card_amount:
                        type: number
                      masked_card_token:
                        type: string
                      currency:
                        type: string
                  transaction_event_id:
                    description: |
                      Reference to the transaction event ID in case of
                      `AUTH_CALLBACK_SENT` event
                    type: string
                  verified_identity:
                    $ref: '#/components/schemas/VerifiedIdentity'
          example:
            - id: 769952fe-86c9-4185-a1ce-aeb46da3509c
              name: INITIATED
              created_at: '2019-05-09T09:13:40.306Z'
              request_id: b97b6312-f8b3-11ed-be56-0242ac120002
            - id: 2189ecac-6ae6-4e84-8a23-31402830b996
              name: AGE_VERIFICATION_COMPLETED
              created_at: '2019-05-09T09:14:10.306Z'
              request_id: b97b6312-f8b3-11ed-be56-0242ac120002
              details:
                verified_identity:
                  type: dintero-idp
                  iss: https://age-verification-test.criipto.id
                  aud: checkout-client-id
                  acr: urn:age-verification
                  auth_time: '2019-05-09T09:14:10.306Z'
                  national_idp: no_bankid
                  national_country: 'NO'
                  age_over: 18
            - name: VISITED
              created_at: '2019-05-09T09:13:50.548Z'
            - name: PAY_FAILED
              created_at: '2019-05-09T09:14:10.548Z'
              details:
                error: Rejected
                payment_product_type: instabank.finance
            - name: FAILED
              created_at: '2019-05-09T09:16:11.786Z'
        transaction_id:
          type: string
          description: |
            Transaction which has been created using the checkout.
    Session:
      allOf:
        - $ref: '#/components/schemas/SessionOptions'
        - $ref: '#/components/schemas/SessionMeta'
    SessionRead:
      type: object
      properties:
        order:
          type: object
          properties:
            gift_cards:
              type: array
              description: |
                The gift cards selected, the part of `order.amount` that will be
                authorized using gift cards
              maxItems: 1
              items:
                $ref: '#/components/schemas/Giftcard'
        customer:
          type: object
          properties:
            my_dintero:
              $ref: '#/components/schemas/MyDinteroUserCreation'
            gift_cards:
              type: object
              properties:
                dintero.wallets:
                  type: array
                  description: |
                    Preload checkout with Wallets cards and let the customer
                    use it during checkout by providing PIN to activate the
                    card (e.g. use Wallets card as giftcard)

                    - The `dintero.wallets` must be enabled in the session
                      configuration to activate the use of the provided gift card
                      tokens
                  maxItems: 1
                  items:
                    type: object
                    required:
                      - card_id
                    properties:
                      card_id:
                        type: string
                      masked_card_token:
                        type: string
            tokens:
              type: object
              properties:
                payex.creditcard:
                  type: object
                  properties:
                    payment_token_id:
                      type: string
                      description: |
                        Id included if the payex.creditcard was created with
                        payment_token set.
                      readOnly: true
                      example: 2134a260d196b1d65e59b259dc43f619d7f0f3c6
                bambora.creditcard:
                  type: object
                  properties:
                    payment_token_id:
                      type: string
                      description: |
                        Id included if the bambora.creditcard was created with
                        payment_token set.
                      readOnly: true
                      example: 2134a260d196b1d65e59b259dc43f619d7f0f3c6
                dintero_psp.creditcard:
                  type: object
                  properties:
                    payment_token_id:
                      type: string
                      description: >
                        Id included if the dintero_psp.creditcard was created
                        with

                        payment_token set.
                      readOnly: true
                      example: 2134a260d196b1d65e59b259dc43f619d7f0f3c6
        metadata:
          type: object
          description: |
            metadata about the session
          properties:
            session:profile_id:
              type: string
              description: Profile Id used when session was created
        configuration:
          type: object
          properties:
            merchant:
              type: object
              properties:
                id:
                  type: string
                  example: null
                logo_url:
                  type: string
                  format: uri
                name:
                  type: string
                  example: TKP tech AS
                country:
                  type: string
                  example: 'NO'
    SessionCancelled:
      type: object
      properties:
        cancelled_by:
          type: string
        cancelled_at:
          type: string
          format: date-time
          description: |
            The date-time when the resource was cancelled
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - message
          properties:
            code:
              type: string
              description: The code used to identify the error/warning
            errors:
              type: array
              description: The nested error(s) encountered during validation
              items:
                type: object
            message:
              type: string
              description: The human readable description of the error/warning
    UpdateSessionOptions:
      type: object
      allOf:
        - required:
            - order
          properties:
            order:
              $ref: '#/components/schemas/SessionOrderUpdate'
            express:
              allOf:
                - $ref: '#/components/schemas/SessionExpressUpdate'
                - properties:
                    shipping_options:
                      type: array
                      items:
                        $ref: '#/components/schemas/MultiShipmentShippingOption'
            remove_lock:
              type: boolean
              description: Remove lock after updating
              default: true
    QROptions:
      type: object
      properties:
        format:
          type: string
          enum:
            - png
        size:
          type: integer
          description: |
            Size of the QR code. The code is a square, so width and height
            are the same
          minimum: 300
          default: 300
          maximum: 1024
    QRCode:
      type: object
      properties:
        qr:
          type: string
          format: data:[<mime type>][;charset=<charset>][;base64],<encoded data>
          description: |
            A base64 encoded image of the QR code
    SessionPaymentToken:
      type: object
      required:
        - order
        - url
      properties:
        order:
          type: object
          required:
            - currency
            - merchant_reference
          properties:
            currency:
              type: string
              format: iso4217-code
              example: NOK
              description: >-
                The three-character ISO-4217 currency.
                https://en.wikipedia.org/wiki/ISO_4217
            merchant_reference:
              type: string
              description: |
                A reference by the merchant to identify the corresponding
                order for the Checkout Session
            merchant_reference_2:
              type: string
              description: |
                A reference by the merchant to identify the corresponding
                order for the Checkout Session
            store:
              $ref: '#/components/schemas/Store'
        url:
          $ref: '#/components/schemas/SessionUrls'
        profile_id:
          type: string
          description: |
            configuration profile to use for branding
        customer:
          $ref: '#/components/schemas/SessionCustomer'
        expires_at:
          type: string
          format: date-time
        configuration:
          allOf:
            - $ref: '#/components/schemas/SessionThemeConfiguration'
            - properties:
                channel:
                  type: string
                  enum:
                    - ecommerce
                    - in_app
                  default: ecommerce
                  description: >
                    `channel` enables special behaviour for various scenarios.


                    The majority of web integrations will not need to set this
                    property.


                    ### in_app


                    The `in_app` channel is intended for payments done from

                    mobile devices where `url.return_url` can be set to the

                    application's appswitch URL.


                    #### Session deeplink URL


                    Creating a session with `channel=in_app` will return an

                    appswitch deeplink URL if the enabled payment options in

                    the session supports it


                    Appswitch deeplink is currently only supported for sessions

                    that has only Vipps enabled via Dintero PSP, Vipps or
                    Swedbank (payex) or

                    Mobilepay enable via Swedbank (payex)

                      - configuration.vipps.enabled
                      - configuration.payex.vipps.enabled
                      - configuration.payex.mobilepay.enabled
                      - configuration.dintero_psp.vipps.enabled

                    > `in_app` is currently not supported when express is
                    enabled


                    > `in_app` with deeplink URL is not supported if `publish`
                    is enabled
    TokenProvider:
      discriminator:
        propertyName: payment_product_type
        mapping:
          payex.creditcard: '#/components/schemas/PayExTokenProvider'
          bambora.creditcard: '#/components/schemas/BamboraTokenProvider'
          dintero_psp.creditcard: '#/components/schemas/DinteroPspCardTokenProvider'
          dintero_psp.googlepay: '#/components/schemas/DinteroPspGooglePayTokenProvider'
          dintero_psp.clicktopay: '#/components/schemas/DinteroPspClickToPayPayTokenProvider'
      oneOf:
        - $ref: '#/components/schemas/PayExTokenProvider'
        - $ref: '#/components/schemas/BamboraTokenProvider'
        - $ref: '#/components/schemas/DinteroPspCardTokenProvider'
        - $ref: '#/components/schemas/DinteroPspGooglePayTokenProvider'
        - $ref: '#/components/schemas/DinteroPspClickToPayPayTokenProvider'
    Payment:
      discriminator:
        propertyName: payment_product_type
        mapping:
          swish.swish: '#/components/schemas/SwishPayment'
          vipps: '#/components/schemas/VippsPayment'
          bambora.mobilepay: '#/components/schemas/BamboraMobilePayPayment'
          dintero_psp.applepay: '#/components/schemas/DinteroPspApplePayPayment'
          collector.invoice_b2b: '#/components/schemas/CollectorInvoiceB2BPayment'
          collector.finance: '#/components/schemas/CollectorFinancePayment'
          santander.debit_account: '#/components/schemas/SantanderPayment'
          payex.vipps: '#/components/schemas/PayExVippsPayment'
          collector.invoice_b2b_preapproved: '#/components/schemas/CollectorInvoiceB2BPreapprovedPayment'
          bambora.vipps: '#/components/schemas/BamboraVippsPayment'
          payex.swish: '#/components/schemas/PayExSwishPayment'
          instabank.postponement: '#/components/schemas/InstabankPostponementPayment'
          instabank.installment: '#/components/schemas/InstabankInstallmentPayment'
          collector.installment: '#/components/schemas/CollectorInstallmentPayment'
          collector.installment_b2b_preapproved: '#/components/schemas/CollectorInstallmentB2BPreapprovedPayment'
          collector.invoice: '#/components/schemas/CollectorInvoicePayment'
          klarna.klarna: '#/components/schemas/KlarnaPayment'
          klarna.billie: '#/components/schemas/KlarnaBilliePayment'
          kravia.invoice_b2b: '#/components/schemas/KraviaB2BInvoicePayment'
          kravia.invoice_b2b_grouped: '#/components/schemas/KraviaGroupedB2BInvoicePayment'
          kravia.invoice_b2c: '#/components/schemas/KraviaB2CInvoicePayment'
          two.invoice_b2b: '#/components/schemas/TwoB2BInvoicePayment'
          payex.mobilepay: '#/components/schemas/PayExMobilePayPayment'
          instabank.finance: '#/components/schemas/InstabankFinancePayment'
          instabank.invoice: '#/components/schemas/InstabankInvoicePayment'
          dintero.zero: '#/components/schemas/DinteroPayment'
          dintero.wallets: '#/components/schemas/DinteroWalletsPayment'
          dintero_psp.creditcard: '#/components/schemas/DinteroPspCreditcardPayment'
          dintero_psp.vipps: '#/components/schemas/DinteroPspVippsPayment'
          dintero_psp.googlepay: '#/components/schemas/DinteroPspGooglePayPayment'
          bambora.creditcard: '#/components/schemas/BamboraCreditcardCitPayment'
          seitatech.in_person: '#/components/schemas/SeitatechInPersonPayment'
          dintero_psp.clicktopay: '#/components/schemas/DinteroPspVisaClickToPayPayment'
          dintero.external: '#/components/schemas/DinteroExternalPayment'
      oneOf:
        - $ref: '#/components/schemas/SwishPayment'
        - $ref: '#/components/schemas/VippsPayment'
        - $ref: '#/components/schemas/BamboraMobilePayPayment'
        - $ref: '#/components/schemas/DinteroPspApplePayPayment'
        - $ref: '#/components/schemas/CollectorInvoiceB2BPayment'
        - $ref: '#/components/schemas/CollectorFinancePayment'
        - $ref: '#/components/schemas/SantanderPayment'
        - $ref: '#/components/schemas/PayExVippsPayment'
        - $ref: '#/components/schemas/CollectorInvoiceB2BPreapprovedPayment'
        - $ref: '#/components/schemas/BamboraVippsPayment'
        - $ref: '#/components/schemas/PayExSwishPayment'
        - $ref: '#/components/schemas/InstabankPostponementPayment'
        - $ref: '#/components/schemas/InstabankInstallmentPayment'
        - $ref: '#/components/schemas/CollectorInstallmentPayment'
        - $ref: '#/components/schemas/CollectorInstallmentB2BPreapprovedPayment'
        - $ref: '#/components/schemas/CollectorInvoicePayment'
        - $ref: '#/components/schemas/KlarnaPayment'
        - $ref: '#/components/schemas/KlarnaBilliePayment'
        - $ref: '#/components/schemas/KraviaB2BInvoicePayment'
        - $ref: '#/components/schemas/KraviaGroupedB2BInvoicePayment'
        - $ref: '#/components/schemas/KraviaB2CInvoicePayment'
        - $ref: '#/components/schemas/TwoB2BInvoicePayment'
        - $ref: '#/components/schemas/PayExMobilePayPayment'
        - $ref: '#/components/schemas/InstabankFinancePayment'
        - $ref: '#/components/schemas/InstabankInvoicePayment'
        - $ref: '#/components/schemas/DinteroPayment'
        - $ref: '#/components/schemas/DinteroWalletsPayment'
        - $ref: '#/components/schemas/DinteroPspCreditcardPayment'
        - $ref: '#/components/schemas/DinteroPspVippsPayment'
        - $ref: '#/components/schemas/DinteroPspGooglePayPayment'
        - $ref: '#/components/schemas/BamboraCreditcardCitPayment'
        - $ref: '#/components/schemas/SeitatechInPersonPayment'
        - $ref: '#/components/schemas/DinteroPspVisaClickToPayPayment'
        - $ref: '#/components/schemas/DinteroExternalPayment'
    PaymentResponse:
      type: object
      required:
        - success
        - actions
      properties:
        success:
          description: the payment was accepted
          type: boolean
        actions:
          type: array
          items:
            type: object
            properties:
              source:
                type: string
                example: DINTERO
                description: action source
              code:
                description: status
                example: '200'
                type: string
              type:
                type: string
                enum:
                  - success
                  - error
        redirect_url:
          description: |
            redirect url to complete payment, will not be included
            if the payment failed with `Rejected` error as payment
            can be completed by choosing alternative payment option.
          type: string
        poll_url:
          description: |
            `poll_url` to check the status of the payment.
            Will be included if the payment is dependent on
            3rd party apps, such as Swish.
          type: string
        approval_url:
          description: >
            `approval_url` to complete the payment in a different app from the
            one showing

            the checkout, eg. an app link for the Swish M-Commerce flow. Should
            be used in

            conjunction with the `poll_url` to check the status of the payment.
          type: string
        qr_code:
          description: >
            A base 64 encoded image of the QR code can be displayed while the
            checkout frontend is

            polling for the payment status. Eg. used as a fallback for the Swish
            M-Commerce flow if we are

            unable to open the `approval_url` on the end users device we can
            display the QR code and the

            user can scan it using a different device that has the app used for
            payment installed.


            By default the image has a size of 600 x 600 pixels.
          type: string
          example: >-
            data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABzklEQVR42mNkAAYy...
        error:
          type: string
          example: Rejected
        error_details:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                description: >-
                  Description of the error. If code is
                  `authentication_required`, use `authentication_operations` to
                  perform SCA and retry the payment.

                  If code is `age-verification-required`, the error is
                  temporary. Use the `complete-age-verification` operation for
                  the payment product type to complete age verification and
                  retry the payment.
                example: wrong_ssn
              category:
                type: string
                enum:
                  - permanent
                  - temporary
                  - unknown
                description: |
                  Describes if the error is retryable.
              field:
                type: string
                description: |
                  The field that might be the reason for the error
              authentication_operations:
                type: array
                description: >-
                  SCA operations for when an authorization is declined. Allows
                  performing SCA after having attempted without. Will be present
                  for `dintero_psp` when `code` is `authentication_required`.
                items:
                  type: object
                  required:
                    - href
                    - method
                    - content_type
                    - rel
                  properties:
                    href:
                      type: string
                    method:
                      type: string
                      enum:
                        - POST
                    content_type:
                      type: string
                      enum:
                        - application/json
                    rel:
                      type: string
                      enum:
                        - 3d-secure-init-hosted
                        - 3d-secure-init
                        - 3d-secure-method-complete
                        - 3d-secure-challenge-complete
                        - 3d-secure-notification
                        - mastercard-taf-init-params
                        - mastercard-taf-challenge-complete
              error_codes:
                description: >
                  An array of error codes. Will generally only be one, but if an
                  error code is changed it will be added to the array.
                type: array
                minItems: 1
                items:
                  type: string
                  enum:
                    - ERROR
                    - DECLINED
                    - ISSUER_ERROR
                    - PICK_UP_CARD
                    - INVALID_MERCHANT
                    - INVALID_TRANSACTION
                    - INVALID_AMOUNT
                    - INSUFFICIENT_FUNDS
                    - CLOSED_ACCOUNT
                    - EXPIRED_CARD
                    - EXCEEDS_APPROVAL_LIMIT
                    - EXCEEDS_WITHDRAWAL_FREQUENCY_LIMIT
                    - RESTRICTED_CARD
                    - PIN_REQUIRED
                    - FAILED_VERIFICATION
                    - ADDITIONAL_VERIFICATION_REQUIRED
                    - AUTHORIZATION_EXPIRED
                    - PENDING_ISSUER_RESPONSE
                    - UNKNOWN
    PaySessionBase:
      type: object
      required:
        - order
      properties:
        url:
          type: object
          properties:
            callback_url:
              $ref: '#/components/schemas/CallbackUrl'
        customer:
          $ref: '#/components/schemas/SessionCustomer'
        order:
          $ref: '#/components/schemas/SessionOrder'
        expires_at:
          type: string
          format: date-time
    PaySessionOptions:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaySessionBase'
        - properties:
            configuration:
              allOf:
                - $ref: '#/components/schemas/AutoCaptureConfiguration'
                - type: object
                  properties:
                    pre_authorization:
                      type: boolean
                      description: >
                        If `true` the transaction will be posted as an initial
                        **pre-authorization**.


                        The initial pre-authorization reserves the order amount,
                        can be adjusted,

                        and must be finalized through [POST
                        /transactions/{id}/authorization](/api-reference/transactions/transaction_tid_extend_authorization_post)

                        before the final amount can be captured.


                        If `pre_authorization` is not specified it defaults to
                        `false`.
    PayPayment:
      discriminator:
        propertyName: payment_product_type
        mapping:
          payex.creditcard: '#/components/schemas/PayExCreditcardPayment'
          bambora.creditcard: '#/components/schemas/BamboraCreditcardPayment'
          dintero_psp.creditcard: '#/components/schemas/DinteroPspCreditcardMitPayment'
          kravia.invoice_b2b: '#/components/schemas/KraviaB2BInvoicePayPayment'
          kravia.invoice_b2c: '#/components/schemas/KraviaB2CInvoicePayPayment'
      oneOf:
        - $ref: '#/components/schemas/PayExCreditcardPayment'
        - $ref: '#/components/schemas/BamboraCreditcardPayment'
        - $ref: '#/components/schemas/DinteroPspCreditcardMitPayment'
        - $ref: '#/components/schemas/KraviaB2BInvoicePayPayment'
        - $ref: '#/components/schemas/KraviaB2CInvoicePayPayment'
    SessionPayResult:
      type: object
      required:
        - success
      properties:
        session_id:
          type: string
        success:
          type: boolean
        actions:
          type: array
          items:
            type: object
            properties:
              source:
                type: string
                example: PAYEX
              code:
                type: string
                example: AUTHORIZED
              type:
                type: string
                example: success
    SettlementStatus:
      type: string
      description: |
        Overall settlement status after the events
      enum:
        - NOT_SETTLED
        - PENDING_SETTLEMENT
        - PARTIALLY_SETTLED
        - SETTLED
    TransactionSettlementsEvent:
      type: object
      required:
        - settlement_id
        - provider_reference
        - amount
      properties:
        settlement_id:
          type: string
          description: |
            Id of the settlement this was paid in
        provider_reference:
          type: string
          description: |
            The providers reference for the settlement
        event_correlation_id:
          type: string
          description: |
            Id for matching to transaction event
        amount:
          type: number
          description: |
            The amount paid out in this settlement
        capture:
          type: number
          description: |
            Amount captured in this settlement
        refund:
          description: |
            Amount refunded in this settlement
          type: number
        fee:
          description: |
            Fee of the capture in this settlement
          type: number
    TransactionSettlementsRead:
      type: object
      required:
        - events
      properties:
        events:
          description: |
            One item per payout to the merchants bank account
          type: array
          items:
            $ref: '#/components/schemas/TransactionSettlementsEvent'
        settlement_status:
          type: string
          enum:
            - NOT_SETTLED
            - PENDING_SETTLEMENT
            - PARTIALLY_SETTLED
            - SETTLED
    TransactionEvent:
      type: object
      properties:
        id:
          type: string
          readOnly: true
        transaction_status:
          description: |
            The transaction state after this event
          type: string
          enum:
            - INITIATED
            - AUTHORIZED
            - AUTHORIZATION_VOIDED
            - CAPTURED
            - PARTIALLY_CAPTURED
            - PARTIALLY_CAPTURED_REFUNDED
            - REFUNDED
            - PARTIALLY_REFUNDED
            - DECLINED
            - FAILED
            - UNKNOWN
            - ON_HOLD
        gift_cards:
          type: array
          description: |
            The gift cards that was used as part of this event
          items:
            allOf:
              - $ref: '#/components/schemas/Giftcard'
              - required:
                  - transaction_id
                properties:
                  transaction_id:
                    type: string
                    description: The external transaction ID
        event:
          type: string
          description: the event type
          example: CAPTURE
          enum:
            - INITIALIZE
            - AUTHORIZE
            - CAPTURE
            - REFUND
            - VOID
            - INITIATE_REFUND
            - INITIATE_VOID
            - INITIATE_CAPTURE
            - SETTLEMENT
        success:
          type: boolean
          description: |
            The event operation completed with success
        correction:
          type: object
          description: |
            Correction of the transaction status and event after
            a failed operation
          required:
            - status
            - remaining_capture_amount
            - remaining_refund_amount
            - remaining_void_amount
          properties:
            event_ids:
              type: array
              description: |
                List of event ids added to correct the transaction status
              items:
                type: string
            status:
              description: |
                status the transaction was corrected to
              type: string
            remaining_capture_amount:
              type: integer
              example: 50000
              minimum: 0
              description: |
                Monetary amount in smallest unit for the currency
            remaining_refund_amount:
              type: integer
              example: 50000
              minimum: 0
              description: |
                Monetary amount in smallest unit for the currency
            remaining_void_amount:
              type: integer
              example: 50000
              minimum: 0
              description: |
                Monetary amount in smallest unit for the currency
        error:
          type: object
          description: |
            The event error is only used when the success is `false`.
          required:
            - message
          properties:
            code:
              type: string
              description: The code used to identify the error/warning
            message:
              type: string
              description: The human readable description of the error/warning
            type:
              type: array
              minItems: 1
              items:
                type: string
                enum:
                  - ERROR
                  - DECLINED
                  - ISSUER_ERROR
                  - PICK_UP_CARD
                  - INVALID_MERCHANT
                  - INVALID_TRANSACTION
                  - INVALID_AMOUNT
                  - INSUFFICIENT_FUNDS
                  - CLOSED_ACCOUNT
                  - EXPIRED_CARD
                  - EXCEEDS_APPROVAL_LIMIT
                  - EXCEEDS_WITHDRAWAL_FREQUENCY_LIMIT
                  - RESTRICTED_CARD
                  - PIN_REQUIRED
                  - FAILED_VERIFICATION
                  - ADDITIONAL_VERIFICATION_REQUIRED
                  - AUTHORIZATION_EXPIRED
                  - PENDING_ISSUER_RESPONSE
                  - UNKNOWN
            result_code:
              type: string
              description: |
                Result code received from Visa or Mastercard
            retry_policy:
              type: object
              description: |
                Information about retry policy for the error
              required:
                - retry_codes
              properties:
                retry_codes:
                  type: array
                  description: |
                    List of retry codes applicable for this error
                  items:
                    type: string
                    enum:
                      - DO_NOT_RETRY
                      - RETRY_IMMEDIATELY
                      - RETRY_AFTER_DELAY
                retry_after:
                  type: string
                  description: >
                    ISO 8601 timestamp indicating when to retry the operation.
                    Will only be present if retry_codes contains
                    `RETRY_AFTER_DELAY`
        amount:
          type: number
          description: |
            Amount captured or refunded
        calculated_vat_amount:
          type: number
          description: |
            Best-effort calculation of the VAT amount in this transaction
        items:
          type: array
          description: The applicable event items
          items:
            allOf:
              - properties:
                  discount_lines:
                    description: Metadata about discounts given
                    type: array
                    items:
                      $ref: '#/components/schemas/DiscountItem'
              - $ref: '#/components/schemas/OrderItem'
        created_at:
          type: string
          format: date-time
        created_by:
          type: string
        request_id:
          type: string
          format: uuid
          example: 05c91a5b-9c3d-4214-a7e1-e472dbe22eb9
        metadata:
          type: object
          description: |
            Additional details about the event
        correlation_request_id:
          type: string
          format: uuid
          example: 05c91a5b-9c3d-4214-a7e1-e472dbe22eb9
          description: |
            The event correlation to existing event. The property will
            be set if the event is an CAPTURE or REFUND of correlated
            INITIATE_CAPTURE or INITIATE_REFUND event.
        event_reference:
          type: string
          description: |
            Reference for the transaction event provided by the merchant.

            - For captures, this is `capture_reference`
            - For refunds, this is `refund_reference`

            When relevant, it will be visible on the Dintero settlement report.
        request_headers:
          $ref: '#/components/schemas/RequestHeaders'
        settlements:
          $ref: '#/components/schemas/TransactionSettlementsRead'
    Card:
      type: object
      properties:
        brand:
          type: string
          description: Visa, MasterCard, etc. The brand of the card.
          example: Visa
        masked_pan:
          type: string
          example: 476173******0416
        expiry_date:
          type: string
          format: \d{2}/\d{4}
        type:
          type: string
          enum:
            - Credit
            - Debit
            - Credit Card
            - Debit Card
            - Prepaid
        region:
          type: string
          enum:
            - domestic
            - eea
            - eea-uk
            - europe
            - inter
          description: >
            The region in which the transaction takes place, determined by

            location of merchant and issuer.


            * `domestic`: merchant and issuer within the same country.

            * `eea`: merchant and issuer within EEA, but not the same country.

            * `eea-uk`: merchant and issuer within EEA plus United Kingdom, but
            one or both not withing EEA.

            * `europe`: merchant and issuer within Europe, but one or both not
            within EEA plus United Kingdom.

            * `inter`: merchant and/or issuer not within Europe.
        country:
          type: string
          description: The country the card is issued in
          format: iso-3166-1
          example: NOR
        product_platform:
          type: string
          enum:
            - consumer
            - commercial
        issuing_bank:
          type: string
          description: |
            The name of the bank that issued the card used
        acquirer_transaction_type:
          type: string
          description: |
            3DSECURE or SSL. Indicates the transaction type of the acquirer.
          enum:
            - 3DSECURE
            - SSL
        acquirer_stan:
          description: |
            The System Trace Audit Number assigned by the acquirer to
            uniquely identify the transaction.
          type: string
        acquirer_terminal_id:
          description: The ID of the acquirer terminal.
          type: string
        acquirer_transaction_time:
          description: The ISO-8601 date and time of the acquirer transaction.
          type: string
          format: date-time
        authentication_status:
          type: string
          description: |
            Y, A, U or N. Indicates the status of the authentication.
          enum:
            - 'Y'
            - A
            - U
            - 'N'
        three_ds_version:
          type: string
          example: '2'
        three_ds_server_trans_id:
          type: string
        eci:
          type: string
          example: '05'
        payment_system_type:
          type: string
          example: wallet
        payment_token:
          type: string
          description: >
            The payment token generated by the authorization. Only available

            for transactions created from session where the

            generate_payment_token option is enabled in the session

            configuration, or from payment token sessions where payment_token

            is included in the token_provider.token_types


            - [POST
            /v1/sessions/payment-token](/api-reference/session/checkout_payment_token_session_post)
        payment_token_id:
          type: string
          description: |
            The id of the payment_token, only included in transaction where
            a payment_token was generated.
        recurrence_token:
          type: string
          description: >
            The recurrence token generated by the authorization. Only available

            for transactions created from session where the

            generate_recurrence_token option is enabled in the session

            configuration, or from payment token sessions where recurrence_token

            is included in the token_provider.token_types


            - [POST
            /v1/sessions/payment-token](/api-reference/session/checkout_payment_token_session_post)
        recurrence_token_id:
          type: string
          description: |
            The id of the recurrence_token, only included in transaction where
            a recurrence_token was generated.
        card_holder_tokenization_consent:
          type: string
          enum:
            - opt_in
            - opt_out
          default: opt-out
          description: >
            The card holder's consent to tokenization, as provided during
            authorization. This is only a hint, and the final decision is made
            by the card issuer.
        entry_method:
          type: string
          description: How the card was read.
          enum:
            - chip
            - contactless
            - magstripe
    TransactionBambora:
      properties:
        card:
          $ref: '#/components/schemas/Card'
        events:
          type: array
          items:
            type: object
            properties:
              metadata:
                type: object
                properties:
                  bambora:transaction:status:
                    type: string
                  bambora:transactionoperation:id:
                    type: string
                  bambora:meta:action:source:
                    type: string
                  bambora:meta:action:code:
                    type: string
                  bambora:meta:action:type:
                    type: string
                  payout_correlation_id:
                    description: >
                      Id that will be referenced on the settlement report,
                      unique for this event
                    type: string
        metadata:
          type: object
          properties:
            gateway:id:
              type: string
            bambora:merchant_number:
              type: string
            bambora:transaction_id:
              type: string
            bambora:reference:
              type: string
            bambora:acquirer:
              type: string
            bambora:wallet:
              type: string
    TransactionCollector:
      properties:
        events:
          type: array
          items:
            type: object
            properties:
              metadata:
                type: object
                properties:
                  collector:Invoice.InvoiceStatus:
                    type: number
                    description: >-
                      External status reported after adding invoice and
                      activating invoice
                  collector:CorrelationId:
                    type: string
                    description: |
                      External request id
                  collector:Invoice.PaymentReference:
                    type: string
                    description: >
                      The payment identification number. This is the id the
                      customer must use when they do a payment of an invoice.
                  collector:Invoice.LowestAmountToPay:
                    type: number
                    description: The lowest amount to pay on the invoice.
                  collector:Invoice.TotalAmount:
                    type: number
                    description: The total amount to pay for the invoice.
                  collector:Invoice.DueDate:
                    type: string
                    description: The due date of the invoice.
                  collector:Invoice.InvoiceUrl:
                    type: string
                    description: The url to invoice in pdf format.
                  collector:Invoice.CurrentInvoiceNumber:
                    type: string
                    description: >-
                      The invoice number of the invoice that this event belongs
                      to.
                  collector:Invoice.NewInvoiceNumber:
                    type: string
                    description: The invoice number for the next capture.
        metadata:
          type: object
          properties:
            collector:StoreId:
              type: string
              description: The Collector Store ID of the payment
            collector:Invoice.InvoiceNumber:
              type: string
              description: The invoice number of the invoice.
            collector:Invoice.OrderNumber:
              type: string
              description: Corresponds to the Dintero session ID
            collector:Invoice.CountryCode:
              type: string
              description: The country of the payment
            collector:Invoice.ProductCode:
              type: string
            collector:Invoice.InvoiceType:
              type: string
            collector:Invoice.SettlementReference:
              type: string
              description: The SettlementReference used for the payment.
    TransactionInstabank:
      properties:
        events:
          type: array
          items:
            type: object
            properties:
              metadata:
                type: object
                properties:
                  instabank:Sale.Status:
                    type: string
                    description: |
                      External status reported after the transaction event
                  instabank:RequestId:
                    type: string
                    description: |
                      External request id
        metadata:
          type: object
          properties:
            instabank:Sale.ExternalReference:
              type: string
              description: |
                External reference for the transaction
            instabank:Sale.Sequence:
              type: number
              description: |
                External case sequence (id)
            instabank:Sale.Product.Name:
              type: string
              description: Payment product name
    TransactionDinteroPsp:
      properties:
        card:
          $ref: '#/components/schemas/Card'
        events:
          type: array
          items:
            type: object
            properties:
              metadata:
                type: object
                properties:
                  dintero_psp:operation_ref:
                    type: string
                    description: Unique reference of operation
                  dintero_psp:authorization_operation_ref:
                    type: string
                    description: |
                      Reference to authorization operation upon void or capture
                  dintero_psp:capture_operation_ref:
                    type: string
                    description: |
                      Reference to capture operation upon refund
                  dintero_psp:sale_operation_ref:
                    type: string
                    description: |
                      Reference to sale operation upon sale refund
                  dintero_psp:network:correlation_id:
                    type: string
                    description: |
                      Reference to the operation, assigned by the card network.
                  dintero_psp:network:acquirer_stan:
                    type: string
                    description: >
                      System Trace Audit Number (STAN) is a number Dintero
                      assigns

                      to uniquely identify a transaction on the card network.

                      Present on Mastercard transactions only.
                  dintero_psp:network:lifecycle_trace_id:
                    type: string
                    description: >
                      Reference to the original authorization. The value is
                      assigned

                      to the original authorization, and is present on
                      subsequent

                      incremental authorizations, captures, and reversals.

                      Present on Mastercard transactions only.
        metadata:
          type: object
          properties:
            gateway:id:
              type: string
              description: |
                Transaction Id in Dintero PSP
    TransactionKlarna:
      properties:
        events:
          type: array
          items:
            type: object
            properties:
              metadata:
                type: object
                properties:
                  klarna:reference:
                    type: string
                    description: >
                      Internal reference sent to Klarna for the capture/refund.
                      This will be included in the settlement files.
                  klarna:headers:capture_id:
                    type: string
                    description: Id of the capture created in Klarna
                  klarna:headers:refund_id:
                    type: string
                    description: Id of the refund created in Klarna
                  klarna:headers:location:
                    type: string
                    description: >
                      The URI at which the capture or refund created in Klarna
                      can be found
                  klarna:authorization_expiration:
                    type: string
                    description: >
                      Authorization expiration date (ISO 8601 format), e.g.
                      "2023-08-16T15:00:00Z".
                  klarna:authorization_expiration_reason:
                    type: string
                    description: >-
                      The reason for extending the authorization date. This will
                      be included after extending authorization.
                  klarna:authorization_expiration_reference:
                    type: string
                    description: >
                      A reference specified by the merchant to identify the
                      transaction.

                      This will be included after extending authorization.
                  klarna:authorization_expiration_error_reason:
                    type: string
                    description: >
                      The reason an error occurred when trying to extend the
                      authorization date.

                      This will be included after extending authorization.
                  klarna:order_amount_update_error:
                    type: string
                    description: >
                      The error code returned by Klarna when an order amount
                      update fails.

                      This will be included after attempting to update the order
                      amount.
                  klarna:order_amount_update_can_retry:
                    type: string
                    enum:
                      - '0'
                      - '1'
                    description: >
                      Indicates whether the order amount update can be retried
                      after a failure.

                      "0" means the update cannot be retried, "1" means retry is
                      allowed.

                      This will be included after attempting to update the order
                      amount.
        metadata:
          type: object
          properties:
            gateway:id:
              type: string
              description: |
                Order Id in Klarna
            merchant_name:
              type: string
            klarna:authorized_payment_method:type:
              type: string
              enum:
                - invoice
                - fixed_amount
                - base_account
                - direct_debit
                - direct_bank_transfer
                - b2b_invoice
                - card
                - slice_it_by_card
                - pay_later_by_card
                - pay_by_card
                - fixed_sum_credit
            klarna:authorized_payment_method:number_of_days:
              type: string
            klarna:authorized_payment_method:number_of_installments:
              type: string
            klarna:authorized_payment_method:fraud_status:
              type: string
              enum:
                - ACCEPTED
                - PENDING
              description: |
                Fraud status for order
    TransactionNetaxept:
      properties:
        card:
          $ref: '#/components/schemas/Card'
        events:
          type: array
          items:
            type: object
            properties:
              transaction_status:
                type: string
                readOnly: true
                enum:
                  - INITIATED
                  - AUTHORIZED
                  - AUTHORIZATION_VOIDED
                  - CAPTURED
                  - PARTIALLY_CAPTURED
                  - REFUNDED
                  - PARTIALLY_REFUNDED
                  - DECLINED
                  - FAILED
                  - UNKNOWN
                  - ON_HOLD
              metadata:
                type: object
                properties:
                  netaxept:transaction_id:
                    type: string
                  netaxept:operation:
                    type: string
                  netaxept:execution_time:
                    type: string
                  netaxept:bat_number:
                    type: string
                  netaxept:response_code:
                    type: string
                  netaxept:terminal_url:
                    type: string
        metadata:
          type: object
          properties:
            netaxept:merchant_id:
              type: string
            netaxept:transaction_id:
              type: string
    TransactionPayEx:
      properties:
        card:
          $ref: '#/components/schemas/Card'
        events:
          type: array
          items:
            type: object
            properties:
              metadata:
                type: object
                properties:
                  payex:transaction:id:
                    type: string
                  payex:transaction:number:
                    oneOf:
                      - type: number
                      - type: string
                  payex:transaction:type:
                    type: string
                  payex:transaction:state:
                    type: string
                  payex:transaction:created:
                    type: string
                    format: date-time
                  payex:transaction:payee_reference:
                    type: string
        metadata:
          type: object
          properties:
            payex:payment:payee_info:payee_id:
              type: string
            payex:payment:payee_info:payee_name:
              type: string
            payex:payment:payee_info:subsite:
              type: string
            payex:payment:id:
              type: string
            payex:payment:number:
              oneOf:
                - type: number
                - type: string
            payex:payment:operation:
              type: string
            payex:payment:created:
              type: string
              format: date-time
    TransactionSantander:
      properties:
        events:
          type: array
          items:
            type: object
            properties:
              metadata:
                type: object
                properties:
                  santander:debit_account.ApplicationNumber:
                    type: string
                    description: ID of the application provided by Santander
                  santander:debit_account.StatusCode:
                    type: string
                    description: Status code from Santander
        metadata:
          type: object
          properties:
            santander:debit_account.ApplicationNumber:
              type: string
              description: ID of the application provided by Santander
            santander:debit_account.StatusCode:
              type: string
              description: Status code from Santander
    SwishTransactionEventMetadata:
      type: object
      properties:
        swish:payment_request:token:
          type: string
        swish:payment_request:get_payment_url:
          type: string
        swish:id:
          type: string
        swish:originalPaymentReference:
          type: string
        swish:paymentReference:
          type: string
        swish:amount:
          type: string
        swish:dateCreated:
          type: string
        swish:datePaid:
          type: string
        swish:status:
          type: string
        swish:errorCode:
          type: string
        swish:errorMessage:
          type: string
    TransactionSwish:
      properties:
        events:
          type: array
          items:
            type: object
            properties:
              metadata:
                $ref: '#/components/schemas/SwishTransactionEventMetadata'
        metadata:
          type: object
          properties:
            swish:payment_request:id:
              type: string
            swish:swish_number:
              type: string
            swish:id:
              type: string
              description: Payment request id
            swish:paymentReference:
              type: string
              description: Capture payment reference from bank
    TransactionVipps:
      properties:
        events:
          type: array
          items:
            type: object
            properties:
              metadata:
                type: object
                properties:
                  vipps:transactionInfo.timeStamp:
                    type: string
                    format: date-time
                  vipps:transactionInfo.transactionId:
                    type: string
                  vipps:transactionInfo.status:
                    type: string
                    enum:
                      - INITIATE
                      - RESERVE
                      - CANCEL
                      - CAPTURE
                      - SALE
                      - VOID
                      - Captured
                      - Cancelled
                      - Refund
                  vipps:transaction.transactionText:
                    type: string
        metadata:
          type: object
          properties:
            vipps:transaction.orderId:
              type: string
            vipps:transaction.transactionText:
              type: string
            vipps:merchantInfo.merchantSerialNumber:
              type: string
              description: |
                Unique id for this merchant's sales channel: website, mobile app
                etc. Short name: MSN.
              format: ^\d{6}$
              maxLength: 9
            vipps:merchantInfo.paymentType:
              type: string
              enum:
                - eComm Regular Payment
    TransactionKravia:
      properties:
        metadata:
          type: object
          properties:
            kravia:invoice_number:
              type: string
              description: The invoice number.
            kravia:invoice_reference:
              type: string
              description: The invoice reference.
            kravia:invoice_channel:
              $ref: '#/components/schemas/InvoiceChannel'
            kravia:invoice_url:
              type: string
              format: uri
              description: |
                URL to download the invoice PDF.
        events:
          type: array
          items:
            type: object
            properties:
              metadata:
                type: object
                properties:
                  kravia:invoice_date:
                    type: string
                    format: date
                    description: The date of the invoice.
                  kravia:invoice_due_date:
                    type: string
                    format: date
                    description: The due date of the invoice.
                  kravia:invoice_number:
                    type: string
                    description: The invoice number on the invoice.
                  kravia:creditor_id:
                    type: string
                    description: The ID of the creditor.
                  kravia:invoice_id:
                    type: string
                    description: ID of the invoice in Kravia system.
                  kravia:payment_details:bank_account:bban:
                    type: string
                    description: The payment recipient's bank account.
                  kravia:payment_details:bank_account:iban:
                    type: string
                    description: The IBAN of the payment recipient's bank account.
                  kravia:payment_details:bank_account:swift:
                    type: string
                    description: The SWIFT code of the payment recipient's bank account.
                  kravia:payment_details:kid:
                    type: string
                    description: The KID for the payment.
    TransactionSeitatech:
      properties:
        card:
          $ref: '#/components/schemas/Card'
        events:
          type: array
          items:
            type: object
            properties:
              metadata:
                type: object
                properties:
                  payout_correlation_id:
                    type: string
                    description: >
                      Id that will be referenced on the settlement report,
                      unique for this event
                  terminal_id:
                    type: string
                    description: The ID of the terminal that was used in the event.
                    example: T0292
                  refund_timeout_at:
                    type: string
                    format: date-time
                    description: |
                      The timeout for `INITIATE_REFUND` events, the transaction
                      will then be updated with failed `REFUND` event, and new
                      refund request can be started
                  device_serial_number:
                    type: string
                    description: Serial number of the terminal id
                  seitatech:refund_request:id:
                    type: string
                    description: Refund request ID
                  seitatech:refund_request:status:
                    type: string
                    description: Status of the refund request
                  seitatech:uniqueId:
                    type: string
                    description: Unique transaction ID from the terminal.
                  seitatech:receiptNumber:
                    type: string
                    description: >
                      Receipt number from the terminal. Unique per terminal; use
                      together with

                      terminal_id from store for a globally unique reference.
                  seitatech:outcome:
                    type: string
                    description: |
                      Raw outcome code from the terminal ECR response.
                  seitatech:merchantCategoryCode:
                    type: string
                  seitatech:applicationIdentifier:
                    type: string
                    description: EMV application identifier (AID).
                  seitatech:acquirer:
                    type: string
                  seitatech:actionCode:
                    type: string
                  seitatech:archiveId:
                    type: string
                  seitatech:authorizer:
                    type: string
                  seitatech:batchId:
                    type: string
                  seitatech:customerReceipt:
                    type: string
                    description: Customer receipt text from the terminal.
                  seitatech:customerReceiptPart2:
                    type: string
                  seitatech:field41:
                    type: string
                    description: ISO 8583 field 41 - terminal ID.
                  seitatech:field42:
                    type: string
                    description: ISO 8583 field 42 - merchant ID.
                  seitatech:merchantReceipt:
                    type: string
                    description: Merchant receipt text from the terminal.
                  seitatech:merchantReceiptPart2:
                    type: string
                  seitatech:reasonCode:
                    type: string
                  seitatech:responseCode:
                    type: string
                  seitatech:serviceIdentifier:
                    type: string
                  seitatech:aip:
                    type: string
                    description: EMV Application Interchange Profile.
                  seitatech:atc:
                    type: string
                    description: EMV Application Transaction Counter.
                  seitatech:cid:
                    type: string
                    description: EMV Cryptogram Information Data.
                  seitatech:cvm:
                    type: string
                    description: EMV Cardholder Verification Method.
                  seitatech:tvr:
                    type: string
                    description: EMV Terminal Verification Results.
                  seitatech:languageCode:
                    type: string
                  seitatech:tsi:
                    type: string
                    description: EMV Transaction Status Information.
                  seitatech:terminalSerialNumber:
                    type: string
                  seitatech:transactionType:
                    type: string
                  seitatech:saleAmount:
                    type: string
                    description: Sale amount in minor units.
                  seitatech:batchUuid:
                    type: string
                  seitatech:outcomeReason:
                    type: string
                    description: Reason code for non-approved outcomes.
                  seitatech:posReferenceData:
                    type: string
                    description: >-
                      POS reference data (M3 field), used as payout correlation
                      ID.
                  seitatech:conlonToken:
                    type: string
    TransactionTwo:
      properties:
        metadata:
          type: object
          properties:
            two:order_id:
              type: string
              description: A globally unique ID set by Two.
            two:payment_url:
              type: string
              format: uri
              description: The url for payment verification.
            two:merchant_id:
              type: string
              description: A unique id for the merchant
        events:
          type: array
          items:
            type: object
            properties:
              metadata:
                type: object
                properties:
                  two:order_id:
                    type: string
                    description: A globally unique Order ID set by Two.
                  two:remaining_order_id:
                    type: string
                    description: A globally unique ID set by Two for the remaining order.
                  two:invoice_url:
                    type: string
                    format: uri
                    description: Link to the invoice pdf.
                  two:invoice_number:
                    type: string
                    description: The invoice number.
                  two:credit_note_url:
                    type: string
                    format: uri
                    description: Link to the credit note pdf.
                  two:credit_note_number:
                    type: string
                    description: The credit note number.
                  two:due_date:
                    type: string
                    description: The invoice due date .
    Transaction:
      allOf:
        - $ref: '#/components/schemas/Id'
        - type: object
          required:
            - payment_product
            - payment_product_type
            - amount
            - currency
          properties:
            payment_product:
              description: |
                The payment product corresponding to this transaction
              type: string
              enum:
                - bambora
                - collector
                - dintero
                - dintero_psp
                - instabank
                - klarna
                - netaxept
                - payex
                - santander
                - swish
                - vipps
                - kravia
                - two
                - seitatech
            payment_product_type:
              type: string
              description: |
                The payment product type corresponding to this transaction
              enum:
                - bambora.applepay
                - bambora.creditcard
                - bambora.googlepay
                - bambora.mobilepay
                - bambora.vipps
                - collector.invoice
                - collector.invoice_b2b
                - collector.invoice_b2b_preapproved
                - collector.installment
                - dintero.zero
                - dintero.wallets
                - dintero.external
                - dintero_psp.creditcard
                - dintero_psp.vipps
                - dintero_psp.googlepay
                - dintero_psp.applepay
                - dintero_psp.clicktopay
                - instabank.finance
                - instabank.invoice
                - instabank.installment
                - instabank.postponement
                - klarna.klarna
                - klarna.billie
                - kravia.invoice_b2b
                - kravia.invoice_b2b_grouped
                - kravia.invoice_b2c
                - two.invoice_b2b
                - netaxept.creditcard
                - payex.creditcard
                - payex.mobilepay
                - payex.swish
                - payex.vipps
                - payex.applepay
                - payex.clicktopay
                - payex.googlepay
                - santander.debit_account
                - seitatech.in_person
                - swish.swish
                - vipps
            amount:
              type: integer
              description: |
                Non-negative, minor units. Total amount of the transaction
              example: 72200
            currency:
              type: string
              format: iso4217-code
              example: NOK
              description: ISO 4217 transaction currency
            payout_destination_id:
              type: string
              maxLength: 40
              description: |
                An id that identifies the seller, value will be included in
                the settlement reports
            merchant_reference:
              type: string
              description: >
                A reference specified by the merchant to identify the
                transaction
            channel:
              type: string
              description: |
                The channel for the transaction
              enum:
                - ecommerce
                - in_app
                - in_store
              default: ecommerce
            platform_type:
              type: string
              description: |
                Type of platform the merchant is.
              enum:
                - aggregator
                - marketplace
            merchant_reference_2:
              type: string
              description: >
                A reference specified by the merchant to identify the
                transaction, can be updated after the transaction has been
                created
            dynamic_descriptor:
              type: string
              description: |
                A short reference / descriptor that will show
                up on the customers bank statement
            payment_operation:
              $ref: '#/components/schemas/PaymentOperationIntent'
            settlement_status:
              $ref: '#/components/schemas/SettlementStatus'
            customer:
              type: object
              properties:
                customer_id:
                  type: string
                  description: |
                    Customer id
                email:
                  type: string
                  example: john.doe@example.com
                  description: |
                    Customer email address
                phone_number:
                  type: string
                  example: '+4799999999'
                  description: |
                    Customer phone number, ITU/E.123 format with
                    international prefix (+PPNNNNNNNNN...)
                my_dintero:
                  $ref: '#/components/schemas/MyDinteroUserCreation'
            customer_ip:
              type: string
              description: The IP address of the customer
              example: 127.0.0.1
            user_agent:
              type: string
              description: |
                The full user agent string of the device the customer used
                to submit the transaction
              example: Mozilla/5.0 ...
            initiating_system_request_headers:
              $ref: '#/components/schemas/SystemRequestHeaders'
            shipping_address:
              $ref: '#/components/schemas/OrderAddress'
            shipping_option:
              $ref: '#/components/schemas/MultiShipmentTopLevelShippingOption'
            billing_address:
              $ref: '#/components/schemas/OrderAddress'
            store:
              $ref: '#/components/schemas/Store'
            status:
              description: The current status of the transaction
              type: string
              readOnly: true
              example: CAPTURED
              enum:
                - INITIATED
                - AUTHORIZED
                - AUTHORIZATION_VOIDED
                - CAPTURED
                - PARTIALLY_CAPTURED
                - PARTIALLY_CAPTURED_REFUNDED
                - REFUNDED
                - PARTIALLY_REFUNDED
                - DECLINED
                - FAILED
                - UNKNOWN
                - ON_HOLD
            gift_cards:
              type: array
              description: >
                The gift cards that used to partially or fully authorize the
                transaction
              items:
                $ref: '#/components/schemas/Giftcard'
            items:
              type: array
              description: |
                The applicable transaction items
              items:
                allOf:
                  - $ref: '#/components/schemas/OrderItem'
                  - $ref: '#/components/schemas/OrderDiscountItem'
              example:
                - amount: 2000
                  quantity: 2.5
                  line_id: '1'
                  description: Forsvinnignspølse
                  vat: 20
                  id: '10'
                - amount: 6600
                  quantity: 2
                  line_id: '2'
                  description: Vissvossafår på neppebrød
                  vat: 20
                  id: '6'
                  eligible_for_discount: true
                  is_changed: true
                  gross_amount: 10000
                  discount_lines:
                    - amount: 4400
                      discount_type: customer
                      discount_id: ed960ace-eb16-4e2e-ae52-b27647ccae8d
                      description: Vossafestpris
                      line_id: 1
                - amount: 59700
                  quantity: 3
                  line_id: '3'
                  description: Luftboller
                  vat: 20
                  id: '1'
            url:
              type: object
              properties:
                redirect_url:
                  type: string
                  format: uri
                  readOnly: true
                  description: |
                    URL the customer is redirected after checkout completes
                    (successfully or failed)
                approval_url:
                  type: string
                  format: uri
                  description: |
                    URL the customer is redirected to for authentication.
                  readOnly: true
                callback_url:
                  type: string
                  format: uri
                  description: >
                    URL that Checkout will call when the session payment is
                    complete

                    and the transaction has been authorized
            events:
              type: array
              description: |
                All events recorded on the transaction
              items:
                $ref: '#/components/schemas/TransactionEvent'
              example:
                - event: INITIATE
                  transaction_status: INITIATED
                  created_at: '2019-01-18T13:13:37.175Z'
                  success: true
                  request_id: a3dcc23125bc4363b9dae29ed25a4eb1
                - event: AUTHORIZE
                  transaction_status: AUTHORIZED
                  created_at: '2019-01-18T13:13:37.540Z'
                  success: true
                  request_id: f5f64165e5b3404e9af63586c184c3e9
                - event: CAPTURE
                  transaction_status: PARTIALLY_CAPTURED
                  created_at: '2019-01-18T15:37:00.879Z'
                  created_by: 99115ac5-2d10-4be4-8594-bbf5e3aa7dfc
                  amount: 59700
                  splits:
                    - payout_destination_id: P000000001
                      amount: 29700
                    - payout_destination_id: P000000002
                      amount: 30000
                  fee_split:
                    type: proportional
                    destinations:
                      - P000000001
                  items:
                    - amount: 59700
                      quantity: 3
                      line_id: '3'
                  success: true
                  request_id: 27c71936004e48649c6dd437d314d90c
                - event: CAPTURE
                  transaction_status: CAPTURED
                  created_at: '2019-01-18T21:24:31.669Z'
                  created_by: a33aef94-a17d-447a-a1dd-81055892b59d
                  amount: 8600
                  items:
                    - amount: 2000
                      quantity: 2
                      line_id: '1'
                    - amount: 6600
                      quantity: 2
                      line_id: '2'
                  success: true
                  request_id: c3e60b98a1d1466c97151318be621cf9
            session_id:
              type: string
              description: The session id for the transaction
              example: P00000000.465U8CUzaPVpneu1wt8Wei
            session:
              $ref: '#/components/schemas/Session'
            updated_at:
              type: string
              description: When the transaction was last modified.
              format: date-time
            created_at:
              type: string
              format: date-time
              description: When the transaction was created
            metadata:
              type: object
              description: Additional details about the transaction
              properties:
                merchant_name:
                  type: string
                merchant_country:
                  type: string
                merchant_category_code:
                  type: string
                session:profile_id:
                  type: string
                  description: Profile Id used when session was created
                event_reference:
                  type: string
                  description: >
                    Event Reference used when session was created, default value
                    that

                    will be used on capture and refund
                payout:
                  type: string
                  description: |
                    How settlement payout will be done by Dintero

                    - `payout_account`: Payout directly to merchant
                    - `payout_splits`: Payout is splitted to one or more sellers
                    - `payout_destination_id`: Payout is done to a single seller
                  enum:
                    - payout_account
                    - payout_splits
                    - payout_destination_id
                payout_correlation_id:
                  type: string
                  description: |
                    Id that will be referenced on the settlement report
            checkboxes:
              $ref: '#/components/schemas/CheckboxConfiguration'
            verified_identity:
              $ref: '#/components/schemas/VerifiedIdentity'
        - $ref: '#/components/schemas/TransactionBambora'
        - $ref: '#/components/schemas/TransactionCollector'
        - $ref: '#/components/schemas/TransactionInstabank'
        - $ref: '#/components/schemas/TransactionDinteroPsp'
        - $ref: '#/components/schemas/TransactionKlarna'
        - $ref: '#/components/schemas/TransactionNetaxept'
        - $ref: '#/components/schemas/TransactionPayEx'
        - $ref: '#/components/schemas/TransactionSantander'
        - $ref: '#/components/schemas/TransactionSwish'
        - $ref: '#/components/schemas/TransactionVipps'
        - $ref: '#/components/schemas/TransactionKravia'
        - $ref: '#/components/schemas/TransactionSeitatech'
        - $ref: '#/components/schemas/TransactionTwo'
    PaymentOperation:
      discriminator:
        propertyName: rel
        mapping:
          authorization-code-collector: '#/components/schemas/CollectorAuthorizationOperation'
          complete-age-verification: '#/components/schemas/AgeVerificationPaymentOperation'
          pay-collector-invoice-b2b: '#/components/schemas/CollectorInvoiceB2BPaymentOperation'
          pay-collector-installment: '#/components/schemas/CollectorInstallmentPaymentOperation'
          pay-payex-v3-applepay: '#/components/schemas/PayExV3ApplepayPaymentOperation'
          publish-secret-confirmation-code: '#/components/schemas/SendSCCPaymentOperation'
          pay-payex-v3-clicktopay: '#/components/schemas/PayExV3ClickToPayPaymentOperation'
          pay-payex-v3-swish: '#/components/schemas/PayExV3SwishPaymentOperation'
          pay-payex-v3-vipps: '#/components/schemas/PayExV3VippsPaymentOperation'
          pay-payex-v3-mobilepay: '#/components/schemas/PayExV3MobilePayPaymentOperation'
          pay-payex-v3-googlepay: '#/components/schemas/PayExV3GooglePayPaymentOperation'
          pay-klarna: '#/components/schemas/KlarnaPaymentOperation'
          pay-payex-v3-creditcard: '#/components/schemas/PayExV3PaymentOperation'
          pay-bambora-creditcard: '#/components/schemas/BamboraPaymentOperation'
          pay-bambora-applepay: '#/components/schemas/BamboraApplePayPaymentOperation'
          pay-bambora-googlepay: '#/components/schemas/BamboraGooglePayPaymentOperation'
          pay-bambora-creditcard-cit: '#/components/schemas/BamboraPaymentOperationCit'
          view-payment: '#/components/schemas/ViewPaymentOperation'
          pay-kravia-invoice-b2b-grouped: '#/components/schemas/KraviaGroupedB2BInvoicePaymentOperation'
          pay-kravia-invoice-b2b: '#/components/schemas/KraviaB2BInvoicePaymentOperation'
          pay-kravia-invoice-b2c: '#/components/schemas/KraviaB2CInvoicePaymentOperation'
          pay-two-invoice-b2b: '#/components/schemas/TwoB2BInvoicePaymentOperation'
          view-dintero-psp-creditcard: '#/components/schemas/DinteroPspViewCardPaymentOperation'
          submit-dintero-psp-creditcard: '#/components/schemas/DinteroPspSubmitCardPaymentOperation'
          submit-dintero-psp-googlepay: '#/components/schemas/DinteroPspSubmitGooglePayPaymentOperation'
          pay-dintero-psp-creditcard: '#/components/schemas/DinteroPspPayCardPaymentOperation'
          pay-dintero-psp-token: '#/components/schemas/DinteroPspPayTokenOperation'
          submit-dintero-psp-applepay: '#/components/schemas/DinteroPspApplePaySubmitOperation'
          validate-dintero-psp-applepay-merchant: '#/components/schemas/DinteroPspApplePayMerchantValidationOperation'
          submit-dintero-psp-visa-click-to-pay: '#/components/schemas/DinteroPspSubmitVisaClickToPayPaymentOperation'
      oneOf:
        - $ref: '#/components/schemas/CollectorAuthorizationOperation'
        - $ref: '#/components/schemas/AgeVerificationPaymentOperation'
        - $ref: '#/components/schemas/CollectorInvoiceB2BPaymentOperation'
        - $ref: '#/components/schemas/CollectorInstallmentPaymentOperation'
        - $ref: '#/components/schemas/PayExV3ApplepayPaymentOperation'
        - $ref: '#/components/schemas/SendSCCPaymentOperation'
        - $ref: '#/components/schemas/PayExV3ClickToPayPaymentOperation'
        - $ref: '#/components/schemas/PayExV3SwishPaymentOperation'
        - $ref: '#/components/schemas/PayExV3VippsPaymentOperation'
        - $ref: '#/components/schemas/PayExV3MobilePayPaymentOperation'
        - $ref: '#/components/schemas/PayExV3GooglePayPaymentOperation'
        - $ref: '#/components/schemas/KlarnaPaymentOperation'
        - $ref: '#/components/schemas/PayExV3PaymentOperation'
        - $ref: '#/components/schemas/BamboraPaymentOperation'
        - $ref: '#/components/schemas/BamboraApplePayPaymentOperation'
        - $ref: '#/components/schemas/BamboraGooglePayPaymentOperation'
        - $ref: '#/components/schemas/BamboraPaymentOperationCit'
        - $ref: '#/components/schemas/ViewPaymentOperation'
        - $ref: '#/components/schemas/KraviaGroupedB2BInvoicePaymentOperation'
        - $ref: '#/components/schemas/KraviaB2BInvoicePaymentOperation'
        - $ref: '#/components/schemas/KraviaB2CInvoicePaymentOperation'
        - $ref: '#/components/schemas/TwoB2BInvoicePaymentOperation'
        - $ref: '#/components/schemas/DinteroPspViewCardPaymentOperation'
        - $ref: '#/components/schemas/DinteroPspSubmitCardPaymentOperation'
        - $ref: '#/components/schemas/DinteroPspSubmitGooglePayPaymentOperation'
        - $ref: '#/components/schemas/DinteroPspPayCardPaymentOperation'
        - $ref: '#/components/schemas/DinteroPspPayTokenOperation'
        - $ref: '#/components/schemas/DinteroPspApplePaySubmitOperation'
        - $ref: '#/components/schemas/DinteroPspApplePayMerchantValidationOperation'
        - $ref: '#/components/schemas/DinteroPspSubmitVisaClickToPayPaymentOperation'
    PaymentOperations:
      type: object
      properties:
        operations:
          description: |
            Set of operation available, which operation available will
            depend on the current state of the session.
          type: array
          items:
            $ref: '#/components/schemas/PaymentOperation'
          example:
            - method: GET
              href: >-
                https://checkout.dintero.com/v1/view/{session_id}/age-verification
              rel: complete-age-verification
              content_type: text/html
            - method: GET
              href: string
              rel: view-payment
              content_type: application/javascript
            - method: POST
              href: https://checkout.dintero.com/v1/view/{session_id}/session/pay
              rel: pay-collector-installment
              product:
                id: IF_3_001
                type: interest_free
                credit_time: 3
                campaign_fee: 0
                origination_fee: 9500
                notification_fee: 3900
                annual_interest_rate: '0.0'
                effective_annual_interest_rate: '54.69'
                total_amount: 309400
                monthly_amount: 100000
                first_monthly_amount: 109500
              content_type: application/json
            - method: POST
              href: https://checkout.dintero.com/v1/view/{session_id}/session/pay
              rel: pay-collector-invoice-b2b
              shipping_address:
                id: address_1
                business_name: Dintero AS
                address_line: Street road 1
                postal_place: OSLO
                postal_code: 565
                country: 'NO'
              content_type: application/json
            - method: POST
              href: >-
                https://checkout.dintero.com/view/{session_id}/sessions/publish/scc
              rel: publish-secret-confirmation-code
              content_type: application/json
            - method: GET
              href: https://v1.checkout.bambora.com/fb49265d30aa4f1bb327b943c4d43b14
              session:
                token: fb49265d30aa4f1bb327b943c4d43b14
              rel: pay-bambora-creditcard
              content_type: text/html
            - method: POST
              href: https://checkout.dintero.com/v1/sessions/{session_id}/pay
              stored_card_info:
                cardholder:
                  name: John Doe
                  email: john.doe@dintero.com
                  phone: +46(0) 10 10 66 000
                cardid: 9223372036854776000
                expmonth: 9
                expyear: 21
                truncatedcardnumber: 415421XXXXXX0001
              rel: pay-bambora-creditcard-cit
              content_type: application/json
            - method: POST
              href: https://checkout.dintero.com/v1/view/{session_id}/session/pay
              client_token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
              rel: pay-klarna
              content_type: application/json
    SessionEventVersion:
      type: object
      properties:
        version:
          type: string
          example: 22596363b3de40b06f981fb85d82312e8c0ed511
          description: |
            String that represents the state of the session.
    SessionNotFound:
      type: object
      description: Session not found error
      required:
        - error
      properties:
        error:
          type: object
          required:
            - message
          properties:
            code:
              type: string
              description: The code used to identify the error/warning
            errors:
              type: array
              description: The nested error(s) encountered during validation
              items:
                type: object
            message:
              type: string
              description: The human readable description of the error/warning
            cause:
              type: string
              description: Optional not found reason
              enum:
                - CANCELLED
                - FAILED
                - AUTHORIZED
                - ON_HOLD
                - PAYMENT_INITIATED
                - EXPIRED
                - DECLINED
            session_details:
              type: object
              required:
                - merchant_reference
                - return_url
              properties:
                merchant_reference:
                  type: string
                  description: >-
                    A reference by the merchant to identify the corresponding
                    order for the Checkout Session
                transaction_id:
                  type: string
                  description: Transaction which has been created using the checkout.
                return_url:
                  type: string
                  description: >-
                    URL to page where Checkout will redirect the customer to
                    after the Checkout process has ended.
                merchant:
                  type: object
                  properties:
                    logo_url:
                      type: string
                      format: uri
                    name:
                      type: string
                      example: TKP tech AS
    SessionOperations:
      type: object
      properties:
        operations:
          description: |
            Set of operation available, which operation available will
            depend on the current state of the session.
          type: array
          items:
            type: object
            properties:
              method:
                type: string
                description: |
                  The HTTP method to use when performing the operation
                enum:
                  - POST
                  - GET
              href:
                type: string
                example: >-
                  https://checkout.api.dintero.com/v1/view/P00000000.465UfBENeLpkBvwmqfTC4k/payment/payex.creditcard
                description: |
                  The target URI to perform the operation against.
              rel:
                type: string
                enum:
                  - view-collector-installment
                  - view-collector-invoice
                  - view-collector-invoice-b2b
                  - view-collector-invoice-b2b-preapproved
                  - view-payex-creditcard
                  - view-payex-mobilepay
                  - view-payex-swish
                description: >
                  The name of the relation the operation has to the current
                  resource


                  - `view-payex-creditcard`: Contains the href that is used to
                    get the URL for the JavaScript that is used to embed the
                    credit card UI directly on the Checkout site.
                  - `view-payex-swish`: Contains the href that is used to
                    get the URL for the JavaScript that is used to embed the
                    Swish UI directly on the Checkout site.
                  - `view-collector-installment`: Contains the href that is used
                    to get the producsts available for the collector installment
              content_type:
                type: string
                description: |
                  The Content-Type to used when performing the operation.
                example: application/json
          example:
            - method: POST
              href: >-
                https://checkout.api.dintero.com/v1/view/P00000000.465UfBENeLpkBvwmqfTC4k/payment/payex.creditcard
              rel: view-payex-creditcard
              content_type: application/json
            - method: POST
              href: >-
                https://checkout.api.dintero.com/v1/view/P00000000.465UfBENeLpkBvwmqfTC4k/payment/collector.installment
              rel: view-collector-installment
              content_type: application/json
    SessionLock:
      type: object
      description: |
        If the session is locked, and metadata about the lock.
      properties:
        pay_lock:
          type: object
          properties:
            pay_lock_id:
              type: string
              description: The id of the pay lock
              example: 7ffdbd47-a7c8-476b-b06b-39e0a3f2a4c6
    SessionDetailsMasked:
      type: object
      properties:
        data_visibility:
          type: string
          enum:
            - full
            - masked
    CheckboxSimple:
      type: object
      required:
        - id
        - checked
      properties:
        id:
          type: string
          description: ID of the checkbox that should be updated
        checked:
          type: boolean
          description: If the checkbox is checked or unchecked
    CheckboxUpdate:
      type: array
      description: |
        The checkboxes that should be updated
      items:
        $ref: '#/components/schemas/CheckboxSimple'
      maxItems: 2
    ViewSessionUpdateAddress:
      type: object
      properties:
        shipping_address:
          $ref: '#/components/schemas/OrderAddress'
        billing_address:
          $ref: '#/components/schemas/OrderAddress'
        my_dintero:
          $ref: '#/components/schemas/MyDinteroUserCreation'
        checkboxes:
          $ref: '#/components/schemas/CheckboxUpdate'
    ViewSessionUpdateDiscountCodes:
      properties:
        discount_codes:
          type: array
          items:
            type: string
    ViewSessionUpdateGiftcards:
      required:
        - gift_cards
      properties:
        gift_cards:
          type: array
          maxItems: 1
          items:
            type: object
            required:
              - type
              - value
            properties:
              type:
                type: string
                enum:
                  - dintero.wallets.card_id
                  - dintero.wallets.card_token
              pin:
                description: |
                  PIN to verify the value.
                  Please note that PIN is required if the type is set to
                  `dintero.wallets.card_token`
                type: string
              value:
                description: >
                  The `card_id` or `card_token`. The `card_id` value must be
                  found

                  in the `customer.gift_cards`
                type: string
    PaymentInformationEvent:
      discriminator:
        propertyName: payment_product_type
        mapping:
          klarna.klarna: '#/components/schemas/PaymentInformationEventKlarna'
          klarna.billie: '#/components/schemas/PaymentInformationEventKlarnaBillie'
      oneOf:
        - $ref: '#/components/schemas/PaymentInformationEventKlarna'
        - $ref: '#/components/schemas/PaymentInformationEventKlarnaBillie'
    DiscountCodesOrderUpdate:
      type: object
      description: |
        Order updated with discount given by discount_code.
      required:
        - amount
      properties:
        discount_codes:
          type: array
          items:
            type: string
        amount:
          type: number
          example: 72200
          description: |
            The amount to authorize/capture including VAT and discounts.
            In smallest unit for the currency, e.g. cents
        items:
          type: array
          description: |
            Items with discount lines.

             - The list must include all items in the session order
             - **Required** if the session order has any items.
          items:
            allOf:
              - $ref: '#/components/schemas/OrderItem'
              - properties:
                  discount_lines:
                    type: array
                    items:
                      $ref: '#/components/schemas/DiscountItem'
          example:
            - amount: 2000
              quantity: 2
              line_id: '1'
              description: Forsvinnignspølse
              vat: 20
              id: '10'
            - amount: 6600
              quantity: 2
              line_id: '2'
              description: Vissvossafår på neppebrød
              vat: 20
              id: '6'
              eligible_for_discount: true
              is_changed: true
              gross_amount: 10000
              discount_lines:
                - amount: 4400
                  discount_type: external
                  discount_id: ed960ace-eb16-4e2e-ae52-b27647ccae8d
                  description: Vossafestpris
                  line_id: 1
            - amount: 59700
              quantity: 3
              line_id: '3'
              description: Luftboller
              vat: 20
              id: '1'
    ShippingAddressCallbackSessionOrderUpdate:
      type: object
      description: >
        Updates to session order. If the amount is not equal to sum of
        items.amount and the shipping_option.amount from the request are not
        equal a correction item will be added to the items.
      required:
        - amount
      properties:
        amount:
          type: integer
          example: 29990
          description: |
            The amount to authorize/capture including VAT and discounts.
            In smallest unit for the currency, e.g. cents
        currency:
          type: string
          format: iso4217-code
          example: NOK
          description: >-
            The three-character ISO-4217 currency.
            https://en.wikipedia.org/wiki/ISO_4217
        vat_amount:
          type: integer
          example: 6000
          description: |
            The VAT of the `amount` parameter.
            Only used for display purposes.

            In smallest unit for the currency, e.g. cents
        items:
          type: array
          description: >
            Details about the order items.


            #### Instabank

            `required` if Instabank payment is configured in and partial_payment
            is false.

            All items must include a unique `line_id`, quantity and amount


            #### Collector Bank

            `required` if Collector Bank payment is configured in and
            partial_payment is false.

            All items must include a unique `line_id`, quantity and amount
          items:
            allOf:
              - $ref: '#/components/schemas/OrderItem'
              - $ref: '#/components/schemas/OrderDiscountItem'
        discount_codes:
          type: array
          items:
            type: string
            example: SUMMER20
    StringMetadata:
      type: object
      properties:
        metadata:
          type: object
          description: |
            Additional metadata about the resource

            > All metadata keys must be prefixed with **`ext_`** and the length
            > if key/value pair is 128/256 characters
          maxProperties: 10
          additionalProperties:
            type: string
            maxLength: 256
          example:
            ext_system_x_id: XAB1239
            ext_number_x: '1921'
            ext_original_currency: USD
            ext_original_amount: '3007'
            ext_conversion_rate_ppm: '997258'
            ext_conversion_timestamp: '2025-09-09T08:12:30Z'
    TransactionSettlementsWrite:
      type: object
      required:
        - events
      properties:
        events:
          description: |
            One item per payout to the merchants bank account
          type: array
          items:
            $ref: '#/components/schemas/TransactionSettlementsEvent'
    CardToken:
      type: object
      required:
        - id
        - payment_product_type
        - type
        - status
        - card_brand
      properties:
        id:
          type: string
        token:
          type: string
        type:
          type: string
          enum:
            - payment_token
        status:
          type: string
          enum:
            - ACTIVE
            - INACTIVE
            - SUSPENDED
            - CANCELLED
            - DELETED
        card_brand:
          type: string
          enum:
            - visa
            - mastercard
        masked_pan:
          type: string
          example: 476173******0416
        pan_expiry_date:
          type: string
          format: \d{2}/\d{4}
          example: 09/2030
        token_expiry_date:
          type: string
          format: \d{2}/\d{4}
          example: 09/2030
        links:
          type: array
          items:
            type: object
            required:
              - href
              - rel
            properties:
              href:
                type: string
              rel:
                type: string
                enum:
                  - digital_card_art
                  - digital_card_art_background
                  - card_symbol
                  - terms_and_conditions
              mime_type:
                type: string
                enum:
                  - image/png
                  - image/pdf
                  - text/plain
                  - text/html
        customer_id:
          type: string
        account_id:
          type: string
          example: P12345678
        relationship_id:
          type: string
          description: >
            Reference to the merchant entity for which the token is dedicated.

            Merchant-dedicated tokens are uniquely created per
            merchant_relationship_id.
        transaction_id:
          type: string
          format: checkout-id
          description: |
            Reference to the transaction where the token was created
        external_token_references:
          type: array
          items:
            type: string
          description: |
            External references to migrated card tokens
        payment_product_type:
          type: string
          example: dintero_psp.creditcard
    CardTokenRead:
      type: object
      allOf:
        - $ref: '#/components/schemas/CardToken'
        - required:
            - account_id
            - created_at
            - updated_at
          properties:
            account_id:
              type: string
              pattern: ^[PT]{1}\d{8}$
              minLength: 9
              maxLength: 9
            created_at:
              type: string
              format: date-time
            created_by:
              type: string
            updated_at:
              type: string
              format: date-time
            deleted_at:
              type: string
              format: date-time
            deleted_by:
              type: string
    ApiKey:
      type: object
      required:
        - name
      properties:
        name:
          type: string
    ApiKeyRead:
      type: object
      allOf:
        - $ref: '#/components/schemas/Id'
        - $ref: '#/components/schemas/ApiKey'
        - properties:
            updated_at:
              type: string
              format: date-time
            expires_at:
              type: string
              format: date-time
            deleted_by:
              type: string
            deleted_at:
              type: string
              format: date-time
    ApiKeyValue:
      type: object
      properties:
        access_token:
          type: string
          format: jwt
    PaymentKey:
      type: object
      properties:
        id:
          type: string
          readOnly: true
        provider:
          type: string
          enum:
            - apple_pay
          readOnly: true
        status:
          type: string
          enum:
            - pending
            - active
            - revoked
            - expired
          readOnly: true
        fingerprint:
          type: string
          readOnly: true
        created_by:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        deleted_by:
          type: string
          readOnly: true
        deleted_at:
          type: string
          format: date-time
          readOnly: true
        expires_at:
          type: string
          format: date-time
          readOnly: true
    PaymentKeyGenerateRequest:
      type: object
      required:
        - provider
      properties:
        provider:
          type: string
          description: |
            The payment provider to generate a certificate for, e.g.
            apple_pay. PSP is the authority on which providers are
            supported; checkout does not validate this value itself.
    PaymentKeyGenerated:
      type: object
      allOf:
        - $ref: '#/components/schemas/PaymentKey'
        - properties:
            csr:
              type: string
              description: |
                Base64-encoded DER Certificate Signing Request, returned once
                at key generation.
              readOnly: true
    PaymentKeyRevoked:
      type: object
      properties:
        id:
          type: string
          readOnly: true
        provider:
          type: string
          enum:
            - apple_pay
          readOnly: true
        status:
          type: string
          enum:
            - revoked
          readOnly: true
        fingerprint:
          type: string
          readOnly: true
        created_by:
          type: string
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        deleted_by:
          type: string
          readOnly: true
        deleted_at:
          type: string
          format: date-time
          readOnly: true
        expires_at:
          type: string
          format: date-time
          readOnly: true
    PaymentKeyCertificateRequest:
      type: object
      required:
        - certificate
      properties:
        certificate:
          type: string
          description: Apple-signed certificate in base64-encoded DER format
    PaymentKeyActive:
      type: object
      properties:
        id:
          type: string
          readOnly: true
        provider:
          type: string
          enum:
            - apple_pay
          readOnly: true
        status:
          type: string
          enum:
            - active
          readOnly: true
        fingerprint:
          type: string
          readOnly: true
        expires_at:
          type: string
          format: date-time
          readOnly: true
    BamboraGwRead:
      description: |
        configuration for Bambora GW
      type: object
      required:
        - checkout_api_url
        - merchant_api_url
        - transaction_api_url
        - wallet_api_url
        - merchant_number
        - token_api_url
      properties:
        access_token:
          type: string
        created_at:
          type: string
          format: date-time
          readOnly: true
        created_by:
          type: string
          readOnly: true
        checkout_api_url:
          type: string
          format: uri
          example: https://api.v1.checkout.bambora.com
        merchant_api_url:
          type: string
          format: uri
          example: https://merchant-v1.api-eu.bambora.com
        transaction_api_url:
          type: string
          format: uri
          example: https://transaction-v1.api-eu.bambora.com
        wallet_api_url:
          type: string
          format: uri
          example: https://wallet-v1.api-eu.bambora.com
        token_api_url:
          type: string
          format: uri
          example: https://tokenize-v1.api-eu.bambora.com
        token_scope:
          type: string
        merchant_number:
          type: string
    InstabankGwRead:
      description: |
        configuration for Instabank GW
      type: object
      required:
        - organization_number
        - payment_product_codes
      properties:
        created_at:
          type: string
          format: date-time
          readOnly: true
        created_by:
          type: string
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
        organization_number:
          type: string
          description: Company identification number
          example: 12345678911
        payment_product_codes:
          type: object
          description: |
            Instabank Product Codes
          required:
            - instabank.invoice
            - instabank.finance
          properties:
            instabank.finance:
              $ref: '#/components/schemas/InstabankFinanceProduct'
            instabank.invoice:
              $ref: '#/components/schemas/InstabankInvoiceProduct'
            instabank.installment:
              type: array
              minItems: 1
              items:
                $ref: '#/components/schemas/InstabankInstallmentProduct'
            instabank.postponement:
              type: array
              minItems: 1
              items:
                $ref: '#/components/schemas/InstabankPostponementProduct'
    KlarnaGwRead:
      description: |
        configuration for Klarna GW
      type: object
      required:
        - url
        - username
        - merchant_id
      properties:
        created_at:
          type: string
          format: date-time
          readOnly: true
        created_by:
          type: string
          readOnly: true
        url:
          type: string
          format: uri
          description: |
            The base URIs of the Klarna APIs:

            - **test**: https://api.playground.klarna.com
            - **prod**: https://api.klarna.com
          example: https://api.klarna.com
        username:
          description: |
            The Merchant ID (MID) - a unique number that identifies the store,
            combined with a random string
          type: string
          example: PK27631_9dfg28uy0p43
        merchant_id:
          type: string
          description: |
            The Merchant ID (MID) without the random string suffix
          example: PK27631
    KraviaGwRead:
      description: |
        configuration for Kravia GW
      type: object
      required:
        - url
        - merchant_id
      properties:
        created_at:
          type: string
          format: date-time
          readOnly: true
        created_by:
          type: string
          readOnly: true
        url:
          type: string
          format: uri
          description: |
            The base URIs of the Kravia APIs:

            - **test**: https://api-stage.kraviainkasso.no
            - **prod**: https://fincycleapi.kravia.net
          example: https://api-stage.kraviainkasso.no
        merchant_id:
          type: number
          format: int32
          description: |
            The Merchant's creditor ID
          example: 30530
        supported_invoice_channels:
          type: array
          description: |
            Invoice channels available for this account.
          items:
            $ref: '#/components/schemas/InvoiceChannel'
          default:
            - kravia
    PayExGwRead:
      description: |
        configuration for PayEx GW
      type: object
      required:
        - url
        - payee_id
      properties:
        created_at:
          type: string
          format: date-time
          readOnly: true
        created_by:
          type: string
          readOnly: true
        url:
          type: string
          format: uri
          description: |
            The base URIs of the eCommerce APIs:

            - **test**: https://api.externalintegration.payex.com
            - **prod**: https://api.payex.com
          example: https://api.payex.com
        payee_id:
          description: >
            Unique id that identifies the payee for the account (like merchant)
            set

            by PayEx.
          type: string
        subsite:
          type: string
          maxLength: 40
          pattern: ^[a-zA-Z0-9]*$
          example: '12345789'
          description: |
            The subsite field can be used to perform split settlements on
            payments. The subsites must be resolved with PayEx reconciliation
            before being used.
    PayExGwOverrideRead:
      type: object
      description: Override configuration
      properties:
        created_at:
          type: string
          format: date-time
          readOnly: true
        created_by:
          type: string
          readOnly: true
        url:
          type: string
          format: uri
          description: |
            The base URIs of the eCommerce APIs:

            - **test**: https://api.externalintegration.payex.com
            - **prod**: https://api.payex.com
          example: https://api.payex.com
        payee_id:
          description: >
            Unique id that identifies the payee for the account (like merchant)
            set

            by PayEx.
          type: string
        subsite:
          type: string
          maxLength: 40
          example: '12345789'
          description: |
            The subsite field can be used to perform split settlements on
            payments. The subsites must be resolved with PayEx reconciliation
            before being used.
    GwVersion:
      type: object
      required:
        - valid_after
        - valid_before
      properties:
        valid_after:
          type: string
          format: date-time
          description: |
            The version is valid given the transaction/session `created_at`
        valid_before:
          type: string
          format: date-time
          description: |
            The version is valid given the transaction/session `created_at`
    VippsGwRead:
      description: |
        configuration for Vipps GW
      type: object
      required:
        - url
        - client_id
        - merchant_serial_number
      properties:
        created_at:
          type: string
          format: date-time
          readOnly: true
        created_by:
          type: string
          readOnly: true
        url:
          type: string
          format: uri
        client_id:
          type: string
        merchant_serial_number:
          type: string
          example: '123456'
    VippsGwStoreOverrideRead:
      description: |
        Override for sales location for Santander GW
      type: object
      required:
        - client_id
        - merchant_serial_number
        - ocp_apim_subscription_key_access_token
        - ocp_apim_subscription_key_ecom
      properties:
        client_id:
          type: string
        merchant_serial_number:
          type: string
          example: '123456'
        ocp_apim_subscription_key_access_token:
          type: string
        ocp_apim_subscription_key_ecom:
          type: string
    CollectorGwRead:
      description: |
        configuration for Collector Bank GW
      type: object
      required:
        - url
        - username
        - store_id
        - country
      properties:
        created_at:
          type: string
          format: date-time
          readOnly: true
        created_by:
          type: string
          readOnly: true
        url:
          type: string
          format: uri
        username:
          type: string
          description: Merchant's username at Collector Bank
        store_id:
          description: Default store_id for gateway
          type: number
        country:
          description: Default country for gateway
          type: string
          format: iso-3166-1
        options:
          type: object
          description: |
            configuration options for the gateway.
          properties:
            enable_on_hold:
              description: >
                Create the collector transaction with status `ON_HOLD` and let

                the Collector callback update the transaction state from
                `ON_HOLD`

                to `AUTHORIZED` or `FAILED`.


                A callback will be sent to the `callback_url` when the
                transaction

                changes state from `ON_HOLD` to any new state.
              type: boolean
              default: false
            settlement_reference_fields:
              description: >
                The field(s) used to populate the settlement reference.

                The `store_id` in this context is `order.store.id` from session,
                not to be confused with a store_id from Collector stores.
              type: string
              default: account_id
              enum:
                - account_id
                - account_id.store_id
        stores:
          description: Configured stores in the Collector Partner Portal
          type: array
          items:
            type: object
            properties:
              store_id:
                type: number
              country:
                type: string
                format: iso-3166-1
              currency:
                type: string
                example: NOK
                description: |
                  The three-character ISO-4217 currency.
                  https://en.wikipedia.org/wiki/ISO_4217
              segment:
                type: string
                description: The type of customers this store id is used for
                enum:
                  - B2C
                  - B2B
    CollectorGwStoreOverrideRead:
      type: object
      description: |
        Override for sales location for Collector GW
      required:
        - url
        - username
        - store_id
        - country
      properties:
        created_at:
          type: string
          format: date-time
          readOnly: true
        created_by:
          type: string
          readOnly: true
        url:
          type: string
          format: uri
        username:
          type: string
          description: Merchant's username at Collector Bank
        store_id:
          description: Default store_id for gateway
          type: number
        country:
          description: Default country for gateway
          type: string
          format: iso-3166-1
        options:
          type: object
          description: |
            configuration options for the gateway.
          properties:
            enable_on_hold:
              description: >
                Create the collector transaction with status `ON_HOLD` and let

                the Collector callback update the transaction state from
                `ON_HOLD`

                to `AUTHORIZED` or `FAILED`.


                A callback will be sent to the `callback_url` when the
                transaction

                changes state from `ON_HOLD` to any new state.
              type: boolean
              default: false
            settlement_reference_fields:
              description: >
                The field(s) used to populate the settlement reference.

                The `store_id` in this context is `order.store.id` from session,
                not to be confused with a store_id from Collector stores.
              type: string
              default: account_id
              enum:
                - account_id
                - account_id.store_id
        stores:
          description: Configured stores in the Collector Partner Portal
          type: array
          items:
            type: object
            properties:
              store_id:
                type: number
              country:
                type: string
                format: iso-3166-1
              currency:
                type: string
                example: NOK
                description: |
                  The three-character ISO-4217 currency.
                  https://en.wikipedia.org/wiki/ISO_4217
              segment:
                type: string
                description: The type of customers this store id is used for
                enum:
                  - B2C
                  - B2B
    SantanderGwRead:
      description: |
        configuration for Santander GW
      type: object
      required:
        - url
        - store_email
      properties:
        created_at:
          type: string
          format: date-time
          readOnly: true
        created_by:
          type: string
          readOnly: true
        url:
          type: string
          format: uri
          description: URL for the SOAP service
        store_email:
          type: string
          description: >-
            Email-address to the store. Must correspond with email stored in
            Santander's system.
        branding_name:
          type: string
          description: The name to brand debit_accounts with
          example: Bygger'n
    SantanderGwStoreOverrideRead:
      description: |
        Override for sales location for Santander GW
      type: object
      required:
        - store_email
      properties:
        store_email:
          type: string
          description: >-
            Email-address to the store. Must correspond with email stored in
            Santander's system.
    DinteroPspGwRead:
      description: |
        configuration for Dintero PSP GW
      type: object
      required:
        - visa_net_client_id
        - acquirer_merchant_id
      properties:
        created_at:
          type: string
          format: date-time
          readOnly: true
        created_by:
          type: string
          readOnly: true
        visa_net_client_id:
          type: string
        acquirer_merchant_id:
          type: string
        applepay_merchant_id:
          type: string
        vipps_merchant_serial_number:
          type: string
          example: '123456'
        visa_token_client_app_id:
          type: string
        visa_token_relationship_id:
          type: string
          example: 10000000-20000000000
        mastercard_token_src_dpa_id:
          type: string
          example: src_dpa_56068
        mastercard_token_service_id:
          type: string
          example: SECURE_COF_MERCHANT_OBO#TESTPROJECT_PROD-PGMNAME#01
        token_supported_auth_methods:
          $ref: '#/components/schemas/DinteroPspTokenAuthMethods'
        token_scope:
          type: string
          description: |
            Determines the account's scope for using card tokens.
        visa_click_to_pay_dpa_id:
          type: string
          description: >
            The DPA ID (Digital Payment App) provided by Visa for Visa
            Click-to-Pay integration.
        visa_click_to_pay_dpa_client_id:
          type: string
          description: |
            The DPA client ID used when onboarding to Click-to-Pay.
            If none is provided, Visa will assign one.
    NetaxeptGwRead:
      description: |
        configuration for Netaxept GW
      type: object
      required:
        - url
        - merchant_id
      properties:
        created_at:
          type: string
          format: date-time
          readOnly: true
        created_by:
          type: string
          readOnly: true
        url:
          type: string
          format: uri
          description: |
            The base URIs of the eCommerce APIs:

            - **test**: https://test.epayment.nets.eu
            - **prod**: https://epayment.nets.eu
          example: https://epayment.nets.eu
        merchant_id:
          description: |
            Unique id that identifies the merchant
          type: string
    SwishGwRead:
      description: |
        configuration for Swish GW
      type: object
      required:
        - url
        - swish_number
      properties:
        created_at:
          type: string
          format: date-time
          readOnly: true
        created_by:
          type: string
          readOnly: true
        url:
          type: string
          format: uri
        swish_number:
          description: The merchant's Swish number
          type: string
    SwishGwStoreOverrideRead:
      description: |
        Override for sales location for Swish GW
      type: object
      required:
        - swish_number
      properties:
        swish_number:
          type: string
          description: The merchant's Swish number
    CredentialResponse:
      type: object
      required:
        - name
        - created_at
        - created_by
        - updated_at
        - version
      properties:
        name:
          type: string
          description: The unique name that identifies the credential
        created_at:
          type: string
          format: date-time
        created_by:
          type: string
        updated_by:
          type: string
        updated_at:
          type: string
          format: date-time
        version:
          type: integer
          example: 1
    PayExGwCredential:
      allOf:
        - $ref: '#/components/schemas/CredentialResponse'
        - required:
            - data
          properties:
            data:
              required:
                - payee_id
                - url
              properties:
                payee_id:
                  type: string
                url:
                  type: string
                  format: uri
                subsite:
                  type: string
    KlarnaGwCredential:
      allOf:
        - $ref: '#/components/schemas/CredentialResponse'
        - required:
            - data
          properties:
            data:
              required:
                - username
                - url
              properties:
                username:
                  type: string
                url:
                  type: string
                  format: uri
    CollectorCredentialOptions:
      type: object
      description: |
        configuration options for the gateway.
      properties:
        customer_client:
          type: object
          properties:
            customers_client_id:
              type: string
            customers_client_secret:
              type: string
            customers_client_audience:
              type: string
        enable_on_hold:
          description: |
            Create the collector transaction with status `ON_HOLD` and let
            the Collector callback update the transaction state from `ON_HOLD`
            to `AUTHORIZED` or `FAILED`.

            A callback will be sent to the `callback_url` when the transaction
            changes state from `ON_HOLD` to any new state.
          type: boolean
          default: false
        settlement_reference_fields:
          description: >
            The field(s) used to populate the settlement reference.

            The `store_id` in this context is `order.store.id` from session, not
            to be confused with a store_id from Collector stores.
          type: string
          default: account_id
          enum:
            - account_id
            - account_id.store_id
    CollectorGwCredential:
      allOf:
        - $ref: '#/components/schemas/CredentialResponse'
        - required:
            - data
          properties:
            data:
              required:
                - url
                - username
                - store_id
                - country
              properties:
                url:
                  type: string
                  format: uri
                username:
                  type: string
                  description: Merchant's username at Collector Bank
                password:
                  type: string
                store_id:
                  description: store_id for gateway credential
                  type: number
                country:
                  description: country for gateway credential
                  type: string
                  format: iso-3166-1
                options:
                  $ref: '#/components/schemas/CollectorCredentialOptions'
    CheckoutConfig:
      type: object
      properties:
        created_by:
          type: string
          description: The user/client created the resource
          readOnly: true
        updated_at:
          type: string
          format: date-time
          description: Time when the resource was last updated
          readOnly: true
        gateways:
          description: Configure payment gateways
          type: object
          readOnly: true
          properties:
            bambora:
              $ref: '#/components/schemas/BamboraGwRead'
            instabank:
              $ref: '#/components/schemas/InstabankGwRead'
            klarna:
              $ref: '#/components/schemas/KlarnaGwRead'
            kravia:
              $ref: '#/components/schemas/KraviaGwRead'
            payex:
              allOf:
                - $ref: '#/components/schemas/PayExGwRead'
                - type: object
                  properties:
                    versions:
                      type: object
                      description: |
                        Alternative versions of the configuration
                      additionalProperties:
                        allOf:
                          - $ref: '#/components/schemas/PayExGwOverrideRead'
                          - $ref: '#/components/schemas/GwVersion'
                    overrides:
                      type: object
                      description: |
                        Configuration overrides by store id
                      additionalProperties:
                        type: object
                        required:
                          - override
                        properties:
                          override:
                            $ref: '#/components/schemas/PayExGwOverrideRead'
                          versions:
                            type: object
                            description: |
                              Alternative versions of the override
                            additionalProperties:
                              allOf:
                                - $ref: '#/components/schemas/PayExGwOverrideRead'
                                - $ref: '#/components/schemas/GwVersion'
            vipps:
              allOf:
                - $ref: '#/components/schemas/VippsGwRead'
                - type: object
                  description: Overrides by store_id.
                  properties:
                    overrides:
                      type: object
                      additionalProperties:
                        type: object
                        required:
                          - override
                        properties:
                          override:
                            $ref: '#/components/schemas/VippsGwStoreOverrideRead'
            collector:
              allOf:
                - $ref: '#/components/schemas/CollectorGwRead'
                - type: object
                  properties:
                    overrides:
                      type: object
                      additionalProperties:
                        type: object
                        required:
                          - override
                        properties:
                          override:
                            $ref: '#/components/schemas/CollectorGwStoreOverrideRead'
            santander:
              allOf:
                - $ref: '#/components/schemas/SantanderGwRead'
                - type: object
                  properties:
                    overrides:
                      type: object
                      additionalProperties:
                        type: object
                        required:
                          - override
                        properties:
                          override:
                            $ref: '#/components/schemas/SantanderGwStoreOverrideRead'
            dintero_psp:
              $ref: '#/components/schemas/DinteroPspGwRead'
            netaxept:
              allOf:
                - $ref: '#/components/schemas/NetaxeptGwRead'
                - type: object
                  properties:
                    overrides:
                      type: object
                      additionalProperties:
                        type: object
                        required:
                          - override
                        properties:
                          override:
                            $ref: '#/components/schemas/NetaxeptGwRead'
            swish:
              allOf:
                - $ref: '#/components/schemas/SwishGwRead'
                - type: object
                  properties:
                    overrides:
                      type: object
                      additionalProperties:
                        type: object
                        required:
                          - override
                        properties:
                          override:
                            $ref: '#/components/schemas/SwishGwStoreOverrideRead'
        credentials:
          type: object
          properties:
            payex:
              type: array
              items:
                $ref: '#/components/schemas/PayExGwCredential'
            klarna:
              type: array
              items:
                $ref: '#/components/schemas/KlarnaGwCredential'
            collector:
              type: array
              items:
                $ref: '#/components/schemas/CollectorGwCredential'
    PaymentOptionTypes:
      type: string
      enum:
        - bambora.creditcard
        - bambora.mobilepay
        - bambora.applepay
        - bambora.googlepay
        - bambora.vipps
        - collector.finance
        - collector.installment
        - collector.invoice
        - collector.invoice_b2b
        - collector.invoice_b2b_preapproved
        - collector.installment_b2b_preapproved
        - dintero.zero
        - dintero.wallets
        - dintero.external
        - dintero_psp.creditcard
        - dintero_psp.vipps
        - dintero_psp.applepay
        - dintero_psp.googlepay
        - dintero_psp.clicktopay
        - instabank.finance
        - instabank.installment
        - instabank.invoice
        - instabank.postponement
        - netaxept.creditcard
        - payex.creditcard
        - payex.mobilepay
        - payex.swish
        - payex.vipps
        - payex.applepay
        - payex.clicktopay
        - payex.googlepay
        - santander.debit_account
        - swish.swish
        - vipps
        - klarna.klarna
        - klarna.billie
        - kravia.invoice_b2b
        - kravia.invoice_b2b_grouped
        - kravia.invoice_b2c
        - seitatech.in_person
        - two.invoice_b2b
    IssuerCountryCondition:
      type: array
      description: >
        List of country codes (ISO 3166-1 alpha-2) for which the merchant can
        add exemptions for.

        Add a wildcard (`*`) to a allow all countries. Leaving it empty will not
        allow skipping SCA.
      uniqueItems: true
      maxItems: 250
      items:
        type: string
        description: A valid ISO 3166-1 alpha-2 country code
        pattern: ^([A-Z]{2}|\*)$
      example:
        - 'NO'
        - SE
        - DK
    AmountLimit:
      type: object
      required:
        - limit
        - issuer_countries
        - enabled
      properties:
        limit:
          type: array
          description: >
            The maximum transaction amounts in the smallest currency unit (e.g.,
            cents) for which SCA (Strong Customer Authentication) can be
            exempted.
          uniqueItems: true
          maxItems: 250
          items:
            type: object
            required:
              - amount
              - currency
            properties:
              amount:
                type: integer
                description: >
                  The maximum transaction amount in the smallest currency unit
                  (e.g., cents).
                example: 50000
              currency:
                type: string
                description: The ISO 4217 currency code for the limit.
                example: NOK
        issuer_countries:
          $ref: '#/components/schemas/IssuerCountryCondition'
        enabled:
          type: boolean
          description: |
            Whether or not the rule is applied.
    CheckoutSCAPolicyConfig:
      type: object
      description: >
        Configuration for Strong Customer Authentication (SCA).

        This configuration allows merchants to set up exemptions and thresholds
        for SCA based on payment products and transaction amounts.


        This is only valid for the following payment products:

        - dintero_psp.creditcard

        - dintero_psp.applepay

        - dintero_psp.googlepay

        - dintero_psp.clicktopay

        - dintero_psp.vipps
      required:
        - allow_exemptions
      properties:
        allow_exemptions:
          type: boolean
          description: >
            If true, the merchant can configure exceptions for SCA (Strong
            Customer Authentication) per payment product.
        network_exemptions:
          type: object
          description: >
            Configuration for network exemptions, such as low_value and low_risk
            exemptions.
          properties:
            low_value:
              type: boolean
              description: >
                If true we will pass the low value exemption to the issuer if
                the transaction amount is below their limit (usually 30 EUR or
                equivalent).
              example: true
            low_risk:
              type: boolean
              description: >
                If true we will pass the low risk exemption to the issuer. This
                should only be enabled on merchants that we consider to have low
                risk of fraud.
              example: true
        liability_rules:
          type: object
          description: >
            Rules for merchant defined exemptions for SCA (Strong Customer
            Authentication).
          properties:
            amount_lte:
              $ref: '#/components/schemas/AmountLimit'
    CheckoutConfigWrite:
      type: object
      required:
        - configuration
      properties:
        configuration:
          description: |
            Configure merchant and payment options
          type: object
          required:
            - merchant
            - payment_options
          properties:
            payout:
              type: object
              description: >
                Payout configuration


                NB: Only Dintero admin users can change the payout
                configuration.
              required:
                - payment_products
              properties:
                payment_products:
                  type: array
                  description: |
                    The payment products where payout is enabled
                  minItems: 1
                  items:
                    type: object
                    required:
                      - payment_product
                    properties:
                      payment_product:
                        type: string
                        description: Payment product
                        enum:
                          - dintero_psp
                          - bambora
                          - collector
                          - payex
                          - klarna
                          - kravia
                          - seitatech
                          - swish
                          - two
                fee_split_types:
                  type: array
                  description: >
                    Additional `fee_split.type` values allowed on order item
                    `fee_split`

                    configuration, beyond `proportional`, which is always
                    allowed.


                    - **`equal_fee_only`**: Must be listed here before sessions
                    or orders
                      can use `fee_split.type: "equal_fee_only"` on order items. If not
                      listed, order items using it are rejected.
                  minItems: 1
                  uniqueItems: true
                  items:
                    type: string
                    enum:
                      - equal_fee_only
            payment_options:
              type: array
              description: |
                Payment options enabled for the account, the
                payment option currencies set must be unique given
                the `type`
              items:
                type: object
                required:
                  - type
                  - currencies
                properties:
                  type:
                    $ref: '#/components/schemas/PaymentOptionTypes'
                  details:
                    type: object
                    description: |
                      configuration details for the payment option
                    properties:
                      googlepay_merchant_id:
                        type: string
                        description: |
                          The Google Pay merchant ID.
                      applepay_merchant_id:
                        type: string
                        description: |
                          The Apple Pay merchant ID.
                      domain_names:
                        description: >
                          Domain names allowed when embedding the checkout
                          fronted. Used by dintero_psp apple pay.
                        type: array
                        items:
                          minItems: 1
                          type: string
                      bambora_token_scope:
                        type: string
                        description: >
                          The token scope to use when generating a token,

                          the value override the configured gateway
                          `token_scope`
                      gateway_api_versions:
                        description: >
                          Specify the API version to use when handling the
                          payment type
                        type: array
                        items:
                          minItems: 1
                          type: string
                          enum:
                            - payex.v2
                            - payex.v3
                            - vipps.epayment
                      disable_collector_b2b_address_enforcement:
                        type: boolean
                        default: false
                        description: >
                          For `collector.invoice_b2b`. By default, the
                          shipping_address B2B payments will be restricted to

                          the registered addresses of a company.
                      enable_on_hold:
                        type: boolean
                        description: >
                          Create the collector transaction with status `ON_HOLD`
                          and let

                          the Collector callback update the transaction state
                          from `ON_HOLD`

                          to `AUTHORIZED` or `FAILED`.


                          A callback will be sent to the `callback_url` when the
                          transaction

                          changes state from `ON_HOLD` to any new state.


                          This will override the gateway config
                          `options.enable_on_hold`-setting.
                      sca_policy:
                        $ref: '#/components/schemas/CheckoutSCAPolicyConfig'
                      pre_authorization:
                        type: array
                        items:
                          type: string
                          enum:
                            - allow_on_cit
                            - allow_on_unscheduled_purchase
                            - default_final
                        description: >
                          For `dintero_psp.creditcard`. Allow merchant to use
                          pre-authorization

                          on cit and mit payments. Setting `default_final` will
                          cause all

                          regular authorizations to be sent as **final**
                          pre-authorizations,

                          unless otherwise is specified on the session.
                      test_processor:
                        type: string
                        enum:
                          - dintero_simulator
                          - dintero_sandbox
                        description: >
                          Sets which processor to use in Dintero PSP. Only set
                          for T-account and for payment options

                          using Dintero PSP. If set for a P-account it will be
                          ignored.


                          - `dintero_sandbox`: configure the payment option to
                          use the Dintero sandbox (default behaviour).

                          - `dintero_simulator`: configure the payment option to
                          use the real test environment for that payment

                          option, and only use the Dintero simulator for the
                          payment processing.  E.g. for `dintero_psp.vipps`

                          it will use the Vipps test environment, not the
                          Dintero Vipps sandbox, for handling payment on the

                          Vipps side.
                      invoice_channel:
                        allOf:
                          - $ref: '#/components/schemas/InvoiceChannel'
                  currencies:
                    type: array
                    description: Accepted currencies for payment option
                    items:
                      type: string
                      minItems: 1
                      uniqueItems: true
                      format: iso4217-code
                      example: NOK
            merchant:
              $ref: '#/components/schemas/Merchant'
    SessionPayPollStatus:
      type: object
      properties:
        keep_polling:
          type: boolean
        redirect_url:
          description: |
            redirect url to complete payment, will not be included
            if the payment failed with `Rejected` error as payment
            can be completed by choosing alternative payment option.
          type: string
        poll_url:
          description: |
            poll_url to check the status of the payment.
            Will be included if the payment is dependent on
            3rd party apps, such as Swish.
          type: string
    BamboraGwWrite:
      allOf:
        - $ref: '#/components/schemas/BamboraGwRead'
        - required:
            - access_token
            - secret_token
            - md5_key
          properties:
            access_token:
              type: string
            secret_token:
              type: string
            md5_key:
              type: string
    PromoteCredential:
      description: |
        Use the credential to configure gateway and/or gateway overrides.

        The new configuration will be used when new payment sessions is
        created.

        New credential will be created from the old configuration and they
        will be used when updating existing transactions
      type: object
      required:
        - type
        - value
      properties:
        type:
          type: string
          enum:
            - default
            - override
        value:
          type: string
          description: |
            The `store_id` in case type is `override`, otherwise, when the
            type is `default` the value must be set to empty value
    CollectorCredential:
      type: object
      required:
        - name
        - data
      properties:
        name:
          type: string
          description: The unique id that identifies the credential (store_id)
        description:
          type: string
        data:
          required:
            - url
            - username
            - password
            - store_id
            - country
          properties:
            url:
              type: string
              format: uri
            username:
              type: string
              description: Merchant's username at Collector Bank
            password:
              type: string
            store_id:
              description: store_id for gateway credential
              type: number
            country:
              description: country for gateway credential
              type: string
              format: iso-3166-1
            options:
              $ref: '#/components/schemas/CollectorCredentialOptions'
        promote:
          description: >
            Use the credential to configure gateway and/or gateway overrides

            Will create new credential from existing gateway / override so
            existing

            transactions created with the old configuration can continue to work
          type: array
          items:
            allOf:
              - $ref: '#/components/schemas/PromoteCredential'
              - properties:
                  stores:
                    description: >
                      Configure the collector gateway / override with aditional
                      stores

                      that can be used with the new credential
                    type: array
                    minItems: 1
                    items:
                      required:
                        - store_id
                        - country
                        - segment
                      properties:
                        store_id:
                          description: store_id for gateway credential
                          type: number
                        country:
                          description: country for gateway credential
                          type: string
                          format: iso-3166-1
                        segment:
                          type: string
                          description: The type of customers this store id is used for
                          enum:
                            - B2C
                            - B2B
    CollectorGwStoreOverrideWrite:
      allOf:
        - $ref: '#/components/schemas/CollectorGwStoreOverrideRead'
        - required:
            - password
          properties:
            password:
              type: string
            options:
              type: object
              properties:
                customer_client:
                  type: object
                  properties:
                    customers_client_id:
                      type: string
                    customers_client_secret:
                      type: string
                    customers_client_audience:
                      type: string
    CollectorGwWrite:
      allOf:
        - $ref: '#/components/schemas/CollectorGwRead'
        - required:
            - password
          properties:
            password:
              type: string
            options:
              type: object
              properties:
                customer_client:
                  type: object
                  properties:
                    customers_client_id:
                      type: string
                    customers_client_secret:
                      type: string
                    customers_client_audience:
                      type: string
    GatewayStatusResponse:
      type: object
      properties:
        override_id:
          description: >
            The id of the override that the status should be checked for. If
            empty, checks the root gateway config.
          type: string
          example: STORE_1
    InstabankGwWrite:
      allOf:
        - $ref: '#/components/schemas/InstabankGwRead'
    KlarnaGwWrite:
      allOf:
        - $ref: '#/components/schemas/KlarnaGwRead'
        - required:
            - password
          properties:
            password:
              type: string
              description: >
                A string which is associated with your Merchant ID and is used
                to

                authorize use of Klarna's APIs
    KlarnaCredential:
      type: object
      required:
        - name
        - data
      properties:
        name:
          type: string
          description: The unique id that identifies the credential (username)
        description:
          type: string
        data:
          $ref: '#/components/schemas/KlarnaGwWrite'
        promote:
          description: |
            Use the credential to configure gateway
            Will create new credential from existing gateway so existing
            transactions created with the old configuration can continue to work
          type: array
          items:
            type: object
            required:
              - type
            properties:
              type:
                type: string
                enum:
                  - default
              value:
                type: string
                description: >
                  When the type is `default` the value must be set to empty
                  value
                enum:
                  - ''
    NetaxeptGwWrite:
      allOf:
        - $ref: '#/components/schemas/NetaxeptGwRead'
        - required:
            - token
          properties:
            token:
              type: string
    NetaxeptGwStoreOverride:
      description: |
        Override for sale location for Netaxept gateway
      allOf:
        - $ref: '#/components/schemas/NetaxeptGwWrite'
    PayExGwWrite:
      allOf:
        - $ref: '#/components/schemas/PayExGwRead'
        - required:
            - payee_id
            - token
          properties:
            payee_id:
              type: string
            token:
              type: string
    PayExCredential:
      type: object
      required:
        - name
        - data
      properties:
        name:
          type: string
          description: The unique id that identifies the credential (payee_id)
        description:
          type: string
        data:
          $ref: '#/components/schemas/PayExGwWrite'
        promote:
          description: >
            Use the credential to configure gateway and/or gateway overrides

            Will create new credential from existing gateway / override so
            existing

            transactions created with the old configuration can continue to work
          type: array
          items:
            $ref: '#/components/schemas/PromoteCredential'
    PayExGwStoreOverride:
      description: |
        Override for sales location for PayEx GW
      allOf:
        - $ref: '#/components/schemas/PayExGwWrite'
    GwVersionWrite:
      type: object
      properties:
        version:
          description: |
            Configure version to support multiple configurations.
            Multiple configurations is needed if the merchant aggrement is
            changed and there are existing transactions created with the
            previous aggrement that still need to be updated.
          allOf:
            - required:
                - id
              properties:
                id:
                  type: string
                  description: |
                    Version id, allowing existing version to be updated.
            - $ref: '#/components/schemas/GwVersion'
    SantanderGwStoreOverrideWrite:
      allOf:
        - $ref: '#/components/schemas/SantanderGwStoreOverrideRead'
        - required:
            - store_token
          properties:
            store_token:
              type: string
    SantanderGwWrite:
      allOf:
        - $ref: '#/components/schemas/SantanderGwRead'
        - required:
            - store_token
            - customers_client_id
            - customers_client_secret
            - customers_client_audience
          properties:
            store_token:
              type: string
            cert:
              type: string
              description: Certificate stored as base64-encoded string
            cert_password:
              type: string
              description: Certificate password
            customers_client_id:
              type: string
            customers_client_secret:
              type: string
            customers_client_audience:
              type: string
    SwishGwStoreOverrideWrite:
      allOf:
        - $ref: '#/components/schemas/SwishGwStoreOverrideRead'
    SwishGwWrite:
      allOf:
        - $ref: '#/components/schemas/SwishGwRead'
        - required:
            - cert
            - passphrase
          properties:
            cert:
              description: >
                Base 64 encoded string of the certificate. Can be in PEM or P12
                format.

                If PEM, key and ca are required.
              type: string
            key:
              description: Base 64 encoded string of the public key
              type: string
            passphrase:
              description: The passphrase for the certificate
              type: string
            ca:
              description: Base 64 encoded string of the CA of the certificate
              type: string
    VippsGwStoreOverrideWrite:
      allOf:
        - $ref: '#/components/schemas/VippsGwStoreOverrideRead'
        - type: object
          required:
            - client_secret
          properties:
            client_secret:
              type: string
    VippsGwWrite:
      allOf:
        - $ref: '#/components/schemas/VippsGwRead'
        - required:
            - client_secret
            - ocp_apim_subscription_key_access_token
            - ocp_apim_subscription_key_ecom
          properties:
            client_secret:
              type: string
            ocp_apim_subscription_key_access_token:
              type: string
            ocp_apim_subscription_key_ecom:
              type: string
    TwoGwRead:
      description: |
        Configuration for Two B2B GW
      type: object
      required:
        - url
      properties:
        created_at:
          type: string
          format: date-time
          readOnly: true
        created_by:
          type: string
          readOnly: true
        url:
          type: string
          format: uri
          description: |
            The base URIs of the Two APIs:

            - **test**: https://sandbox.api.two.inc
            - **prod**: https://api.two.inc
          example: https://sandbox.api.two.inc
        merchant_id:
          type: string
          format: uuid
          description: |
            The merchant identifier assigned by Two for this merchant.
    DefaultDifferentBillingShippingAddressConfiguration:
      properties:
        default_different_billing_shipping_address:
          description: >
            Configure the default behavior for how Checkout Express presents the
            shipping and billing addresses.


            If `[]`, Checkout defaults to assuming the shipping and billing
            addresses are the same.


            If `["b2b"]`, Checkout defaults to assuming different addresses for
            B2B only.


            If `["b2c"]`, Checkout defaults to assuming different addresses for
            B2C only.


            If `["b2b", "b2c"]`, Checkout defaults to assuming different
            addresses for all customer types.


            If omitted, Checkout defaults to the same behaviour as setting `[]`.


            This will only have an effect if
            `allow_different_billing_shipping_address` is set.
          type: array
          default: []
          items:
            type: string
            enum:
              - b2c
              - b2b
    ProfileConfiguration:
      type: object
      required:
        - configuration
        - description
      properties:
        url:
          type: object
          properties:
            merchant_terms_url:
              type: string
              format: uri
              pattern: https?://*
              example: https://example.com/terms.html
              description: >
                URL to a webpage with the merchant's Terms of Service. Will be
                linked to from the checkout.
        profile_id:
          type: string
          maxLength: 255
          description: |
            The profile_id you have defined for the profile.
            (must not have trailing or leading spaces)
            An auto-generated profile_id will be created if no
            profile_id is provided.
        merchant:
          $ref: '#/components/schemas/Merchant'
        configuration:
          allOf:
            - $ref: '#/components/schemas/PaymentConfiguration'
            - $ref: '#/components/schemas/DiscountsConfiguration'
            - $ref: '#/components/schemas/SessionThemeConfiguration'
            - $ref: '#/components/schemas/CountryConfiguration'
            - $ref: '#/components/schemas/DefaultCustomerTypeConfiguration'
            - $ref: >-
                #/components/schemas/AllowDifferentBillingShippingAddressConfiguration
        description:
          type: string
          description: description of the profile
        checkboxes:
          $ref: '#/components/schemas/CheckboxConfiguration'
        express:
          allOf:
            - $ref: >-
                #/components/schemas/DefaultDifferentBillingShippingAddressConfiguration
    ProfileConfigurationResponse:
      type: object
      required:
        - created_by
        - created_at
        - updated_at
      properties:
        created_by:
          type: string
          description: The user/client created the resource
          readOnly: true
        created_at:
          type: string
          format: date-time
          description: Time when the resource was created
          readOnly: true
        updated_at:
          type: string
          format: date-time
          description: Time when the resource was last updated
          readOnly: true
        deleted_by:
          type: string
          description: The user/client deleted the resource
          readOnly: true
        deleted_at:
          type: string
          format: date-time
          description: Time when the resource was deleted
          readOnly: true
    SignatureV0:
      type: object
      allOf:
        - $ref: '#/components/schemas/Id'
        - properties:
            created_by:
              type: string
            signature:
              type: object
              description: |
                Secret used when creating Dintero-Signature header of
                server-to-serer callbacks
              properties:
                type:
                  type: string
                  enum:
                    - v0-hmac-sha256
                secret:
                  type: string
    SwishPaymentCallback:
      type: object
      description: Swish payment callback
      required:
        - id
        - status
      properties:
        id:
          type: string
          description: |
            Payment request id
        payeePaymentReference:
          type: string
        paymentReference:
          nullable: true
          type: string
        amount:
          oneOf:
            - type: string
            - type: number
        datePaid:
          nullable: true
          type: string
        status:
          type: string
          enum:
            - CREATED
            - PAID
            - DECLINED
            - ERROR
    SwishRefundCallback:
      type: object
      description: Swish payment callback
      required:
        - id
        - status
        - originalPaymentReference
      properties:
        id:
          type: string
          description: |
            Refund id
        originalPaymentReference:
          description: Used to identify the payment
          type: string
        amount:
          oneOf:
            - type: string
            - type: number
        datePaid:
          nullable: true
          type: string
        status:
          type: string
          enum:
            - VALIDATED
            - DEBITED
            - PAID
            - ERROR
    VippsWebhook:
      type: object
      required:
        - msn
        - reference
        - pspReference
        - name
        - amount
        - timestamp
        - success
      properties:
        msn:
          type: string
          description: |
            The merchant serial number (MSN) for the sales unit.
        reference:
          type: string
          description: >
            The reference is the unique identifier for the payment, specified
            when initiating the payment. The reference must be unique for the
            sales unit (MSN), but is not globally unique, so several MSNs may
            use the same reference.
        pspReference:
          type: string
          description: >
            Reference value for a payment, defined by Vipps MobilePay. Each
            payment operation (capture, refund, etc.) will have a unique
            pspReference.
        name:
          type: string
          enum:
            - CREATED
            - ABORTED
            - EXPIRED
            - CANCELLED
            - CAPTURED
            - REFUNDED
            - AUTHORIZED
            - TERMINATED
        amount:
          type: object
          required:
            - value
            - currency
          description: |
            Amount object, containing a value and a currency.
          properties:
            value:
              type: integer
              format: int64
              description: >
                Amounts are specified in minor units (i.e., integers with two
                trailing zeros). For example: 10.00 NOK should be written as
                1000. The minimum amounts allowed are NOK 100 øre, DKK 1 øre,
                EUR 1 cent.
            currency:
              description: |
                Available types of currency are NOK, DKK, and EUR.
              type: string
              enum:
                - NOK
                - DKK
                - EUR
        timestamp:
          type: string
          format: date-time
        idempotencyKey:
          type: string
          description: |
            The Idempotency key of the request.
          nullable: true
        success:
          type: boolean
          description: >
            The outcome of this payment operation: true means that the operation
            was successful.
    SessionIntentRequest:
      required:
        - id
        - session
      properties:
        id:
          type: string
          description: The session id
          example: P00000000.465UfBENeLpkBvwmqfTC4k
        payment:
          type: object
          description: |
            Details for a gateway payment created by the session
          required:
            - payment_product_type
          properties:
            payment_product_type:
              type: string
            payment_reference:
              type: string
        session:
          type: object
          description: Details about the session
          required:
            - url
            - order
          properties:
            url:
              $ref: '#/components/schemas/SessionUrls'
            order:
              $ref: '#/components/schemas/SessionOrder'
    PayExCallback:
      type: object
      required:
        - payment
      properties:
        paymentOrder:
          type: object
          required:
            - id
          properties:
            id:
              type: string
              example: /psp/paymentorders/11111111-1111-1111-1111-111111111111
            instrument:
              type: string
              description: CreditCard, Swish, Vipps
              example: swish
        payment:
          type: object
          required:
            - id
          properties:
            id:
              type: string
              description: |
                - Payment Instrument: CreditCard, Swish, Vipps, MobilePay
              example: >-
                /psp/<payment
                instrument>/payments/22222222-2222-2222-2222-22222222222
            number:
              type: integer
              example: 222222222
        transaction:
          type: object
          required:
            - id
          properties:
            id:
              type: string
              description: >
                - Payment Instrument: CreditCard, Swish, Vipps, MobilePay

                - Transaction Type: Authorizations, Captures, Cancellations,
                Reversals
              example: >-
                /psp/<payment
                instrument>/payments/22222222-2222-2222-2222-222222222222/<transaction
                type>/33333333-3333-3333-3333-333333333333
            number:
              type: integer
              example: 333333333
    PayExV3Callback:
      type: object
      required:
        - payment
      properties:
        paymentOrder:
          type: object
          required:
            - id
          properties:
            id:
              type: string
              example: /psp/paymentorders/11111111-1111-1111-1111-111111111111
            instrument:
              type: string
              description: >-
                CreditCard, Apple Pay, Click to Pay, Swish, Vipps, MobilePay,
                Google Pay
              example: swish
        payment:
          type: object
          required:
            - id
          properties:
            id:
              type: string
              description: >
                - Payment Instrument: CreditCard, Apple Pay, Click to Pay,
                Swish, Vipps, MobilePay, Google Pay
              example: >-
                /psp/<payment
                instrument>/payments/22222222-2222-2222-2222-22222222222
            number:
              type: integer
              example: 222222222
        transaction:
          type: object
          required:
            - id
          properties:
            id:
              type: string
              description: >
                - Payment Instrument: CreditCard, Apple Pay, Click to Pay,
                Swish, Vipps, MobilePay, Google Pay

                - Transaction Type: Authorizations, Captures, Cancellations,
                Reversals
              example: >-
                /psp/<payment
                instrument>/payments/22222222-2222-2222-2222-222222222222/<transaction
                type>/33333333-3333-3333-3333-333333333333
            number:
              type: integer
              example: 333333333
    VippsCallback:
      type: object
      required:
        - merchantSerialNumber
        - orderId
        - transactionInfo
      properties:
        merchantSerialNumber:
          oneOf:
            - type: string
            - type: number
        orderId:
          type: string
        transactionInfo:
          type: object
          properties:
            amount:
              type: number
            status:
              type: string
              enum:
                - RESERVED
                - SALE
                - RESERVE_FAILED
                - SALE_FAILED
                - CANCELLED
                - REJECTED
            timeStamp:
              type: string
              format: date-time
            transactionId:
              type: string
    FileReadObject:
      type: object
      properties:
        id:
          type: string
          description: >
            Unique identifier for the file. The idenitifier will contain the
            transaction ID to make it easier to link

            to the related transaction.
          example: PQ1234567.1234567890.abcdefg
        name:
          type: string
          description: The name of the file.
          example: invoice_107.pdf
        mime_type:
          type: string
          description: The MIME type of the file.
          example: application/pdf
          enum:
            - image/png
            - image/jpeg
            - application/pdf
        expires_at:
          type: string
          format: date-time
          description: The expiration date and time of the URL.
        url:
          type: string
          description: The URL to access the file.
          example: https://cdn.dintero.com/files/PQ1234567.1234567890.abcdefg
    KlarnaAddress:
      type: object
      required:
        - first_name
        - last_name
        - address_line
        - postal_code
        - postal_place
        - country
        - phone_number
        - email
      properties:
        first_name:
          type: string
          example: John
          maxLength: 99
        last_name:
          type: string
          example: Doe
          maxLength: 99
        address_line:
          type: string
          example: Gaustadalleen 21
          description: Street address.
          maxLength: 99
        address_line_2:
          type: string
          description: More details about address.
          maxLength: 99
        business_name:
          type: string
          description: Name of the company
          maxLength: 99
        postal_code:
          type: string
          description: The zip code / postal code of the address.
          example: '0349'
          maxLength: 99
        postal_place:
          type: string
          description: The name of the postal code
          example: Oslo
          maxLength: 99
        country:
          type: string
          format: iso3166-alpha2
          description: Country of the location
          example: 'NO'
        phone_number:
          type: string
          pattern: ^\+?\d{5,15}$
          description: |
            mobile number of a person / company, ITU/E.123 format with
            international prefix (+PPNNNNNNNNN...)
        email:
          type: string
          maxLength: 99
          description: |
            The email address of a person or an organisation
    KlarnaPaymentInformation:
      type: object
      required:
        - billing_address
        - shipping_address
        - locale
      properties:
        billing_address:
          $ref: '#/components/schemas/KlarnaAddress'
        shipping_address:
          $ref: '#/components/schemas/KlarnaAddress'
        locale:
          type: string
          example: en-GB
          pattern: ^[A-Za-z]{2}-[A-Za-z]{2}$
          description: |
            Combination of purchase country and language. Example: `"en-GB"`
    KlarnaBilliePaymentInformation:
      type: object
      required:
        - billing_address
        - shipping_address
        - locale
      properties:
        billing_address:
          allOf:
            - required:
                - first_name
                - last_name
                - business_name
                - organization_type
                - organization_number
                - country
                - postal_place
                - email
                - postal_code
                - address_line
            - $ref: '#/components/schemas/OrderAddress'
        shipping_address:
          allOf:
            - required:
                - first_name
                - last_name
                - country
                - postal_place
                - email
                - postal_code
                - address_line
            - $ref: '#/components/schemas/OrderAddress'
        locale:
          type: string
          example: en-GB
          pattern: ^[A-Za-z]{2}-[A-Za-z]{2}$
          description: |
            Combination of purchase country and language. Example: `"en-GB"`
    CollectorPaymentDetails:
      type: object
      discriminator:
        propertyName: payment_product_type
      required:
        - payment_product_type
      properties:
        payment_product_type:
          type: string
          description: |
            The payment product type corresponding to this transaction
    CollectorDetails:
      required:
        - social_security_number
      properties:
        social_security_number:
          minLength: 10
          maxLength: 12
          type: string
          description: >
            The social security number of the customer. For Norway, the length
            is 11. For Sweden, it's either 10 or 12 digits.
    CollectorAddress:
      type: object
      required:
        - first_name
        - last_name
        - address_line
        - postal_code
        - postal_place
        - country
        - phone_number
        - email
      properties:
        first_name:
          type: string
          example: John
          maxLength: 50
        last_name:
          type: string
          example: Doe
          maxLength: 50
        address_line:
          type: string
          description: Gaustadalleen 21
          maxLength: 50
        address_line_2:
          type: string
          description: More details about address.
          maxLength: 50
        business_name:
          type: string
          description: Name of the company
          maxLength: 50
        co_address:
          type: string
          description: CO-Address if applicable.
          maxLength: 50
        postal_code:
          type: string
          description: The zip code / postal code of the address.
          example: '0349'
          maxLength: 50
        postal_place:
          type: string
          description: The name of the postal code
          example: Oslo
          maxLength: 50
        country:
          type: string
          format: iso3166-alpha2
          description: Country of the location
          example: 'NO'
        phone_number:
          type: string
          pattern: ^\+?\d{5,15}$
          description: |
            mobile number of a person / company, ITU/E.123 format with
            international prefix (+PPNNNNNNNNN...)
        email:
          type: string
          maxLength: 100
          description: |
            The email address of a person or an organisation
    SantanderDetails:
      required:
        - account_number_token
      properties:
        account_number_token:
          type: number
          description: Token to represent the account number
        scc:
          type: string
          description: >-
            Optional query parameter. SMS-confirm-code. To verify the identity
            of the payee.
    SantanderPaymentDetails:
      type: object
      discriminator:
        propertyName: payment_product_type
      required:
        - payment_product_type
      properties:
        payment_product_type:
          type: string
          description: |
            The payment product type corresponding to this transaction
    InstabankDetails:
      required:
        - email
        - social_security_number
        - phone_number
        - total_income
      properties:
        email:
          type: string
          maxLength: 100
          description: |
            The email address of a person or an organisation
        social_security_number:
          maxLength: 11
          minLength: 11
          type: string
          description: The social security number of the customer. Only supported for NO.
        phone_number:
          type: string
          pattern: ^\+?\d{5,15}$
          description: |
            mobile number of a person / company, ITU/E.123 format with
            international prefix (+PPNNNNNNNNN...)
        total_income:
          type: integer
          description: |
            income received by person from all source in smallest unit for the
            currency. e.g. $1.5 = 150. **Required**.
        marketing_consent:
          type: boolean
          default: false
          description: Customer consent for marketing in different channels
    InstabankPaymentDetails:
      type: object
      discriminator:
        propertyName: payment_product_type
      required:
        - payment_product_type
      properties:
        payment_product_type:
          type: string
          description: |
            The payment product type corresponding to this transaction
    InstabankApplication:
      required:
        - owns_house
        - marital_status
        - number_of_children
        - debt
      properties:
        owns_house:
          type: boolean
          description: |
            The consumer owns their house
        monthly_house_rental:
          type: integer
          description: >
            Monthly housing cost in smallest unit for the currency. e.g. $1.5 =
            150

            **Required** if `owns_house` is `false`
        marital_status:
          type: string
          enum:
            - married
            - cohabiting
            - divorced
            - single
        total_income:
          type: integer
          description: |
            **Deprecated** in favour of the top-level `total_income`.

            income received by person from all source in smallest unit for the
            currency. e.g. $1.5 = 150.
        mortgage_debt:
          description: |
            amount of money in smallest unit for the currency.
          type: integer
        consumer_debt:
          description: |
            amount of money in smallest unit for the currency.
            (credit card, consumer finances)
          type: integer
        student_debt:
          description: |
            amount of money in smallest unit for the currency.
          type: integer
        other_secured_debt:
          description: |
            amount of money in smallest unit for the currency.
            (car, boat, MC)
          type: integer
        number_of_children:
          type: integer
          description: |
            number of children below the age of 18 in the household
          minimum: 0
        debt:
          type: array
          items:
            type: object
            properties:
              debt_type:
                type: string
                enum:
                  - mortgage_debt
                  - student_debt
                  - other_secured_debt
              amount:
                description: |
                  amount of money in smallest unit for the currency.
                type: integer
              interest:
                description: |
                  interest rate
                type: number
              remaining_duration_months:
                description: |
                  remaining duration of loan in months
                type: integer
    TruncatedCardInfo:
      type: object
      properties:
        cardholder:
          type: object
          properties:
            name:
              type: string
              example: John Doe
            email:
              type: string
              example: john.doe@dintero.com
            phone:
              type: string
              example: +46(0) 10 10 66 000
        cardid:
          type: integer
          example: 9223372036854776000
        expmonth:
          type: integer
          example: 9
        expyear:
          type: integer
          example: 21
        truncatedcardnumber:
          type: string
          example: 415421XXXXXX0001
    KraviaB2BAddress:
      type: object
      required:
        - first_name
        - last_name
        - address_line
        - postal_code
        - country
        - business_name
        - organization_number
      properties:
        first_name:
          type: string
          example: John
        last_name:
          type: string
          example: Doe
        address_line:
          type: string
          example: Gaustadalleen 21
          description: Street address.
        address_line_2:
          type: string
          description: More details about address.
        business_name:
          type: string
          description: Name of the company
        postal_code:
          type: string
          description: The zip code / postal code of the address.
          example: '0349'
        postal_place:
          type: string
          description: The name of the postal code
          example: Oslo
        country:
          type: string
          format: iso3166-alpha2
          description: Country of the location
          example: 'NO'
        phone_number:
          type: string
          pattern: ^\+?\d{5,15}$
          description: |
            mobile number of a person / company, ITU/E.123 format with
            international prefix (+PPNNNNNNNNN...)
        email:
          type: string
          description: |
            The email address of a person or an organisation
        organization_number:
          minLength: 9
          maxLength: 12
          type: string
          description: >
            The organization number of the customer. For Norway, the length is
            9. For Sweden, it's either 10 or 12 digits.
        customer_reference:
          type: string
          description: >
            The customer's reference. For grouped invoices this will be used to
            group the invoices for the particular duration.
    KraviaAddress:
      type: object
      required:
        - first_name
        - last_name
        - address_line
        - postal_code
        - country
      properties:
        first_name:
          type: string
          example: John
        last_name:
          type: string
          example: Doe
        address_line:
          type: string
          example: Gaustadalleen 21
          description: Street address.
        address_line_2:
          type: string
          description: More details about address.
        business_name:
          type: string
          description: Name of the company
        postal_code:
          type: string
          description: The zip code / postal code of the address.
          example: '0349'
        postal_place:
          type: string
          description: The name of the postal code
          example: Oslo
        country:
          type: string
          format: iso3166-alpha2
          description: Country of the location
          example: 'NO'
        phone_number:
          type: string
          pattern: ^\+?\d{5,15}$
          description: |
            mobile number of a person / company, ITU/E.123 format with
            international prefix (+PPNNNNNNNNN...)
        email:
          type: string
          description: |
            The email address of a person or an organisation
        customer_reference:
          type: string
          description: |
            The customer's reference.
    TwoB2BAddress:
      type: object
      properties:
        first_name:
          type: string
        last_name:
          type: string
        phone_number:
          type: string
          pattern: ^\+?\d{5,15}$
          description: |
            mobile number of a person / company, ITU/E.123 format with
            international prefix (+PPNNNNNNNNN...)
        email:
          type: string
          description: |
            The email address of a person or an organisation
        organization_number:
          minLength: 9
          maxLength: 12
          type: string
          description: >
            The organization number of the customer. For Norway, the length is
            9. For Sweden, it's either 10 or 12 digits.
        country:
          type: string
          format: iso3166-alpha2
          description: Country of the organization
          example: 'NO'
        business_name:
          type: string
          description: Name of the company
          maxLength: 99
        address_line:
          type: string
          example: Gaustadalleen 21
          description: Street address
          maxLength: 99
        postal_code:
          type: string
          description: The zip code / postal code of the address
          example: '0349'
          maxLength: 99
        postal_place:
          type: string
          description: The name of the postal code
          example: Oslo
          maxLength: 99
    TerminalOperationRequestBase:
      type: object
      properties:
        terminal_id:
          type: string
          description: Terminal identifier
        operation:
          type: string
          enum:
            - end_of_day
            - send_logs
            - check_update
            - open_menu
      required:
        - terminal_id
        - operation
    TerminalOperationBase:
      type: object
      description: Terminal operation. The shape depends on the operation field.
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for the terminal operation.
        account_id:
          type: string
          description: Account identifier the operation belongs to.
        terminal_id:
          type: string
          description: Identifier of the terminal the operation was sent to.
        operation:
          type: string
          enum:
            - end_of_day
            - send_logs
            - check_update
            - open_menu
        status:
          type: string
          description: >
            Status of the terminal operation.

            - `PENDING`: Operation has been dispatched to the terminal and is
            awaiting a response.

            - `COMPLETED`: Terminal has responded and the operation finished
            successfully.

            - `FAILED`: Terminal responded but reported a failure.

            - `TIMEOUT`: No response was received from the terminal within the
            timeout window. A new operation can be dispatched.
          enum:
            - PENDING
            - COMPLETED
            - FAILED
            - TIMEOUT
        created_at:
          type: string
          format: date-time
          description: When the operation was created.
        created_by:
          type: string
          description: Identity of the user or system that created the operation.
        updated_at:
          type: string
          format: date-time
          description: When the operation was last updated.
        updated_by:
          type: string
          description: Identity of the user or system that last updated the operation.
      required:
        - id
        - terminal_id
        - operation
        - status
        - created_at
        - created_by
        - updated_at
        - updated_by
    SCARuleBase:
      type: object
      properties:
        type:
          type: string
          enum:
            - amount_lte
          description: The type of rule.
      required:
        - type
    TokenProviderBase:
      type: object
      properties:
        payment_product_type:
          type: string
          description: |
            The payment product type corresponding to create token for
      required:
        - payment_product_type
    PaymentBase:
      type: object
      properties:
        payment_product_type:
          type: string
          description: |
            The payment product type corresponding to this transaction
      required:
        - payment_product_type
    PayPaymentBase:
      type: object
      properties:
        payment_product_type:
          type: string
          description: |
            The payment product type corresponding to this transaction
      required:
        - payment_product_type
    PaymentOperationBase:
      type: object
      properties:
        content_type:
          type: string
          enum:
            - application/json
            - application/javascript
            - text/html
        method:
          type: string
          description: |
            The HTTP method to use when performing the operation
          enum:
            - GET
            - POST
        rel:
          type: string
      required:
        - rel
    PaymentInformationEventBase:
      type: object
      properties:
        payment_product_type:
          type: string
          description: |
            The payment product type corresponding to event
      required:
        - payment_product_type
