# Revoke a live debit authorisation

Ends a permission to debit that the customer HAD agreed to — they withdraw consent, or the desk stops debiting. Body: `reason` is required. Legal from accepted only; a request the customer never answered is withdrawn with `post_servicing_authorizations_id_cancel` instead, and the two are different words because they answer different questions about whether the customer ever agreed. Revoking does not pause collection on the schedule itself — that is `post_payment_schedules_id_pause`.

Access class: `workspace`.

## Endpoint

`POST /v1/servicing-authorizations/{id}/revoke`

## Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| id | path | string | Yes |

## Request body

Content type: `application/json`.

```json
{
  "body": {
    "reason": "string"
  },
  "params": {
    ":id": "string"
  },
  "query": {}
}
```

## Responses

### 201

the action's answer

Content type: `application/json`.

```json
{
  "data": {
    "acceptedAt": "string",
    "acceptedIp": "string",
    "acceptedUserAgent": "string",
    "achAuthorizationAccepted": true,
    "amountMinor": 1,
    "authorizationText": "string",
    "cancelledAt": "string",
    "closedReason": "string",
    "consentToDebit": true,
    "contactChannel": "string",
    "contactTarget": "string",
    "counterpartyId": 1,
    "createdAt": "string",
    "currency": "string",
    "detail": {},
    "expiresAt": "string",
    "facilityId": 1,
    "frequency": "string",
    "id": 1,
    "revokedAt": "string",
    "scheduleId": 1,
    "sourceReference": "string",
    "status": "string",
    "termsAccepted": true,
    "updatedAt": "string"
  }
}
```

### default

a refusal: `{"error": "<what a person needs to read>"}`. 401 no credential, 402 the plan does not include this, 403 the seat does not, 404 the thing does not exist or is not yours to see.

Content type: `application/json`.

```json
{
  "error": "string"
}
```
