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.
Send-all orders have noamountfieldThe entire available balance of the specified
assetIdis sent. To send a specific amount instead, see Sending Specified Amount.
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. |
UsepartnerTransactionIdfor idempotency and reconciliationSupplying your own
partnerTransactionIdlets you safely retry requests and match the order back to your records. If omitted, the system generates one and returns it in the response.
Sample API 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.
{
"data": {
"partnerTransactionId": "partner-ref-001"
},
"errorResponse": null
}{
"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 for the notification payload and delivery details.
Updated 18 days ago
