---
title: "Create Merchant Withdrawal"
method: POST
path: "/v1/merchant/withdrawals"
tags: ["public.withdrawals"]
---

# Create Merchant Withdrawal

`POST /v1/merchant/withdrawals`

Transfers merchant USD-backed stablecoins or native SOL to a pre-approved onchain destination using Utila. Stablecoins use amount_usd; native SOL uses amount. The destination must first be added to the merchant withdrawal whitelist.

## Headers

- `X-Idempotency-Key` string, required

## Request body

- CreateMerchantWithdrawalRequest
  - `amount` string
  - `amount_usd` string
  - `chain` 'SOLANA' | 'TRON' | 'APTOS' | 'BASE' | 'POLYGON' | 'ETHEREUM' | 'OPTIMISM' | 'BSC', required
  - `destination_address` string, required
  - `token` 'USDC' | 'USDT' | 'SOL' | 'BNB', required

## Response `201`

Created

- CreateMerchantWithdrawalResponse
  - `data` MerchantWithdrawalData
    - `transaction_id` string

## Other responses

- `400` — Invalid request
- `401` — Unauthorized
- `403` — Destination address is not whitelisted
- `409` — Idempotency conflict
- `500` — Internal server error

---

[API](https://skmtc.dev/daya/apis/daya-external-api-public-api.md) · [All operations](https://skmtc.dev/daya/apis/daya-external-api-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/daya/daya-external-api-public-api/revisions/5fc72bf91a48/schema)
