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

<AgentInstructions>

## Submitting Feedback

If you encounter incorrect, outdated, or confusing documentation on this page, submit feedback:

POST https://docs.dintero.com/feedback

```json
{
  "path": "/api-reference/example-session-callbacks/address-update",
  "feedback": "Description of the issue"
}
```

Only submit feedback when you have something specific and actionable to report.

</AgentInstructions>

# Address Update

> This API endpoint on the merchant side allows Dintero to get
shipping options based on the provided session after an address
update




## OpenAPI

````yaml /mintlify-docs/openapi/spec-payments.yaml post /examples/shipping_address_callback_url
openapi: 3.0.0
info:
  title: Payments API
  contact:
    name: API Integration Support
    email: integration@dintero.com
  description: >
    Public endpoints for payments, including checkout, payout and settlement
    reports.
  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
    x-displayName: Transactions
    description: |
      View and perform operations on transactions
  - name: session
    x-displayName: Sessions
    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
    x-displayName: Payment
    description: |
      Resources used by the customer aka user to complete the payment of a
      session.
  - name: settlements
    x-displayName: Settlement reports
    description: Get settlement reports generated per payout
  - name: settlements.configuration
    x-displayName: Configuration
    description: Configure settlement reports
  - name: reports
    x-displayName: Reports
    description: List the generated monthly transaction reports
  - name: example-session-callbacks
    x-displayName: Callback
    description: |
      Example of recieved callbacks from Dintero's servers.
  - name: fund-transfers
    x-displayName: Fund Transfer
    description: Transfer funds between sellers
  - name: Sellers
    x-displayName: Sellers
    description: Manage the signup of a new Seller / Merchant account
  - name: example-session-callbacks
    x-displayName: Example Callbacks
    description: Example of callbacks delivered
  - name: v2-fund-transfers
    x-displayName: Fund Transfer
    description: Transfer funds between sellers
  - name: v2-config-payout-destinations
    x-displayName: Sellers
    description: Get payout data for sellers
paths:
  /examples/shipping_address_callback_url:
    post:
      tags:
        - example-session-callbacks
      summary: Address Update
      description: |
        This API endpoint on the merchant side allows Dintero to get
        shipping options based on the provided session after an address
        update
      operationId: example_shipping_address_callback_url
      requestBody:
        $ref: '#/components/requestBodies/example_discount_codes_callback_urlOptions'
      responses:
        '200':
          description: Session shipping options update
          content:
            application/json:
              schema:
                type: object
                required:
                  - shipping_options
                properties:
                  shipping_options:
                    type: array
                    description: >
                      Shipping options that will be presented to the end user
                      after the

                      callback


                      - If the merchant is not able to ship the order to the end
                      users
                        shipping address, use an empty array.
                      - If there is only one option, a free delivery, the order
                      still
                        has to contain one option with a _`price.amount`_ of 0.
                    items:
                      $ref: '#/components/schemas/MultiShipmentShippingOption'
                  order:
                    $ref: >-
                      #/components/schemas/ShippingAddressCallbackSessionOrderUpdate
      security: []
components:
  requestBodies:
    example_discount_codes_callback_urlOptions:
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Id'
              - $ref: '#/components/schemas/Session'
              - $ref: '#/components/schemas/SessionRead'
      required: true
  schemas:
    MultiShipmentShippingOption:
      allOf:
        - $ref: '#/components/schemas/SplitShippingOption'
        - properties:
            shipment_id:
              type: string
              description: >-
                For orders that have multiple shipments. The shipping options
                will be grouped by `shipment_id`. The top-level multi shipment
                shipping option array at `order.shipping_option.shipments` will
                contain one shipping option per `shipment_id` found in the
                shipping options sprovided in `express.shipping_options`.

                In order to present multiple shipping options for a given
                `shipment_id` set the same shipment_id to all the shipping
                options for that shipment.
            shipment_items:
              type: array
              description: >
                An array of objects specifying what items will be delivered by
                this shipment. Should

                only be specified when an order has multiple shipments so the
                checkout knows what

                items will be shipped by the shipping options.


                If there are multiple shipments the session (and resulting
                transaction) will have a

                single top-level shipping object that contains multiple
                `shipments` for the order.
              items:
                $ref: '#/components/schemas/MultiShipmentItem'
    ShippingAddressCallbackSessionOrderUpdate:
      type: object
      description: >
        Updates to session order. If the amount is not equal to sum of
        items.amount and the shipping_option.amount from the request are not
        equal a correction item will be added to the items.
      required:
        - amount
      properties:
        amount:
          type: integer
          example: 29990
          description: |
            The amount to authorize/capture including VAT and discounts.
            In smallest unit for the currency, e.g. cents
        currency:
          type: string
          format: iso4217-code
          example: NOK
          description: >-
            The three-character ISO-4217 currency.
            https://en.wikipedia.org/wiki/ISO_4217
        vat_amount:
          type: integer
          example: 6000
          description: |
            The VAT of the `amount` parameter.
            Only used for display purposes.

            In smallest unit for the currency, e.g. cents
        items:
          type: array
          description: >
            Details about the order items.


            #### Instabank

            `required` if Instabank payment is configured in and partial_payment
            is false.

            All items must include a unique `line_id`, quantity and amount


            #### Collector Bank

            `required` if Collector Bank payment is configured in and
            partial_payment is false.

            All items must include a unique `line_id`, quantity and amount
          items:
            allOf:
              - $ref: '#/components/schemas/OrderItem'
              - $ref: '#/components/schemas/OrderDiscountItem'
        discount_codes:
          type: array
          items:
            type: string
            example: SUMMER20
    Id:
      type: object
      properties:
        id:
          type: string
          description: |
            An ID that uniquely identifies the resource
        created_at:
          type: string
          format: date-time
          description: |
            The date-time when the resource was created
    Session:
      allOf:
        - $ref: '#/components/schemas/SessionOptions'
        - $ref: '#/components/schemas/SessionMeta'
    SessionRead:
      type: object
      properties:
        order:
          type: object
          properties:
            gift_cards:
              type: array
              description: |
                The gift cards selected, the part of `order.amount` that will be
                authorized using gift cards
              maxItems: 1
              items:
                $ref: '#/components/schemas/Giftcard'
        customer:
          type: object
          properties:
            my_dintero:
              $ref: '#/components/schemas/MyDinteroUserCreation'
            gift_cards:
              type: object
              properties:
                dintero.wallets:
                  type: array
                  description: |
                    Preload checkout with Wallets cards and let the customer
                    use it during checkout by providing PIN to activate the
                    card (e.g. use Wallets card as giftcard)

                    - The `dintero.wallets` must be enabled in the session
                      configuration to activate the use of the provided gift card
                      tokens
                  maxItems: 1
                  items:
                    type: object
                    required:
                      - card_id
                    properties:
                      card_id:
                        type: string
                      masked_card_token:
                        type: string
            tokens:
              type: object
              properties:
                payex.creditcard:
                  type: object
                  properties:
                    payment_token_id:
                      type: string
                      description: |
                        Id included if the payex.creditcard was created with
                        payment_token set.
                      readOnly: true
                      example: 2134a260d196b1d65e59b259dc43f619d7f0f3c6
                bambora.creditcard:
                  type: object
                  properties:
                    payment_token_id:
                      type: string
                      description: |
                        Id included if the bambora.creditcard was created with
                        payment_token set.
                      readOnly: true
                      example: 2134a260d196b1d65e59b259dc43f619d7f0f3c6
                dintero_psp.creditcard:
                  type: object
                  properties:
                    payment_token_id:
                      type: string
                      description: >
                        Id included if the dintero_psp.creditcard was created
                        with

                        payment_token set.
                      readOnly: true
                      example: 2134a260d196b1d65e59b259dc43f619d7f0f3c6
        metadata:
          type: object
          description: |
            metadata about the session
          properties:
            session:profile_id:
              type: string
              description: Profile Id used when session was created
        configuration:
          type: object
          properties:
            merchant:
              type: object
              properties:
                id:
                  type: string
                  example: null
                logo_url:
                  type: string
                  format: uri
                name:
                  type: string
                  example: TKP tech AS
                country:
                  type: string
                  example: 'NO'
    SplitShippingOption:
      allOf:
        - $ref: '#/components/schemas/ShippingOption'
        - properties:
            pay_in_store:
              description: >
                Enable pay in-store during pick-up. The amount to be paid will
                be zero.

                Requires that the payment method `dintero.zero` is enabled
              type: object
              required:
                - type
              properties:
                type:
                  type: string
                  enum:
                    - full
            fee_split:
              $ref: '#/components/schemas/PayoutFeeSplit'
            splits:
              type: array
              description: >
                An array of objects specifying how the amount should be split
                between

                sellers when using Dintero Payout


                Specify an empty array if the splits will be provided during
                capture.

                `auto_capture` cannot be enabled when splits are defined as
                empty array.
              items:
                $ref: '#/components/schemas/PayoutSplit'
    MultiShipmentItem:
      type: object
      required:
        - line_id
      properties:
        line_id:
          type: string
          example: line-id-1
          description: |
            The line_id or an item in order.items
        quantity:
          type: number
          description: |
            The quantity of the product in the item line.
    OrderItem:
      type: object
      description: |
        details about order item
      properties:
        id:
          type: string
          description: |
            The ID or SKU of the product on the line
          example: item_01
        groups:
          type: array
          description: |
            The groups the product on the line belongs to
          example:
            - id: B234
              name: Stol
          items:
            type: object
            required:
              - id
            properties:
              id:
                type: string
                description: Group ID
              name:
                type: string
                description: Group name
        line_id:
          type: string
          description: |
            the number of the line (or id), must be `unique` between
            all items. `required` when Instabank payment is configured.
          example: '1'
        version:
          type: number
          readOnly: true
          description: |
            The version where the item was added or last updated, see the
            events for the source.
        description:
          type: string
          description: |
            A short, localized description of the line item
          example: Stablestol
        quantity:
          type: number
          description: >
            The quantity of the product in the item line.


            Quantities are usually whole numbers, but can also be decimal, in
            cases where the product is sold by weight, volume or other
            denominations.
          example: 1
        amount:
          type: integer
          description: >
            The total monetary amount of the line item, including VAT and
            discounts.


            In smallest unit for the currency, e.g. cents
          example: 2000
        vat_amount:
          type: integer
          description: |
            The VAT of the `amount` parameter. Only
            used for display purposes.

            In smallest unit for the currency, e.g. cents
          example: 400
        vat:
          type: number
          description: >
            The VAT percentage. Supports up to 2 decimal places. If the vat is
            20% the number should be 20, not 0.2.
          example: 20
        unit_volume:
          type: number
          description: |
            The volume of one item in m³ (cubic meters)
        unit_weight:
          type: number
          description: |
            The volume of one item in kg (kilo grams)
        unit_dimensional_weight:
          type: number
          description: >
            The dimensional weight (also known as volumetric) value unit of one
            item. [Dimensional weight at
            Wikipedia](https://en.wikipedia.org/wiki/Dimensional_weight)
        type:
          type: string
          description: >
            The type of order item this is.


            - **physical** - a physical item which must be delivered or handed
            over

            - **digital** - a digital item which doesn't need shipping

            - **service** - payment for services like maintenance performed in
            your home

            - **gift_card** - usage of a gift card, where the amount is usually
            a negative number

            - **shipping** - payment for shipping of the order

            - **surcharge** - extra incurred costs, like taxes or necessary
            rounding
          enum:
            - physical
            - digital
            - service
            - gift_card
            - shipping
            - surcharge
        fee_split:
          $ref: '#/components/schemas/PayoutFeeSplit'
        splits:
          type: array
          description: >
            An array of objects specifying how the amount should be split
            between

            sellers when using Dintero Payout


            Specify an empty array if the splits will be provided during
            capture.

            `auto_capture` cannot be enabled when splits are defined as empty
            array.
          items:
            $ref: '#/components/schemas/PayoutSplit'
        thumbnail_url:
          type: string
          description: >
            URL to a thumbnail of the item. Will be displayed when redirecting
            to the session.


            Recommended limitations for the image:


            - all images should preferrably have the same dimensions

            - max file size should be less than 2MB
          format: uri
        emd:
          $ref: '#/components/schemas/Emd'
        store:
          allOf:
            - $ref: '#/components/schemas/Store'
          description: |
            Store metadata, it can be used to track supplier/vendor/partner
            information when the main `order.store` is a marketplace / reseller
    OrderDiscountItem:
      description: Discount details for an order item
      properties:
        eligible_for_discount:
          type: boolean
          default: false
          example: true
          description: |
            The item is eligible for discount
        is_changed:
          type: boolean
          description: |
            Discount applied to amount
        gross_amount:
          type: number
          readOnly: true
          description: |
            The origin item amount before any discount
        discount_lines:
          type: array
          items:
            $ref: '#/components/schemas/DiscountItem'
    SessionOptions:
      type: object
      allOf:
        - $ref: '#/components/schemas/SessionBase'
        - $ref: '#/components/schemas/SessionExpress'
        - properties:
            express:
              type: object
              properties:
                shipping_options:
                  type: array
                  items:
                    $ref: '#/components/schemas/MultiShipmentShippingOption'
        - required:
            - configuration
          properties:
            configuration:
              allOf:
                - $ref: '#/components/schemas/PaymentConfiguration'
                - $ref: '#/components/schemas/DiscountsConfiguration'
                - $ref: '#/components/schemas/SessionThemeConfiguration'
                - $ref: '#/components/schemas/CountryConfiguration'
                - $ref: '#/components/schemas/DefaultCustomerTypeConfiguration'
                - $ref: >-
                    #/components/schemas/AllowDifferentBillingShippingAddressConfiguration
    SessionMeta:
      type: object
      properties:
        id:
          type: string
          description: The ID of the Checkout
        created_at:
          type: string
          format: date-time
          description: Time when the Checkout was created
        updated_at:
          type: string
          format: date-time
          description: Last time when the Checkout was updated
        expires_at:
          type: string
          format: date-time
          description: |
            The session expiration time after which the
            Checkout page wouldn't be available
        customer_ip:
          type: string
          description: |
            The IP of the customer upon visiting the page.
            If the page is visited multiple times, the
            field is always updated with the last known value.
        user_agent:
          type: string
          description: |
            The full user agent of the device the customer
            used when visiting the checkout page
        initiating_system_request_headers:
          $ref: '#/components/schemas/SystemRequestHeaders'
        payment_operation:
          $ref: '#/components/schemas/PaymentOperationIntent'
        events:
          type: array
          description: |
            Checkout process events
          items:
            type: object
            properties:
              created_at:
                type: string
                format: date-time
              id:
                type: string
              request_id:
                type: string
              name:
                type: string
                enum:
                  - INITIATED
                  - VISITED
                  - COMPLETED
                  - AUTHORIZED
                  - DECLINED
                  - PAY_LOCK_START
                  - PAY_LOCK_META
                  - PAY_LOCK_END
                  - PAY_FAILED
                  - ON_HOLD_CALLBACK_SENT
                  - AUTH_CALLBACK_SENT
                  - FAILED
                  - UNKNOWN
                  - PAYMENT_TOKEN_FLOW_START
                  - UPDATE_SESSION
                  - CANCELLED
                  - SET_BILLING_ADDRESS
                  - SET_DISCOUNT_CODES
                  - SET_SHIPPING_ADDRESS
                  - SET_SHIPPING_OPTION
                  - SET_GIFT_CARD
                  - PUSH_NOTIFICATION_SENT
                  - SECRET_CONFIRMATION_CODE_SENT
                  - SET_MY_DINTERO
                  - ADD_PAYMENT_INFORMATION
              request_headers:
                $ref: '#/components/schemas/RequestHeaders'
              details:
                type: object
                properties:
                  error:
                    type: string
                  payment_product_type:
                    type: string
                  amount:
                    type: integer
                  shipping_option:
                    $ref: '#/components/schemas/MultiShipmentTopLevelShippingOption'
                  shipping_address:
                    $ref: '#/components/schemas/OrderAddress'
                  bambora:
                    type: object
                    properties:
                      session_token:
                        type: string
                      session_url:
                        type: string
                      wallet_session_id:
                        type: string
                  klarna:
                    type: object
                    required:
                      - client_token
                      - session_id
                    properties:
                      client_token:
                        type: string
                      session_id:
                        type: string
                  payex:payment:id:
                    type: string
                  vipps:payment:id:
                    type: string
                  vipps:gateway_api_version:
                    type: string
                  collector:invoice_b2b:addresses:
                    type: array
                    items:
                      $ref: '#/components/schemas/CollectorB2BPaymentOperationAddress'
                  collector:installment:products:
                    type: array
                    items:
                      $ref: '#/components/schemas/CollectorProduct'
                  my_dintero:
                    $ref: '#/components/schemas/MyDinteroUserCreation'
                  organization_number:
                    type: string
                  previous_order:
                    $ref: '#/components/schemas/SessionOrder'
                  updated_order:
                    $ref: '#/components/schemas/SessionOrder'
                  updated_order_result:
                    type: object
                    properties:
                      status:
                        type: string
                        enum:
                          - NOT_MODIFIED
                        example: NOT_MODIFIED
                        description: |
                          The status of the order object after the update,
                          e.g. if the update modified the order object or not.
                  previous_express:
                    $ref: '#/components/schemas/SessionExpress'
                  updated_express:
                    $ref: '#/components/schemas/SessionExpress'
                  updated_express_result:
                    type: object
                    properties:
                      status:
                        type: string
                        enum:
                          - NOT_MODIFIED
                        example: NOT_MODIFIED
                        description: |
                          The status of the express object after the update,
                          e.g. if the update modified the express object or not.
                  gift_card:
                    type: object
                    properties:
                      card_id:
                        type: string
                      card_amount:
                        type: number
                      masked_card_token:
                        type: string
                      currency:
                        type: string
                  transaction_event_id:
                    description: |
                      Reference to the transaction event ID in case of
                      `AUTH_CALLBACK_SENT` event
                    type: string
          example:
            - id: 769952fe-86c9-4185-a1ce-aeb46da3509c
              name: INITIATED
              created_at: '2019-05-09T09:13:40.306Z'
              request_id: b97b6312-f8b3-11ed-be56-0242ac120002
            - name: VISITED
              created_at: '2019-05-09T09:13:50.548Z'
            - name: PAY_FAILED
              created_at: '2019-05-09T09:14:10.548Z'
              details:
                error: Rejected
                payment_product_type: instabank.finance
            - name: FAILED
              created_at: '2019-05-09T09:16:11.786Z'
        transaction_id:
          type: string
          description: |
            Transaction which has been created using the checkout.
    Giftcard:
      type: object
      required:
        - type
        - card_id
        - amount
      properties:
        type:
          type: string
          enum:
            - dintero.wallets
        card_id:
          type: string
        amount:
          type: integer
          description: |
            Non-negative, minor units. Total amount for the gift card
        masked_card_token:
          type: string
    MyDinteroUserCreation:
      type: object
      description: |
        Options for myDintero
      required:
        - actions
        - terms
      properties:
        actions:
          description: |
            Actions to perform on the customer
          type: array
          items:
            type: string
            enum:
              - create_user
              - skip
        terms:
          required:
            - id
            - url
          description: |
            Terms and conditions accepted
          type: object
          properties:
            id:
              description: |
                id of the myDintero terms and conditions
              type: string
              format: uuid
            url:
              type: string
              format: uri
              pattern: https?://*
              example: https://example.com/toc
              description: |
                Url to the terms and conditions accepted by the customer
    ShippingOption:
      type: object
      description: |
        A shipping option
      required:
        - id
        - line_id
        - amount
        - operator
        - title
      properties:
        id:
          type: string
          description: >
            Id of this shipping option product.


            The express checkout will group all products with the same id. Used
            for

            grouping delivery to the same address at different time slots, or
            for

            grouping deliveries to different pick up points.
          example: bring-pick-up-00001
        line_id:
          type: string
          description: |
            Unique id of the specific configuration of this shipping product
          example: bring-pick-up-00001-location-0a1f6b
        countries:
          description: Countries where this shipping option can be used
          type: array
          items:
            type: string
            format: iso3166-alpha2
            example: 'NO'
        amount:
          type: integer
          description: >
            The monetary amount of the shipping option, including VAT and
            discounts.


            In smallest unit for the currency, e.g. cents
          example: 3900
        vat_amount:
          type: integer
          description: |
            The VAT of the `amount` parameter. Only
            used for display purposes.
          example: 975
        vat:
          type: number
          description: >
            The VAT percentage. Supports up to 2 decimal places. If the vat is
            20% the number should be 20, not 0.2.
          example: 25
        title:
          type: string
          description: |
            A shipping option title. Eg. "Standard"
          example: Standard
        description:
          type: string
          description: |
            A short description of the shipping option product
          example: Pick up at your nearest postal office
        delivery_method:
          type: string
          enum:
            - delivery
            - pick_up
            - unspecified
            - none
          example: pick_up
        operator:
          type: string
          description: |
            Name of company that provides shipping service
          example: Bring
        operator_product_id:
          type: string
          description: |
            The operators own id for this shipping product
          example: pick-up-00001-location-0a1f6b
        eta:
          description: Estimated time of arrival
          type: object
          allOf:
            - $ref: '#/components/schemas/RelativeTime'
            - properties:
                starts_at:
                  type: string
                  format: date-time
                  example: '2020-10-14T19:00:00Z'
                ends_at:
                  type: string
                  format: date-time
                  example: '2020-10-14T20:00:00Z'
        time_slot:
          description: A specified time for delivery to customer
          type: object
          properties:
            starts_at:
              type: string
              format: date-time
              example: '2020-10-14T19:00:00Z'
            ends_at:
              type: string
              format: date-time
              example: '2020-10-14T20:00:00Z'
        pick_up_address:
          type: object
          allOf:
            - $ref: '#/components/schemas/OrderAddress'
            - $ref: '#/components/schemas/ShippingAddressDetails'
            - properties:
                distance:
                  type: number
                  description: |
                    Distance in kilometers from the shipping_address.
        metadata:
          type: object
          description: Additional metadata about the shipping_option
          maxProperties: 20
          additionalProperties:
            oneOf:
              - type: string
              - type: number
          example:
            operator_dest: XAB1239
            number_x: 1921
        environmental_data:
          type: object
          description: |
            Environmental data about the shipping option
          required:
            - description
          properties:
            description:
              type: string
              description: |
                A short description of the environmental data, something like
                - "Fossil free",
                - "Carbon neutral"
                - "Low emissions"
                - "Renewable Energy Sourced"
                - "Eco-certified Fleet"
              example: Fossil free
            details:
              type: array
              items:
                type: object
                required:
                  - label
                  - value
                properties:
                  label:
                    description: |
                      Give context to the value field. Example:
                      - "CO2 emissions"
                      - "Energy consumption"
                      - "Carbon footprint"
                      - "Carbon offset"
                      - "Trees planted"
                      - "Renewable energy percentage"
                    type: string
                    example: Carbon offset
                    maxLength: 50
                  value:
                    type: string
                    example: 1KG CO2
                    maxLength: 50
        thumbnail_url:
          type: string
          description: |
            URL to a thumbnail of the shipping option. Will be displayed when
            redirecting to the session.
            Recommended limitations for the image:
              - all images should preferrably have the same dimensions
              - max file size should be less than 2MB
          format: uri
    PayoutFeeSplit:
      type: object
      description: >
        Specify how fees are handled with splits. The default behaviour is to
        share

        the fees proportional with all splits destinations
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - proportional
        destinations:
          type: array
          description: |
            Seller ids that will be debited for the payment fees
            All destinations must be included in the list of splits
          minItems: 1
          items:
            type: string
            maxLength: 40
    PayoutSplit:
      type: object
      required:
        - payout_destination_id
        - amount
      properties:
        payout_destination_id:
          type: string
          maxLength: 40
          example: seller-1
          description: >
            An id that identifies the seller


            Note: The seller must be configured before the funds will be paid
            out. See
            https://docs.dintero.com/docs/checkout/split-payment/add-payout-destinations
        amount:
          type: integer
          format: int32
          example: 29700
          minimum: 0
          description: |
            The split amount in smallest unit for the currency, e.g. cents.
    Emd:
      type: object
      description: >
        Details related to [Klarna
        EMD](https://docs.klarna.com/klarna-payments/in-depth-knowledge/extra-merchant-data/).


        Some items require extra information to be provided when using

        Klarna as an enabled payment option.
      properties:
        event:
          $ref: '#/components/schemas/EmdEvent'
        subscription:
          $ref: '#/components/schemas/EmdRecurring'
        travel:
          $ref: '#/components/schemas/EmdTravel'
        marketplace_order:
          $ref: '#/components/schemas/EmdMarketplaceOrder'
    Store:
      type: object
      required:
        - id
      properties:
        id:
          type: string
          example: sc029
        name:
          type: string
          description: |
            name of the store, aka trade name of the store
          example: SC Oslo
        business_name:
          type: string
          description: |
            Official name of the person or entity that owns the store.
          example: SC Oslo AS
        address:
          $ref: '#/components/schemas/Address'
        chain:
          type: string
          example: SuperChain
        email:
          type: string
          example: contact@superchain.com
        gln:
          type: string
          example: '5790001398644'
        organization_number:
          type: string
          example: 123456789MVA
        phone_number:
          type: string
          example: '+4738260107'
        mcc:
          type: string
          format: iso-18245
          description: |
            A four-digit Merchant Category Code (MCC) for the store
            [ISO 18245:2003](https://www.iso.org/standard/33365.html)
          example: '5814'
          minimum: 4
          maximum: 4
        bax:
          type: string
          example: '102603'
          description: |
            Merchant number associated with the stores
            payment terminal
        terminal_id:
          type: string
          description: |
            Id to a specific point-of-sale (POS) terminal
            or workstation
          example: T0292
        payout_destination_id:
          type: string
          maxLength: 40
          description: |
            The payout destination id for the merchant of record,
            i.e. the seller responsible for the transaction.

            Required when `seitatech.in_person` payment is enabled.
          example: seller-1
    DiscountItem:
      type: object
      properties:
        amount:
          type: integer
          example: 4400
          description: |
            Monetary amount in smallest unit for the currency
        percentage:
          type: number
          description: |
            Optional, set if the amount given was from a percentage discount
          example: 44
        discount_type:
          $ref: '#/components/schemas/DiscountType'
        discount_id:
          type: string
          example: 766da0ef-9283-42bd-b012-0582344ec53c
        description:
          type: string
        line_id:
          type: integer
          example: 1
    SessionBase:
      type: object
      required:
        - order
        - url
      properties:
        url:
          $ref: '#/components/schemas/SessionUrls'
        customer:
          $ref: '#/components/schemas/SessionCustomer'
        order:
          $ref: '#/components/schemas/SessionOrder'
        expires_at:
          type: string
          format: date-time
        checkboxes:
          $ref: '#/components/schemas/CheckboxConfiguration'
    SessionExpress:
      type: object
      properties:
        express:
          description: >
            ### Present only for _Express Checkout_ sessions.


            An _Express Checkout_ session is a session where the end user will
            submit a

            shipping address and then select a shipping option before the before
            a

            payment method is selected and the payment is initiated.


            Endpoints used in the _Express Checkout_ flow.

            1. [Set shipping
            address](/#operation/checkout_sid_json_order_shipping_address_put)

            2. [Set shipping
            option](/#operation/checkout_sid_json_order_items_shipping_option_put)
          type: object
          allOf:
            - $ref: '#/components/schemas/SessionExpressUpdate'
            - properties:
                discount_codes:
                  description: |
                    Enable discount codes for Express Checkout
                  properties:
                    max_count:
                      type: number
                      description: >
                        Limit how many discount codes can be added by the
                        customer
                    callback_url:
                      type: string
                      format: uri
                      pattern: https?://*
                      example: >-
                        https://example.com/order/00128110/discount_codes_updated
                      description: >
                        URL that Checkout will POST to when the user has
                        submitted/changed

                        the discount codes for an express session.


                        Dintero will not attempt a retry after a failed delivery
                        attempt.

                        Following situations is considered as failed delivery


                        - HTTP status codes that are not 200.

                        - A request timeout (60 seconds)

                        - Any connection error such as connection timeout, bad
                        certificate, etc


                        The response from the callback will be used to update
                        the order amount,

                        items discount_lines and shipping options.


                        See [POST
                        example/discount_codes_callback_url](#operation/example_discount_codes_callback_url)

                        for details about the request and response.
                shipping_address_callback_url:
                  type: string
                  format: uri
                  pattern: https?://*
                  example: https://example.com/order/00128110/address_updated
                  description: >
                    URL that Checkout will POST to when the end user has
                    submitted/changed

                    a shipping address for an express-session.


                    Dintero will not attempt a retry after a failed delivery
                    attempt.

                    Following situations is considered as failed delivery


                    - HTTP status codes that are not 200.

                    - A request timeout (60 seconds)

                    - Any connection error such as connection timeout, bad
                    certificate, etc


                    The response from the callback will be used to update the
                    shipping options.


                    See [POST
                    example/shipping_address_callback_url](#operation/example_shipping_address_callback_url)

                    for details about the request and response.
                customer_types:
                  type: array
                  description: >
                    Limit the lind of customers that can be submitted via the
                    address form in the express checkout.
                  default:
                    - b2c
                    - b2b
                  items:
                    type: string
                    enum:
                      - b2c
                      - b2b
                default_different_billing_shipping_address:
                  description: >
                    Configure the default behavior for how Checkout presents the
                    shipping and billing addresses.


                    If `[]`, Checkout defaults to assuming the shipping and
                    billing addresses are the same.


                    If `["b2b"]`, Checkout defaults to assuming different
                    addresses for B2B only.


                    If `["b2c"]`, Checkout defaults to assuming different
                    addresses for B2C only.


                    If `["b2b", "b2c"]`, Checkout defaults to assuming different
                    addresses for all customer types.


                    If omitted, Checkout defaults to the same behaviour as
                    setting `[]`.


                    This will only have an effect if
                    `allow_different_billing_shipping_address` is set.
                  type: array
                  default: []
                  items:
                    type: string
                    enum:
                      - b2c
                      - b2b
    PaymentConfiguration:
      type: object
      allOf:
        - $ref: '#/components/schemas/AutoCaptureConfiguration'
        - properties:
            channel:
              type: string
              enum:
                - ecommerce
                - in_app
                - in_store
              default: ecommerce
              description: >
                `channel` enables special behaviour for various scenarios.


                The majority of web integrations will not need to set this
                property.


                ### in_app


                The `in_app` channel is intended for payments done from

                mobile devices where `url.return_url` can be set to the

                application's appswitch URL.


                #### Session deeplink URL


                Creating a session with `channel=in_app` will return an

                appswitch deeplink URL if the enabled payment options in

                the session supports it


                Appswitch deeplink is currently only supported for sessions

                that has only Vipps enabled via Dintero PSP, Vipps or Swedbank
                (payex),

                Mobilepay enable via Swedbank (payex) or Swish

                  - configuration.vipps.enabled
                  - configuration.payex.vipps.enabled
                  - configuration.payex.mobilepay.enabled
                  - configuration.dintero_psp.vipps.enabled
                  - configuration.swish.swish.enabled

                > `in_app` is currently not supported when express is enabled

                > `in_app` with deeplink URL is not supported if `publish` is
                enabled


                ### in_store


                The `in_store` channel is intended for payments done

                in physical stores.


                Depending on the payment_type, choosing `in_store` will

                change the behaviour of the payment.
            publish:
              $ref: '#/components/schemas/PublishConfiguration'
            active_payment_types:
              type: object
              properties:
                enabled:
                  type: boolean
                  description: >
                    Use this flag as wildcard to include all active payment
                    types

                    configured for a given currency when creating a payment
                    session.
            default_payment_type:
              type: string
              description: >
                Configure the default payment type, the selected payment when

                loading the checkout window. The value must be an enabled
                payment type.
              enum:
                - bambora.applepay
                - bambora.creditcard
                - bambora.googlepay
                - bambora.mobilepay
                - bambora.vipps
                - dintero.zero
                - dintero_psp.applepay
                - dintero_psp.creditcard
                - dintero_psp.vipps
                - dintero_psp.googlepay
                - dintero_psp.clicktopay
                - instabank.finance
                - instabank.invoice
                - instabank.installment
                - instabank.postponement
                - vipps
                - payex.creditcard
                - payex.mobilepay
                - payex.swish
                - payex.vipps
                - payex.applepay
                - payex.clicktopay
                - payex.googlepay
                - collector.finance
                - collector.invoice
                - collector.invoice_b2b
                - collector.invoice_b2b_preapproved
                - collector.installment_b2b_preapproved
                - collector.installment
                - santander.debit_account
                - swish.swish
                - netaxept.creditcard
                - klarna.klarna
                - klarna.billie
                - kravia.invoice_b2b
                - kravia.invoice_b2b_grouped
                - kravia.invoice_b2c
                - seitatech.in_person
                - two.invoice_b2b
            bambora:
              $ref: '#/components/schemas/BamboraConfiguration'
            dintero:
              $ref: '#/components/schemas/DinteroConfiguration'
            dintero_psp:
              $ref: '#/components/schemas/DinteroPspConfiguration'
            instabank:
              $ref: '#/components/schemas/InstabankConfiguration'
            netaxept:
              $ref: '#/components/schemas/NetaxeptConfiguration'
            payex:
              $ref: '#/components/schemas/PayExConfiguration'
            vipps:
              $ref: '#/components/schemas/VippsConfiguration'
            collector:
              $ref: '#/components/schemas/CollectorConfiguration'
            klarna:
              $ref: '#/components/schemas/KlarnaConfiguration'
            kravia:
              $ref: '#/components/schemas/KraviaConfiguration'
            two:
              $ref: '#/components/schemas/TwoConfiguration'
            santander:
              $ref: '#/components/schemas/SantanderConfiguration'
            seitatech:
              $ref: '#/components/schemas/SeitatechConfiguration'
            swish:
              $ref: '#/components/schemas/SwishConfiguration'
            payout:
              $ref: '#/components/schemas/PayoutConfiguration'
            allow_express_wallet_payment:
              type: boolean
              description: >
                When enabled, wallet payments (like Apple Pay and Google Pay)

                can be used in their express mode, allowing customers to
                complete

                purchases with a single tap, bypassing the standard checkout
                flow.
              default: false
              example: false
            age_verification:
              $ref: '#/components/schemas/AgeVerificationConfiguration'
    DiscountsConfiguration:
      properties:
        discounts:
          type: object
          description: |
            Configuration for discounts calculations
          properties:
            type:
              type: string
              readOnly: true
              enum:
                - discounts
            express_discount_codes:
              type: object
              required:
                - enabled
              properties:
                payability:
                  $ref: '#/components/schemas/SessionPayability'
                enabled:
                  type: boolean
                  description: >
                    The discounts will be given by the configured express
                    callback url.


                    The callback URL will be invoked when the session is updated

                    with a discount code, and the response used to update the
                    discounts

                    on the order items and the shipping options.
            order:
              type: object
              description: |
                Configure discounts calculation on the session order.
              required:
                - enabled
              properties:
                enabled:
                  description: >
                    Enable discount calculation on order

                    items eligible for discount


                    - A session that has the `customer.customer_id` set will
                    have
                      its discounts calculated when the session is created.

                    - A session with no customer_id will only have the discounts
                      calculated when the customer is identified by the checkout
                      page.

                    - The autorized amount will be the net amount from the
                      original session amount specified when the session was
                      created.
                  type: boolean
                  default: false
    SessionThemeConfiguration:
      type: object
      properties:
        theme:
          type: object
          description: |
            Customize the appearance of the checkout.
          properties:
            backdrop:
              type: string
              description: |
                Color on backdrop shown in desktop mode

                Color, supported formats are
                - hex: `#ff0000`
                - rgb: `rgb(255,0,0)`
                - rgba: `rgba(255,0,0,0.5)`
            primary:
              type: string
              description: |
                Primary color used on pay button and other buttons.

                Color, supported formats are
                - hex: `#ff0000`
                - rgb: `rgb(255,0,0)`
                - rgba: `rgba(255,0,0,0.5)`
            cardRadius:
              type: string
              description: |
                Radius on card element in the checkout.
            buttonRadius:
              type: string
              description: |
                Radius on buttons in the checkout.
    CountryConfiguration:
      properties:
        countries:
          description: |
            Country preferences
          type: object
          properties:
            preferred_country:
              description: |
                Country to use as default in address and phone country code
              type: string
              format: iso3166-alpha2
            allow_countries:
              description: >
                List of countries where the customer is allowed to set their
                address.

                If empty, all countries are allowed, except for the ones in
                `deny_countries`.


                A country can not be in both `allow_countries` and
                `deny_countries`.
              type: array
              items:
                type: string
                format: iso3166-alpha2
            deny_countries:
              description: >
                List of countries where the customer is not allowed to set their
                address.


                A country can not be in both `allow_countries` and
                `deny_countries`.
              type: array
              items:
                type: string
                format: iso3166-alpha2
    DefaultCustomerTypeConfiguration:
      properties:
        default_customer_type:
          description: |
            Customer type to use as default for the customer.
          type: string
          enum:
            - b2c
            - b2b
    AllowDifferentBillingShippingAddressConfiguration:
      properties:
        allow_different_billing_shipping_address:
          description: >
            Allow that the shipping and billing address can be different.


            An array of strings, the values `b2c` and `b2b` can be used to

            limit the what types of customer that are allowed to submit
            different

            addresses for shipping and billing.


            By default we limit the shipping and billing addresses to be equal
            for

            both B2C and B2B customers.
          type: array
          default: []
          items:
            type: string
            enum:
              - b2c
              - b2b
    SystemRequestHeaders:
      type: object
      properties:
        dintero-system-name:
          type: string
          description: The name of the ecommerce solution
          example: woocommerce
        dintero-system-version:
          type: string
          description: The version number of the ecommerce solution
          example: 5.0.0
        dintero-system-plugin-name:
          type: string
          description: The name of the ecommerce plugin
          example: Dintero.Checkout.WooCommerce
        dintero-system-plugin-version:
          type: string
          description: The version number of the ecommerce plugin
          example: 2021.03.02
        user-agent:
          type: string
          description: The user-agent that performed the request
          example: 'Mozilla: Mozilla/5.0'
    PaymentOperationIntent:
      type: string
      enum:
        - unscheduled_purchase
        - recurring_purchase
        - generate_payment_token
      description: |
        Initiated by the merchant or used to generate a token
    RequestHeaders:
      type: object
      allOf:
        - $ref: '#/components/schemas/SystemRequestHeaders'
        - type: object
          properties:
            dintero-checkout-instance-id:
              type: string
              description: The instance of the checkout that performed the request
              example: abcd-14134556135
    MultiShipmentTopLevelShippingOption:
      allOf:
        - $ref: '#/components/schemas/SplitShippingOption'
        - properties:
            shipments:
              type: array
              description: >
                For multiple shipments we have a single top-level shipping
                object that contains

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

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


                For multiple shipments:
                  - do not define `splits` on the toplevel shipping option
                  - do not define `fee_split` on the toplevel shipping option
                  - the `pay_in_store` option is not compatible with `shipments`
                  - empty shipments array is not allowed
                  - single item multi shipping option is not allowed
              minItems: 2
              items:
                $ref: '#/components/schemas/MultiShipmentShippingOption'
    OrderAddress:
      type: object
      description: Address
      properties:
        first_name:
          type: string
          example: John
        last_name:
          type: string
          example: Doe
        address_line:
          type: string
          description: Gaustadalleen 21
        address_line_2:
          type: string
          description: PB 123
        co_address:
          type: string
          example: Land Lord
        business_name:
          type: string
          description: Name of the company
        postal_code:
          type: string
          description: The zip code / postal code of the address.
          example: '0349'
        postal_place:
          type: string
          description: The name of the postal code
          example: Oslo
        country:
          type: string
          format: iso3166-alpha2
          description: Country of the location
          example: 'NO'
        phone_number:
          type: string
          pattern: ^\+?\d{5,15}$
          description: |
            mobile number of a person / company, ITU/E.123 format with
            international prefix (+PPNNNNNNNNN...)
        email:
          type: string
          description: |
            The email address of a person or an organization
        latitude:
          type: number
        longitude:
          type: number
        comment:
          type: string
          description: |
            Comment about the address
        organization_number:
          type: string
          description: |
            The organization number of the customer.
        organization_type:
          type: string
          description: |
            Type indicating what kind of organization it is.
        customer_reference:
          type: string
          description: The customer's reference
        cost_center:
          type: string
          description: For companies that needs to specify a cost center.
    CollectorB2BPaymentOperationAddress:
      type: object
      required:
        - business_name
        - organization_number
        - address_line
        - postal_code
        - postal_place
        - country
      properties:
        business_name:
          type: string
          description: ACME Inc
          maxLength: 50
        organization_number:
          minLength: 9
          maxLength: 12
          type: string
          description: >
            The organization number of the customer. For Norway, the length is
            9. For Sweden, it's either 10 or 12 digits.
        address_line:
          type: string
          description: Gaustadalleen 21
          maxLength: 50
        postal_code:
          type: string
          description: The zip code / postal code of the address.
          example: '0349'
          maxLength: 50
        postal_place:
          type: string
          description: The name of the postal code
          example: Oslo
          maxLength: 50
        country:
          type: string
          format: iso3166-alpha2
          description: Country of the location
          example: 'NO'
        address_id:
          type: string
          example: address_1
          description: >
            The unique identification of the address from the available
            addresses for the business
    CollectorProduct:
      type: object
      description: |
        Collector payment product
      required:
        - id
        - type
        - credit_time
        - campaign_fee
        - origination_fee
        - notification_fee
        - total_amount
        - monthly_amount
        - first_monthly_amount
      properties:
        id:
          type: string
          description: |
            Id for the payment product
          example: IF_3_001
        type:
          type: string
          enum:
            - interest_free
            - annuity
          example: interest_free
        credit_time:
          type: integer
          description: |
            Number of months
          example: 3
        campaign_fee:
          description: |
            The fee for a "Buy now – pay later" Payment product
          type: integer
          example: 0
        origination_fee:
          type: integer
          description: |
            The startup fee for the payment product
          example: 9500
        notification_fee:
          type: integer
          description: |
            The notification fee for the payment product
          example: 3900
        annual_interest_rate:
          type: string
          description: |
            The interest rate for the payment product.
          example: '0.0'
        effective_annual_interest_rate:
          type: string
          description: |
            The effective annual interest rate for the payment product
          example: '54.69'
        total_amount:
          type: integer
          example: 309400
          description: The total amount to pay
        monthly_amount:
          type: integer
          example: 100000
          description: The amount to pay pr month
        first_monthly_amount:
          type: integer
          description: |
            The amount to pay in the first invoice. Origantion fee is added
            to the first invoice.
          example: 109500
    SessionOrder:
      type: object
      required:
        - amount
        - currency
      allOf:
        - $ref: '#/components/schemas/SessionOrderUpdate'
        - required:
            - merchant_reference
          properties:
            payout_destination_id:
              type: string
              maxLength: 40
              description: >
                An id that identifies the seller, value will be included

                in the settlement reports.


                Note: The seller must be configured before the funds will be
                paid out. See
                https://docs.dintero.com/docs/checkout/split-payment/add-payout-destinations
            merchant_reference:
              type: string
              description: |
                A reference by the merchant to identify the corresponding
                order for the Checkout Session
    RelativeTime:
      description: Relative time for delivery or pick-up
      type: object
      properties:
        working_days:
          type: array
          description: >
            The expected range of days until the relative time is reached.

            A range of `[0,0]` means the relative time is today. `[0,3]` means
            the relative time is within the next 3 days.
          example:
            - 1
            - 2
          minItems: 2
          maxItems: 2
          items:
            type: number
            minimum: 0
        shipping_day_of_week:
          type: number
          description: |
            The day of the week the relative time for shipping is on.
            1 is Monday, 2 is Tuesday, ..., 7 is Sunday.
          example: 3
          minimum: 1
          maximum: 7
        arrival_day_of_week:
          type: number
          description: |
            The day of the week the relative time for arrival is on.
            1 is Monday, 2 is Tuesday, ..., 7 is Sunday.
          example: 3
          minimum: 1
          maximum: 7
    ShippingAddressDetails:
      type: object
      description: Additional information about the shipping address
      properties:
        website_url:
          type: string
          description: |
            The website URL of the customer.
        opening_hours:
          $ref: '#/components/schemas/OpeningHours'
    EmdEvent:
      type: array
      description: >
        Only required if the item is related to an event or multiple events,

        like for example tickets to a concert.


        If you are selling an event package as a single ticket or item that

        includes multiple events, for example a festival, you need to provide

        information about all the individual events that are part of the
        package.
      items:
        type: object
        required:
          - event_name
          - event_company
          - genre_of_event
          - start_time
          - end_time
          - ticket_delivery_method
          - ticket_delivery_recipient
        properties:
          event_name:
            type: string
            description: Name of the event, e.g. "Fancy Singer"
            example: Michael Jackson
          event_company:
            type: string
            description: Name of the company arranging the event, e.g. "Happy Parties Ltd."
            example: Diamond Events
          genre_of_event:
            type: string
            description: Category or type of venue, e.g. "Pop"
            example: Pop
          arena_name:
            type: string
            description: Name of the venue, e.g. "Song Arena"
            example: Oslo Spektrum
          arena_location:
            type: object
            required:
              - city
              - country
            properties:
              street_address:
                type: string
                description: >-
                  Street address representing the venue location, e.g. "Sonja
                  Henies plass 2"
                example: Sonja Henies plass 2
              postal_code:
                type: string
                description: Postal code for the venue location, e.g. "0185"
                example: '0185'
              city:
                type: string
                description: City that the venue is located in, e.g. "Oslo"
                example: Oslo
              country:
                type: string
                description: >
                  Country that the venue is located in (ISO 3166-1 alpha-2
                  format), e.g. "NO"
                example: 'NO'
          start_time:
            type: string
            format: date-time
            description: >
              Start time of the event (ISO 8601 format), e.g.
              "2023-08-16T15:00:00Z".


              If a timezone is not specified we assume UTC.
            example: '2023-08-16T15:00:00Z'
          end_time:
            type: string
            format: date-time
            description: >
              End time of the event (ISO 8601 format), e.g.
              "2023-08-16T16:00:00Z".


              If a timezone is not specified we assume UTC.
            example: '2023-08-16T16:00:00Z'
          access_controlled_venue:
            type: boolean
            description: >-
              If tickets are digitally checked when entering the venue, e.g.
              true
            example: true
          ticket_delivery_method:
            type: string
            enum:
              - pick_up
              - email
              - post
              - phone
            example: email
          ticket_delivery_recipient:
            type: string
            description: >
              Name of the recipient the ticket is delivered to, e.g.
              "recipient@mail.com".


              If email or phone, then use either the email address or the phone
              number respectively.
            example: recipient@mail.com
          affiliate_name:
            type: string
            description: |
              Name of the affiliate that originated the purchase.
            example: Klarna affiliate
    EmdRecurring:
      type: object
      description: >
        Only required if the item is related to a subscription.


        If that is the case, you need to provide information about both the
        subscription

        and the customer account.
      required:
        - subscription
        - customer_account_info
      properties:
        subscription:
          $ref: '#/components/schemas/EmdSubscription'
        customer_account_info:
          $ref: '#/components/schemas/EmdCustomerAccountInfo'
    EmdTravel:
      type: object
      description: |
        Only required if the item is part of a travel-related transaction.

        If that is the case, you need to provide information about the itinerary
        to be booked.
      properties:
        air_reservation_details:
          $ref: '#/components/schemas/EmdAirReservationDetails'
        bus_reservation_details:
          $ref: '#/components/schemas/EmdBusReservationDetails'
        train_reservation_details:
          $ref: '#/components/schemas/EmdTrainReservationDetails'
        ferry_reservation_details:
          $ref: '#/components/schemas/EmdFerryReservationDetails'
        hotel_reservation_details:
          $ref: '#/components/schemas/EmdHotelReservationDetails'
        car_rental_reservation_details:
          $ref: '#/components/schemas/EmdCarRentalReservationDetails'
    EmdMarketplaceOrder:
      type: object
      description: >
        Only required if them item is related to a marketplace order.


        If that is the case, you need to provide information about both the
        seller and

        the winner.
      required:
        - seller_info
        - winner_info
      properties:
        seller_info:
          $ref: '#/components/schemas/EmdMarketplaceSellerInfo'
        winner_info:
          $ref: '#/components/schemas/EmdMarketplaceWinnerInfo'
    Address:
      type: object
      required:
        - address_line
        - postal_place
        - country
      properties:
        address_line:
          type: string
          example: Sommerkroveien 34
        address_line_2:
          type: string
          example: PB 123
        postal_code:
          type: string
          example: '0349'
        postal_place:
          type: string
          example: Oslo
        country:
          type: string
          format: iso-3166-1
          description: |
            ISO 3166-1 country code
          example: 'NO'
    DiscountType:
      type: string
      enum:
        - customer
        - periodic
        - manual
        - loyalty
        - total
        - employee
        - external
    SessionUrls:
      type: object
      required:
        - return_url
      properties:
        return_url:
          type: string
          format: uri
          example: https://example.com/accept
          description: >
            URL to page where Checkout will redirect the

            customer to after the Checkout process has ended.


            If a transaction was completed successfully, a `transaction_id`

            will be appended to the URL as a `query` string parameter


            > A `transaction_id` will be appended to the URL if the

            > Checkout failed with `error=capture`


            > A transaction with status `ON_HOLD` must be handled as a payment

            > that is pending approval, where the transaction will later be
            updated

            > with a final payment staus `AUTHORIZED` or `FAILED`.

            > We recommend that `callback_url` is used to receive the callback
            when

            > the transaction changes status from `ON_HOLD` to `AUTHORIZED` or
            `FAILED`.

            > Alternative is to do an hourly/daily poll on the transaction to
            check

            > if the status has changed.


            *Example*:

               ```
               https://example.com/accept?transaction_id=T00000000.3YkJXSdSnUBXcmQSzn7uJj
               ```

             query name        | type         | description                    | required
            ------------------ | :----------: | ------------------------------ |
            :-----------:

            transaction_id     |   string     | Transaction Id                 |
            false

            error              |   string     | Error code identifying cause   |
            false

            merchant_reference |   string     | The merchants reference        |
            true


            In case of that something went wrong with the payment flow, an

            `error` query parameter will be appended to the URL. The value

            of the error is a code identifying the cause.


            error         | Description

            ------------- | ------------

            cancelled     | Customer cancelled the checkout payment

            authorization | Customer failed to authorize the payment

            failed        | The transaction has been rejected by us, or an error
            has occurred during transaction processing


            ### configuration.channel=in_app


            The `in_app` channel is intended for payments done from mobile
            devices

            where `url.return_url` can be set to the application's appswitch
            URL.


            #### initial_recipient=merchant


            If the query-param `initial_recipient=merchant` is appended to the

            appswitch URL, the payment app will switch directly to the app,

            i.e. without doing a redirect.


            **The option is not supported for:**


            - payex.vipps

            - payex.swish

            - bambora.mobilepay


            Following query parameters will be added to the `return_url`

             query name               | type         | description                    | required
            ------------------------- | :----------: |
            ------------------------------ | :-----------:

            transaction_id            |   string     | Transaction
            Id                 | false

            session_id                |   string     | Session
            Id                     | false

            error                     |   string     | Error code identifying
            cause   | false

            payment_return_url        |   string     | Redirect URL to Dintero
            API    | false

            merchant_reference        |   string     | The merchants
            reference        | true


            If the `payment_return_url` is present, you can use it to get a url
            containing the `session_id`

            or `transaction_id`. `payment_return_url` will only be present when
            `configuration.channel=in_app`

            and `initial_recipient=merchant` is appended on the appswitch URL.


            > The `payment_return_url` may initially return `202 Accepted` if
            the

            > payment confirmation is not ready yet.

            > Once ready, a `302 Found` redirect is returned to the `return_url`


            You will in this case be required to poll for status on the payment
            by using the

            `session_id` or `transaction_id` to poll from the endpoints:


            - [GET /v1/sessions/{session_id}](#operation/checkout_session_get)

            - [GET
            /v1/transactions/{transaction_id}](#operation/transactions_id_get)


            Poll the transaction until it has been updated with one of these
            statuses:


            - AUTHORIZED

            - CAPTURED

            - FAILED


            In case no `transaction_id` is included in the return url, poll the

            session to get the `transaction_id`


            Example url:
            `myapp://?initial_recipient=merchant&transaction_id=T12345678.abc&merchant_reference=mref123&session_id=T12345678.abd`
        callback_url:
          $ref: '#/components/schemas/CallbackUrl'
        merchant_terms_url:
          type: string
          format: uri
          pattern: https?://*
          example: https://example.com/terms.html
          description: >
            URL to a webpage with the merchant's Terms of Service. Will be
            linked to from the checkout.
    SessionCustomer:
      type: object
      properties:
        customer_id:
          type: string
          description: |
            Customer id
        email:
          type: string
          example: john.doe@example.com
          description: |
            Customer email address
        phone_number:
          type: string
          example: '+4799999999'
          description: |
            Customer phone number, ITU/E.123 format with
            international prefix (+PPNNNNNNNNN...)
    CheckboxConfiguration:
      type: array
      description: |
        Configuration for checkboxes that should be part of the checkout
      items:
        $ref: '#/components/schemas/Checkbox'
      maxItems: 2
    SessionExpressUpdate:
      type: object
      required:
        - shipping_options
      properties:
        shipping_options:
          type: array
          description: >
            Shipping options that will be presented to the end user after the

            end user has submitted a shipping address.


            To dynamically update the shipping_options when the
            _`order.shipping_address`_ is

            changed by the end user in the checkout, use the

            _`url.shipping_address_callback_url`_.

             If the merchant is not able to ship the order to the end users shipping address, use an empty array.

             If there is only one option, a free delivery, the order still has to contain one option with a _`price.amount`_ of 0.
          items:
            $ref: '#/components/schemas/ShippingOption'
        shipping_mode:
          type: string
          enum:
            - shipping_required
            - shipping_not_required
          default: shipping_required
    AutoCaptureConfiguration:
      properties:
        auto_capture:
          type: boolean
          description: >
            If `true` the transaction from the payment session will be captured

            automatically after the transaction has been `AUTHORIZED`. The
            checkout

            sessions `callback_url` will not be called until after the
            transaction

            has been `CAPTURED`.


            If `auto_capture` is not specified it defaults to `false`.


            A successful auto-capture of a transaction sometimes requires more

            than one capture attempt. This can be the case if the payment
            gateway

            is down or is experiencing heavy traffic.


            Dintero will attempts capture retries for 48 hours, the
            `callback_url`

            will be invoked when capture succeeds.


            Manual capture of a transaction that is pending auto-capture will

            stop the auto-capture process from completing the capture.
    PublishConfiguration:
      description: |
        Publish checkout message to the customer.
      type: array
      items:
        type: object
        required:
          - type
          - channel
        properties:
          channel:
            type: string
            enum:
              - sms
              - push
          type:
            type: string
            enum:
              - checkout-link
              - app
              - terminal
          id:
            type: string
            readOnly: true
          status:
            type: string
            readOnly: true
            description: |
              status of the message sent to the customer.

              **`skipped`** will used in case where publish
              cannot be sent given the `session.customer`.
            enum:
              - sent
              - skipped
              - failed
    BamboraConfiguration:
      type: object
      description: Bambora configuration
      properties:
        type:
          description: Denotes what kind of config parameter this is
          type: string
          enum:
            - payment_type
        applepay:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: Enable Apple Pay Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
        creditcard:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable Credit Card Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            generate_payment_token:
              type: boolean
              default: false
              description: |
                generate payment token to use for future payments

                The generated payment token will be made available from
                the transaction details.
        googlepay:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: Enable Google Pay Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
        mobilepay:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable MobilePay Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
        vipps:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable Vipps Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
    DinteroConfiguration:
      type: object
      description: Dintero configuration
      properties:
        type:
          description: Denotes what kind of config parameter this is
          type: string
          enum:
            - payment_type
        wallets:
          type: object
          description: >
            Allow the payment session to be fully or partially authorized with

            Dintero Wallets gift card.


            Please note that the following payment methods are not supported
            together

            with Dintero Wallets gift cards: `vipps`, `swish.swish`,

            `klarna.billie`, `instabank`, `collector`, and `netaxept`.

            Creating a session with Dintero Wallets and either of the
            abovementioned

            payment types enabled will result in an error.
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable gift card
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
        zero:
          type: object
          description: >
            Allow initiating pay on zero amount session, the payability will
            only

            be enabled if the session order amount is zero. Initiating a
            `dintero.zero`

            payment will result in a transaction with `dintero.zero` payment
            product type

            that will be excluded from settlement reports (as it will not have
            any payout)
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable zero amount session
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
        external:
          type: object
          description: |
            Allow initiating pay on an external payment method.
          required:
            - enabled
            - display
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable external payment method
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            display:
              type: object
              description: |
                Display configuration for the payment method
              required:
                - payment_method_label
                - button_label
              properties:
                payment_method_label:
                  type: string
                  maxLength: 50
                  description: |
                    Label to be shown in Checkout for the payment method
                content:
                  type: object
                  description: >
                    Supplimentary content to be rendered within the payment
                    method.


                    Having both `content.title` and `content.description`
                    omitted will render just the pay button in the payment
                    method.
                  properties:
                    title:
                      type: string
                      maxLength: 50
                      description: >
                        Title to be shown over the pay button within the payment
                        method. If omitted, it will not be rendered.
                    description:
                      type: string
                      maxLength: 255
                      description: >
                        Description to be shown underneath the title within the
                        payment method. If omitted, it will not be rendered.
                button_label:
                  type: string
                  maxLength: 50
                  description: >
                    Label to be shown on the pay button within the payment
                    method
                terms:
                  type: array
                  description: |
                    Terms & conditions to be presented for the payment method
                  items:
                    type: object
                    maxItems: 5
                    required:
                      - ref
                      - href
                      - label
                    properties:
                      ref:
                        type: string
                        description: |
                          Reference for the link
                      label:
                        type: string
                        description: |
                          Label to use in place of the link
                      href:
                        type: string
                        format: uri
                        description: |
                          URL of the link
    DinteroPspConfiguration:
      type: object
      description: Dintero PSP configuration
      properties:
        type:
          description: Denotes what kind of config parameter this is
          type: string
          enum:
            - payment_type
        creditcard:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable creditcard
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            generate_payment_token:
              type: boolean
              default: false
              description: |
                generate payment token to use for future payments

                The generated payment token will be made available from
                the transaction details.
            token_supported_auth_methods:
              $ref: '#/components/schemas/DinteroPspTokenAuthMethods'
            sca_policy:
              $ref: '#/components/schemas/DinteroPaymentOptionSCAPolicy'
            generate_payment_token_config:
              type: object
              additionalProperties: false
              description: >
                Configuration for generating payment token. If
                `generate_payment_token` is true and 

                configuration is omitted, the card will be tokenized.
              properties:
                save_card_checkbox:
                  type: string
                  enum:
                    - opt_in
                    - opt_out
                  description: >
                    `opt_in` - Cardholder needs to opt-in to saving card, so the
                    checkbox should not be checked by default.

                    `opt_out` - Cardholder needs to opt-out of saving card, so
                    the checkbox should be checked by default.


                    `generate_payment_token` must be true for this to have any
                    effect. If `generate_payment_token` is true

                    and `save_card_checkbox` is omitted, the card will be
                    tokenized.
        vipps:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable Vipps
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            sca_policy:
              $ref: '#/components/schemas/DinteroPaymentOptionSCAPolicy'
        applepay:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable Apple Pay
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            sca_policy:
              $ref: '#/components/schemas/DinteroPaymentOptionSCAPolicy'
            details:
              type: object
              properties:
                domain_names:
                  description: >
                    An array of domain names used for embedding the checkout
                    with Apple Pay. The value is just the domain name, without
                    the protocol, port or path.
                  type: array
                  items:
                    type: string
                    example: example.dintero.com
                token_event_notification_url:
                  type: string
                  description: >
                    URL used for recieving of merchant token notifications. It
                    should

                    be set as `tokenNotificationURL` parameter when
                    reccuring/MIT

                    payment is being created.
        googlepay:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable Google Pay
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            sca_policy:
              $ref: '#/components/schemas/DinteroPaymentOptionSCAPolicy'
            generate_payment_token:
              type: boolean
              default: false
              description: |
                generate payment token to use for future payments

                The generated payment token will be made available from
                the transaction details.
        clicktopay:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable Visa Click-to-Pay
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            generate_payment_token:
              type: boolean
              default: false
              description: |
                generate payment token to use for future payments

                The generated payment token will be made available from
                the transaction details.
            sca_policy:
              $ref: '#/components/schemas/DinteroPaymentOptionSCAPolicy'
    InstabankConfiguration:
      type: object
      properties:
        finance:
          type: object
          description: finance payment
          required:
            - enabled
          properties:
            enabled:
              description: enable finance payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            product:
              allOf:
                - readOnly: true
                - $ref: '#/components/schemas/InstabankFinanceProduct'
        invoice:
          type: object
          description: invoice payment
          required:
            - enabled
          properties:
            enabled:
              description: enable invoice payment (only for amounts greater than 500 NOK)
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            require_applicant:
              type: boolean
            product:
              allOf:
                - readOnly: true
                - $ref: '#/components/schemas/InstabankInvoiceProduct'
        installment:
          type: object
          description: Fixed Part Payment
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
              default: payment_product_type
            enabled:
              description: enable Instabank Installment Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            products:
              readOnly: true
              type: array
              items:
                $ref: '#/components/schemas/InstabankInstallmentProduct'
        postponement:
          type: object
          description: Postpone payment
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
              default: payment_product_type
            enabled:
              description: enable Instabank Postponement Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            products:
              readOnly: true
              type: array
              items:
                $ref: '#/components/schemas/InstabankPostponementProduct'
    NetaxeptConfiguration:
      type: object
      description: Netaxept configuration
      properties:
        type:
          description: Denotes what kind of config parameter this is
          type: string
          enum:
            - payment_type
        creditcard:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable Credit Card Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            terminal:
              type: object
              description: |
                Use Netaxept terminal instead of Dintero Checkout

                See https://shop.nets.eu/web/partners/register
              required:
                - terminal
                - terminal_single_page
              properties:
                terminal:
                  type: string
                  enum:
                    - /Terminal/default.aspx
                    - /terminal/mobile/default.aspx
                terminal_design:
                  description: >
                    Name of the terminal template to use, created in Netaxept
                    Admin
                  type: string
                terminal_single_page:
                  description: Set hosted payment window to single page
                  type: boolean
                terminal_layout:
                  type: string
    PayExConfiguration:
      type: object
      properties:
        dynamic_descriptor:
          type: string
          maxLength: 40
          description: |
            A textual description max 40 characters of the purchase.
        swish:
          type: object
          required:
            - enabled
          properties:
            enabled:
              description: enable Payex Swish Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
        creditcard:
          type: object
          required:
            - enabled
          properties:
            enabled:
              description: enable Credit Card Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            generate_payment_token:
              type: boolean
              default: false
              description: |
                generate payment token to use for future payments

                The generated payment token will be made available from
                the transaction details.
            generate_recurrence_token:
              type: boolean
              default: false
              description: >
                generate recurrence payment token to use for future payments


                The generated recurrence payment token will be made available
                from

                the transaction details.
            no_cvc:
              type: boolean
              description: >
                Disable the CVC field for payments where payment token is used.

                > To use this feature it has to be enabled on the contract with
                Swedbank Pay.
        mobilepay:
          type: object
          required:
            - enabled
          properties:
            enabled:
              description: enable Payex MobilePay Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
        vipps:
          type: object
          required:
            - enabled
          properties:
            enabled:
              description: enable Payex Vipps Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
        applepay:
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable PayEx Apple Pay payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
        clicktopay:
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable PayEx Click to Pay payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
        googlepay:
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable PayEx Google Pay payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
    VippsConfiguration:
      type: object
      required:
        - enabled
      properties:
        enabled:
          description: enable vipps payment
          type: boolean
        payability:
          $ref: '#/components/schemas/SessionPayability'
        dynamic_descriptor:
          type: string
          maxLength: 100
          description: |
            A short reference / descriptor that can be displayed to
            the end user
    CollectorConfiguration:
      type: object
      description: Collector configuration
      properties:
        type:
          description: Denotes what kind of config parameter this is
          enum:
            - payment_type
        dynamic_descriptor:
          type: string
          maxLength: 40
          description: |
            A textual description max 40 characters of the purchase.
        invoice:
          type: object
          description: Invoice / Part Payment
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
              default: payment_product_type
            enabled:
              description: enable Collector Bank Invoice Payment
              type: boolean
            countries:
              type: array
              items:
                type: string
                format: iso-3166-1
            options:
              type: object
              properties:
                enable_on_hold:
                  description: >
                    Create the collector transaction with status `ON_HOLD` and
                    let

                    the Collector callback update the transaction state from
                    `ON_HOLD`

                    to `AUTHORIZED` or `FAILED`.


                    A callback will be sent to the `callback_url` when the
                    transaction

                    changes state from `ON_HOLD` to any new state.


                    This will override the payment option `enable_on_hold` and
                    gateway config `options.enable_on_hold`-setting.
                  type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
        invoice_b2b:
          type: object
          description: Invoice / Part Payment
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
              default: payment_product_type
            payability:
              $ref: '#/components/schemas/SessionPayability'
            enabled:
              description: enable Collector Bank Invoice Payment B2B
              type: boolean
            countries:
              type: array
              items:
                type: string
                format: iso-3166-1
            options:
              type: object
              properties:
                disable_collector_b2b_address_enforcement:
                  type: boolean
                  default: false
                  description: >
                    For `collector.invoice_b2b`. By default, the
                    shipping_address B2B payments will be restricted to

                    the registered addresses of a company.


                    Setting this on the session will override the
                    `collector_b2b_address_enforcement` in `payment_options`

                    on the checkout configuration.
                enable_on_hold:
                  description: >
                    Create the collector transaction with status `ON_HOLD` and
                    let

                    the Collector callback update the transaction state from
                    `ON_HOLD`

                    to `AUTHORIZED` or `FAILED`.


                    A callback will be sent to the `callback_url` when the
                    transaction

                    changes state from `ON_HOLD` to any new state.


                    This will override the gateway's
                    `options.enable_on_hold`-setting.
                  type: boolean
        invoice_b2b_preapproved:
          type: object
          description: Invoice for pre-approved B2B-customers
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
              default: payment_product_type
            payability:
              $ref: '#/components/schemas/SessionPayability'
            enabled:
              description: enable Collector Bank Invoice Payment B2B
              type: boolean
            countries:
              type: array
              items:
                type: string
                format: iso-3166-1
            accounts:
              description: >
                All Collector B2B accounts configured for the customer's phone
                number at the merchant.
              type: array
              items:
                type: object
                properties:
                  billing_address:
                    $ref: '#/components/schemas/CollectorB2BAddress'
                  company_id:
                    type: string
                    description: Token to represent the company
        finance:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
              default: payment_product_type
            enabled:
              description: enable Collector Bank Finance Payment
              type: boolean
            countries:
              type: array
              items:
                type: string
                format: iso-3166-1
            payability:
              $ref: '#/components/schemas/SessionPayability'
        installment:
          type: object
          description: Fixed Part Payment
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
              default: payment_product_type
            enabled:
              description: enable Collector Bank Installment Payment
              type: boolean
            countries:
              type: array
              items:
                type: string
                format: iso-3166-1
            options:
              type: object
              properties:
                enable_on_hold:
                  description: >
                    Create the collector transaction with status `ON_HOLD` and
                    let

                    the Collector callback update the transaction state from
                    `ON_HOLD`

                    to `AUTHORIZED` or `FAILED`.


                    A callback will be sent to the `callback_url` when the
                    transaction

                    changes state from `ON_HOLD` to any new state.


                    This will override the gateway's
                    `options.enable_on_hold`-setting.
                  type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
    KlarnaConfiguration:
      type: object
      description: Klarna configuration
      properties:
        type:
          description: Denotes what kind of config parameter this is
          type: string
          enum:
            - payment_type
        klarna:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable Klarna Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
        billie:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable Klarna B2B Payment with Billie
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
    KraviaConfiguration:
      type: object
      description: Kravia configuration
      properties:
        type:
          description: Denotes what kind of config parameter this is
          type: string
          enum:
            - payment_type
        invoice_b2b:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable Kravia Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            days_until_due:
              type: integer
              description: |
                The number of days until the invoice is due.
              minimum: 0
              maximum: 365
              format: date
            require_identity_verification:
              type: boolean
              default: true
              description: >
                Whether identity verification is required, before allowing

                payments.

                Defaults to true, it will require the customer to verify
                themselves

                before making a payment via methods like BankID, if false no
                verification

                will be required.
            invoice_channel:
              allOf:
                - $ref: '#/components/schemas/InvoiceChannel'
                - readOnly: true
        invoice_b2b_grouped:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable Kravia grouped invoices
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            invoice_schedule:
              type: object
              properties:
                interval:
                  description: >
                    The interval at which the invoice should be issued. The
                    invoice

                    will be issued on the first day of the interval.
                  type: string
                  enum:
                    - monthly
                    - quarterly
            days_until_due:
              type: number
              format: int32
              description: |
                The number of days until the invoice is due.
              minimum: 0
              maximum: 365
            require_identity_verification:
              type: boolean
              default: true
              description: >
                Whether identity verification is required, before allowing

                payments.

                Defaults to true, it will require the customer to verify
                themselves

                before making a payment via methods like BankID, if false no
                verification

                will be required.
        invoice_b2c:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable Kravia B2C invoice
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            days_until_due:
              type: integer
              description: |
                The number of days until the invoice is due.
              minimum: 0
              maximum: 365
              format: date
            invoice_channel:
              allOf:
                - $ref: '#/components/schemas/InvoiceChannel'
                - readOnly: true
            require_identity_verification:
              type: boolean
              default: true
              description: >
                Whether identity verification is required, before allowing

                payments.

                Defaults to true, it will require the customer to verify
                themselves

                before making a payment via methods like BankID, if false no
                verification

                will be required. In b2c cases this is only available when the
                merchant will

                distribute the invoice themselves.
    TwoConfiguration:
      type: object
      description: Two configuration
      properties:
        type:
          description: Denotes what kind of config parameter this is
          type: string
          enum:
            - payment_type
        invoice_b2b:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable Two Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            duration_days:
              type: integer
              description: The number of days until the invoice is due.
              enum:
                - 14
                - 30
    SantanderConfiguration:
      type: object
      properties:
        type:
          description: Denotes what kind of config parameter this is
          enum:
            - payment_type
        debit_account:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              enum:
                - payment_product_type
            enabled:
              description: enable Santander Finance Debit Account
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            branding_name:
              type: string
              description: The name of the chain
            accounts:
              description: Debit accounts belonging to the customer's phone number
              type: array
              items:
                type: object
                properties:
                  account_number_token:
                    type: string
                    description: Token to represent the account number
                  masked_account_number:
                    type: string
                    description: Representation of the account number for display purposes
    SeitatechConfiguration:
      type: object
      description: Seitatech configuration
      properties:
        type:
          description: |
            Denotes what kind of config parameter this is
          type: string
          enum:
            - payment_type
        in_person:
          type: object
          description: >
            Enabling `in_person` via Seitatech requires `order.store.id`,

            `order.store.terminal_id` and `order.store.payout_destination_id`

            to be set. The terminal must be registered via the management API

            with a store and payout destination.


            When `seitatech.in_person` is the only enabled payment method, the

            transaction will be automatically triggered on the terminal when

            the session is created.


            If there are other payment options enabled in addition to
            seitatech.in_person,

            the in-person payment must be initiated by performing a

            [POST
            /v1/sessions/{session_id}/pay](/#operation/checkout_sid_pay_post)


            Use callbacks and webhooks to receive notification when the
            in-person payment

            is completed
          required:
            - enabled
          properties:
            type:
              type: string
              description: \ Denotes what kind of config parameter this is
              enum:
                - payment_product_type
            enabled:
              description: enable in person payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
    SwishConfiguration:
      type: object
      description: Swish configuration
      properties:
        type:
          description: Denotes what kind of config parameter this is
          type: string
          enum:
            - payment_type
        swish:
          type: object
          required:
            - enabled
          properties:
            type:
              description: Denotes what kind of config parameter this is
              type: string
              enum:
                - payment_product_type
            enabled:
              description: enable Swish Payment
              type: boolean
            payability:
              $ref: '#/components/schemas/SessionPayability'
            payout_enabled:
              description: Flag to check if Dintero handles payout for this payment product
              type: boolean
    PayoutConfiguration:
      type: object
      description: |
        Payout configuration
      properties:
        dynamic_payout_destination_ids:
          type: array
          description: >
            Use the order store id to control what `payout_destination_id`
            should

            be use


            A session created with the option set must have a store id that
            resolves

            to a payout_destination_id or have payout_destination_id set


            A session where both `order.store.id` and
            `order.payout_destination_id`

            will not be updated with match from `dynamic_payout_destination` if

            `overwrite_payout_destination_id` is not set to `true`             


            - **`order_store_id`**: May specific store id to specifc payout
            destination id

            - **`order_store_id_as_order_payout_destination_id`**: Use store id
            as payout destination id
          minItems: 1
          items:
            type: object
            required:
              - type
            properties:
              type:
                type: string
                enum:
                  - order_store_id
                  - order_store_id_as_order_payout_destination_id
              order_store_id:
                type: string
                description: Required if type is `order_store_id`
                example: STORE_123
              order_payout_destination_id:
                type: string
                description: Required if type is `order_store_id`
                example: PD_123
              overwrite_payout_destination_id:
                description: |
                  Only applicable when type is `order_store_id`.

                  Overwrite existing order payout_destination_id
                type: boolean
                default: false
        payment_products:
          type: array
          readOnly: true
          description: |
            The payment products where payout is enabled
          minItems: 1
          items:
            type: object
            required:
              - payment_product
            properties:
              payment_product:
                type: string
                description: Payment product
                enum:
                  - bambora
                  - collector
                  - payex
                  - klarna
                  - swish
                  - dintero_psp
                  - kravia
    AgeVerificationConfiguration:
      type: object
      description: >
        Configure age verification for a given payment session. When enabled,
        will trigger an age verification flow when the shopper initiates
        payment.
      required:
        - enabled
        - minimum_age_verification
      properties:
        enabled:
          type: boolean
          description: >
            Use this flag to enable or disable age verification for a given
            payment session.
        minimum_age_required:
          type: integer
          description: |
            The minimum age required to complete the payment session.
          example: 18
    SessionPayability:
      type: string
      description: >-
        Determines if the payment_product_type is currently available for
        payment
      enum:
        - payable
        - disabled_by_gateway
        - disabled_by_order_amount
    SessionOrderUpdate:
      type: object
      properties:
        amount:
          type: integer
          format: int32
          example: 72200
          description: >
            The amount to authorize/capture including VAT and discounts.

            In smallest unit for the currency, e.g. cents


            The `amount` should be equal to the sum of the `items.amount` +
            `shipping_option.amount`.
        currency:
          type: string
          format: iso4217-code
          example: NOK
          description: >-
            The three-character ISO-4217 currency.
            https://en.wikipedia.org/wiki/ISO_4217
        vat_amount:
          type: integer
          format: int32
          example: 13660
          description: >
            The VAT of the `amount` parameter.

            Only used for display purposes.


            In smallest unit for the currency, e.g. cents


            The `vat_amount` should be equal to the sum of the
            `items.vat_amount` + `shipping_option.vat_amount`.
        merchant_reference_2:
          type: string
          description: |
            A reference by the merchant to identify the corresponding
            order for the Checkout Session
        event_reference:
          type: string
          description: >
            Default event_reference to include in transaction events. The value
            is included

            in the settlement report


            Use of `capture_reference` and `refund_reference` during capture and
            refund

            overrides the provided value
        shipping_address:
          $ref: '#/components/schemas/OrderAddress'
        billing_address:
          $ref: '#/components/schemas/OrderAddress'
        partial_payment:
          type: boolean
          default: false
          description: |
            This is a partial payment where the `order.amount` can be lower or
            equal to the sum of `order.items.amount`
        items:
          type: array
          description: >
            Details about the order items.


            #### Instabank

            `required` if Instabank payment is configured in and partial_payment
            is false.

            All items must include a unique `line_id`, quantity and amount


            #### Collector Bank

            `required` if Collector Bank payment is configured in and
            partial_payment is false.

            All items must include a unique `line_id`, quantity and amount
          items:
            allOf:
              - $ref: '#/components/schemas/OrderItem'
              - $ref: '#/components/schemas/OrderDiscountItem'
          example:
            - amount: 2000
              quantity: 2
              line_id: '1'
              description: Forsvinnignspølse
              vat: 20
              id: '10'
            - amount: 6600
              quantity: 2
              line_id: '2'
              description: Vissvossafår på neppebrød
              vat: 20
              id: '6'
              eligible_for_discount: true
              is_changed: true
              gross_amount: 10000
              discount_lines:
                - amount: 4400
                  discount_type: customer
                  discount_id: ed960ace-eb16-4e2e-ae52-b27647ccae8d
                  description: Vossafestpris
                  line_id: 1
            - amount: 59700
              quantity: 3
              line_id: '3'
              description: Luftboller
              vat: 20
              id: '1'
        gross_amount:
          type: number
          readOnly: true
          description: |
            The origin amount to authorize/capture including VAT
            before any discount, only set if the session was updated
            when calculating discounts.

            In smallest unit for the currency, e.g. cents
        is_changed:
          type: boolean
          readOnly: true
          description: |
            The original order amount was changed by discount
            given.
        shipping_option:
          $ref: '#/components/schemas/MultiShipmentTopLevelShippingOption'
        store:
          $ref: '#/components/schemas/Store'
        discount_lines:
          description: |
            Discounts given, additions to any items discount_lines.
          type: array
          items:
            $ref: '#/components/schemas/DiscountItem'
        discount_codes:
          type: array
          items:
            type: string
            example: SUMMER20
        gift_cards:
          type: array
          description: |
            The gift cards selected, the part of `order.amount` that will be
            authorized using gift cards
          maxItems: 1
          items:
            $ref: '#/components/schemas/Giftcard'
    OpeningHours:
      type: object
      properties:
        open_now:
          type: boolean
          description: |
            Indicates if the location is open now.
          example: true
        periods:
          type: array
          items:
            type: object
            description: |
              A period of time when the opening hours are valid.
            properties:
              opens_at:
                type: string
                format: time
                example: '08:00'
              closes_at:
                type: string
                format: time
                example: '16:00'
              day_of_week:
                type: number
                description: |
                  The day of the week when the opening hours are valid.
                example: 1
        timezone:
          type: string
          description: |
            The timezone of the location.
          example: Europe/Oslo
    EmdSubscription:
      type: object
      description: |
        Details related to the subscription.
      required:
        - subscription_name
        - start_time
        - end_time
        - auto_renewal_of_subscription
      properties:
        subscription_name:
          type: string
          description: Name of the product on subscription, e.g. "Contact lenses"
          example: Contact lenses
        start_time:
          type: string
          format: date-time
          description: |
            The start time of the subscription (ISO 8601 format),
            e.g. "2023-08-16T15:00:00Z".

            If a timezone is not specified we assume UTC
          example: '2023-08-16T15:00:00Z'
        end_time:
          type: string
          format: date-time
          description: |
            The end time of the subscription (ISO 8601 format),
            e.g. "2023-09-16T15:00:00Z".

            If a timezone is not specified we assume UTC
          example: '2023-09-16T15:00:00Z'
        auto_renewal_of_subscription:
          type: boolean
          description: |
            Whether the subscription will be auto renewed upon expiry, e.g. true
          example: true
        affiliate_name:
          type: string
          description: |
            Name of the affiliate that originated the purchase.
          example: Klarna affiliate
    EmdCustomerAccountInfo:
      type: object
      description: >
        Information related to the customer that wants to purchase the
        subscription.
      required:
        - unique_account_identifier
        - account_registration_date
        - account_last_modified
      properties:
        unique_account_identifier:
          type: string
          description: |
            Unique name / number to identify the specific customer account.
            Max 24 characters, e.g. "Adam Adamsson"
          example: Adam Adamsson
        account_registration_date:
          type: string
          description: |
            The date and time the account was registered (ISO 8601 format),
            e.g. "2023-08-16T15:00:00Z".

            If a timezone is not specified we assume UTC.
          example: '2023-08-16T15:00:00Z'
        account_last_modified:
          type: string
          description: |
            The date and time the account was last modified (ISO 8601 format),
            e.g. "2023-10-16T15:00:00Z".

            If a timezone is not specified we assume UTC.
          example: '2023-10-16T15:00:00Z'
    EmdAirReservationDetails:
      type: object
      description: |
        Details about the reservation of airline tickets.
      required:
        - itinerary
      properties:
        pnr:
          type: string
          description: |
            Trip booking number, e.g. "VH67899"
          example: VH67899
        itinerary:
          type: array
          description: >
            Itinerary data, one per segment.


            If you are selling a ticket that contains one flight from Oslo to
            Munich,

            and another flight from Munich to Dubai, you need to provide one

            itinerary object for each of these two flights, and so on.
          items:
            $ref: '#/components/schemas/EmdAirReservationDetailsItinerary'
        insurance:
          type: array
          description: Insurance data, one per segment
          items:
            $ref: '#/components/schemas/EmdTravelInsurance'
        passengers:
          type: array
          description: Passenger data, one per passenger.
          items:
            $ref: '#/components/schemas/EmdTravelPassenger'
        affiliate_name:
          type: string
          description: Name of the affiliate that originated the purchase.
          example: Klarna affiliate
    EmdBusReservationDetails:
      type: object
      description: |
        Details about the reservation of bus tickets.
      required:
        - itinerary
      properties:
        pnr:
          type: string
          description: |
            Trip booking number, e.g. "VH67899"
          example: VH67899
        itinerary:
          type: array
          description: >
            Itinerary data, one per segment.


            If you are selling a ticket that contains one bus journey from Oslo
            to Munich,

            and another bus journey from Munich to Rome, you need to provide one

            itinerary object for each of these two bus journeys, and so on.
          items:
            $ref: '#/components/schemas/EmdBusReservationDetailsItinerary'
        insurance:
          type: array
          description: Insurance data, one per segment
          items:
            $ref: '#/components/schemas/EmdTravelInsurance'
        passengers:
          type: array
          description: Passenger data, one per passenger.
          items:
            $ref: '#/components/schemas/EmdTravelPassenger'
        affiliate_name:
          type: string
          description: Name of the affiliate that originated the purchase.
          example: Klarna affiliate
    EmdTrainReservationDetails:
      type: object
      description: |
        Details about the reservation of train tickets.
      required:
        - itinerary
      properties:
        pnr:
          type: string
          description: |
            Trip booking number, e.g. "VH67899"
          example: VH67899
        itinerary:
          type: array
          description: >
            Itinerary data, one per segment.


            If you are selling a ticket that contains one train journey from
            Oslo to Munich,

            and another train journey from Munich to Rome, you need to provide
            one

            itinerary object for each of these two train journeys, and so on.
          items:
            $ref: '#/components/schemas/EmdTrainReservationDetailsItinerary'
        insurance:
          type: array
          description: Insurance data, one per segment
          items:
            $ref: '#/components/schemas/EmdTravelInsurance'
        passengers:
          type: array
          description: Passenger data, one per passenger.
          items:
            $ref: '#/components/schemas/EmdTravelPassenger'
        affiliate_name:
          type: string
          description: Name of the affiliate that originated the purchase.
          example: Klarna affiliate
    EmdFerryReservationDetails:
      type: object
      description: |
        Details about the reservation of ferry tickets.
      required:
        - itinerary
      properties:
        pnr:
          type: string
          description: |
            Trip booking number, e.g. "VH67899"
          example: VH67899
        itinerary:
          type: array
          description: >
            Itinerary data, one per segment.


            If you are selling a ticket that contains one ferry journey from
            Oslo to Kiel,

            and another ferry journey from Kiel to Gothenburg, you need to
            provide one

            itinerary object for each of these two ferry journeys, and so on.
          items:
            $ref: '#/components/schemas/EmdFerryReservationDetailsItinerary'
        insurance:
          type: array
          description: Insurance data, one per segment
          items:
            $ref: '#/components/schemas/EmdTravelInsurance'
        passengers:
          type: array
          description: Passenger data, one per passenger.
          items:
            $ref: '#/components/schemas/EmdTravelPassenger'
        affiliate_name:
          type: string
          description: Name of the affiliate that originated the purchase.
          example: Klarna affiliate
    EmdHotelReservationDetails:
      type: object
      description: |
        Details about the reservation of hotel rooms.
      required:
        - itinerary
      properties:
        pnr:
          type: string
          description: |
            Trip booking number, e.g. "VH67899"
          example: VH67899
        itinerary:
          type: array
          description: |
            Hotel itinerary data, one per hotel stay.

            If you are selling a package that contains multiple hotel stays,
            you need to provide itinerary data for each of the individual stays.
          items:
            $ref: '#/components/schemas/EmdHotelReservationDetailsItinerary'
        insurance:
          type: array
          description: Insurance data, one per segment
          items:
            $ref: '#/components/schemas/EmdTravelInsurance'
        passengers:
          type: array
          description: Passenger data, one per passenger.
          items:
            $ref: '#/components/schemas/EmdTravelPassenger'
        affiliate_name:
          type: string
          description: Name of the affiliate that originated the purchase.
          example: Klarna affiliate
    EmdCarRentalReservationDetails:
      type: object
      description: |
        Details about the reservation of rental cars.
      required:
        - itinerary
        - drivers
      properties:
        pnr:
          type: string
          description: |
            Trip booking number, e.g. "VH67899"
          example: VH67899
        itinerary:
          type: array
          description: >
            Car rental itinerary data, one per car rental.


            If you are selling a package that contains multiple car rentals,

            you need to provide itinerary data for each of the individual
            rentals.
          items:
            $ref: '#/components/schemas/EmdCarRentalReservationDetailsItinerary'
        insurance:
          type: array
          description: Insurance data, one per segment
          items:
            $ref: '#/components/schemas/EmdTravelInsurance'
        drivers:
          type: array
          description: Driver data, one per driver.
          items:
            $ref: '#/components/schemas/EmdTravelPassenger'
        affiliate_name:
          type: string
          description: Name of the affiliate that originated the purchase.
          example: Klarna affiliate
    EmdMarketplaceSellerInfo:
      type: object
      description: |
        Details related to the seller involved in the marketplace order.
      required:
        - sub_merchant_id
        - product_category
        - account_registration_date
        - account_last_modified
        - number_of_trades
      properties:
        unique_account_identifier_seller:
          type: object
          description: Details about the seller.
          properties:
            email:
              type: string
              description: |
                Seller's email address, e.g. "seller@mail.com"
            phone_number:
              type: string
              description: Seller's phone number, e.g. "97712123"
              example: '97712123'
            other:
              type: string
        sub_merchant_id:
          type: string
          description: |
            Name or unique number of the selling/delivering merchant,
            e.g. "Marketbrick Ltd."
          example: Marketbrick Ltd.
        product_category:
          type: string
          description: |
            Name of the category to which the specific good belongs to,
            according to the selling merchant's categorization, e.g. "Phones".
          example: Phones
        product_name:
          type: string
          description: |
            Name of the good purchased.
          example: iPhone 14 Pro Max
        account_registration_date:
          type: string
          format: date-time
          description: |
            Date and time that the account was registered (ISO 8601 format),
            e.g. "2023-08-16T15:00:00Z".

            If a timezone is not specified we assume UTC.
          example: '2023-08-16T15:00:00Z'
        account_last_modified:
          $ref: '#/components/schemas/EmdMarketplaceAccountLastModified'
        seller_rating:
          type: number
          description: |
            Current rating of the good purchased according
            to the marketplace's rating scale, e.g. 5
          example: 5
        number_of_trades:
          type: integer
          description: |
            Number of trades the sub-merchant did in the last 12 months, e.g. 23
          example: 23
        volume_of_trades:
          type: integer
          description: |
            Volumes of trades the sub-merchant did in the last 12 months,
            e.g. 230
          example: 230
    EmdMarketplaceWinnerInfo:
      type: object
      description: |
        Details related to the winner involved in the marketplace order.
      required:
        - account_registration_date
        - account_last_modified
        - number_of_trades
      properties:
        unique_account_identifier_winner:
          type: object
          description: Details about the winner.
          properties:
            email:
              type: string
              description: |
                Winner's email address, e.g. "winner@mail.com"
            phone_number:
              type: string
              description: Winner's phone number, e.g. "97712123"
              example: '97712123'
            other:
              type: string
        account_registration_date:
          type: string
          format: date-time
          description: |
            Date and time that the account was registered (ISO 8601 format),
            e.g. "2023-08-16T15:00:00Z".

            If a timezone is not specified we assume UTC.
          example: '2023-08-16T15:00:00Z'
        account_last_modified:
          $ref: '#/components/schemas/EmdMarketplaceAccountLastModified'
        number_of_trades:
          type: integer
          description: |
            Number of trades the winner did in the last 12 months, e.g. 23
          example: 23
        volume_of_trades:
          type: integer
          description: |
            Volumes of trades the winner did in the last 12 months,
            e.g. 230
          example: 230
    CallbackUrl:
      type: string
      format: uri
      pattern: https?://*
      example: https://example.com/callback?method=GET
      description: >
        URL that Checkout will call when the session

        payment is complete and the transaction has been authorized.


        > **Callback is only delivered to HTTPS URLs**


        > A callback done with a transaction with status `ON_HOLD` will receive

        > an aditional callback (later) when the transaction state changes
        status

        > from `ON_HOLD`.


        > The callback may be received after the transaction is `CAPTURED`

        > in case when the transaction was created from a session where

        > `auto_capture` was enabled.


        Unlike the `return_url` the `callback_url` is system-to-system

        which means delivery is guaranteed.


        Once a session payment is complete the callback_url is invoked as a

        `GET` request to notify your system that the payment has been approved.


        - A callback_url with `method=POST` query parameter will be invoked as a
          `POST` request with the transaction included in the request body.

        - A callback_url with `report_error=true` will enable the callback_url
          to be called if the payment failed with error `cancelled`, `authorization`
          or `failed`.

        - A callback_url with `delay_callback=<seconds>` will delay the callback
          before trying to deliver the callback. The **maximum** delay is 60 seconds.

        - A callback_url with `report_event={EVENT}` will enable the
        callback_url
          to be called if a payment event has been applied to the transaction. Valid
          values are `CAPTURE`, `REFUND` and `VOID`. The callback_url can contain
          multiple `report_event` query parameters. An `event` query parameter will be
          included in the request sent to the callback_url.

        - A callback_url with `includes=session` will enable the callback_url
          to include the session data in the body.

        - A callback_url with `sid_parameter_name=sid` will change the query
        param `session_id`
          to `sid` to avoid false session fixation alarms in firewalls. Possible values: `sid`, `session_id`

        A successful delivery to an HTTPS callback_url sometimes requires

        more than one attempt. This can be the case, for example, if the server

        hosting the callback_url is down for maintenance or is experiencing

        heavy traffic.


        Dintero attempts a retry only after a failed delivery attempt, following

        situations is considered as failed delivery

         - HTTP status code 100 to 101 and 500 to 599 (inclusive)
           (HTTP status code 400 to 499 is considered as permanent failure)
         - A request timeout (10 seconds)
         - Any connection error such as connection timeout, bad certificate, etc

        Failed delivery will be retried 20 times.

         query name        | type          | description                  | required
        ------------------ | :-----------: | :--------------------------- |
        :-----------

        transaction_id     | string        | Transaction Id               | true

        session_id         | string        | Session Id                   | true

        sid                | string        | Session Id when
        sid_parameter_name=sid | true

        merchant_reference | string        | The merchants reference      | true

        time               | string        | ISO 8601 format              | true

        error              | string        | Error code                   |
        false

        event              | string        | event applied                |
        false

        event_id           | string        | event id for callback        |
        false

        includes           | string array  | include additional data      |
        false


        > The transaction_id is optional when callback_url enables
        `report_error`

        > where error query will be included in case where the payment was
        completed

        > without creating an authorized transaction.


        > It is not possible to use `https://localhost` or `http://127.0.0.1`
        for

        > the callback URL as Checkout backend would then call itself.


        See [validating
        callbacks](https://docs.dintero.com/docs/validating-callbacks) to see
        how you can verify the integrity of the callbacks,
    Checkbox:
      type: object
      required:
        - id
        - label
      properties:
        id:
          type: string
          description: |
            ID to assign to the checkbox so you can reference it later
        label:
          type: string
          description: |
            Label that should be visible next to the checkbox
          minLength: 2
          maxLength: 99
        checked:
          type: boolean
          description: |
            If the checkbox should be checked by default or not
        required:
          type: boolean
          description: |
            If the checkbox should be required or not
        link:
          type: object
          required:
            - url
            - text
          properties:
            url:
              type: string
              description: Link URL
            text:
              type: string
              description: Link text
              example: Terms for checkbox action
    DinteroPspTokenAuthMethods:
      type: array
      description: >
        Indicates which authentication methods to support during token
        authentication flows.

        The list order determines which method is preferred.

        Methods are subject to card and device support.


        - `3DS`: Carholder authentication through 3D-Secure.

        - `PASSKEY`: Cardholder is prompted to create and authenticate with a
        device-bound Passkey.
      example:
        - PASSKEY
        - 3DS
      items:
        type: string
        enum:
          - 3DS
          - PASSKEY
    DinteroPaymentOptionSCAPolicy:
      type: object
      description: >
        Configuration for SCA (Strong Customer Authentication) policies for
        Dintero PSP payment methods.

        Allows merchants to set up exemptions for when SCA can be skipped for a
        transaction.

        If SCA is skipped for a transaction the merchant will generally have
        liability for the transaction.
      properties:
        network_exemptions:
          type: object
          description: >
            Configuration for network exemptions, such as low_value and low_risk
            exemptions.

            The merchant can choose to enable/disable each exemption type, but
            they need to be

            approved to use them by Dintero. Low risk exemption takes precedence
            over low value exemption.
          properties:
            low_value:
              type: boolean
              description: >
                If true the low value exemption can be passed to issuer if the
                transaction amount is below 30 EUR or equivalent.
              example: true
            low_risk:
              type: boolean
              description: |
                If true the low risk exemption can be passed to issuer.
              example: true
        liability_rules:
          type: array
          description: |
            List of rules for when SCA can be skipped for a transaction.
            If multiple rules match the most restrictive rule will be applied.
          items:
            $ref: '#/components/schemas/SCARule'
    InstabankFinanceProduct:
      type: object
      required:
        - product_code
        - minimum_monthly_balance_rate
        - origination_fee
        - notification_fee
        - loan_example
      properties:
        product_code:
          type: string
          example: '630'
        minimum_monthly_balance_rate:
          type: string
          description: >
            The minimum monthly installment basis as a percentage of the account
            balance.
          format: ^([0-9]*[.])?[0-9]+$
          example: '1.67'
        annual_interest_rate:
          type: string
          description: |
            The interest rate for the payment product.
          format: ^([0-9]*[.])?[0-9]+$
          example: '0.0'
        effective_annual_interest_rate:
          type: string
          readOnly: true
          description: |
            The effective annual interest rate for the payment product
          example: '0.0'
        origination_fee:
          type: integer
          description: |
            The startup fee for the payment product.
          minimum: 0
          example: 9500
        notification_fee:
          type: integer
          description: |
            The notification fee for the payment product.
          minimum: 0
          example: 3900
        minimum_amount:
          type: integer
          description: |
            Minimum order amount for this product. The product option will be
            excluded in payments where the order amount is less than the minimum
            amount.
          example: 20000
          minimum: 1
        loan_example:
          type: object
          required:
            - amount
            - years
            - total_amount
            - cost
            - effective_annual_interest_rate
          properties:
            amount:
              type: integer
              description: |
                The amount loaned in the example.
              minimum: 0
              example: 2500000
            years:
              type: integer
              description: |
                Years of payment in the example.
              minimum: 1
              example: 1
            total_amount:
              type: integer
              description: |
                The total amount paid back in the example.
              minimum: 0
              example: 2772300
            cost:
              type: integer
              description: |
                The cost of the loan in the example.
              minimum: 0
              example: 272300
            effective_annual_interest_rate:
              type: string
              readOnly: true
              format: ^([0-9]*[.])?[0-9]+$
              description: |
                The effective annual interest rate in the example
              example: '21.38'
        branding_image_url:
          type: string
          description: Url for a custom branding image
    InstabankInvoiceProduct:
      type: object
      required:
        - product_code
        - due_in_days
        - invoice_fee
        - require_applicant_amount
      properties:
        product_code:
          type: string
          example: '632'
        due_in_days:
          type: integer
          minimum: 0
          description: Number of days before the payment is due.
          example: 10
        minimum_amount:
          type: integer
          description: |
            Minimum order amount for this product. The product option will be
            excluded in payments where the order amount is less than the minimum
            amount.
          example: 20000
          minimum: 1
        invoice_fee:
          type: integer
          description: |
            The fee for the payment product
          minimum: 0
          example: 9500
        require_applicant_amount:
          type: integer
          description: >
            The limit for when instabank will require a full applicant during
            payment.
          minimum: 0
          example: 7500000
        branding_image_url:
          type: string
          description: Url for a custom branding image
    InstabankInstallmentProduct:
      type: object
      description: |
        Payment product configuration
      required:
        - product_code
        - credit_time
        - origination_fee
        - notification_fee
        - annual_interest_rate
      properties:
        minimum_amount:
          type: integer
          description: |
            Minimum order amount for this product. The product option will be
            excluded in payments where the order amount is less than the minimum
            amount.
          example: 20000
          minimum: 1
        product_code:
          type: string
          example: '633'
        credit_time:
          type: integer
          description: |
            Number of months
          minimum: 1
          example: 36
        origination_fee:
          type: integer
          description: |
            The startup fee for the payment product
          minimum: 0
          example: 9500
        notification_fee:
          type: integer
          description: |
            The notification fee for the payment product
          minimum: 0
          example: 3900
        annual_interest_rate:
          type: string
          description: |
            The interest rate for the payment product.
          format: ^([0-9]*[.])?[0-9]+$
          example: '0.0'
        effective_annual_interest_rate:
          type: string
          readOnly: true
          description: |
            The effective annual interest rate for the payment product
          example: '54.69'
        total_amount:
          type: integer
          readOnly: true
          example: 309400
          description: The total amount to pay
        monthly_amount:
          type: integer
          readOnly: true
          example: 100000
          description: The amount to pay pr month
        first_monthly_amount:
          type: integer
          readOnly: true
          description: |
            The amount to pay in the first invoice. Origantion fee is added
            to the first invoice.
          example: 109500
        require_applicant_amount:
          type: integer
          description: >
            The limit for when instabank will require a full applicant during
            payment.
          minimum: 0
          example: 2500000
        loan_example:
          type: object
          required:
            - amount
            - years
            - total_amount
            - cost
            - effective_annual_interest_rate
          properties:
            amount:
              type: integer
              description: |
                The amount loaned in the example.
              minimum: 0
              example: 2500000
            years:
              type: integer
              description: |
                Years of payment in the example.
              minimum: 1
              example: 1
            total_amount:
              type: integer
              description: |
                The total amount paid back in the example.
              minimum: 0
              example: 2772300
            cost:
              type: integer
              description: |
                The cost of the loan in the example.
              minimum: 0
              example: 272300
            effective_annual_interest_rate:
              type: string
              readOnly: true
              format: ^([0-9]*[.])?[0-9]+$
              description: |
                The effective annual interest rate in the example
              example: '21.38'
        branding_image_url:
          type: string
          description: Url for a custom branding image
    InstabankPostponementProduct:
      type: object
      description: |
        Payment product configuration
      required:
        - product_code
        - postponement_months
        - origination_fee
        - annual_interest_rate
      properties:
        minimum_amount:
          type: integer
          description: |
            Minimum order amount for this product. The product option will be
            excluded in payments where the order amount is less than the minimum
            amount.
          example: 20000
          minimum: 1
        product_code:
          type: string
          example: '633'
        postponement_months:
          type: integer
          description: |
            Number of months
          minimum: 1
          example: 36
        origination_fee:
          type: integer
          description: |
            The startup fee for the payment product
          minimum: 0
          example: 9500
        notification_fee:
          type: integer
          description: |
            The notification fee for the payment product
          minimum: 0
          example: 3900
        annual_interest_rate:
          type: string
          description: |
            The interest rate for the payment product.
          format: ^([0-9]*[.])?[0-9]+$
          example: '0.0'
        effective_annual_interest_rate:
          type: string
          readOnly: true
          description: |
            The effective annual interest rate for the payment product
          example: '54.69'
        total_amount:
          type: integer
          readOnly: true
          example: 309400
          description: The total amount to pay
        require_applicant_amount:
          type: integer
          description: >
            The limit for when instabank will require a full applicant during
            payment.
          minimum: 0
          example: 2500000
        loan_example:
          type: object
          required:
            - amount
            - years
            - total_amount
            - cost
            - effective_annual_interest_rate
          properties:
            amount:
              type: integer
              description: |
                The amount loaned in the example.
              minimum: 0
              example: 2500000
            years:
              type: integer
              description: |
                Years of payment in the example.
              minimum: 1
              example: 1
            total_amount:
              type: integer
              description: |
                The total amount paid back in the example.
              minimum: 0
              example: 2772300
            cost:
              type: integer
              description: |
                The cost of the loan in the example.
              minimum: 0
              example: 272300
            effective_annual_interest_rate:
              type: string
              readOnly: true
              format: ^([0-9]*[.])?[0-9]+$
              description: |
                The effective annual interest rate in the example
              example: '21.38'
        branding_image_url:
          type: string
          description: Url for a custom branding image
    CollectorB2BAddress:
      type: object
      required:
        - business_name
        - organization_number
        - address_line
        - postal_code
        - postal_place
        - country
        - phone_number
        - email
      properties:
        business_name:
          type: string
          description: ACME Inc
          maxLength: 50
        organization_number:
          minLength: 9
          maxLength: 12
          type: string
          description: >
            The organization number of the customer. For Norway, the length is
            9. For Sweden, it's either 10 or 12 digits.
        address_line:
          type: string
          description: Gaustadalleen 21
          maxLength: 50
        address_line_2:
          type: string
          description: More details about address.
          maxLength: 50
        co_address:
          type: string
          description: CO-Address if applicable.
          maxLength: 50
        postal_code:
          type: string
          description: The zip code / postal code of the address.
          example: '0349'
          maxLength: 50
        postal_place:
          type: string
          description: The name of the postal code
          example: Oslo
          maxLength: 50
        country:
          type: string
          format: iso3166-alpha2
          description: Country of the location
          example: 'NO'
        phone_number:
          type: string
          pattern: ^\+?\d{5,15}$
          description: |
            mobile number of a person / company, ITU/E.123 format with
            international prefix (+PPNNNNNNNNN...)
        email:
          type: string
          maxLength: 100
          description: |
            The email address of a person or an organisation
        customer_reference:
          type: string
          description: The customer's reference
          maxLength: 50
        cost_center:
          type: string
          description: For companies that needs to specify a cost center.
          maxLength: 64
        first_name:
          type: string
          example: John
          maxLength: 50
        last_name:
          type: string
          example: Doe
          maxLength: 50
        address_id:
          type: string
          example: address_1
          description: >
            The unique identification of the address from the available
            addresses for the business
    InvoiceChannel:
      type: string
      description: |
        Invoice channel to use for delivering  the invoice.
      default: kravia
      enum:
        - merchant
        - kravia
    EmdAirReservationDetailsItinerary:
      type: object
      required:
        - departure
        - arrival
        - carrier
        - departure_date
        - ticket_delivery_method
        - ticket_delivery_recipient
      properties:
        departure:
          type: string
          description: IATA Airport Code (three letters), e.g. "OSL"
          example: OSL
        departure_city:
          type: string
          description: City the flight departs from, e.g. "Oslo"
          example: Oslo
        arrival:
          type: string
          description: IATA Airport Code (three letters), e.g. "MUC"
          example: MUC
        arrival_city:
          type: string
          description: City the flight arrives in, e.g. "Munich"
          example: Munich
        carrier:
          type: string
          description: IATA Airline standard (two letters or digits), e.g. "LH"
          example: LH
        segment_price:
          type: integer
          description: |
            Price for that specific segment of the flight
            in smallest unit of local currency, e.g. 200000
          example: 200000
        departure_date:
          type: string
          description: |
            Departure date (ISO 8601 format), e.g. "2023-08-16T15:00:00Z"

            If a timezone is not specified, we assume UTC.
          example: '2023-08-16T15:00:00Z'
        ticket_delivery_method:
          type: string
          enum:
            - pick_up
            - email
            - post
            - phone
          example: phone
        ticket_delivery_recipient:
          type: string
          description: >
            Name of the recipient the ticket is delivered to, e.g. "Maximilian".


            If email or phone, then use either the email address or the phone
            number respectively.
          example: '97712123'
        passenger_id:
          type: array
          description: IDs of all the passengers included in this itinerary.
          example:
            - 1
          items:
            type: integer
        class:
          type: string
          description: Travel class, e.g. "First Class"
          example: First Class
    EmdTravelInsurance:
      type: object
      properties:
        insurance_company:
          type: string
          description: >-
            Name of the company which offers the insurance, e.g. "Oopsie
            Insurance Ltd."
          example: Oopsie Insurance Ltd.
        insurance_type:
          type: string
          enum:
            - cancellation
            - travel
            - cancellation_travel
            - bankruptcy
          description: Type of insurance, e.g. "travel"
          example: travel
        insurance_price:
          type: integer
          description: |
            Price of the insurance in smallest unit of local currency,
            e.g. 50000
          example: 50000
    EmdTravelPassenger:
      type: object
      required:
        - first_name
        - last_name
      properties:
        id:
          type: integer
          description: Passenger id, e.g. 1
          example: 1
        title:
          type: string
          enum:
            - mr
            - mrs
            - ms
            - ''
          description: |
            Passenger title, e.g. "mr".

            Blank if under 12 years.
          example: mr
        first_name:
          type: string
          description: First name of the passenger, e.g. "Paul"
          example: Paul
        last_name:
          type: string
          description: Last name of the passenger, e.g. "Lamb"
          example: Lamb
    EmdBusReservationDetailsItinerary:
      type: object
      required:
        - departure_city
        - arrival_city
        - carrier
        - departure_date
        - ticket_delivery_method
        - ticket_delivery_recipient
      properties:
        departure_city:
          type: string
          description: City the bus departs from, e.g. "Oslo"
          example: Oslo
        arrival_city:
          type: string
          description: City the bus arrives in, e.g. "Munich"
          example: Munich
        carrier:
          type: string
          description: Name of transportation company. "Big Bus Travels Ltd."
          example: Big Bus Travels Ltd.
        segment_price:
          type: integer
          description: |
            Price for that specific segment of the bus journey
            in smallest unit of local currency, e.g. 200000
          example: 200000
        departure_date:
          type: string
          description: |
            Departure date (ISO 8601 format), e.g. "2023-08-16T15:00:00Z".

            If a timezone is not specified, we assume UTC.
          example: '2023-08-16T15:00:00Z'
        ticket_delivery_method:
          type: string
          enum:
            - pick_up
            - email
            - post
            - phone
          example: phone
        ticket_delivery_recipient:
          type: string
          description: >
            Name of the recipient the ticket is delivered to, e.g. "Maximilian".


            If email or phone, then use either the email address or the phone
            number respectively.
          example: '97712123'
        passenger_id:
          type: array
          description: IDs of all the passengers included in this itinerary.
          example:
            - 1
          items:
            type: integer
        class:
          type: string
          description: Travel class, e.g. "First Class"
          example: First Class
    EmdTrainReservationDetailsItinerary:
      type: object
      required:
        - departure_city
        - arrival_city
        - carrier
        - departure_date
        - ticket_delivery_method
        - ticket_delivery_recipient
        - passenger_id
      properties:
        departure_city:
          type: string
          description: City the train departs from, e.g. "Oslo"
          example: Oslo
        arrival_city:
          type: string
          description: City the train arrives in, e.g. "Munich"
          example: Munich
        carrier:
          type: string
          description: Name of transportation company. "Big Train Travels Ltd."
          example: Big Train Travels Ltd.
        segment_price:
          type: integer
          description: |
            Price for that specific segment of the train journey
            in smallest unit of local currency, e.g. 200000
          example: 200000
        departure_date:
          type: string
          description: |
            Departure date (ISO 8601 format), e.g. "2023-08-16T15:00:00Z".

            If a timezone is not specified, we assume UTC.
          example: '2023-08-16T15:00:00Z'
        ticket_delivery_method:
          type: string
          enum:
            - pick_up
            - email
            - post
            - phone
          example: phone
        ticket_delivery_recipient:
          type: string
          description: >
            Name of the recipient the ticket is delivered to, e.g. "Maximilian".


            If email or phone, then use either the email address or the phone
            number respectively.
          example: '97712123'
        passenger_id:
          type: array
          description: IDs of all the passengers included in this itinerary.
          example:
            - 1
          items:
            type: integer
        class:
          type: string
          description: Travel class, e.g. "First Class"
          example: First Class
    EmdFerryReservationDetailsItinerary:
      type: object
      required:
        - departure_city
        - arrival_city
        - carrier
        - departure_date
        - ticket_delivery_method
        - ticket_delivery_recipient
      properties:
        departure_city:
          type: string
          description: City the ferry departs from, e.g. "Oslo"
          example: Oslo
        arrival_city:
          type: string
          description: City the ferry arrives in, e.g. "Munich"
          example: Munich
        carrier:
          type: string
          description: Name of transportation company. "Big Ferry Travels Ltd."
          example: Big Ferry Travels Ltd.
        segment_price:
          type: integer
          description: |
            Price for that specific segment of the ferry journey
            in smallest unit of local currency, e.g. 200000
          example: 200000
        departure_date:
          type: string
          description: |
            Departure date (ISO 8601 format), e.g. "2023-08-16T15:00:00Z".

            If a timezone is not specified, we assume UTC.
          example: '2023-08-16T15:00:00Z'
        ticket_delivery_method:
          type: string
          enum:
            - pick_up
            - email
            - post
            - phone
          example: phone
        ticket_delivery_recipient:
          type: string
          description: >
            Name of the recipient the ticket is delivered to, e.g. "Maximilian".


            If email or phone, then use either the email address or the phone
            number respectively.
          example: '97712123'
        passenger_id:
          type: array
          description: IDs of all the passengers included in this itinerary.
          example:
            - 1
          items:
            type: integer
        class:
          type: string
          description: Travel class, e.g. "First Class"
          example: First Class
    EmdHotelReservationDetailsItinerary:
      type: object
      required:
        - start_time
        - end_time
        - number_of_rooms
        - passenger_id
        - ticket_delivery_method
        - ticket_delivery_recipient
        - hotel_price
      properties:
        hotel_name:
          type: string
          description: Name of the hotel, e.g. "Premium Hotel"
          example: Premium Hotel
        address:
          type: object
          description: Address details of the hotel.
          required:
            - city
            - country
          properties:
            street_address:
              type: string
              description: Street address of the hotel, e.g. "Karl Johans gt. 31"
              example: Karl Johans gt. 31
            postal_code:
              type: string
              description: Postal code of the hotel, e.g. "0159"
              example: '0159'
            city:
              type: string
              description: City the hotel is located in, e.g. "Oslo"
              example: Oslo
            country:
              type: string
              description: >
                Country the hotel is located in (ISO 3166-1 alpha-2 format),
                e.g. "NO",
              example: 'NO'
        start_time:
          type: string
          description: >
            Start time of the hotel stay (ISO 8601 format), e.g.
            "2023-08-16T15:00:00Z".


            If a timezone is not specified, we assume UTC.
          example: '2023-08-16T15:00:00Z'
        end_time:
          type: string
          description: >
            End time of the hotel stay (ISO 8601 format), e.g.
            "2023-08-20T15:00:00Z".


            If a timezone is not specified, we assume UTC.
          example: '2023-08-20T15:00:00Z'
        number_of_rooms:
          type: integer
          description: Number of rooms booked, e.g. 2
          example: 2
        passenger_id:
          type: array
          description: IDs of all the passengers included in this itinerary.
          example:
            - 1
          items:
            type: integer
        ticket_delivery_method:
          type: string
          enum:
            - pick_up
            - email
            - post
            - phone
          example: phone
        ticket_delivery_recipient:
          type: string
          description: >
            Name of the recipient the ticket is delivered to, e.g. "Maximilian".


            If email or phone, then use either the email address or the phone
            number respectively.
          example: '97712123'
        hotel_price:
          type: integer
          description: >
            Price for the hotel stay in smallest unit of local currency, e.g.
            200000
          example: 200000
        class:
          type: string
          description: Travel class, e.g. "First Class"
          example: First Class
    EmdCarRentalReservationDetailsItinerary:
      type: object
      required:
        - rental_company
        - start_time
        - end_time
      properties:
        rental_company:
          type: string
          description: Name of the car rental company, e.g. "Premium Cars Ltd."
          example: Premium Cars
        drivers_id:
          type: array
          description: Driver IDs.
          items:
            type: integer
          example:
            - 1
        pick_up_location:
          type: object
          description: Details related to the pick up location.
          required:
            - city
            - country
          properties:
            street_address:
              type: string
              description: >-
                Street address where the car should be picked up, e.g. "Karl
                Johans gt. 31"
              example: Karl Johans gt. 31
            postal_code:
              type: string
              description: Postal code where the car should be picked up, e.g. "0159"
              example: '0159'
            city:
              type: string
              description: City where the car should be picked up, e.g. "Oslo"
              example: Oslo
            country:
              type: string
              description: >
                Country where the car should be picked up (ISO 3166-1 alpha-2
                format), e.g. "NO",
              example: 'NO'
        drop_off_location:
          type: object
          description: Details related to the drop off location.
          required:
            - city
            - country
          properties:
            street_address:
              type: string
              description: >-
                Street address where the car should be dropped off, e.g. "Karl
                Johans gt. 31"
              example: Karl Johans gt. 31
            postal_code:
              type: string
              description: Postal code where the car should be dropped off, e.g. "0159"
              example: '0159'
            city:
              type: string
              description: City where the car should be dropped off, e.g. "Oslo"
              example: Oslo
            country:
              type: string
              description: >
                Country where the car should be dropped off (ISO 3166-1 alpha-2
                format), e.g. "NO"
              example: 'NO'
        start_time:
          type: string
          description: >
            Start time of the car rental reservation (ISO 8601 format), e.g.
            "2023-08-16T15:00:00Z".


            If a timezone is not specified, we assume UTC.
          example: '2023-08-16T15:00:00Z'
        end_time:
          type: string
          description: >
            End time of the car rental reservation (ISO 8601 format), e.g.
            "2023-08-20T15:00:00Z".


            If a timezone is not specified, we assume UTC.
          example: '2023-08-20T15:00:00Z'
        car_price:
          type: integer
          description: >
            Price for the car rental reservation in smallest unit of local
            currency, e.g. 500000
          example: 500000
        class:
          type: string
          description: Travel class, e.g. "Premium Cars Premium Class"
          example: Premium Cars Premium Class
    EmdMarketplaceAccountLastModified:
      type: object
      required:
        - password
        - email
        - listing
        - login
        - address
      properties:
        password:
          type: string
          format: date-time
          description: |
            Date and time that the password was last modified (ISO 8601 format),
            e.g. "2023-08-17T15:00:00Z".

            If a timezone is not specified we assume UTC.
          example: '2023-08-17T15:00:00Z'
        email:
          type: string
          format: date-time
          description: |
            Date and time that the email was last modified (ISO 8601 format),
            e.g. "2023-08-17T15:00:00Z".

            If a timezone is not specified we assume UTC.
          example: '2023-08-17T15:00:00Z'
        listing:
          type: string
          format: date-time
          description: >
            Date and time that the listing details were last modified (ISO 8601
            format),

            e.g. "2023-08-17T15:00:00Z".


            If a timezone is not specified we assume UTC.
          example: '2023-08-17T15:00:00Z'
        login:
          type: string
          format: date-time
          description: >
            Date and time that the login details were last changed (ISO 8601
            format),

            e.g. "2023-08-17T15:00:00Z".


            If a timezone is not specified we assume UTC.
          example: '2023-08-17T15:00:00Z'
        address:
          type: string
          format: date-time
          description: >
            Date and time that the (physical) address was last modified (ISO
            8601 format),

            e.g. "2023-08-17T15:00:00Z".


            If a timezone is not specified we assume UTC.
          example: '2023-08-17T15:00:00Z'
    SCARule:
      discriminator:
        propertyName: type
        mapping:
          amount_lte:
            $ref: '#/components/schemas/AmountLimitLTERule'
      oneOf:
        - $ref: '#/components/schemas/AmountLimitLTERule'
    AmountLimitLTERule:
      type: object
      x-discriminator-value: amount_lte
      allOf:
        - $ref: '#/components/schemas/SCARule'
        - $ref: '#/components/schemas/AmountLimit'
      title: Amount Limit LTE Rule
    AmountLimit:
      type: object
      required:
        - limit
        - issuer_countries
        - enabled
      properties:
        limit:
          type: array
          description: >
            The maximum transaction amounts in the smallest currency unit (e.g.,
            cents) for which SCA (Strong Customer Authentication) can be
            exempted.
          uniqueItems: true
          maxItems: 250
          items:
            type: object
            required:
              - amount
              - currency
            properties:
              amount:
                type: integer
                description: >
                  The maximum transaction amount in the smallest currency unit
                  (e.g., cents).
                example: 50000
              currency:
                type: string
                description: The ISO 4217 currency code for the limit.
                example: NOK
        issuer_countries:
          $ref: '#/components/schemas/IssuerCountryCondition'
        enabled:
          type: boolean
          description: |
            Whether or not the rule is applied.
    IssuerCountryCondition:
      type: array
      description: >
        List of country codes (ISO 3166-1 alpha-2) for which the merchant can
        add exemptions for.

        Add a wildcard (`*`) to a allow all countries. Leaving it empty will not
        allow skipping SCA.
      uniqueItems: true
      maxItems: 250
      items:
        type: string
        description: A valid ISO 3166-1 alpha-2 country code
        pattern: ^([A-Z]{2}|\*)$
      example:
        - 'NO'
        - SE
        - DK
  securitySchemes:
    apikey:
      type: apiKey
      in: header
      description: |
        X-API-Key authentication for accessing regular endpoints. Use
        [Create api-key](#operation/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

````