πŸ› οΈ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

1

Partner implements endpoint

Partner implements an HTTPS endpoint to receive webhook events.

2

Provide endpoint URL

Partner provides the endpoint URL to our team.

3

Register endpoint

We register the endpoint and generate a verification secret key.

4

Share secret

The secret key is shared with the partner.

5

Verify requests

Each webhook request is signed and can be verified by the partner.


Webhook Endpoint Requirements

  • HTTPS endpoint

  • Accepts POST requests

  • Accepts application/json

  • Returns HTTP 200 OK on successful receipt


Webhook Payload Structure

Webhook events are delivered as JSON payloads in the request body.

Example Payload


Top-Level Fields

Field
Type
Description

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.

Field
Type
Description

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

Field
Type
Description

id

integer

Cryptocurrency ID

logo

string

Cryptocurrency icon URL or path

name

string

Cryptocurrency name

symbol

string

Cryptocurrency symbol


Currency Object

Field
Type
Description

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

Field
Type
Description

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

Field
Type
Description

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

Field
Type
Description

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

Field
Type
Description

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 of timestamp and 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 OK as soon as the event is accepted for processing.

  • Use event_id for 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.