<!-- ZenPays documentation · https://docs.zenpayz.com/docs/reference/objects/subscription -->

# The Subscription object

The `Subscription` object.

:::note
16 of 16 fields on this object have no description yet. Field documentation lives in the SDK types (`types/subscription.ts`) so it stays in one place — this page is generated from it.
:::

## Fields

<ParamTable
  label="Field"
  rows={[
    { name: "subscriptionId", type: "string", required: true },
    { name: "merchantId", type: "string", required: true },
    { name: "customerId", type: "string", required: true },
    { name: "customerEmail", type: "string", required: true },
    { name: "planId", type: "string", required: true },
    { name: "status", type: "SubscriptionStatus", required: true, desc: "See SubscriptionStatus. [SubscriptionStatus](/docs/reference/enums/subscription-status)" },
    { name: "collectionMethod", type: "CollectionMethod", required: true, desc: "See CollectionMethod. [CollectionMethod](/docs/reference/enums/subscription-status)" },
    { name: "storedPaymentMethodId", type: "string", required: false },
    { name: "tspProvider", type: "string", required: false },
    { name: "currentPeriodStart", type: "string", required: true },
    { name: "currentPeriodEnd", type: "string", required: true },
    { name: "nextBillingAt", type: "string", required: true },
    { name: "trialEnd", type: "string", required: false },
    { name: "cancelAtPeriodEnd", type: "boolean", required: true },
    { name: "cancelledAt", type: "string", required: false },
    { name: "pausedAt", type: "string", required: false },
  ]}
/>

## Example

```json
{
  "subscriptionId": "subscription_1a2b3c",
  "merchantId": "merchant_1a2b3c",
  "customerId": "customer_1a2b3c",
  "customerEmail": "customer@example.com",
  "planId": "plan_1a2b3c",
  "status": "trialing",
  "collectionMethod": "auto_charge",
  "storedPaymentMethodId": "storedpaymentmethod_1a2b3c",
  "currentPeriodStart": "string",
  "currentPeriodEnd": "string",
  "nextBillingAt": "2026-01-15T09:30:00Z",
  "cancelAtPeriodEnd": false
}
```
