Endpoint
Request
Path parameters
Query parameters
Headers
Example
Response
Fields
Status values
Error responses
Unknown subscribers
If Gatlio has not seen a givenstripe_customer_id before (no failed payment on record), the response is:
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
Look up the billing enforcement status for a subscriber.
GET /api/subscriber-status/:tenantSlug
| Parameter | Description |
|---|---|
tenantSlug | Your Gatlio tenant slug |
| Parameter | Required | Description |
|---|---|---|
stripe_customer_id | ✓ | The subscriber’s Stripe customer ID (cus_…) |
hmac | HMAC-SHA256(hmacSecret, stripe_customer_id). Strongly recommended in production — prevents a client from spoofing another subscriber’s customer ID |
| Header | Value |
|---|---|
Authorization | Bearer <publishableKey> |
GET /api/subscriber-status/acme?stripe_customer_id=cus_xxxxxxxxxxxxxxxx
Authorization: Bearer pk_live_abc123
{
"status": "warning",
"card_update_url": "https://api.gatlio.io/update-card?tenant=acme&token=xxx",
"entitlements": {
"powered_by_watermark": true,
"custom_domain": false,
"downstream_webhooks": false
}
}
| Field | Type | Description |
|---|---|---|
status | "active" | "warning" | "lockout" | Current billing enforcement status |
card_update_url | string | null | URL to the card update page. Present when status is "warning" and a card update URL is configured |
entitlements | object | Capability flags for the subscriber’s tenant tier |
| Status | Meaning |
|---|---|
active | Payment is current — no enforcement shown |
warning | Soft decline — show dismissable banner nudging card update |
lockout | Hard decline or exhausted retries — show full-screen gate |
| Status | Meaning |
|---|---|
401 Unauthorized | Missing or invalid publishable key |
402 Payment Required | Tenant’s Gatlio subscription is suspended |
404 Not Found | Tenant slug not found |
stripe_customer_id before (no failed payment on record), the response is:
{ "status": "active" }