---
updatedAt: 2026-07-09T22:08:21.000Z
agentTools:
  projectIndex: https://docs.coinme.com/llms.txt
---

# Send All Assets

Creates a send-all withdrawal order that sends the customer's entire available balance of a given asset to an external wallet address.

Creates a **send-all** withdrawal order that sends the customer's entire available balance of a given asset to an external wallet address.

<Callout icon="📘" theme="info">
  ### Send-all orders have no `amount` field

  The entire available balance of the specified `assetId` is sent. To send a specific amount instead, see [Sending Specified Amount](https://docs.coinme.com/docs/sending-specified-amount).
</Callout>

## Endpoint

| Environment | URL                                                      |
| :---------- | :------------------------------------------------------- |
| Production  | `POST https://caas.coinme.com/services/send-all`         |
| Staging     | `POST https://caas-staging.coinme.com/services/send-all` |

## Headers

| Header          | Required | Description                                                                          |
| :-------------- | :------- | :----------------------------------------------------------------------------------- |
| `Authorization` | Yes      | Bearer token issued to the Partner. The Partner identifier is derived from this JWT. |
| `Content-Type`  | Yes      | `application/json`                                                                   |

## Request Body

| Field                      | Type   | Required | Description                                                                   |
| :------------------------- | :----- | :------- | :---------------------------------------------------------------------------- |
| `customerId`               | string | Yes      | Coinme customer ID of the sender.                                             |
| `destinationWalletAddress` | string | Yes      | Destination blockchain wallet address.                                        |
| `assetId`                  | string | Yes      | Asset + chain whose full balance will be sent (e.g. `usdc_eth`, `btc`).       |
| `partnerTransactionId`     | string | No       | Idempotency key / Partner reference. Auto-generated by the system if omitted. |
| `blockchainTag`            | string | No       | Destination tag/memo for chains that require it (e.g. XRP, XLM).              |
| `note`                     | string | No       | Free-text note attached to the order.                                         |

<Callout icon="📘" theme="info">
  ### Use `partnerTransactionId` for idempotency and reconciliation

  Supplying your own `partnerTransactionId` lets you safely retry requests and match the order back to your records. If omitted, the system generates one and returns it in the response.
</Callout>

## Sample API Request

```curl Request
curl -X POST 'https://caas-staging.coinme.com/services/send-all' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
    "customerId": "cust_12345",
    "destinationWalletAddress": "0xAbC1234...eF90",
    "assetId": "usdc_eth",
    "partnerTransactionId": "partner-ref-001",
    "blockchainTag": null,
    "note": "monthly sweep"
  }'
```

## Sample API Response

The response uses the standard CaaS envelope: on success, `data` is populated and `errorResponse` is `null`; on failure, `data` is `null` and `errorResponse` is populated.

```json Success Response — 200 OK
{
  "data": {
    "partnerTransactionId": "partner-ref-001"
  },
  "errorResponse": null
}
```
```json Failure Response
{
  "data": null,
  "errorResponse": {
    "timestamp": "2026-06-29T12:34:56Z",
    "httpStatus": 400,
    "path": "/services/send-all",
    "errorData": [
      {
        "errorCode": "FIELD_NULL",
        "message": "Field assetId cannot be null or empty"
      }
    ]
  }
}
```

## Response Fields

| Field                       | Type           | Description                                                                                                                                                    |
| :-------------------------- | :------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `data.partnerTransactionId` | string         | Partner transaction ID assigned to the created send-all order. Matches the value supplied in the request, or a system-generated value if one was not provided. |
| `errorResponse`             | object \| null | Error envelope (`CaasErrorResponse`). `null` on success.                                                                                                       |

## Error Response Fields

| Field                                 | Type    | Description                                      |
| :------------------------------------ | :------ | :----------------------------------------------- |
| `errorResponse.timestamp`             | string  | UTC timestamp of the error.                      |
| `errorResponse.httpStatus`            | integer | HTTP status code of the failure.                 |
| `errorResponse.path`                  | string  | Request path that produced the error.            |
| `errorResponse.errorData`             | array   | One or more error entries.                       |
| `errorResponse.errorData[].errorCode` | string  | Machine-readable error code (e.g. `FIELD_NULL`). |
| `errorResponse.errorData[].message`   | string  | Human-readable description of the error.         |

## Tracking the Send Result

Creating the order returns immediately with the `partnerTransactionId`; the send itself completes asynchronously. A webhook notification of type `SEND` is delivered when the order completes, indicating whether it succeeded or failed. See [Webhook Notifications](https://docs.coinme.com/docs/webhook-notifications) for the notification payload and delivery details.