π οΈWebhook setup
Optional: This step is optional and by no means needed to get a functioning integration up and running. Setting up webhooks is a way for you to always know the status of a transaction.
Overview
This guide explains how to set up and verify webhooks for receiving real-time transaction updates from our platform.
Webhooks allow partners to automatically receive notifications about transaction events on their backend systems.
Integration Flow
Webhook Endpoint Requirements
HTTPS endpoint
Accepts
POSTrequestsAccepts
application/jsonReturns HTTP
200 OKon successful receipt
Webhook Payload Structure
Webhook events are delivered as JSON payloads in the request body.
Example Payload
Top-Level Fields
event_id
string
Unique webhook event ID
timestamp
integer
Webhook event timestamp
transaction
object
Transaction payload object
Transaction Object
The transaction object contains detailed information about the transaction.
created_at
string
Transaction start date and time (ISO 8601)
cryptocurrency
object
Cryptocurrency details
cryptocurrency_amount
string
Cryptocurrency amount
currency
object
Fiat currency details
currency_amount
string
Fiat amount
kind
string
Transaction type (buy / sell)
network
object
Blockchain network details
network_fee
string or null
Network fee
network_transaction_id
string or null
Blockchain transaction ID
payment_method
object
Payment method details
processing_fee
string or null
Processing fee
raw_status
string
Raw provider status
region
object
Region information
service
object
Service provider information
service_transaction_id
string
Provider transaction ID
status
string
Normalized transaction status
total_fee
string or null
Total fee
transaction_id
string
Platform transaction ID
updated_at
string
Last update timestamp (ISO 8601)
wallet_address
string
Destination wallet address
Cryptocurrency Object
id
integer
Cryptocurrency ID
logo
string
Cryptocurrency icon URL or path
name
string
Cryptocurrency name
symbol
string
Cryptocurrency symbol
Currency Object
full_name
string
Currency full name
icon
string
Currency icon URL
id
integer
Currency ID
name
string
Currency code
symbol
string
Currency symbol
Network Object
code
string
Network code
icon
string or null
Network icon URL
id
integer
Network ID
name
string
Network name
network_compatibility_id
string
Network compatibility identifier (e.g. eip155:1)
protocol_standard
string
Protocol standard (ERC-20, BEP-20, etc.)
regex
string
Regular expression for wallet address validation
Payment Method Object
category
string
Payment method category
category_code
string
Category code
category_description
string
Category description
category_display_name
string
Category display name
category_icon
string
Category icon URL
code
string
Payment method code
icon
string
Payment method icon URL
id
integer
Payment method ID
name
string
Payment method name
Region Object
alpha2_code
string
ISO alpha-2 region code
alpha3_code
string
ISO alpha-3 region code
icon
string
Region icon URL
id
integer
Region ID
kind
string
Region kind (e.g. country)
name
string
Region name
parent_region
object or null
Parent region object
Service Object
domain
string
Service domain
icon
string
Service icon URL
id
integer
Service ID
name
string
Service name
privacy
string
Service privacy policy URL
sell_available
boolean
Is sell flow available
slug_name
string
Unique service slug
terms
string
Service terms URL
url_for_support
string
Service support URL
url_for_transaction_details
string
Base transaction details URL
Webhook Verification
Each webhook request is signed using a secret key created during endpoint registration.
Authorization Header
The signature is sent in the HTTP header:
Authorization: .
Where:
timestampβ Unix timestamp used when signing the request.signatureβ HMAC SHA-256 hash generated using the shared secret and the concatenation oftimestampand the raw request body.
Signature Verification Example (Python)
If the calculated signature matches the provided signature, the webhook is valid.
Best Practices
Always verify webhook signatures before processing events.
Respond with HTTP
200 OKas soon as the event is accepted for processing.Use
event_idfor idempotent processing (avoid handling the same event twice).Log and monitor failed verification attempts for security analysis.
Support
For integration support or additional questions, please contact our support team.