Skip to main content

Crypto Payment API

Create and manage one-time crypto payments (Payment In and Payment Out).


Create Payment

POST /api/v1/pay/summary

Create a new payment request.

FieldTypeRequiredDescription
merchantIdUUIDYesMerchant identifier
typestringYes"IN" (receive) or "OUT" (payout)
amountnumberYesPayment amount
currencystringYesDisplay currency (ISO 4217)
referencestringYesUnique merchant reference
paidCurrencystringNoPre-select crypto currency
expiryMinutesnumberNoPayment window (default: 30)
returnUrlstringNoCustomer redirect URL
metadataobjectNoKey-value pairs (max 10)
complianceDetailsobjectNoTravel Rule originator/beneficiary data

Response:

{
"uuid": "payment-uuid",
"merchantId": "merchant-uuid",
"status": "PENDING",
"type": "IN",
"reference": "order-12345",
"displayCurrency": {
"currency": "EUR",
"amount": 100.00
},
"paidCurrency": {
"currency": "USDC",
"amount": 108.50
},
"exchangeRate": {
"base": "USDC",
"counter": "EUR",
"rate": 0.9216
},
"address": {
"address": "0xABCD...1234",
"uri": "ethereum:0xABCD...1234?amount=108.50",
"network": "ETHEREUM",
"tag": null
},
"redirectUrl": "https://pay.wickiepay.com/payment-uuid",
"expiryDate": "2026-01-15T10:30:00Z",
"transactions": [],
"metadata": {}
}

List Payments

GET /api/v1/pay/summary

QueryTypeRequiredDescription
merchantIdUUIDYesMerchant identifier
statusstringNoPENDING, PROCESSING, COMPLETE, UNDERPAID, EXPIRED, CANCELLED
customerReferencestringNoFilter by customer reference
paymentExternalIdstringNoFilter by external ID
fromDateISO 8601NoStart date
toDateISO 8601NoEnd date
offsetnumberNoPagination offset
maxnumberNoPage size
orderstringNoasc or desc

Get Payment

GET /api/v1/pay/{uuid}

Returns full payment details including transactions, exchange rate, and metadata.


Update Payment

PUT /api/v1/pay/{uuid}/update/summary

Update a pending payment with currency or payout information.


Accept Payment

PUT /api/v1/pay/{uuid}/accept/summary

Accept a pending or underpaid payment as complete.


Validate Address

PUT /api/v1/pay/{uuid}/validate

Validate a blockchain address for a payout payment.

FieldTypeRequiredDescription
addressstringYesDestination wallet address
networkstringYesBlockchain network

Payment Statuses

StatusDescription
PENDINGCreated, waiting for customer action
PROCESSINGBlockchain transaction detected, awaiting confirmations
COMPLETEPayment confirmed and settled
UNDERPAIDCustomer sent less than the required amount
EXPIREDPayment window expired
CANCELLEDPayment was cancelled

Compliance Details

For Travel Rule compliance, include the complianceDetails object:

{
"complianceDetails": {
"originator": {
"name": "Sender Name",
"accountNumber": "wallet-or-account",
"country": "DE"
},
"beneficiary": {
"name": "Receiver Name",
"accountNumber": "0xRECEIVER...ADDR",
"country": "CH"
}
}
}