API ReferenceAdmin Billing
Reconcile Subscription
POST
/v1/admin/billing/reconcileCalled by the SPA when it returns from Checkout (?status=success).
Pulls the saved card from Stripe and applies the locked, idempotent recovery NOW, so the dashboard reflects the real result immediately instead of showing stale "Suspended" until the async webhook lands. Returns the fresh subscription so the SPA can render active / payment_failed / no-card without polling.
Authorization
HTTPBearer AuthorizationBearer <token>
In: header
Response Body
application/json
curl -X POST "https://example.com/v1/admin/billing/reconcile"{ "status": "string", "trial_end": "2019-08-24T14:15:22Z", "trial_days_left": 0, "current_period_start": "2019-08-24T14:15:22Z", "current_period_end": "2019-08-24T14:15:22Z", "has_payment_method": false, "payment_failed_at": "2019-08-24T14:15:22Z", "payment_retry_at": "2019-08-24T14:15:22Z", "payment_action_required_at": "2019-08-24T14:15:22Z", "payment_action_url": "string", "card_exp_month": 0, "card_exp_year": 0, "suspended_at": "2019-08-24T14:15:22Z", "deletion_requested_at": "2019-08-24T14:15:22Z", "purge_date": "2019-08-24T14:15:22Z", "per_tenant": [ { "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0", "name": "string", "seats": 0, "mau": 0, "kms": 0 } ], "totals": { "workforce": 0, "external": 0, "kms": 0 }, "estimate_lines": [ { "description": "string", "quantity": 0, "unit_amount": 0, "amount": 0 } ], "estimate_total": 0}