---
title: "Unenroll Merchant"
method: POST
path: "/api/unenroll"
tags: ["Enrollment"]
---

# Unenroll Merchant

`POST /api/unenroll`

Unenroll one or more descriptors. Pass `descriptor_ids` (obtain ids from `GET /api/v2/descriptors`); a single legacy `descriptor_id` is also accepted. Descriptors that were still `Pending` (never live with the provider) are removed immediately and returned under `removed`. Descriptors that were live are marked `PendingRemoval` — a visible "removing" state on the API and dashboard — and returned under `queued`; Chargeblast completes the provider-side de-registration (Ethoca ~48 hours, RDR ~2 weeks, CDRN ~24 hours), after which the record is deleted and your settings reflect the removal. Any ids that do not belong to your account are returned under `notFound`.

## Headers

- `X-API-Key` string, required

## Request body

- UnenrollMerchantRequest — Descriptors to unenroll. Supply `descriptor_ids`; a single legacy `descriptor_id` is also accepted and folded into the list.
  - `descriptor_ids` string[] — Descriptor ids to unenroll, e.g. `desc_xxxxxxxxxxxxx`. Obtain them from `GET /api/v2/descriptors`.
  - `descriptor_id` string, nullable — Legacy single descriptor id. Prefer `descriptor_ids`.

## Response `200`

Unenrollment queued.

- UnenrollMerchantResponse
  - `removed` string[], required — Descriptor ids that were still `Pending` (never live with the provider) and so were removed immediately.
  - `queued` string[], required — Descriptor ids that were live and are now marked `PendingRemoval`. They stay visible until Chargeblast confirms provider de-registration, then they are removed.
  - `skipped` string[], required — Owned descriptor ids left untouched because their status was not actionable (`Processing` / `InReview`, or already-terminal `Disabled` / `Rejected` / `Surpressed`). Distinct from `notFound`.
  - `notFound` string[], required — Requested ids that did not match a descriptor on your account.
  - `unenrolled` string[], required — Deprecated: use `removed` and `queued`. Retained as their union (all descriptor ids acted on) for backward compatibility.

## Other responses

- `400` — Validation failed. No descriptor ids were supplied.
- `401` — Missing or invalid API key.

---

[API](https://skmtc.net/chargeblast/apis/chargeblast-api.md) · [All operations](https://skmtc.net/chargeblast/apis/chargeblast-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/chargeblast/chargeblast-api/versions/9cc519753b33/schema)
