End expanded access immediately and restore the base plan's limits. The subscription, billing cycle, invoices, and payment state remain unchanged.
End expanded access immediately and restore the base plan's limits. The subscription, billing cycle, invoices, and payment state remain unchanged.
ApiKeyAuth In: header
Unique key used to safely retry this write for 24 hours without applying it twice.
1 <= length <= 200application/json
TypeScript Definitions
Use the request body type in TypeScript.
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/plan-grants/string/revoke" \ -H "Content-Type: application/json" \ -d '{ "reason": "string" }'{ "id": "grant_1a2b3c4d", "customerId": "cus_1a2b3c4d", "subscriptionId": "sub_1a2b3c4d", "basePlanId": "plan_1a2b3c4d", "planId": "plan_5e6f7a8b", "planReleaseId": "release_5e6f7a8b", "status": "revoked", "duration": "until_date", "durationCycles": null, "startsAt": "2026-09-07T12:00:00.000Z", "expiresAt": "2026-10-07T12:00:00.000Z", "reason": "Evaluate Business features", "source": "api", "revokedAt": "2026-09-07T12:00:00.000Z", "createdAt": "2026-09-07T12:00:00.000Z", "updatedAt": "2026-09-07T12:00:00.000Z", "events": [ { "id": "event_1a2b3c4d", "type": "created", "reason": "Evaluate Business features", "source": "api", "previousExpiresAt": null, "expiresAt": "2026-10-07T12:00:00.000Z", "duration": "until_date", "durationCycles": null, "requestedExpiresAt": "2026-10-07T12:00:00.000Z", "createdAt": "2026-09-07T12:00:00.000Z" }, { "id": "event_5e6f7a8b", "type": "revoked", "reason": "Evaluation ended", "source": "api", "previousExpiresAt": "2026-10-07T12:00:00.000Z", "expiresAt": "2026-10-07T12:00:00.000Z", "duration": "until_date", "durationCycles": null, "requestedExpiresAt": "2026-10-07T12:00:00.000Z", "createdAt": "2026-09-07T12:00:00.000Z" } ], "object": "plan_grant", "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" }}1 <= length <= 500