/api/v2/mor/public/cards/{cardId}/cancelPermanently cancel a merchant-owned card.
Available, pending, and frozen provider balances must all be zero. Repeating cancellation of an already cancelled card succeeds without deleting it again. Company scope comes exclusively from the current API key. MOR success and business-error properties use camelCase. Validation may return application/problem+json; authentication may return plain text. The existing sensitive-operation 429 body uses Message, Code and Status. 429 means the configured request limit was exceeded; honor Retry-After when present.
Authentication
Send your API key in the x-api-key header on every request.
Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| cardId (path) | integer (int32) | Yes | |
| Idempotency-Key (header) | string | No | Optional for existing clients; strongly recommended for every mutation. Use a unique key per company/business operation and reuse it with the identical method, path, query, content type and body on retry. Completed requests replay the original status/body, including 207 and errors. A different request returns 409 IDEMPOTENCY_KEY_CONFLICT. A running/interrupted request returns 409 IDEMPOTENCY_OUTCOME_PENDING; reconcile, never switch keys to bypass it. Records have no automatic expiry. No key means legacy behavior without replay protection. LabelPrefix is not a deduplication key. |
Responses
200 — OK
| Field | Type | Required | Description |
|---|---|---|---|
| success | boolean | No | |
| message | string | No | |
| card | object | No |
400 — Bad Request
| Field | Type | Required | Description |
|---|---|---|---|
| message | string | No | |
| code | string | No |
401 — Unauthorized
| Field | Type | Required | Description |
|---|---|---|---|
| type | string | No | |
| title | string | No | |
| status | unknown | No | |
| detail | string | No | |
| instance | string | No |
403 — Forbidden
| Field | Type | Required | Description |
|---|---|---|---|
| message | string | No | |
| code | string | No |
404 — Not Found
| Field | Type | Required | Description |
|---|---|---|---|
| message | string | No | |
| code | string | No |
409 — Conflict
| Field | Type | Required | Description |
|---|---|---|---|
| message | string | No | |
| code | string | No |
429 — Too Many Requests
| Field | Type | Required | Description |
|---|---|---|---|
| type | string | No | |
| title | string | No | |
| status | unknown | No | |
| detail | string | No | |
| instance | string | No |
500 — Internal Server Error
| Field | Type | Required | Description |
|---|---|---|---|
| message | string | No | |
| code | string | No |
503 — Service Unavailable
| Field | Type | Required | Description |
|---|---|---|---|
| message | string | No | |
| code | string | No |
Example request
curl -X POST "https://{base_url}/api/v2/mor/public/cards/{cardId}/cancel" \
-H "x-api-key: YOUR_API_KEY"This page is generated from the live OpenAPI specification and always matches the current API.