Crypto Transfer → Blockchain address
Use your Yugo crypto balance to send an exact crypto amount to a Recipient's blockchain address.
Payment method: crypto_transfer | Amount currency: crypto currency symbol (e.g. USDC)
Prerequisites
Before using this flow, you must be onboarded as a Merchant with Yugo and have a merchant account opened.
This payout is available only if you hold a Yugo crypto balance — Yugo debits that balance to send the exact crypto amount to the Recipient.
During onboarding, Yugo configures:
- Supported crypto assets
- Supported blockchain networks
- A custodial Web3 wallet managed by Yugo that funds the payout
- An account with access to the Yugo Business Portal, where you retrieve your API Key and Webhook secret
Some of these settings are configured during onboarding and are not passed dynamically in each API request — check the API Reference for the exact request fields.
1. Create the Payout Intent
API Reference: POST /payouts View Create Payout API →
{
"amount": {
"value": "100.00",
"currency": "USDC"
},
"recipient": {
"email": "recipient@example.com",
"first_name": "John",
"last_name": "Doe",
"country": "DE"
},
"reference": "withdrawal_123",
"return_url": "https://merchant.com/withdrawal/123",
"webhook_url": "https://merchant.com/api/webhooks/payouts",
"payment": {
"method": "crypto_transfer",
"address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
"network": "polygon"
}
}
Key fields:
amount.currency— a crypto currency symbol (e.g.USDC);amount.valueis the exact amount the Recipient receivespayment.method=crypto_transferpayment.address— the Recipient's blockchain wallet addresspayment.network— the blockchain network the address is on (e.g.polygon)return_url— required by the API; reserved for the future hosted flow (see note below)
2. Yugo processes the Payout
Yugo debits your crypto balance and sends the exact amount on-chain to the Recipient's address. No exchange is involved when both your balance and the payout are in crypto.
See Crypto Transfer for supported assets, networks, and processing details.
3. Track Payout status
Option A: Webhooks
Yugo sends a webhook every time the Payout status changes.
When you receive a webhook, we recommend verifying the updated status via the API (Option B).
API Reference: View Webhook Reference →
Option B: Polling
You can retrieve the current Payout status at any time.
API Reference: GET /payouts/{id} View Get Payout API →
Status Lifecycle
See the Payout Status Lifecycle for the full state diagram and status definitions per payout flow.
| Status | Meaning |
|---|---|
CREATED | Payout Intent created by Merchant |
INITIATED | Payout accepted and queued for processing |
PROCESSING | Yugo is sending the crypto on-chain to the Recipient's address |
COMPLETED | Crypto delivered to the Recipient's wallet. Transaction finalized. |
FAILED | Payout failed or was rejected |
EXPIRED | Payout expired before completion |
At the moment, only the server-to-server flow is supported: the Merchant supplies all payout details when creating the Payout Intent.
The Create Payout request has a required return_url, and the response may include a
redirect_url. These are not yet implemented and should be ignored for now. They are
reserved for a future hosted flow, where the Merchant will be able to delegate collecting
some Recipient details (such as the destination bank account or wallet) to Yugo.
Deep dive
- Crypto Transfer — supported assets, networks, on-chain delivery
- Status Lifecycle — full state diagram and status definitions
- Create Payout API — request/response schemas and all fields