A valid request URL is required to generate request examples{
"renews": true,
"paidThrough": "2023-11-07T05:31:56Z",
"invoiceReview": true
}{
"error": {
"code": "backend_resolution_failed",
"message": "<string>",
"retryable": true
}
}{
"error": {
"code": "unauthorized",
"reason": "missing_credentials",
"hint": "<string>"
}
}{
"error": {
"code": "backend_resolution_failed",
"message": "<string>",
"retryable": true
}
}{
"error": {
"code": "not_found",
"message": "<string>"
}
}{
"error": {
"code": "backend_resolution_failed",
"message": "<string>",
"retryable": true
}
}{
"error": {
"code": "rate_limited",
"message": "<string>"
}
}{
"error": {
"code": "backend_resolution_failed",
"message": "<string>",
"retryable": true
}
}Read a Cloud phone's current monthly renewal state
For a paid monthly Cloud phone, read the current Stripe subscription and latest verified paid invoice. The response says whether another monthly charge is scheduled and when the current verified paid period ends. When a draft or open invoice needs review, invoiceReview=true and paidThrough can be in the past; an already issued invoice may still collect even if renews=false. paidThrough does not guarantee device availability: supplier service is checked separately. This read makes a previous period-end stop visible after the page is reloaded. An org admin must be signed in; API keys and non-Cloud orders cannot use it. An invoice review is reported only when the exact subscription and a prior paid invoice are verified; other unverified billing states answer 503.
Hosted deployments only. A local checkout does not mount this route, so calling it there is a 404.
A valid request URL is required to generate request examples{
"renews": true,
"paidThrough": "2023-11-07T05:31:56Z",
"invoiceReview": true
}{
"error": {
"code": "backend_resolution_failed",
"message": "<string>",
"retryable": true
}
}{
"error": {
"code": "unauthorized",
"reason": "missing_credentials",
"hint": "<string>"
}
}{
"error": {
"code": "backend_resolution_failed",
"message": "<string>",
"retryable": true
}
}{
"error": {
"code": "not_found",
"message": "<string>"
}
}{
"error": {
"code": "backend_resolution_failed",
"message": "<string>",
"retryable": true
}
}{
"error": {
"code": "rate_limited",
"message": "<string>"
}
}{
"error": {
"code": "backend_resolution_failed",
"message": "<string>",
"retryable": true
}
}Authorizations
The control surface credential. Send Authorization: Bearer <token>.
Two kinds of token are accepted and they are told apart by shape, not by a separate header. A token beginning pbk_ is an org scoped API key, whose public half and secret half are generated together and of which only a hash of the secret is ever stored; anything else is treated as an OAuth 2.1 access token and verified against the authorization server's keys.
Both resolve to the same context: an org, a principal and a set of scopes. Nothing downstream branches on which channel you used, with one deliberate exception, key management, which requires a signed-in person so that a key can never mint another key.
Scopes are enforced when MCP tools are REGISTERED rather than when they are called, so a tool your credential cannot use is absent from tools/list rather than refused mid gesture.
Path Parameters
The order id, as GET /v1/fulfilments reports it.
Response
Verified current renewal state.
Fresh Stripe-backed renewal state for one paid monthly Cloud order. invoiceReview is omitted for a current paid invoice.
Whether the subscription still schedules a future renewal. An already open invoice may collect even when false.
End of the latest verified paid Stripe invoice period. This date may be in the past when an invoice needs review; supplier availability is checked separately.
Present and true when the latest subscription invoice is draft or open and needs review. A draft may precede any charge attempt; an open invoice can still collect after renewal is turned off.