Klarna Checkout API

The Checkout API from Klarna — 3 operation(s) for checkout.

Operations 4

POST /checkout/v3/orders Create an order #
POST /checkout/v3/orders/{order_id} Update an order #
GET /checkout/v3/orders/{order_id} Get order details #
POST /checkout/v3/orders/{order_id}/abort Abort an order #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/klarna-checkout-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

klarna-checkout-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: Hosted Payment Page (HPP) API is a service that lets you integrate Klarna Payments without the need of hosting the web page that manages the client side of Klarna Payments.
  version: '1.1'
  title: Klarna HPP Captures Checkout API
  license:
    name: Klarna Bank AB
servers:
- url: https://api.klarna.com
tags:
- name: Checkout
paths:
  /checkout/v3/orders:
    post:
      summary: Create an order
      description: 'To create a new order simply provide a JSON object with the applicable properties.<br>The location of the newly created checkout order can be found in the location header of the response.<br>Please note: This is the url that should be used for future interactions (read and update) with the order, i.e. do not construct the order url based on the order id.'
      operationId: createOrderMerchant
      parameters:
      - name: Klarna-Partner
        in: header
        required: false
        schema:
          type: string
      requestBody:
        $ref: '#/components/requestBodies/order'
      responses:
        '201':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/order'
        '400':
          description: We were unable to create an order with the provided data. Some field constraint was violated.
        '401':
          description: You were not authorized to execute this operation.
      x-400:
        error_text: 'array|Bad value: order_amount|Bad value: order_tax_amount|Bad value: locale'
        correlation_id: 1b4c6bfa-f182-43dd-bde0-6bec32as6cf0
        error_code: BAD_VALUE
      tags:
      - Checkout
  /checkout/v3/orders/{order_id}:
    post:
      summary: Update an order
      description: 'To update an order simply provide a JSON object with the properties you want to update. Properties not provided in the request will stay the same.<br>Please note: an order can only be updated when the status is checkout_incomplete'
      operationId: updateOrderMerchant
      parameters:
      - name: order_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        $ref: '#/components/requestBodies/order'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/order'
        '400':
          description: We were unable to update an order with the provided data. Some field constraint was violated.
        '401':
          description: You were not authorized to execute this operation.
        '403':
          description: You tried to modify a read only resource.
        '404':
          description: We did not find any order with given ID. You need to create a new order.
      x-403:
        error_text: array|Resource is read-only
        correlation_id: 1b4c6bfa-f182-43dd-bde0-6bec32as6cf0
        error_code: READ_ONLY_ORDER
      x-400:
        error_text: 'array|Bad value: order_amount|Bad value: order_tax_amount|Bad value: locale'
        correlation_id: 1b4c6bfa-f182-43dd-bde0-6bec32as6cf0
        error_code: BAD_VALUE
      tags:
      - Checkout
    get:
      summary: Get order details
      description: Get the full details of a Klarna checkout order.
      operationId: readOrderMerchant
      parameters:
      - name: order_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/order'
        '401':
          description: You were not authorized to execute this operation.
        '403':
          description: Merchant was not activated.
        '404':
          description: We did not find any order with given ID. You need to create a new order.
      tags:
      - Checkout
  /checkout/v3/orders/{order_id}/abort:
    post:
      summary: Abort an order
      description: Mark an order as aborted.
      operationId: abortOrder
      parameters:
      - name: order_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/order'
        '403':
          description: You tried to modify a read only resource.
        '404':
          description: We did not find any order with given ID. You need to create a new order.
      tags:
      - Checkout
components:
  schemas:
    discount_line:
      type: object
      required:
      - name
      - quantity
      - tax_rate
      - total_amount
      - total_tax_amount
      - unit_price
      properties:
        name:
          type: string
          example: Super deal
          description: Descriptive name of discount
          minLength: 1
          maxLength: 255
        quantity:
          type: integer
          format: int64
          example: 5
          description: Non-negative number. Quantity of the discount line item.
          minimum: 0
        unit_price:
          type: integer
          format: int64
          example: -10000
          description: 'Minor units. Includes tax, excludes discount. (Must be non-positive).


            Example: -100 Euros should be -10000.'
          maximum: 0
        tax_rate:
          type: integer
          format: int64
          example: 1000
          description: 'Non-negative value. The percentage value is represented with two implicit decimals. (max 10000)


            Example: 25% should be 2500.'
          maximum: 10000
        total_amount:
          type: integer
          format: int64
          example: -2500
          description: "Minor units. Includes tax and discount. \n\nExample: -25 euros should be -2500\nValue = (quantity x unit_price).\n(Must be non-positive)"
          maximum: 0
        total_tax_amount:
          type: integer
          format: int64
          example: -123
          description: Must be within �1 of total_amount - total_amount \* 10000 / (10000 + tax_rate). Should be non-positive
        reference:
          type: string
          example: 645f54bb-dbb7-6e1f-83bd-bc81a2c3a258
          description: The CRM reference to the gift-card that was entered by the user
          minLength: 0
          maxLength: 255
        merchant_data:
          type: string
          example: '{"card_number":"5551234567890"}'
          description: The gift-card number that was entered by the user
          minLength: 0
          maxLength: 1024
    DeliveryDetailsV1:
      type: object
      properties:
        carrier:
          type: string
          description: Carrier product name
        class:
          type: string
          description: Type of shipping class
        product:
          $ref: '#/components/schemas/ProductV1'
        timeslot:
          $ref: '#/components/schemas/TimeslotV1'
        pickup_location:
          $ref: '#/components/schemas/PickupLocationV1'
    PickupLocationV1:
      type: object
      properties:
        id:
          type: string
          description: Id
        name:
          type: string
          description: Name of the location
        address:
          $ref: '#/components/schemas/address'
    attachment:
      type: object
      required:
      - body
      - content_type
      properties:
        body:
          type: string
          example: '{"hotel_reservation_details": [{"pnr": "VH67899","hotel_intinerary": [{"hotel_name": "Hotel ltd.","address": {"street_address": "Storgatan 3","postal_code": "113 35","city": "Stockholm","country": "Sweden"},"start_time": "2019-01-31T15:00:00Z","end_time": "2019-01-31T15:30:00Z","number_of_rooms": 2,"ticket_delivery_method": "email","ticket_delivery_recipient": "jonas.larlsson@klarna.com","hotel_price": 23050,"class": "Business","passenger_id": [1]}],"passengers": [{"id": 1,"title": "mr","first_name": "Adam","last_name": "Adamson"}],"insurance": [{"insurance_company": "Insurance Company X","insurance_type": "travel","insurance_price": 0}],"affiliate_name": "TradeMaxi AB"}],"air_reservation_details": [{"pnr": "VH67899","intinerary": [{"departure": "ARN","departure_city": "Stockholm","arrival": "NCE","arrival_city": "Nice","carrier": "SK","segment_price": 34000,"departure_date": "2019-01-30T15:00:00Z","ticket_delivery_method": "email","ticket_delivery_recipient": "jonas.larlsson@klarna.com","passenger_id": [1]}],"passengers": [{"id": 1,"title": "mr","first_name": "Adam","last_name": "Adamson"}],"insurance": [{"insurance_company": "Insurance Company X","insurance_type": "travel","insurance_price": 0}],"affiliate_name": "TradeMaxi AB"}],"customer_account_info": [{"unique_account_identifier": "12345","account_registration_date": "2016-01-24T15:00:00Z","account_last_modified": "2017-01-24T15:00:00Z"}],"payment_history_full": [{"payment_option": "card","number_paid_purchases": 2,"total_amount_paid_purchases": 1234,"date_of_last_paid_purchase": "2018-01-24T15:00:00Z","date_of_first_paid_purchase": "2018-01-24T15:00:00Z"}]}'
          description: The content of the extra merchant data which should be presented as a string inside this property. The body should be an object containing any of the keys and sub objects described below serialised to JSON. More information on that object can be found [here](https://docs.klarna.com/api/extra-merchant-data).
        content_type:
          type: string
          example: application/vnd.klarna.internal.emd-v2+json
          description: The content type of the body. It is usually represented as "application/vnd.klarna.internal.emd-v2+json"
    options:
      type: object
      properties:
        require_validate_callback_success:
          type: boolean
          description: 'If true, validate callback must get a positive response to not stop purchase. Default: false.'
        acquiring_channel:
          type: string
          description: 'Acquiring channel for the order. The possible values are:

            <ul><li><em>ECOMMERCE for "E-commerce"</em></li><li><em>IN_STORE for "Purchase in boutique"</em></li><li><em>Default : ECOMMERCE</em></li></ul>'
          pattern: ECOMMERCE|MOTO|IN_STORE|TELESALES
        vat_removed:
          type: boolean
          description: If true, VAT is not displayed in Checkout's Order Summary page.
        allow_separate_shipping_address:
          type: boolean
          description: 'If true, the consumer can enter different billing and shipping addresses. Default: false, except for purchase_country DE where default is: true'
        color_button:
          type: string
          example: '#FF9900'
          description: Color for the buttons within the iFrame. Value should be a CSS hex color, e.g. "#FF9900"
          pattern: ^#[A-Fa-f0-9]{6}$
        color_button_text:
          type: string
          example: '#FF9900'
          description: Color for the text inside the buttons within the iFrame. Value should be a CSS hex color, e.g. "#FF9900"
          pattern: ^#[A-Fa-f0-9]{6}$
        color_checkbox:
          type: string
          example: '#FF9900'
          description: Color for the checkboxes within the iFrame. Value should be a CSS hex color, e.g. "#FF9900"
          pattern: ^#[A-Fa-f0-9]{6}$
        color_checkbox_checkmark:
          type: string
          example: '#FF9900'
          description: Color for the checkboxes checkmark within the iFrame. Value should be a CSS hex color, e.g. "#FF9900"
          pattern: ^#[A-Fa-f0-9]{6}$
        color_header:
          type: string
          example: '#FF9900'
          description: Color for the headers within the iFrame. Value should be a CSS hex color, e.g. "#FF9900"
          pattern: ^#[A-Fa-f0-9]{6}$
        color_link:
          type: string
          example: '#FF9900'
          description: Color for the hyperlinks within the iFrame. Value should be a CSS hex color, e.g. "#FF9900"
          pattern: ^#[A-Fa-f0-9]{6}$
        date_of_birth_mandatory:
          type: boolean
          description: 'If true, the consumer cannot skip date of birth. Default: false'
        shipping_details:
          type: string
          example: Delivered within 1-3 working days
          description: A message that will be presented on the confirmation page under the headline "Delivery" (max 255 characters).
        title_mandatory:
          type: boolean
          description: If specified to false, title becomes optional. Only available for orders for country GB.
        additional_checkbox:
          $ref: '#/components/schemas/checkbox'
        national_identification_number_mandatory:
          type: boolean
          description: 'If true, the user cannot skip national identification number in SE, NO, FI and DK. Default: false. In order to read the national identification number in the validation callback, please contact Klarnas merchant support.'
        additional_merchant_terms:
          type: string
          description: 'Additional merchant defined field. e.g. Extra terms and conditions to show.


            Example: "ADDITIONAL MERCHANT TERMS! \[terms link\](https://merchant.com/extra_terms)"'
        phone_mandatory:
          type: boolean
          description: If false, the consumer can skip the phone. Only available for orders in DACH countries.
        radius_border:
          type: string
          example: '5'
          description: Radius for the border of elements within the iFrame.
        allowed_customer_types:
          type: array
          description: 'A list of allowed customer types. Supported types: <b>person</b> & <b>organization</b>.

            Example: ["person","organization"]'
          items:
            type: string
          maxItems: 2
          minItems: 1
        show_subtotal_detail:
          type: boolean
          description: 'If true, the Order Detail subtotals view is expanded when the Klarna Checkout iFrame is loaded. Default: false'
        additional_checkboxes:
          type: array
          items:
            $ref: '#/components/schemas/checkbox-v2'
        verify_national_identification_number:
          type: boolean
          description: Enable verification of National Identification Numbers only in Sweden and Norway. This option also make the national identification number mandatory. (Not applicable for countries outside of Sweden and Norway)
        auto_capture:
          type: boolean
          description: Allow merchant to trigger auto capturing.
        require_client_validation:
          type: boolean
          description: If true, a client side validation is needed to complete the purchase
        enable_discount_module:
          type: boolean
          description: Enables the inline discount module
        show_vat_registration_number_field:
          type: boolean
          description: If true, a optional VAT registration number field will be shown in the address form. Only applies for b2b orders.
    checkbox-v2:
      type: object
      required:
      - checked
      - id
      - required
      - text
      properties:
        text:
          type: string
          example: Please add me to the newsletter list, read more here \[link\](http://www.google.com)
          description: Text that will be displayed to the consumer aside the checkbox. Links and formatting can be added using Markdown. (max 1000 characters)
        checked:
          type: boolean
          description: Default state of the additional checkbox. It will use this value when loaded for the first time.
        required:
          type: boolean
          description: Whether it is required for the consumer to check the additional checkbox box or not in order to complete the purchase.
        id:
          type: string
          example: newsletter_opt_in
          description: Identifier used when presenting data back to merchant
    address:
      type: object
      properties:
        given_name:
          type: string
          example: John
          description: Given name.
        family_name:
          type: string
          example: Doe
          description: Family name.
        email:
          type: string
          example: john@doe.com
          description: E-mail address.
        title:
          type: string
          example: Mr
          description: Title.<p>Valid values for UK:</p><ul><li><em>Mr</em></li><li><em>Ms</em></li><li><em>Mrs</em></li><li><em>Miss</em></li></ul><p>Valid values for DACH:</p><ul><li><em>Herr</em></li><li><em>Frau</em></li></ul><p>Valid values for NL:</p><ul><li><em>Dhr.</em></li><li><em>Mevr.</em></li></ul>
        street_address:
          type: string
          example: Lombard St 10
          description: Street address, first line. (Street name and number)
        street_address2:
          type: string
          example: Apt 214
          description: Street address, second line. (Apartment number, suite, etc.)
        street_name:
          type: string
          example: Lombard St
          description: Street name. Only applicable in DE/AT/NL. Do not combine with street_address. See <b>streetNumber</b>.
        street_number:
          type: string
          example: '10'
          description: Street number. Only applicable in DE/AT/NL. Do not combine with street_address. See <b>streetName</b>.
        house_extension:
          type: string
          example: B
          description: House extension. Only applicable in NL
        postal_code:
          type: string
          example: '90210'
          description: Postal/post code.
        city:
          type: string
          example: Beverly Hills
          description: City.
        region:
          type: string
          example: CA
          description: State or Region.
        phone:
          type: string
          example: '333444555'
          description: Phone number.
        country:
          type: string
          example: US
          description: ISO 3166 alpha-2. Country.
        care_of:
          type: string
          example: C/O
          description: Care of.
    checkbox:
      type: object
      required:
      - checked
      - required
      - text
      properties:
        text:
          type: string
          example: Please add me to the newsletter list, read more here \[link\](http://www.google.com)
          description: Text that will be displayed to the consumer aside the checkbox. Links and formatting can be added using Markdown. (max 1000 characters)
        checked:
          type: boolean
          description: Default state of the additional checkbox. It will use this value when loaded for the first time.
        required:
          type: boolean
          description: Whether it is required for the consumer to check the additional checkbox box or not in order to complete the purchase.
    shipping_attributes:
      type: object
      properties:
        weight:
          type: integer
          format: int64
          example: 1000
          description: The product's weight as used in the merchant's webshop. Non-negative. Measured in grams.
        dimensions:
          $ref: '#/components/schemas/dimensions'
        tags:
          type: array
          description: The product's extra features, example ["dangerous_goods", "bulky"]
          items:
            type: string
    order:
      type: object
      required:
      - locale
      - order_amount
      - order_lines
      - order_tax_amount
      - purchase_country
      - purchase_currency
      properties:
        order_id:
          type: string
          example: f3392f8b-6116-4073-ab96-e330819e2c07
          description: Unique order ID that will be used for the entire lifecycle of the order. (max 255 characters)
          readOnly: true
        name:
          type: string
          example: Women's Fashion
          description: The merchant name (max 255 characters).
          readOnly: true
        purchase_country:
          type: string
          example: US
          description: "The purchase country of the merchant's store. The format to be used is ISO 3166 alpha-2. Eg: GB, SE, DE, US, etc. \n\nNote: purchase country and currency need to match the defined merchant configuration. For global configuration see more details [here](https://docs.klarna.com/kco/use-cases/selling-to-multiple-countries/)"
          pattern: ^[A-Za-z]{2,2}$
        purchase_currency:
          type: string
          example: USD
          description: 'The purchase currency of the merchant''s store. The format to be used is ISO 4217. Eg: USD, EUR, SEK, GBP, etc.


            Note: purchase country and currency need to match the defined merchant configuration. For global configuration see more details [here](https://docs.klarna.com/kco/use-cases/selling-to-multiple-countries/)'
          pattern: ^[A-Za-z]{3,3}$
        locale:
          type: string
          example: en-US
          description: Used to define the language and region of the customer. RFC 1766 customer's locale.
          pattern: ^[A-Za-z]{2,2}(?:-[A-Za-z]{2,2})*$
        status:
          type: string
          example: CHECKOUT_INCOMPLETE
          description: The current status of the order. The status will be incomplete until the customer has been successfully authorized.
        billing_address:
          $ref: '#/components/schemas/address'
        shipping_address:
          $ref: '#/components/schemas/address'
        order_amount:
          type: integer
          format: int64
          example: 50000
          description: 'Total amount of the order including tax and any available discounts. The value should be in non-negative minor units.


            Example: 25 Euros should be 2500.'
          minimum: 0
        order_tax_amount:
          type: integer
          format: int64
          example: 4545
          description: 'Total tax amount of the order. The value should be in non-negative minor units.


            Example: 25 Euros should be 2500.'
          minimum: 0
        order_lines:
          type: array
          description: An array containing list of line items that are part of this order. Maximum of 1000 line items could be processed in a single order.
          items:
            $ref: '#/components/schemas/order_line'
          maxItems: 1000
          minItems: 0
        customer:
          $ref: '#/components/schemas/customer'
        merchant_urls:
          $ref: '#/components/schemas/merchant_urls'
        html_snippet:
          type: string
          example: <div id='klarna-checkout-container'><script>alert('Initializing Klarna Checkout');</script></div>
          description: The HTML snippet that is used to render the checkout in an iframe.
          readOnly: true
        merchant_reference1:
          type: string
          example: 45aa52f387871e3a210645d4
          description: 'Used for storing merchant''s internal order number or other reference. If set, will be shown on the confirmation page as "order number" . The value is also available in the settlement files. (max 255 characters).

            Example: "45aa52f387871e3a210645d4"'
          minLength: 0
          maxLength: 255
        merchant_reference2:
          type: string
          example: 45aa52f387871e3a210645d4
          description: 'Used for storing merchant''s internal order number or other reference. The value is available in the settlement files. (max 255 characters).

            Example: "45aa52f387871e3a210645d4"'
          minLength: 0
          maxLength: 255
        started_at:
          type: string
          format: date-time
          description: 'ISO 8601 datetime. The date and time when the order has been created. The format will be as follows:

            "yyyy-mm-ddThh:mm:ssZ"'
          readOnly: true
        completed_at:
          type: string
          format: date-time
          description: 'ISO 8601 datetime. The date and time when the order has been completed. The format will be as follows:

            "yyyy-mm-ddThh:mm:ssZ"'
          readOnly: true
        last_modified_at:
          type: string
          format: date-time
          description: 'ISO 8601 datetime. The date and time when the order was last modified. The format will be as follows:

            "yyyy-mm-ddThh:mm:ssZ"'
          readOnly: true
        options:
          $ref: '#/components/schemas/options'
        attachment:
          $ref: '#/components/schemas/attachment'
        external_payment_methods:
          type: array
          description: List of external payment methods that will be displayed as part of payment methods in the checkout.
          items:
            $ref: '#/components/schemas/payment_provider'
        external_checkouts:
          type: array
          description: 'List of external checkouts that will be displayed as part of payment methods in the checkout.

            The image_url is required, and the image size has to be 276x48px'
          items:
            $ref: '#/components/schemas/payment_provider'
        shipping_countries:
          type: array
          description: "List of allowed shipping countries for this order in ISO-3166 alpha-2 format.\n\nIf specified, the customer will be able to change the shipping country in the checkout and you will be notified through address_update callback or the shipping_address_change javascript event. \n\nIf not specified then the default value will be the purchase country.\n\nExample: look at billing_countries example."
          items:
            type: string
        shipping_options:
          type: array
          description: A list of shipping options available for this order.
          items:
            $ref: '#/components/schemas/shipping_option'
        merchant_data:
          type: string
          example: '{"marketplace_seller_info":[{"product_category":"Women''s Fashion","product_name":"Women Sweatshirt"}]}'
          description: Pass through field to send any information about the order to be used later for reference while retrieving the order details (max 6000 characters).
          minLength: 0
          maxLength: 6000
        gui:
          $ref: '#/components/schemas/gui'
        merchant_requested:
          $ref: '#/components/schemas/merchant_requested'
        selected_shipping_option:
          $ref: '#/components/schemas/shipping_option'
        recurring:
          type: boolean
          description: 'Indicates whether this purchase will create a token that can be used by the merchant to create recurring purchases. This must be enabled for the merchant to use. Default: false


            Depending on specified country, recurring could be used for the following payment methods: Pay Later, Direct Debit, Card.'
        recurring_token:
          type: string
          description: Token to be used when creating recurring orders.
          readOnly: true
        recurring_description:
          type: string
          description: Description to be added to the recurring order.
          readOnly: true
          minLength: 0
          maxLength: 255
        billing_countries:
          type: array
          description: 'List of allowed billing countries for this order.

            If specified, the customer will be able to change the billing country in the checkout and you will be notified through country_change callback or the billing_address_change javascript event.

            If not specified but shipping_countries is specified, will use same values as shipping_countries.

            If not specified and shipping_countries is not specified, then the default value will be the purchase country.


            Example: ["AD", "AE", "AG", "AI", "AL", "AM", "AQ", "AR", "AS", "AT", "AU", "AW", "AX", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BJ", "BL", "BM", "BN", "BO", "BQ", "BR", "BS", "BT", "BW", "BY", "BZ", "CA", "CF", "CH", "CI", "CK", "CL", "CM", "CN", "CO", "CR", "CU", "CV", "CW", "CX", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "ER", "ES", "ET", "FI", "FJ", "FK", "FM", "FO", "FR", "GA", "GB", "GD", "GE", "GF", "GG", "GH", "GI", "GL", "GM", "GN", "GP", "GR", "GS", "GT", "GU", "GY", "HK", "HN", "HR", "HU", "ID", "IE", "IL", "IM", "IN", "IS", "IT", "JE", "JM", "JO", "JP", "KE", "KG", "KI", "KM", "KN", "KR", "KW", "KY", "KZ", "LA", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "MA", "MC", "MD", "ME", "MF", "MG", "MH", "MK", "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR", "NU", "NZ", "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PM", "PR", "PS", "PT", "PW", "PY", "QA", "RE", "RO", "RS", "RU", "RW", "SA", "SB", "SC", "SE", "SG", "SH", "SI", "SJ", "SK", "SL", "SM", "SN", "SR", "ST", "SV", "SX", "SZ", "TC", "TF", "TG", "TH", "TJ", "TK", "TL", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "UM", "US", "UY", "UZ", "VA", "VC", "VG", "VI", "VN", "VU", "WF", "WS", "XK", "YT", "ZA", "ZM", "ZW"]"'
          items:
            type: string
        tags:
          type: array
          description: 'Extra information added to the order.


            Example: ["dangerous_goods", "bulky"]'
          items:
            type: string
        discount_lines:
          type: array
          description: List of discounts applied to this order via the KCO discount-service
          items:
            $ref: '#/components/schemas/discount_line'
    gui:
      type: object
      properties:
        options:
          type: array
          description: "An array of options to define the checkout behaviour. Supported options: minimal_confirmation.\n\nThe gui object is an array of options to modify checkout client ui behaviours. \n\nExamples: [\"minimal_confirmation\"]"
          items:
            type: string
    product_identifiers:
      type: object
      properties:
        brand:
          type: string
          example: Intel
          description: The product's brand name as generally recognized by consumers. If no brand is available for a product, do not supply any value.
          minLength: 0
          maxLength: 70
        color:
          type: string
          example: Blue
          description: Color to be shown to the end customer (max 64 characters).
          minLength: 0
          maxLength: 64
        category_path:
          type: string
          example: Electronics Store > Computers & Tablets > Desktops
          description: 'The product''s category path as used in the merchant''s webshop. Include the full and most detailed category and separate the segments with '' > ''. (max 750 characters)


            Example: "Electronics Store > Computers & Tablets > Desktops"'
          minLength: 0
          maxLength: 750
        global_trade_item_number:
          type: string
          example: '735858293167'
          description: The product's Global Trade Item Number (GTIN). Common types of GTIN are EAN, ISBN or UPC. Exclude dashes and spaces, where possible
          minLength: 0
          maxLength: 50
        manufacturer_part_number:
          type: string
          example: BOXNUC5CPYH
          description: The product's Manufacturer Part Number (MPN), which - together with the brand - uniquely identifies a product. Only submit MPNs assigned by a manufacturer and use the most specific MPN possible
          minLength: 0
          maxLength: 70
        size:
          type: string
          example: Medium
          description: Size to be shown to the end customer (max 64 characters).
          minLength: 0
          maxLength: 64
    payment_provider:
      type: object
      required:
      - name
      - redirect_url
      properties:
        name:
          type: string
          example: PayhereUs
          description: The name of the payment provider. (max 255 characters)
          minLength: 0
          maxLength: 255
        fee:
          type: integer
          format: int64
          description: Minor units. Includes tax.
        description:
          type: string
          example: an American company operating a worldwide online payments system
          description: Short description of the payment method. This is displayed below the selected payment method. (max 500 characters)
          minLength: 0
          maxLength: 500
        countries:
          type: array
          description: If specified, limits the method to the listed countries (alpha 2 codes).
          items:
            type: string
        label:
          typ

# --- truncated at 32 KB (45 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/klarna/refs/heads/main/openapi/klarna-checkout-api-openapi.yml