> ## Documentation Index
> Fetch the complete documentation index at: https://docs.brand-wallet.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Void & activate a customer

> Block a BrandWallet customer from transactions, or lift the block.

```http theme={null}
POST $BASE_URL/v1/customers/:id/void
POST $BASE_URL/v1/customers/:id/activate
```

**`void` blocks the customer: the transaction engine rejects them with `invalid_customer` until the block is lifted. `activate` lifts the block. Both are idempotent — calling them on a customer already in the target state changes nothing and returns the current record.**

> **Auth:** `Authorization: Bearer <accessToken>` — an organization-scoped token from [Authentication](/api/authentication). Missing or invalid token returns **401**; an organization without an active subscription returns `invalid_subscription` (**403**).

### Path parameters

| Parameter | Type | Description |
| - | - | - |
| `id` | string | Customer id. Unknown, deleted, or out-of-organization ids return `customer_not_found` (400). |

No request body.

### Example

```bash theme={null}
curl --request POST \
  --url "$BASE_URL/v1/customers/9b2f6c1e-3d4a-4f8b-9c0d-7e5a1b2c3d4e/void" \
  --header 'Authorization: Bearer <accessToken>'
```

### Response

Returns **200** with the customer record; `isVoided` reflects the new state.

```json theme={null}
{
  "id": "9b2f6c1e-3d4a-4f8b-9c0d-7e5a1b2c3d4e",
  "data": {
    "phone": "+905551234567",
    "fullname": "Jane Smith"
  },
  "opaqueId": "ext-cust-10432",
  "isVoided": true,
  "status": 1,
  "createdAt": "2026-09-29T08:22:52.795Z",
  "updatedAt": "2026-09-29T11:10:41.204Z"
}
```

Notes:

* Voiding does not delete anything: the customer stays visible in list and find, keeps their cards and balances, and can be activated again at any time.
* A voided customer is rejected on [POST /v1/transactions/process](/api/process-transaction) and [validate](/api/validate-transaction) with `invalid_customer` (400).
* After `activate`, `isVoided` is `false` in the response.
