neo-pays

Subscriptions

Generated page, from the OpenAPI specification the gateway serves (GET /v1/openapi.json). Do not edit it by hand: it is rewritten on every build.

Method Path Description
GET /v1/subscriptions List subscriptions
POST /v1/subscriptions Create a subscription
GET /v1/subscriptions/{id} Retrieve a subscription
DELETE /v1/subscriptions/{id} Cancel a subscription

GET /v1/subscriptions

List subscriptions

ⓘ A flat list, capped at fifty, with no pagination — an account beyond fifty standing instructions is running a billing product, and that is read in the dashboard. Stating the cap is better than a page parameter that would mean nothing.

Parameters

Name In Required Description
status query no Filter on status (active, past_due, cancelled…).

Responses

  • 200 — OK
  • 401 — API key missing or rejected
  • 403 — The key does not carry the required scope, or the account is not active
  • 429 — The key's request budget is exhausted (300/min) — honour Retry-After

POST /v1/subscriptions

Create a subscription

Opens a standing instruction to bill a customer at a plan's cadence.

⚠️ A SUBSCRIPTION NEVER DEBITS BY ITSELF. It issues an invoice when due and collects on a stored payment method; there is no direct-debit mandate on this platform, and no rail here carries one. That is why creation requires the can_initiate_payment scope: the power a subscription confers is exactly the power to collect, granted once for an open-ended series.

The plan is created in the dashboard; plan_id is its public identifier.

Parameters

Name In Required Description
Idempotency-Key header no An idempotency key specific to THIS operation.

Responses

  • 201 — Subscription created
  • 401 — API key missing or rejected
  • 403 — The key does not carry the required scope, or the account is not active
  • 422 — Plan not found, inactive, or belonging to another account
  • 429 — The key's request budget is exhausted (300/min) — honour Retry-After

GET /v1/subscriptions/{id}

Retrieve a subscription

The subscription and its counters. A non-zero retry_count signals a collection currently failing on the present cycle.

Parameters

Name In Required Description
id path yes

Responses

  • 200 — OK
  • 401 — API key missing or rejected
  • 403 — The key does not carry the required scope, or the account is not active
  • 404 — No subscription with that identifier
  • 429 — The key's request budget is exhausted (300/min) — honour Retry-After

DELETE /v1/subscriptions/{id}

Cancel a subscription

Immediate cancellation by default. ?at_period_end=true lets the paid period run to its end and cancels instead of renewing at the next due date.

ⓘ Neither one refunds what has already been collected: a refund is a separate operation, deliberately.

Parameters

Name In Required Description
id path yes
at_period_end query no true = cancel at the end of the paid period rather than immediately.

Responses

  • 200 — Cancelled
  • 401 — API key missing or rejected
  • 403 — The key does not carry the required scope, or the account is not active
  • 404 — No subscription with that identifier
  • 422 — The subscription cannot be cancelled in its current state
  • 429 — The key's request budget is exhausted (300/min) — honour Retry-After