CommetCommet
GitHubDiscordStatus
Batch create customers POSTGrant customer credit POSTCreate customer POSTGrant temporary plan access POSTGet customer GETList customer credits GETList customers GETList plan grants GETRevoke remaining customer credit POSTRevoke temporary plan access POSTUpdate customer PATCHUpdate temporary access expiration PATCH
DocumentationKnowledge BaseBuild with AIAPI ReferenceWebhooks

Revoke remaining customer credit

Revoke the unallocated remainder of a customer credit grant. Applied invoice history is unchanged.

POST
/customers/{id}/credits/{creditId}/revoke

Revoke the unallocated remainder of a customer credit grant. Applied invoice history is unchanged.

Authorization

ApiKeyAuth
x-api-key<token>

In: header

Path Parameters

id*string
creditId*string

Header Parameters

Idempotency-Key?string

Unique key used to safely retry this write for 24 hours without applying it twice.

Length1 <= length <= 200

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/customers/string/credits/string/revoke"
{  "id": "cc_1a2b3c4d",  "remainingAmount": 0,  "revokedAmount": 500,  "currency": "usd",  "object": "customer_credit",  "livemode": false}
{  "error": {    "type": "validation_error",    "code": "validation_error",    "message": "The request contains an invalid parameter.",    "doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/validation_error.md"  }}
{  "error": {    "type": "authentication_error",    "code": "unauthorized",    "message": "A valid API key is required.",    "doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/unauthorized.md"  }}
{  "error": {    "type": "authentication_error",    "code": "forbidden",    "message": "You do not have permission to perform this operation.",    "doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/forbidden.md"  }}
{  "error": {    "type": "not_found_error",    "code": "not_found",    "message": "The requested resource was not found.",    "doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/not_found.md"  }}
{  "error": {    "type": "conflict_error",    "code": "idempotency_in_progress",    "message": "A request with this idempotency key is still being processed.",    "doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/idempotency_in_progress.md"  }}
{  "error": {    "type": "rate_limit_error",    "code": "rate_limited",    "message": "Too many requests. Retry after the interval specified in the Retry-After header.",    "doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/rate_limited.md"  }}
{  "error": {    "type": "internal_error",    "code": "internal_error",    "message": "An unexpected error occurred while processing the request.",    "doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/internal_error.md"  }}
{  "error": {    "type": "internal_error",    "code": "idempotency_unavailable",    "message": "Idempotency storage is temporarily unavailable. Retry with the same idempotency key.",    "doc_url": "https://commet.co/docs/api-reference/2026-08-27/errors/idempotency_unavailable.md"  }}

List plan grants GET

List the independent audit timeline for paid-plan access granted without checkout or payment credentials.

Revoke temporary plan access POST

End expanded access immediately and restore the base plan's limits. The subscription, billing cycle, invoices, and payment state remain unchanged.