### Debit a subscriber wallet

`POST /api/v1/users/{id}/withdraw`

The inverse of deposit. Refuses to take the balance below zero unless allow_negative is set.

- Authentication: manager session (JWT) or API token
- Permission: `prm_users_withdrawal` (Withdraw / settle user debt)
- Risk: danger
- Rate limit bucket: `t_mutate`
- Idempotent on `request_id`: retrying with the same id returns the original result

#### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | integer | yes | Subscriber id. |
| `amount` | body | number | yes | Major units. |
| `request_id` | body | string | yes | Idempotency key. |
| `allow_negative` | body | boolean | no | Permit the withdrawal to drive the balance below zero. |

#### Errors

| Code | Status | When |
| --- | --- | --- |
| `ERR_CONFLICT` | 409 | the request_id is already held by a different ledger line |

