Skip to content
Merxian

checkout.expired

The checkout session ended without a payment.

On this page
Typecheckout.expired
CauseThe session reached its expiry time, you expired it, or the buyer cancelled on the hosted page.
PayloadThe checkout_session object in data.object
SubscriptionOn by default for a new endpoint.

When to use it

Release stock or reservations that you held for the session. The buyer needs a new session to pay.

Notes

  • A buyer cancellation also sends this event. The status value then is cancelled.
  • When the session created its own draft transaction and no payment is in progress, Merxian also cancels that transaction.

Payload

The fields of data.object. The envelope is the same for every event.

  • idstring

    The checkout session ID, cs_….

  • objectstring

    Always checkout_session.

  • statusstring

    The state of the session.

    One of: open, payment_pending, completed, expired, cancelled

  • currencystring

    The ISO 4217 currency code. An empty string when the session has no transaction yet.

  • amountsobject

    Amounts in minor units. All 0 when the session has no transaction yet.

    Child attributes of amounts
    • subtotalinteger

      The sum of the line subtotals.

    • discountinteger

      The discount.

    • netinteger

      The amount before tax, after the discount.

    • taxinteger

      The tax.

    • totalinteger

      The amount to pay.

    • refundedinteger

      The amount refunded so far.

  • customerobjectCan be absentCan be null

    The buyer, when the session has one.

    Child attributes of customer
    • idstring

      The customer ID, cus_….

    • emailstringCan be absentCan be null

      The buyer email.

    • namestringCan be absentCan be null

      The buyer name.

  • transaction_idstringCan be absentCan be null

    The transaction of the session, txn_….

  • client_reference_idstringCan be absentCan be null

    The clientReferenceId that you set on the session.

  • created_atstring (date-time)

    When the session was created.

  • completed_atstring (date-time)Can be absentCan be null

    When the buyer completed payment.

Example

checkout.expired · request body
{
  "id": "whevt_7Kd2VpXn4TqB9mLzR",
  "object": "event",
  "type": "checkout.expired",
  "created_at": "2026-09-14T09:24:53Z",
  "api_version": "2026-08-01",
  "account_id": "acct_5Rn8bQ2xW7mK4tLzP",
  "data": {
    "object": {
      "id": "cs_6HvB2nQx9LmT4kWpR",
      "object": "checkout_session",
      "status": "expired",
      "currency": "EUR",
      "amounts": {
        "subtotal": 12000,
        "discount": 0,
        "net": 12000,
        "tax": 2280,
        "total": 14280,
        "refunded": 0
      },
      "customer": {
        "id": "cus_2Lp7XcN4vB8mQ1tKd",
        "email": "ada@example.com",
        "name": "Ada Example"
      },
      "transaction_id": "txn_0F8mQ2rXbT4kL9pZa",
      "client_reference_id": "A-1042",
      "created_at": "2026-09-14T09:21:07Z",
      "completed_at": null
    }
  }
}

Other checkout events: checkout.created, checkout.completed.

Try refund, payment.succeeded,POST /v1/transactions, orIdempotency-Key.