---
title: "Get a checkout session by ID"
method: GET
path: "/api/v1/checkout-sessions/{id}"
tags: ["Checkout Sessions"]
---

# Get a checkout session by ID

`GET /api/v1/checkout-sessions/{id}`

## Path parameters

- `id` string, MeteroidId, required

## Response `200`

Checkout session details

- GetCheckoutSessionResponse
  - `session` CheckoutSession, required
    - `billing_day_anchor` integer, nullable
    - `billing_start_date` string, date, nullable
    - `checkout_type` 'SELF_SERVE' | 'SUBSCRIPTION_ACTIVATION' | 'PLAN_CHANGE' | 'ADDON_PURCHASE', required
    - `checkout_url` string, nullable
    - `completed_at` string, date-time, nullable
    - `coupon_code` string, nullable
    - `created_at` string, date-time, required
    - `customer_id` string, MeteroidId, required
    - `expires_at` string, date-time, nullable — When the session expires. None means the session never expires.
    - `id` string, MeteroidId, required
    - `net_terms` integer, nullable
    - `payment_methods_config` union — Online (card/direct debit), BankTransfer, or External.
      - OnlinePaymentMethodConfig
        - `config` OnlineMethodsConfig
          - `card` OnlineMethodConfig
            - `enabled` boolean, required
          - `direct_debit` OnlineMethodConfig
            - `enabled` boolean, required
      - BankTransferPaymentMethodConfig
        - `account_id` string, MeteroidId
      - ExternalPaymentMethodConfig
    - `plan_version_id` string, MeteroidId, required
    - `status` 'CREATED' | 'AWAITING_PAYMENT' | 'COMPLETED' | 'EXPIRED' | 'CANCELLED', required
    - `subscription_id` string, MeteroidId
    - `trial_duration_days` integer, nullable

## Other responses

- `401` — Unauthorized
- `404` — Not found
- `429` — Too many requests
- `500` — Internal server error

## Changes

- **2026-03-31** (v1) `560215310a09` — 1 breaking, 2 info
  - added `#/components/schemas/OnlinePaymentMethodConfig, #/components/schemas/BankTransferPaymentMethodConfig, #/components/schemas/ExternalPaymentMethodConfig` to the `session/payment_methods_config/oneOf[#/components/schemas/PaymentMethodsConfig]/` response property `oneOf` list for the response status `200`
  - added discriminator to `session/payment_methods_config/oneOf[#/components/schemas/PaymentMethodsConfig]/` response property for the response status `200`
  - removed `subschema #1, subschema #2, subschema #3` from the `session/payment_methods_config/oneOf[#/components/schemas/PaymentMethodsConfig]/` response property `oneOf` list for the response status `200`
- **2026-03-27** (v1) `de35c02bb0d2` — 3 breaking, 3 warning, 1 info
  - for the `path` request parameter `id`, the type/format was changed from `string`/`` to `string`/`MeteroidId`
  - added `#/components/schemas/BankAccountId, subschema #1` to the `session/payment_methods_config/oneOf[#/components/schemas/PaymentMethodsConfig]/oneOf[subschema #2]/account_id` response property `oneOf` list for the response status `200`
  - the `session/payment_methods_config/oneOf[#/components/schemas/PaymentMethodsConfig]/oneOf[subschema #2]/account_id` response's property type/format changed from `string, null`/`` to ``/`` for status `200`
  - added the new `TOO_MANY_REQUESTS` enum value to the `code` response property for the response status `401`
  - …3 more
- …earlier changes not shown

[Full history](https://skmtc.dev/meteroid-oss/apis/meteroid/changes/api/v1/checkout-sessions/:id/get.md)

---

[API](https://skmtc.dev/meteroid-oss/apis/meteroid.md) · [All operations](https://skmtc.dev/meteroid-oss/apis/meteroid/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/meteroid-oss/meteroid/revisions/03f9d8ae5c5e/schema)
