WalletD developers
Platform administration

Subscriptions across all tenants (global admin only)

Subscriptions across every tenant, optionally narrowed by tenant and by status.

GET/v1/platform/subscriptions

Subscriptions across every tenant, optionally narrowed by tenant and by status. Requires a platform staff token holding platform:read; anyone else is refused global_read_only (403). The read is recorded in the cross-tenant access log. Cursor paged: pass the last id you saw as cursor; limit is clamped to 1-100 and defaults to 50.

Authorization

bearerAuth
AuthorizationBearer <token>

A tenant API key (sk_{env}_{id}_{secret}), a wallet user token, or an IdP access token. Which principal the credential resolves to decides the scopes it carries; see the authentication guide.

In: header

Query Parameters

tenant_id?string

Restrict a cross-tenant listing to one tenant

Formatuuid
status?string

Value in

  • "active"
  • "past_due"
  • "paused"
  • "canceled"
cursor?string

Last seen id from the previous page. The listing resumes after that row, so an id that belongs to no row in the listing is refused invalid_request (400) rather than answered with an empty page.

Formatuuid
limit?integer
Range1 <= value <= 100
Default50

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

curl -X GET "https://example.com/v1/platform/subscriptions"
[  {    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",    "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",    "tenant_name": "string",    "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",    "merchant_id": "500924a8-3f5e-4c00-beb8-2efcde988aea",    "plan_name": "string",    "amount": 0,    "currency": "string",    "interval": "weekly",    "status": "active",    "next_charge_at": "2019-08-24T14:15:22Z",    "retry_count": 0,    "created_at": "2019-08-24T14:15:22Z"  }]