Quickstart
Create a hosted checkout with payer-entered amount, then receive a confirmation via webhook.
Copy curl -X POST https://api.yourdomain.tld/crypto/hosted-charge \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"pricing_type":"no_price",
"redirect_url":"https://www.roovet.com/wallet/crypto/return?ok=1",
"cancel_url":"https://www.roovet.com/wallet/crypto/return",
"metadata":{"intent":"wallet_deposit"}
}'
API Reference
Stable endpoints (JSON):
/wallet/crypto/create-deposit-address (POST)
/wallet/crypto/webhook/{provider} (POST)
/wallet/qr/new (POST)
/wallet/qr/{ref} (GET) + /png / /svg
Webhooks
Verify signature, then update your state.
Copy $raw = (string) $this->request->getBody();
$sig = (string) ($this->request->getHeaderLine('X-CC-Webhook-Signature') ?? '');
try {
$tx = $this->gw->provider()->verifyAndNormalizeWebhook($sig, $raw);
// e.g., if ($tx['status'] === 'confirmed') { credit user; }
} catch (\Throwable $e) {
return $this->response->setStatusCode(400)->setJSON(['ok'=>false]);
}
Wallets
Create/fetch on-chain deposit addresses. Duplicate inserts are handled idempotently.
Copy POST /wallet/crypto/create-deposit-address
asset=ETH&network=ETH
QR Payments
Generate scannable links and downloadable PNG/SVG.
/wallet/qr/<payload> → page
/wallet/qr/<payload>/png → image
/wallet/qr/text?d=<base64url> → PNG preview from raw text
FAQ
Is sandbox available?
Yes—use separate API keys and webhook secrets. Logs are viewable in the dashboard.
What about fees?
Transparent and competitive; contact us for volume pricing.