Payment In — Receive Digital Asset Payments
Accept cryptocurrency payments from your customers with automatic settlement to your preferred currency.
Flow
1. Create Payment (API)
2. Customer sends crypto to the provided address
3. Transaction detected → status: PROCESSING
4. Confirmations complete → status: COMPLETE
5. Funds settled to your Asset Pool
6. Webhook notification sent
Create a Payment
POST /api/v1/pay/summary
Content-Type: application/json
{
"merchantId": "your-merchant-id",
"type": "IN",
"amount": 50.00,
"currency": "EUR",
"reference": "invoice-2026-001",
"expiryMinutes": 30,
"returnUrl": "https://yoursite.com/payment/success",
"metadata": {
"customerId": "cust-123",
"orderId": "order-456"
}
}
Payment Parameters
| Parameter | Required | Description |
|---|---|---|
merchantId | Yes | Your merchant UUID |
type | Yes | "IN" for receiving payments |
amount | Yes | Payment amount |
currency | Yes | Display currency (EUR, USD, GBP, etc.) |
reference | Yes | Your unique reference for this payment |
expiryMinutes | No | Time window for payment (default: 30 min) |
returnUrl | No | Redirect URL after payment |
metadata | No | Key-value pairs for your internal tracking (max 10) |
complianceDetails | No | Travel Rule information (see Travel Rule) |
Response
{
"uuid": "pay-uuid-123",
"merchantId": "your-merchant-id",
"status": "PENDING",
"reference": "invoice-2026-001",
"displayCurrency": {
"currency": "EUR",
"amount": 50.00
},
"paidCurrency": {
"currency": "USDC",
"amount": 54.25
},
"exchangeRate": {
"base": "USDC",
"counter": "EUR",
"rate": 0.9216
},
"address": {
"address": "0xABCD...1234",
"uri": "ethereum:0xABCD...1234?amount=54.25",
"network": "ETHEREUM",
"tag": null
},
"redirectUrl": "https://pay.wickiepay.com/pay-uuid-123",
"expiryDate": "2026-01-15T10:30:00Z",
"metadata": {
"customerId": "cust-123",
"orderId": "order-456"
}
}
Pre-selecting the Digital Asset
Allow customers to pay with a specific cryptocurrency by setting paidCurrency:
POST /api/v1/pay/summary
{
"merchantId": "your-merchant-id",
"type": "IN",
"amount": 50.00,
"currency": "EUR",
"paidCurrency": "BTC",
"reference": "invoice-2026-002"
}
If omitted, the customer can choose from all supported assets on the payment page.
Handling Underpayments
If a customer sends less than the required amount, the payment status becomes UNDERPAID.
Options:
- Accept — Accept the partial payment as complete
- Wait — Keep the payment open for the customer to send the remaining amount
- Cancel — Cancel and refund the partial amount
PUT /api/v1/pay/{uuid}/accept/summary
QR Code Integration
The address.uri field contains a payment URI that can be rendered as a QR code:
ethereum:0xABCD...1234?amount=54.25
Use any QR code library to generate a scannable code from this URI.
Listening for Status Updates
Set up Webhook Listeners to receive real-time notifications when payment status changes.
Next Steps
- Payment Out — Send payouts to customers
- Hosted Checkout — Use the pre-built payment page