---
title: "Checkout Session Confirm"
method: PUT
path: "/checkout-sessions/{sessionId}/confirm"
tags: ["Front-end Order Creation"]
---

# Checkout Session Confirm

`PUT /checkout-sessions/{sessionId}/confirm`

## Request

- Base URL: `https://paella-sandbox.billie.io/api/v2`
- URL: `https://paella-sandbox.billie.io/api/v2/checkout-sessions/{sessionId}/confirm`
- Auth: OAuth 2
  - Password
  - Token URL: `/oauth/token`
- TypeScript: <https://skmtc.dev/billie/apis/billie-direct-api/docs/checkout-sessions/:sessionId/confirm/put.ts> (a function with typed inputs; its response is checked against the schema)

**Purpose**

Confirms the creation of an authorization where the buyer gave consent to the purchase and was accepted by Billie.

**Preconditions:**

- Session `id` of the Session Create Call
- Request body created with the response values received in the widget. 

**Success**

- Response Code: `HTTP 202`
- response body: `state` -> `created`
- response body: `uuid` -> ID of the created order

**Attention**

- The `duration` and the objects `delivery_address` and `amount` you can copy from the widget response to the new request object.
- The `amount` must be the same as submitted via the widget.
- The `debtor_company` object from the widget response needs to be rebuilt to an object hierarchy `debtor` with `company_address`

## Path parameters

- `sessionId` string, uuid, required

## Request body

- object
  - `amount` object, required: The amount object with split values for net, gross and tax
    - `gross` number, float, required: Value greater than 0, with max. 2 decimals. It should equal to tax + net.
    - `tax` number, float, required: Value greater than or equal to 0, with max. 2 decimals.
    - `net` number, float: Value greater than or equal to 0, with max. 2 decimals.
  - `debtor` object, required: Debtor company
    - `name` string, required
    - `company_address` object, required
      - `street` string, required: Street can be with house number together or provide house number in the dedicated field.
      - `house_number` string: House number. Leave empty if it is provided as part of the street
      - `city` string, required: City, district, suburb, town, or village.
      - `postal_code` string, required: ZIP or postal code.
      - `country` string, required: ISO 3166-1 alpha-2 country code (two letters: DE, AT, etc.). See https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
  - `duration` integer: Order Duration
  - `delivery_address` object
    - `street` string, required: Street can be with house number together or provide house number in the dedicated field.
    - `house_number` string: House number. Leave empty if it is provided as part of the street
    - `city` string, required: City, district, suburb, town, or village.
    - `postal_code` string, required: ZIP or postal code.
    - `country` string, required: ISO 3166-1 alpha-2 country code (two letters: DE, AT, etc.). See https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
  - `external_code` string: Order external code

## Response `202`

Order data successfully confirmed

- Order
  - `external_code` string, nullable
  - `uuid` string, uuid
  - `state` 'pre_waiting' | 'authorized' | 'waiting' | 'created' | 'declined' | 'shipped' | 'partially_shipped' | 'complete' | 'canceled'
  - `decline_reason` 'risk_policy' | 'risk_scoring_failed' | 'debtor_not_identified' | 'debtor_address' | 'risk_scoring_failed' | 'debtor_limit_exceeded'
  - `amount` TaxedMoney
    - `gross` number, float, required: Value greater than 0, with max. 2 decimals. It should equal to net + tax.
    - `net` number, float, required: Value greater than 0, with max. 2 decimals.
    - `tax` number, float, required: Value greater than or equal to 0, with max. 2 decimals.
  - `unshipped_amount` TaxedMoney
    - `gross` number, float, required: Value greater than 0, with max. 2 decimals. It should equal to net + tax.
    - `net` number, float, required: Value greater than 0, with max. 2 decimals.
    - `tax` number, float, required: Value greater than or equal to 0, with max. 2 decimals.
  - `duration` integer
  - `created_at` string, date-time
  - `delivery_address` Address
    - `house_number` string
    - `street` string, required
    - `postal_code` string, required
    - `city` string, required
    - `country` string, required: ISO 3166-1 alpha-2 country code (two letters: DE, AT, etc.). See https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
  - `debtor` Debtor
    - `name` string
    - `company_address` Address
      - `house_number` string
      - `street` string, required
      - `postal_code` string, required
      - `city` string, required
      - `country` string, required: ISO 3166-1 alpha-2 country code (two letters: DE, AT, etc.). See https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
    - `billing_address` Address
      - `house_number` string
      - `street` string, required
      - `postal_code` string, required
      - `city` string, required
      - `country` string, required: ISO 3166-1 alpha-2 country code (two letters: DE, AT, etc.). See https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
    - `bank_account` BankAccount
      - `iban` string
      - `bic` string
    - `external_data` DebtorExternalData
      - `merchant_customer_id` string
      - `name` string
      - `industry_sector` string, nullable
      - `address` Address
        - `house_number` string
        - `street` string, required
        - `postal_code` string, required
        - `city` string, required
        - `country` string, required: ISO 3166-1 alpha-2 country code (two letters: DE, AT, etc.). See https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
  - `invoices` OrderInvoiceResponse[]
    - `uuid` string, uuid
    - `invoice_number` string, nullable
    - `state` string, nullable
    - `payout_amount` number, float, nullable
    - `amount` number, float
    - `amount_net` number, float
    - `amount_tax` number, float
    - `outstanding_amount` number, float, nullable
    - `pending_merchant_payment_amount` number, float, nullable
    - `pending_cancellation_amount` number, float, nullable
    - `fee_amount` number, float, nullable
    - `fee_rate` number, float, nullable
    - `due_date` string, date
    - `created_at` string, date
  - `selected_payment_method` 'bank_transfer' | 'direct_debit', nullable
  - `payment_methods` PaymentMethod[]
    - `type` 'bank_transfer' | 'direct_debit'
    - `data` object: Payment method details
      - `iban` string
      - `bic` string
      - `bank_name` string, nullable: Name of the Bank entity
      - `bank_giro` string, nullable: Bank giro number (Sweden only)
      - `sort_code` string, nullable: Bank sort code (GB only)
      - `account_number` string, nullable: Bank account number (GB, NL and NO)
      - `bank_account_owner` string: Bank account owner entity
      - `mandate_reference` string, nullable: Direct Debit SEPA Mandate Reference (for Direct Debit only)
      - `mandate_execution_date` string, date-time
      - `creditor_identification` string, nullable: Creditor Identification Code (for Direct Debit only)

## Other responses

- `400`: Invalid Request Data
- `401`: Unauthorized request or invalid credentials
- `404`: Resource Not Found
- `500`: Unexpected Server Error

## Changes

- **2026-11-03** `29d6a8a63ff9`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/billie/apis/billie-direct-api/changes/checkout-sessions/:sessionId/confirm/put.md)

---

[API](https://skmtc.dev/billie/apis/billie-direct-api.md) - [All operations](https://skmtc.dev/billie/apis/billie-direct-api/llms.txt) - [OpenAPI document](https://skmtc.dev/billie/apis/billie-direct-api/revisions/29d6a8a63ff9?raw)
