Card → Crypto (Yugo wallet)
Receive Card payments and settle as crypto in a custodial Web3 wallet managed by Yugo.
Payment method: card | Settlement method: yugo_balance
Prerequisites
Before using this flow, you must be onboarded as a Merchant with Yugo and have a merchant account opened.
During onboarding, Yugo configures:
- Supported fiat currencies
- Supported crypto assets
- Blockchain networks
- A custodial Web3 wallet managed by Yugo
- 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 Payin Intent
API Reference: POST /payins View Create Payin API →
{
"amount": {
"value": "100.00",
"currency": "EUR"
},
"payer": {
"email": "payer@example.com",
"first_name": "John",
"last_name": "Doe",
"country": "DE",
"is_new": true
},
"reference": "order_123",
"return_url": "https://merchant.com/checkout/complete",
"webhook_url": "https://merchant.com/api/webhooks/payins",
"payment": {
"method": "card"
},
"settlement": {
"method": "yugo_balance"
}
}
Key fields:
payment.method=card— triggers the card authorization flowsettlement.method=yugo_balance— funds are converted to crypto and delivered to the Merchant's custodial walletpayer.is_new— indicates whether the Payer is depositing for the first time within the Merchant's platform (not their first deposit with Yugo)
2. Redirect the Payer
The Payin response contains a redirect_url. Redirect the Payer to this URL to continue the payment.
At this point:
- Yugo hosts the checkout experience (in some cases this step is skipped)
- The Payer completes the authorization flow for their chosen payment method
- After completion, the Payer is redirected back to the Merchant's
return_url
The more payment details the Merchant supplies when creating the Payin Intent, the less friction for the Payer after redirect. In some cases, the Payer may be redirected directly back to the Merchant.
The Payer enters their card details on Yugo's hosted checkout and completes 3D Secure authentication if required. See Cards — Authorization Flow.
3. Track Payin Status
Option A: Webhooks
Yugo sends a webhook every time the Payin 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 Payin status at any time.
API Reference: GET /payins/{id} View Get Payin API →
Status Lifecycle
See the Payin Status Lifecycle for the full state diagram and status definitions per payment and settlement method combination.
| Status | Meaning |
|---|---|
CREATED | Payin Intent created by Merchant |
INITIATED | Authorization process initiated (redirect link generated) |
AUTHORIZED | Payment authorized by card issuer |
RECEIVED | Yugo received the fiat funds |
SETTLED | Crypto transferred to Merchant's custodial wallet |
COMPLETED | Dispute window closed. Transaction finalized. |
DISPUTED | Payer raised a dispute. Yugo debited transaction funds. |
FAILED | Authorization failed or rejected |
EXPIRED | Payin session expired |
Safe to release goods or services to the Payer from this status.
Deep dive
- Cards — authorization, 3DS, dispute behavior
- Yugo Balance Settlement — conversion, chargeback reserve, fund management
- Status Lifecycle — full state diagram and status definitions
- Create Payin API — request/response schemas and all fields