# Cancel a Stablecoin Sale

> Coming soon, upon request — this feature is turned on for your tenant by the Aurea team. [Contact us](https://www.aureahub.com/contact)

Cancel a sale whose stablecoin was not sent.

## Overview

- Only while `awaiting_transfer`: once the stablecoin was sent, `400` `BANK_RAMP_OFFRAMP_INVALID`, or `409` `BANK_RAMP_DEPOSIT_STATE` when the transfer is past this step.

Called with the user's access token, in one environment (`isTestnet`). See [Bank Ramp: Local Rails](https://docs.aureahub.com/docs/guide-bank-local.md).

## Endpoint

### `POST /v1/ramp/bank/customer/offramps/{id}/cancel`

Authentication: bearer token required.

Cancels a sale whose stablecoin was not sent.

**Path parameters**

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string (uuid) | yes | The record's `id` |

**Query parameters**

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `isTestnet` | boolean | no | `true` for the sandbox; `false` or omitted for production |

**Responses**

`200` Cancelled

```json
{
  "id": "3e8d1f62-7a4b-4c95-b0e3-5f2a9c1d7e48",
  "environment": "production",
  "network": "ethereum",
  "asset": "USDT",
  "amount": "250",
  "payoutAsset": "KES",
  "destinationType": "momo",
  "indicativeRate": "129.15",
  "state": "cancelled",
  "failure": null,
  "withdrawalId": null,
  "transfer": {
    "id": "1c7e9a40-5b2d-4f63-8e1a-9d0b2c4e6f73",
    "network": "ethereum",
    "asset": "USDT",
    "amount": "250.000013",
    "toAddress": "0x4E2a1B7c9D3f6E8a0B5c2D7e9F1a3B6c8D0e2F4a",
    "fromAddress": "0x9b3C2d1E0f4A5b6C7d8E9f0A1b2C3d4E5f6A7b8C",
    "status": "prepared",
    "txHash": null
  },
  "createdAt": "2026-10-23T09:00:00.000Z",
  "updatedAt": "2026-10-23T09:00:02.000Z"
}
```

---

Web version: https://docs.aureahub.com/#local-offramp-cancel
