Agent-readable docs index: /llms.txt. Full docs in one file: /llms-full.txt. Download /docs.zip to grep all markdown files locally.
Cancel, resume, close

Confirm a cancellation

Settles the cancellation against the chain once the wallet sent it. The account on chain is the verdict, not the signature. Mesub waits for the chain, up to 90 seconds. Safe to call twice.
POSThttps://api.mesub.io/v1/subscriptions/{id}/cancel/confirm
POSTConfirm a cancellation
https://api.mesub.io/v1/subscriptions/{id}/cancel/confirm

Calls are real. They go to https://api.mesub.io and act on the project the key belongs to.

Authorization

The key stays in this browser and is sent only to the API. It is not stored or logged by the docs.

Path
Body

Fill id, signature to send.

cURL
curl -X POST "https://api.mesub.io/v1/subscriptions/{id}/cancel/confirm" \
  -H "Authorization: Bearer $MESUB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Response

Send the request to see the status, the headers and the body.

Limit: 60 calls a minute per API key.Guide: Manage from your server.

Headers

Mesub-Versionenum<string>

The version of this contract the call is written against. Without it, the call is served as the first version, 2026-10-02. Any other value is refused with 400 unsupported_version.

One of2026-10-02

Request example
curl -X POST "https://api.mesub.io/v1/subscriptions/cmg1x0abc0001/cancel/confirm" \ -H "Authorization: Bearer $MESUB_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "signature": "5wHu1qwD4kLDLoREEPBpKvGvhbxWFxFFfr5nQq7dxAsRRDXvHRqpNvfsCvC1qzjWQhqmPtBb8LnZjKmvpehJqSWk" }'
Response example
{ "subscription": { "id": "cmg1x0abc0001", "status": "cancelled", "paused": false, "end_reason": null, "late_reason": null, "stop_reason": null, "access": true, "payment_status": "paid", "blocked_since": null, "blocked_reason": null, "plan": "pro", "wallet": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin", "email": "[email protected]", "external_id": "user_42", "current_period_start": "2026-01-01T00:00:00.000Z", "current_period_end": "2026-01-31T00:00:00.000Z", "next_charge_at": null, "next_retry_at": null, "retry_deadline": null, "next_retry_number": null, "retries_allowed": null, "access_until": "2026-01-31T00:00:00.000Z", "closable": false, "closable_from": "2026-01-31T00:00:00.000Z", "created_at": "2026-01-01T00:00:00.000Z", "confirmed_at": "2026-01-01T00:00:05.000Z" } }