---
title: "List Subscription Payments"
method: GET
path: "/subscriptions/{subscription_id}/payments"
---

# List Subscription Payments

`GET /subscriptions/{subscription_id}/payments`

Returns the charge history for a subscription — one row per billing attempt, including plan/phase context when the subscription is linked to a plan. This is a net-new endpoint (there was no payments subresource before Plans), so it ships as a single, clean shape with no legacy fields to carry.

## Path parameters

- `subscription_id` string, required

## Query parameters

- `limit` integer
- `offset` integer

## Response `200`

200

- object
  - `items` object[] — Every payment attempt for this subscription, most recent first.
    - `id` string
    - `payment_id` string
    - `idempotency_key` string
    - `status` string — Platform vocabulary: SUCCEEDED, DECLINED, REJECTED, ERROR, PENDING, CREATED, CANCELED — not the engine's internal EXECUTED.
    - `sub_status` string
    - `provider` string — null for $0 cycles, the starter row, and rows charged before the provider-capture field existed.
    - `payment_method` object
      - `id` string
      - `type` string
    - `amount` object
      - `currency` string
      - `value` number
    - `currency` string
    - `subtotal` number
    - `total` number
    - `plan_id` string — null for raw (non-plan) subscriptions.
    - `line_items` object[]
      - `type` string
      - `label` string
      - `service_period` object
        - `start` string
        - `end` string
      - `amount` object
        - `currency` string
        - `value` number
    - `phase` object — null for the starter row and for legacy (non-plan) rows.
      - `index` integer
      - `name` string
      - `type` string
    - `phase_payment` integer — 1..N within the current phase. null on the starter row.
    - `billing_cycle` integer — 0 = starter row, null = TRIAL-phase rows, 1.. from the first REGULAR-phase payment.
    - `retry` object
      - `count` integer
      - `forced` boolean
    - `trace_id` string
    - `created_at` string
    - `updated_at` string
  - `pagination` object
    - `total` integer
    - `limit` integer
    - `offset` integer
    - `has_more` boolean

---

[API](https://skmtc.net/y/apis/ai-caller.md) · [All operations](https://skmtc.net/y/apis/ai-caller/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/y/ai-caller/revisions/05b629819b49/schema)
