Glossary
Webhook
An HTTP POST that a platform sends to your server when something changes, so your system learns about the event without polling.
How it works in CryptoLike
CryptoLike sends a signed JSON event to your endpoint whenever a payment, a deposit or a payout changes state — 21 event types, such as invoice.paid, invoice.underpaid, invoice.expired, deposit.confirmed and withdrawal.completed. Add an endpoint in the cabinet (Developers → Webhooks → Add endpoint) or with POST /v1/webhooks/endpoints: an https:// URL on a public host, the event types or *, and a secret.
Each request carries X-Event-Id, X-Event-Type, X-Timestamp and X-Signature; the body has event_id, type, created_at and data. Answer with a 2xx status within 10 seconds. Otherwise the delivery is retried after 1 min, 5 min, 15 min, 1 h, 6 h and 24 h — 7 attempts, about 31 hours — and then marked exhausted; resend it from Developers → Webhooks → Deliveries → Retry.
Delivery is at least once, so the same event can arrive twice with the same event_id: store it and skip repeats. Events of one payment can arrive out of order; use created_at and the status in data. "Send test event" in the cabinet posts a signed ping to one endpoint. Verify every request — see webhook signature.
Example
A CryptoLike webhook request looks like this; the body is shown formatted for reading, while the bytes you receive may differ in key order and whitespace. Parse it as JSON and verify the signature over the raw bytes exactly as received:
POST /your/path HTTP/1.1
Content-Type: application/json
X-Event-Id: 6f1c2c1e-3b2a-4d5e-8f90-1234567890ab
X-Event-Type: invoice.paid
X-Timestamp: 1700000000
X-Signature: sha256=788e60a2141669b4c7616c1c616fefb8ec38df0948fba19c6f4e48c616e46c21
{"event_id":"6f1c2c1e-3b2a-4d5e-8f90-1234567890ab","type":"invoice.paid","created_at":"2023-11-14T22:13:20Z","data":{"invoice":{"id":"0e8c9a4b-1111-4222-8333-444455556666","status":"paid"}}}Related terms
Read next
- Verify crypto payment webhooks: HMAC-SHA256 in TypeScript, Python, Go, PHPCheck CryptoLike webhook signatures step by step: raw body, timestamp tolerance, constant-time compare, event_id dedup — code in TypeScript, Python, Go and PHP.
- Idempotency keys in payment APIs: how not to charge or pay twiceWhy retries create duplicate payments and payouts, and how CryptoLike prevents them: Idempotency-Key, payout_id, order_id and webhook event_id, with code.
Start with a test payment
Create an account, ask support for the test environment and see a payment go from pending to paid on a test network.