Mutable state, upserted. v1 has one type, subscription, the source of
MRR. Server keys (sk_live_) only.
{
"type": "subscription",
"id": "sub_9",
"status": "active",
"mrr": 4900,
"currency": "usd",
"at": "2026-07-18T09:14:02Z"
}| Field | Required | Notes |
|---|---|---|
type | ✓ | "subscription" |
id | ✓ | The subscription's stable id in your biller. Upsert key. |
status | ✓ | Free string, up to 128 characters. Only "active" counts toward MRR. |
mrr | ✓ | Integer minor units, monthly-normalized by you (annual ÷ 12). |
currency | ✓ | ISO-4217. |
at | Version timestamp for last-write-wins. Defaults to arrival time. |
Semantics: send the full current state every time; the latest at wins.
Sending the same update twice is harmless: MRR reads the latest version
of each subscription, so replays and races cannot double-count.
MRR = sum of mrr over the latest version of each subscription where
status = "active", per currency.