Paycose Docs
FlowEvents

Subscription events

What data you get for subscription.created, .updated, .resumed, .paused, .canceled, and .trial_will_end.

Fires as a subscription's status changes — created, renewed, resumed, paused, canceled, or nearing the end of its trial.

Prop

Type

{
  "id": "sub_01J9ABCDEFGHJKMNPQRSTV",
  "object": "subscription",
  "customer_id": "cus_01J8XYZABCDEFGHJKMNPQR",
  "line_items": [
    {
      "product_id": "prod_01J8XYZABCDEFGHJKMNPQR",
      "product_name": "Pro plan",
      "unit_amount": 150000,
      "quantity": 1,
      "amount_total": 150000,
      "currency": "THB"
    }
  ],
  "total": 150000,
  "currency": "THB",
  "status": "active",
  "collection_method": "charge_automatically",
  "current_period_start": "2026-07-25T00:00:00Z",
  "current_period_end": "2026-08-25T00:00:00Z",
  "trial_end": null,
  "cancel_at_period_end": false,
  "canceled_at": null,
  "metadata": { "order_id": "SO-2026-0042" }
}

All six events share this shape — only status and the matching timestamps change.

There's no separate "trialing" or "past_due" event — a subscription entering one of those states is reported as subscription.updated, with data.status showing the actual value. subscription.trial_will_end fires once, ahead of trial_end, as a reminder — it doesn't change status.