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 close

Settles the close against the chain once the wallet sent it. The account gone is the verdict, and it frees the plan for a fresh subscription from that wallet. Safe to call twice.
POSThttps://api.mesub.io/v1/subscriptions/{id}/close/confirm
POSTConfirm a close
https://api.mesub.io/v1/subscriptions/{id}/close/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}/close/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/close/confirm" \ -H "Authorization: Bearer $MESUB_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "signature": "5wHu1qwD4kLDLoREEPBpKvGvhbxWFxFFfr5nQq7dxAsRRDXvHRqpNvfsCvC1qzjWQhqmPtBb8LnZjKmvpehJqSWk" }'
Response example
{ "subscription": { "id": "cmg1x0abc0001", "status": "ended", "paused": false, "end_reason": "closed", "late_reason": null, "stop_reason": null, "access": false, "payment_status": "none", "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": null, "closable": false, "closable_from": null, "created_at": "2026-01-01T00:00:00.000Z", "confirmed_at": "2026-01-01T00:00:05.000Z" } }