A valid request URL is required to generate request examples{
"customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"plan": "pro",
"resolved": true,
"features": {}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}What one of your customers is entitled to
Requires billing:read. The resolved answer for one of your customers: the plan their subscription carries, with the overrides you promised them applied on top and the expired ones already dropped.
This is the support view of the same read your product’s gate makes (GET /v1/customers/{id}/entitlements with a server key, or GET /v1/contact/entitlements from the customer’s own session) — the conversation that starts with “they say they paid for this”.
Which subscription answers, when a customer has more than one: the one that grants the most access, and the newest of those. past_due still grants — a failed payment is a payment your gateway is still retrying, and the gateway’s dunning settings are what decide when retrying becomes cancelling. incomplete, paused and canceled grant nothing and come back as plan: none.
A valid request URL is required to generate request examples{
"customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"plan": "pro",
"resolved": true,
"features": {}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}Autorizações
A staff session token, uk_st_…. Minted by sign-up, sign-in or the two-factor exchange. Only a 401 means it is spent; not_a_member (403) is about the organization named in X-Organization-Id and leaves the token good for the others.
Cabeçalhos
The organization the caller is acting on — the org_… code that appears in the panel URL. It identifies; the membership JOIN is what authorizes, so a forged code reads nothing: the answer is not_a_member (403), which does not mean the session is over. Absent, the session's default organization answers, or — if that membership was revoked while the session was open — any other one the caller still holds.
Parâmetros de caminho
The customer, resolved inside the environment above. An id from the other environment answers 404.
Parâmetros de consulta
Which environment to act in. A view parameter, valid only on the staff surface — a machine credential never chooses its environment, it is resolved from the key.
live, test Resposta
The resolved grant.
What one of your customers may do, resolved: their subscription's plan, with the overrides you promised them applied on top. This is the answer your own gate should read — the merge is done here so you never reimplement it from the pieces.
Every feature in the environment's catalogue is present, including the ones the plan does not carry, so a client can render an offer rather than an absence. A feature the plan carries and an override withholds is present and "enabled": false.
The key of the plan behind this answer. none means the customer is on no plan — never subscribed, or the only subscription is cancelled — which is a complete answer and not an error. unknown never appears in a 200: an answer nobody could resolve is a 503, not a plan.
"pro"
Always true in a 200 here. The field exists because it is false on GET /v1/organization/entitlements, where an unresolved read still has a truthful body to send — see that operation.
Keyed by your feature key, the string your own code gates on.
Show child attributes
Show child attributes