Skip to content
Merxian

payment.expired

The payment expired before it completed.

On this page
Typepayment.expired
CauseThe payer did not complete the payment in time.
PayloadThe payment object in data.object
SubscriptionOn by default for a new endpoint.

When to use it

Stop waiting for this payment. Create a new session if the buyer still wants to pay.

Payload

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

  • idstring

    The payment ID, pay_….

  • objectstring

    Always payment.

  • statusstring

    The state that this event reports. It matches the event type.

    One of: created, processing, succeeded, failed, canceled, expired, dispute_opened

  • The transaction that the payment collects, txn_….

  • checkout_idstringCan be absentCan be null

    The checkout session that created the payment, cs_….

  • amountinteger

    The payment amount, in minor units.

  • currencystring

    The ISO 4217 currency code.

  • payment_methodobjectCan be absentCan be null

    The payment method, when it is known. Use type for display only. The set of values is not fixed.

    Child attributes of payment_method
    • typestring

      The kind of payment method.

    • brandstringCan be absentCan be null

      Not filled in this version.

    • last4stringCan be absentCan be null

      Not filled in this version.

    • countrystringCan be absentCan be null

      Not filled in this version.

  • failureobjectCan be absentCan be null

    Why the payment failed. Present on payment.failed.

    Child attributes of failure
    • codestring

      Always payment_failed in this version.

    • messagestring

      A message that you can show to a buyer.

  • created_atstring (date-time)

    When the payment was created.

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

    When the payment succeeded.

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

    When the payment failed.

  • updated_atstring (date-time)

    When the payment last changed.

Example

payment.expired · request body
{
  "id": "whevt_7Kd2VpXn4TqB9mLzR",
  "object": "event",
  "type": "payment.expired",
  "created_at": "2026-09-14T09:24:53Z",
  "api_version": "2026-08-01",
  "account_id": "acct_5Rn8bQ2xW7mK4tLzP",
  "data": {
    "object": {
      "id": "pay_3RtN6wYc8mK2hQvJd",
      "object": "payment",
      "status": "expired",
      "transaction_id": "txn_0F8mQ2rXbT4kL9pZa",
      "checkout_id": "cs_6HvB2nQx9LmT4kWpR",
      "amount": 14280,
      "currency": "EUR",
      "payment_method": {
        "type": "visa",
        "brand": null,
        "last4": null,
        "country": null
      },
      "failure": null,
      "created_at": "2026-09-14T09:23:40Z",
      "succeeded_at": null,
      "failed_at": null,
      "updated_at": "2026-09-14T09:24:51Z"
    }
  }
}

Other payment events: payment.created, payment.processing, payment.succeeded, payment.failed, payment.canceled.

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