---
title: "Correct a suspended recipient — Anis Developers"
description: "Send the complete corrected recipient list while the direct recharge is suspendedDataError. It replaces the saved list, including optional values you want to retain. A successful correction returns signed `202 Accepted` with `Location` and the standard three-member processing acknowledgement, without an direct recharge or order body; follow it to read the direct recharge."
url: https://developers.anis.ly/reference/update-direct-recharge-recipient/
language: en
---

> Every page of this documentation: https://developers.anis.ly/llms.txt

[API reference](https://developers.anis.ly/reference.md) · Direct recharge

# Correct a suspended recipient

`PATCH /v1/direct-recharges/{operationId}/recipient`

Send the complete corrected recipient list while the direct recharge is suspendedDataError. It replaces the saved list, including optional values you want to retain. A successful correction returns signed `202 Accepted` with `Location` and the standard three-member processing acknowledgement, without an direct recharge or order body; follow it to read the direct recharge.

- **Permission:** `direct_recharges:create`
- **Authentication:** Signed change
- **Anis’s answer:** Signed
- **Staff-set limits it counts toward:** All requests
- **.NET SDK:** `anis.DirectRecharges.UpdateRecipientAsync(operationId, request)`

- Sign the JSON body digest with a fresh nonce, without an `Idempotency-Key`. A successful correction returns signed `202 Accepted` with `Location: /v1/direct-recharges/{operationId}` and only `operationId`, `operationType: "directRecharge"` and `status: "processing"`. It carries no direct recharge or order body. Read that location or wait for a webhook before resending an already-applied correction.

## Parameters

| Name | In | Type | Notes |
| --- | --- | --- | --- |
| `operationId` (required) | `path` | UUID | A UUID, lower-case with hyphens. |

## Request

Signed with your key, with a one-time nonce and a digest of the body.

Headers: `Signature-Input`, `Signature`, `Content-Digest`, `Nonce`, `X-Anis-Date`, `Accept-Language` (optional). The SDKs set all of them for you.

**Body:** [UpdateDirectRechargeRecipientRequest](#type-updatedirectrechargerecipientrequest), as JSON.

| Field | Type | Notes |
| --- | --- | --- |
| `recipient` (required) | list of [DirectRechargeRecipientInput](#type-directrechargerecipientinput) | Send the complete corrected recipient list. It replaces the saved list; include required fields and optional values you want to retain, including recipient_location. |

## Responses

| Status | Meaning | Body |
| --- | --- | --- |
| 202 | Accepted — no outcome yet. | [DirectRechargeAccepted](#type-directrechargeaccepted) |
| 400 | Refused: the signed request is badly built. | [Problem](#refusals) |
| 401 | Refused: not authenticated. | [Problem](#refusals) |
| 403 | Refused: not allowed. | [Problem](#refusals) |
| 404 | Refused: not found, or not yours. | [Problem](#refusals) |
| 409 | Refused: conflicts with the current state. | [Problem](#refusals) |
| 422 | Refused: the request breaks a rule. | [Problem](#refusals) |
| 429 | Refused: a limit was reached. | [Problem](#refusals) |
| 503 | No decision: a dependency was unavailable. | [Problem](#refusals) |

Every answer of this call is signed by Anis — success and every refusal. Require the signature and verify it before you act on the answer; an answer without one is a failure, never an answer ([how](https://developers.anis.ly/docs/verifying-answers.md)).

## Refusals

Every refusal of this call is a signed problem. Branch on its `code`; each links to what it means and what to do.

| Error | Code | Status |
| --- | --- | --- |
| [Invalid credentials](https://developers.anis.ly/errors/invalid-credentials.md) | `invalid_credentials` | 401 |
| [Malformed signed request](https://developers.anis.ly/errors/malformed-signed-request.md) | `malformed_signed_request` | 400 |
| [Insufficient scope](https://developers.anis.ly/errors/insufficient-scope.md) | `insufficient_scope` | 403 |
| [Source address not allowed](https://developers.anis.ly/errors/source-ip-not-allowed.md) | `source_ip_not_allowed` | 403 |
| [Rate limited](https://developers.anis.ly/errors/rate-limited.md) | `rate_limited` | 429 |
| [Validation failed](https://developers.anis.ly/errors/validation-failed.md) | `validation_failed` | 422 |
| [Service unavailable](https://developers.anis.ly/errors/dependency-unavailable.md) | `dependency_unavailable` | 503 |
| [Request timeout](https://developers.anis.ly/errors/request-timeout.md) | `request_timeout` | 504 |
| [Internal error](https://developers.anis.ly/errors/internal-error.md) | `internal_error` | 500 |
| [Replay detected](https://developers.anis.ly/errors/replay-detected.md) | `replay_detected` | 409 |
| [Not found](https://developers.anis.ly/errors/resource-not-found.md) | `resource_not_found` | 404 |
| [Recipient cannot be changed now](https://developers.anis.ly/errors/direct-recharge-not-suspended.md) | `direct_recharge_not_suspended` | 409 |

## Types

### UpdateDirectRechargeRecipientRequest

| Field | Type | Notes |
| --- | --- | --- |
| `recipient` (required) | list of [DirectRechargeRecipientInput](#type-directrechargerecipientinput) | Send the complete corrected recipient list. It replaces the saved list; include required fields and optional values you want to retain, including recipient_location. |

### DirectRechargeRecipientInput

| Field | Type | Notes |
| --- | --- | --- |
| `key` (required) | string | The exact field key supplied by the direct recharge product definition. |
| `value` (required) | string | The submitted field value; a location choice uses its id. |

### DirectRechargeAccepted

| Field | Type | Notes |
| --- | --- | --- |
| `operationId` (required) | UUID | The same UUID sent as Idempotency-Key for this purchase. |
| `operationType` (required) | string | Always directRecharge. Values: `directRecharge` |
| `status` (required) | string | Always processing; the outcome is not final. Values: `processing` |
