> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dintero.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Post terminal operation

> Send an administrative command to a payment terminal. These commands do not start a payment.

The response is returned immediately after the command is dispatched to the terminal, with status PENDING. The terminal's response is processed asynchronously. Use [GET /admin/terminals/operations](/checkout-api/terminals/admin_terminals_operations_get) to see how the operation finished.

While another operation of the same type is pending on the terminal, 409 is returned.

Each operation also requires the terminal to be in a suitable status. The `operation` field below lists the status for each. The request is rejected with 400 when the status does not allow it.

scopes:
- admin:checkout
- write:checkout:/admin/terminals




## OpenAPI

````yaml /mintlify-docs/openapi/spec-checkout.yaml post /admin/terminals/operations
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-10-31


    > **Update**: `phone_number` is now optional when initiating a
    `bambora.mobilepay`

    > and `payex.mobilepay` payment

    >

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


    ## 2026-10-14


    > **Update**: Document API key auth for the terminal operations endpoints.
    Document that a `print_text` line must not be empty: `text` has `minLength:
    1`. Both match how the API already works.

    >

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

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


    > **New**: Add the `print_receipt` operation to `POST
    /admin/terminals/operations`, to print a copy of the payment receipt of an
    in-person transaction on a terminal.

    >

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


    > **Update**: The `shipping_address_callback_url` and
    `discount_codes.callback_url`

    > callbacks now include the `Dintero-Signature` header when the account has
    a

    > signature secret, signed the same way as the `url.callback_url` callback.

    >

    > - [POST /v1/admin/signature](/checkout-api/secrets/admin_signature_post)

    > - [Address
    Update](/api-reference/example-session-callbacks/example_shipping_address_callback_url)

    > - [Discount codes
    Update](/api-reference/example-session-callbacks/example_discount_codes_callback_url)


    ## 2026-10-12


    > **New**: Add `includes=events.receipts` to return the terminal receipt
    text in event metadata. The text is excluded by default.

    >

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


    > **New**: Add the `print_text` operation to `POST
    /admin/terminals/operations`, to print lines on a terminal's printer.
    Limitations: max 255 lines, max 255 bytes per line.

    >

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


    ## 2026-09-30


    > **Update**: Add `disabled_by_validation` to the `payability` enum on
    payment

    > product configurations, and add `payability_disabled_reasons` to describe
    why a payment product type is not payable.

    >

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

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


    ## 2026-09-15


    > **New**: Add `GET /admin/terminals/{terminal_id}/activations` to list

    > activation tasks for a terminal, most recent first.

    >

    > - [GET
    /admin/terminals/{terminal_id}/activations](/checkout-api/terminals/admin_terminals_terminal_id_activations_get)


    > **Update**: Add `POST /admin/terminals/{terminal_id}/activations` to
    trigger

    > terminal activation. Confirms the terminal is reachable and moves it

    > into an active, ready-to-use state.

    >

    > - [POST
    /admin/terminals/{terminal_id}/activations](/checkout-api/terminals/admin_terminals_terminal_id_activations_post)


    ## 2026-09-14


    > **Update**: Increase maximum allowed items from 50 to 100, and splits from
    100 to 200, on a single session.

    >

    > - [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)


    ## 2026-09-04


    > **New**: Support `reimburser` as a `platform_type`.

    >

    > - [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-09-03


    > **Update** Add `card_brands` for available card brands in a session to
    Dintero PSP payment product types.

    >

    > - [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-09-01


    > **Update**: Allow a maximum total of 50 items and 100 splits on a single
    session.

    >

    > - [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)


    ## 2026-08-25


    > **Update**: Add `poll_terminal` terminal operation, used to ping a payment
    terminal.

    >

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


    ## 2026-08-19


    > **Update**: Add `generate_payment_token` to
    `configuration.dintero_psp.applepay`, mirroring

    > the existing `creditcard`/`googlepay` field, to support MIT token
    generation for Apple Pay.

    >

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

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

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


    ## 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-13


    > **Update**: Add `MAESTRO` to `supported_networks` for
    `submit-dintero-psp-applepay` operation.

    >

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


    ## 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
servers:
  - url: https://checkout.dintero.com/v1
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:
  /admin/terminals/operations:
    post:
      tags:
        - terminals
      summary: admin_terminals_operations_post
      description: >
        Send an administrative command to a payment terminal. These commands do
        not start a payment.


        The response is returned immediately after the command is dispatched to
        the terminal, with status PENDING. The terminal's response is processed
        asynchronously. Use [GET
        /admin/terminals/operations](/checkout-api/terminals/admin_terminals_operations_get)
        to see how the operation finished.


        While another operation of the same type is pending on the terminal, 409
        is returned.


        Each operation also requires the terminal to be in a suitable status.
        The `operation` field below lists the status for each. The request is
        rejected with 400 when the status does not allow it.


        scopes:

        - admin:checkout

        - write:checkout:/admin/terminals
      operationId: admin_terminals_operations_post
      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':
          description: |
            Invalid request, or the terminal's status does not allow the
            operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          $ref: '#/components/responses/AccessForbidden'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          description: Operation of the same type already pending for the 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'
      security:
        - JWT: []
        - apikey: []
components:
  schemas:
    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'
          poll_terminal: '#/components/schemas/TerminalOperationPollTerminalRequest'
          print_text: '#/components/schemas/TerminalOperationPrintTextRequest'
          print_receipt: '#/components/schemas/TerminalOperationPrintReceiptRequest'
      oneOf:
        - $ref: '#/components/schemas/TerminalOperationEndOfDayRequest'
        - $ref: '#/components/schemas/TerminalOperationSendLogsRequest'
        - $ref: '#/components/schemas/TerminalOperationCheckUpdateRequest'
        - $ref: '#/components/schemas/TerminalOperationOpenMenuRequest'
        - $ref: '#/components/schemas/TerminalOperationPollTerminalRequest'
        - $ref: '#/components/schemas/TerminalOperationPrintTextRequest'
        - $ref: '#/components/schemas/TerminalOperationPrintReceiptRequest'
    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'
          poll_terminal: '#/components/schemas/TerminalOperationPollTerminal'
          print_text: '#/components/schemas/TerminalOperationPrintText'
          print_receipt: '#/components/schemas/TerminalOperationPrintReceipt'
      description: |
        Terminal operation. The shape depends on the operation field. When
        present, the fields inside `result` are camelCase, unlike the rest of
        the operation.
      oneOf:
        - $ref: '#/components/schemas/TerminalOperationEndOfDay'
        - $ref: '#/components/schemas/TerminalOperationSendLogs'
        - $ref: '#/components/schemas/TerminalOperationCheckUpdate'
        - $ref: '#/components/schemas/TerminalOperationOpenMenu'
        - $ref: '#/components/schemas/TerminalOperationPollTerminal'
        - $ref: '#/components/schemas/TerminalOperationPrintText'
        - $ref: '#/components/schemas/TerminalOperationPrintReceipt'
    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
    TerminalOperationEndOfDayRequest:
      x-discriminator-value: end_of_day
      description: |
        Closes the terminal's current batch and settles it with the acquirer.
        Run once per trading day, after the last payment. Requires the terminal
        to be `ACTIVE`.
      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
      description: |
        Instructs the terminal to upload its log files for troubleshooting.
        Requires the terminal to be `ACTIVE`.
      allOf:
        - $ref: '#/components/schemas/TerminalOperationRequestBase'
        - properties:
            operation:
              type: string
              enum:
                - send_logs
      title: send_logs
    TerminalOperationCheckUpdateRequest:
      x-discriminator-value: check_update
      description: |
        Asks the terminal to check for a software update and install one if it
        is available. May reboot the terminal. Allowed when the terminal is
        `ACTIVE`, `PENDING` or `ACTION_REQUIRED`.
      allOf:
        - $ref: '#/components/schemas/TerminalOperationRequestBase'
        - properties:
            operation:
              type: string
              enum:
                - check_update
      title: check_update
    TerminalOperationOpenMenuRequest:
      x-discriminator-value: open_menu
      description: |
        Opens the settings menu on the terminal's own screen. Allowed for any
        terminal status except `PENDING`. The terminal cannot take payments
        while the menu is open.
      allOf:
        - $ref: '#/components/schemas/TerminalOperationRequestBase'
        - properties:
            operation:
              type: string
              enum:
                - open_menu
      title: open_menu
    TerminalOperationPollTerminalRequest:
      x-discriminator-value: poll_terminal
      description: |
        Pings the terminal to see whether it is online and responding. Has no
        effect on the device and is allowed regardless of terminal status.
      allOf:
        - $ref: '#/components/schemas/TerminalOperationRequestBase'
        - properties:
            operation:
              type: string
              enum:
                - poll_terminal
      title: poll_terminal
    TerminalOperationPrintTextRequest:
      x-discriminator-value: print_text
      description: >
        Lines to print on the terminal's printer. Dintero does not compose or
        check the content beyond the limits: max 255 lines, max 255 bytes per
        line. Lines are not wrapped. See `size` in `lines` for the width per
        line. Requires the terminal to be `ACTIVE`.
      allOf:
        - $ref: '#/components/schemas/TerminalOperationRequestBase'
        - type: object
          required:
            - parameters
          properties:
            parameters:
              type: object
              required:
                - lines
              properties:
                lines:
                  type: array
                  minItems: 1
                  maxItems: 255
                  description: Lines to print, in order.
                  items:
                    $ref: '#/components/schemas/TerminalPrintLine'
            operation:
              type: string
              enum:
                - print_text
      title: print_text
    TerminalOperationPrintReceiptRequest:
      x-discriminator-value: print_receipt
      description: >
        Print a copy of the payment receipt of an in-person transaction. Dintero
        prints the receipt text the terminal composed during the payment and
        does not compose a receipt itself. This is a payment receipt (card,
        amount, outcome), not a sales receipt: it has no items and no VAT. Every
        print is marked as a copy.


        Returns 400 when no receipt text is stored for the transaction, for
        example for older transactions. Requires the terminal to be `ACTIVE`.
      allOf:
        - $ref: '#/components/schemas/TerminalOperationRequestBase'
        - type: object
          required:
            - parameters
          properties:
            parameters:
              $ref: '#/components/schemas/TerminalPrintReceiptParameters'
            operation:
              type: string
              enum:
                - print_receipt
      title: print_receipt
    TerminalOperationEndOfDay:
      x-discriminator-value: end_of_day
      description: |
        Runs the end-of-day routine on the terminal: the terminal closes its
        current batch, settles it with the acquirer and reports the batch
        totals. Run it once per trading day, after the last payment.
      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: |
                Batch totals as reported by the terminal. Present when status is
                COMPLETED or FAILED - on FAILED, `result` says why the day was
                not accepted.

                The counts and amounts are the strings the terminal reported
                rather than numbers. All fields except `result` are only present
                if the terminal included them.
              type: object
              properties:
                result:
                  type: string
                  description: >
                    Outcome of the end of day.

                    - `accepted`: the batch was closed and settled.

                    - `offline_accepted`: the terminal closed the batch without
                      reaching the acquirer; it settles when the terminal is back
                      online.
                    - `not_accepted`: the acquirer rejected the batch. The
                      operation status is FAILED.
                    - `no_user_found`: no operator matched
                    `parameters.operator_id`,
                      so nothing was closed. The operation status is FAILED.
                    - `unknown`: the terminal's response omitted the outcome.
                    The
                      operation status is FAILED and the batch state is
                      undetermined - check the terminal before retrying.
                  enum:
                    - accepted
                    - offline_accepted
                    - not_accepted
                    - no_user_found
                    - unknown
                batchId:
                  type: string
                  description: Batch identifier.
                startOfDay:
                  type: string
                  description: >-
                    Timestamp of start of day, as reported by the terminal. Only
                    present if the day is open.
                lastEndOfDay:
                  type: string
                  description: >-
                    Timestamp of the last successful end of day, as reported by
                    the terminal.
                purchasesCount:
                  type: string
                  description: Number of purchases in the batch.
                purchasesAmount:
                  type: string
                  description: Total amount of purchases in the batch, in minor units.
                reversalsCount:
                  type: string
                  description: Number of reversals in the batch.
                reversalsAmount:
                  type: string
                  description: Total amount of reversals in the batch, in minor units.
                saleAmount:
                  type: string
                  description: Total sale amount for the batch, in minor units.
                tipAmount:
                  type: string
                  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
      description: |
        Instructs the terminal to upload its log files to the terminal vendor,
        so they can be inspected when troubleshooting the device. The logs are
        not returned through this API.
      allOf:
        - $ref: '#/components/schemas/TerminalOperationBase'
        - type: object
          properties:
            result:
              description: Present when status is COMPLETED or FAILED.
              type: object
              properties:
                result:
                  type: string
                  description: >
                    Outcome reported by the terminal.

                    - `ok`: the terminal accepted the request and uploaded its
                    logs.

                    - `connectionError`: the terminal could not reach the log
                      destination. The operation status is FAILED.
                  enum:
                    - ok
                    - connectionError
            operation:
              type: string
              enum:
                - send_logs
      title: send_logs
    TerminalOperationCheckUpdate:
      x-discriminator-value: check_update
      description: |
        Asks the terminal to check for a software update and install one if it
        is available. Installing an update can reboot the terminal, which makes
        it unavailable for payments for a few minutes.
      allOf:
        - $ref: '#/components/schemas/TerminalOperationBase'
        - type: object
          properties:
            result:
              description: Present when status is COMPLETED or FAILED.
              type: object
              properties:
                result:
                  type: string
                  description: |
                    Outcome reported by the terminal.
                    - `ok`: the terminal completed the update check.
                    - `connectionError`: the terminal could not reach the update
                      server. The operation status is FAILED.
                  enum:
                    - ok
                    - connectionError
                terminalReboot:
                  type: boolean
                  description: |
                    Whether the terminal will reboot to apply an update. When
                    true, expect the terminal to be unavailable for payments
                    until it is back online - poll it with `poll_terminal` to
                    see when it is reachable again.
            operation:
              type: string
              enum:
                - check_update
      title: check_update
    TerminalOperationOpenMenu:
      x-discriminator-value: open_menu
      description: |
        Opens the settings menu on the terminal's own screen, so an operator
        standing at the terminal can change its configuration without entering
        the menu by hand. The terminal cannot take payments while the menu is
        open.
      allOf:
        - $ref: '#/components/schemas/TerminalOperationBase'
        - type: object
          properties:
            result:
              description: |
                Present when status is COMPLETED. The terminal does not report a
                failure for this operation, so the only unsuccessful outcome is
                status TIMEOUT.
              type: object
              properties:
                result:
                  type: string
                  description: The terminal acknowledged the command.
                  enum:
                    - ok
            operation:
              type: string
              enum:
                - open_menu
      title: open_menu
    TerminalOperationPollTerminal:
      x-discriminator-value: poll_terminal
      description: |
        Pings the terminal to check whether it is online and responding. This
        has no effect on the device and interrupts nothing, so it is the safe
        way to verify connectivity before sending another operation or when
        investigating a terminal reported as unresponsive.
      allOf:
        - $ref: '#/components/schemas/TerminalOperationBase'
        - type: object
          properties:
            result:
              description: |
                Present when status is COMPLETED. The terminal does not report a
                failure for this operation, so the only unsuccessful outcome is
                status TIMEOUT.
              type: object
              properties:
                result:
                  type: string
                  description: The terminal answered the ping.
                  enum:
                    - ok
            operation:
              type: string
              enum:
                - poll_terminal
      title: poll_terminal
    TerminalOperationPrintText:
      x-discriminator-value: print_text
      description: >
        Print lines on the terminal's printer. Dintero does not compose or check
        the content. This can make the terminal a print peripheral of the
        merchant's own cash register system, not a cash register system in
        itself.
      allOf:
        - $ref: '#/components/schemas/TerminalOperationBase'
        - type: object
          properties:
            result:
              $ref: '#/components/schemas/TerminalPrintResult'
            operation:
              type: string
              enum:
                - print_text
      title: print_text
    TerminalOperationPrintReceipt:
      x-discriminator-value: print_receipt
      description: >
        Print a copy of a transaction's payment receipt on the terminal's
        printer.
      allOf:
        - $ref: '#/components/schemas/TerminalOperationBase'
        - type: object
          properties:
            parameters:
              $ref: '#/components/schemas/TerminalPrintReceiptParameters'
            result:
              $ref: '#/components/schemas/TerminalPrintResult'
            operation:
              type: string
              enum:
                - print_receipt
      title: print_receipt
    TerminalOperationRequestBase:
      type: object
      properties:
        terminal_id:
          type: string
          description: Terminal identifier
        operation:
          type: string
          description: >
            The command to send to the terminal.

            - `end_of_day`: close the terminal's current batch and settle it
            with the acquirer. Run once per trading day, after the last payment.
            Requires the terminal to be `ACTIVE`.

            - `send_logs`: have the terminal upload its log files for
            troubleshooting. Requires the terminal to be `ACTIVE`.

            - `check_update`: have the terminal check for a software update and
            install one if available. The terminal can become unresponsive for a
            time while updating. Allowed when the terminal is `ACTIVE`,
            `PENDING` or `ACTION_REQUIRED`.

            - `open_menu`: open the settings menu on the terminal's own screen
            for an operator standing at the device. Allowed for any terminal
            status except `PENDING`.

            - `poll_terminal`: ping the terminal to see whether it is online and
            responding. Has no effect on the device and is allowed regardless of
            terminal status.

            - `print_text`: print lines on the terminal's printer. Dintero does
            not compose or check the content. Requires the terminal to be
            `ACTIVE`.

            - `print_receipt`: print a copy of the payment receipt of an
            in-person transaction. Requires the terminal to be `ACTIVE`.
          enum:
            - end_of_day
            - send_logs
            - check_update
            - open_menu
            - poll_terminal
            - print_text
            - print_receipt
        parameters:
          type: object
          description: >
            Parameters for the chosen `operation`.

            - `end_of_day`: optional. `operator_id` (string) is the operator
            that runs end of day. Default: the current active operator.

            - `print_text`: required. `lines` is an array of 1 to 255 lines.
            Each line has `text` (string, max 255 bytes), `size` (`small`,
            `medium` or `large`) and `align` (`left`, `center` or `right`). A
            line fits 29 characters at `small` and `medium`, and 15 at `large`.

            - `print_receipt`: required. `transaction_id` (string) is the
            transaction to print the receipt for. `type` is `customer` or
            `merchant`.

            - Other operations take no parameters.
      required:
        - terminal_id
        - operation
    TerminalPrintLine:
      type: object
      required:
        - text
        - size
        - align
      properties:
        text:
          type: string
          minLength: 1
          description: >
            Line text, UTF-8 encoded. Must not exceed 255 bytes. A longer line
            is rejected with 400. For a blank line, send a single space (`" "`).
            An empty string is rejected with 400.


            The line is sent to the terminal as is. The terminal does not wrap
            it: a line wider than the paper at the chosen `size` is cut off at
            the right edge. A tab or a newline prints as a space, so send each
            printed line as its own entry in `lines`.
          example: Dintero Butikk AS
        size:
          type: string
          description: >
            Font size to print the line at. Characters per line:


            - `small`: 29

            - `medium`: 29. Prints the same as `small`.

            - `large`: 15


            A `large` line overlaps a `small` or `medium` line right above it.
            Put a blank line (`text: " "`) before a `large` line.
          enum:
            - small
            - medium
            - large
        align:
          type: string
          description: Horizontal alignment of the line.
          enum:
            - left
            - center
            - right
    TerminalPrintReceiptParameters:
      type: object
      required:
        - transaction_id
        - type
      properties:
        transaction_id:
          type: string
          description: Transaction to print the payment receipt for.
          example: P12345678.465UfBENeLpkBvwmqfTC4k
        type:
          type: string
          description: |
            Which copy of the payment receipt to print.
            - `customer`: the cardholder's copy.
            - `merchant`: the merchant's copy.
          enum:
            - customer
            - merchant
    TerminalOperationBase:
      type: object
      description: |
        Terminal operation. The shape depends on the operation field. When
        present, the fields inside `result` are camelCase, unlike the rest of
        the operation.
      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
          description: >
            The command that was sent to the terminal.

            - `end_of_day`: close the terminal's current batch and settle it
            with the acquirer. Run once per trading day, after the last payment.

            - `send_logs`: have the terminal upload its log files for
            troubleshooting. The logs are not returned through this API.

            - `check_update`: have the terminal check for a software update and
            install one if available. May reboot the terminal.

            - `open_menu`: open the settings menu on the terminal's own screen
            for an operator standing at the device. The terminal cannot take
            payments while the menu is open.

            - `poll_terminal`: ping the terminal to see whether it is online and
            responding. Has no effect on the device.

            - `print_text`: print lines on the terminal's printer. Dintero does
            not compose or check the content.

            - `print_receipt`: print a copy of a transaction's payment receipt.
          enum:
            - end_of_day
            - send_logs
            - check_update
            - open_menu
            - poll_terminal
            - print_text
            - print_receipt
        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.


            Which statuses an operation can reach depends on the operation.
            `open_menu` and `poll_terminal` are never reported as `FAILED`,
            since the terminal does not report a failure for them - an
            unreachable terminal ends those operations as `TIMEOUT`.
            `end_of_day`, `send_logs`, `check_update`, `print_text` and
            `print_receipt` can be `FAILED` when the terminal answers but
            reports a problem; the `result` of the operation says what it was.
          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
    TerminalPrintResult:
      description: Present when status is `COMPLETED` or `FAILED`.
      type: object
      properties:
        result:
          type: string
          description: >
            Outcome reported by the terminal.

            - `ok`: the terminal printed.

            - `out_of_paper`: the terminal reported that it is out of paper. The
            operation status is `FAILED`.

            - `no_printer`: the terminal has no printer. The operation status is
            `FAILED`.

            - `unknown_error`: the terminal reported a failure without a reason,
            for example missing paper. The operation status is `FAILED`. Check
            the printer before you retry.
          enum:
            - ok
            - out_of_paper
            - no_printer
            - unknown_error
  responses:
    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'
    NotFound:
      description: Resource was not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ServerError:
      description: Unexpected Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    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
    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

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.