🪝
Webhooks & Callbacks
Don't call us, we'll get back to you
To make you integration easier, we have enabled ways to alert you when something happens or to define validation services before executing transactions.
You can setup a URL to recibe requests every time an event is triggered for a transaction. possible events are:
payment_received
: payment is confirmedpayment_rejected
: payment was cancelled or rejectedpayment_expired
: the transaction expired before receiving payment confirmationcrypto_tx_sent
: transaction was sent to the blockchain (only on-ramps)crypto_delivered
: transaction confirmed by the blockchain (only on-ramps)crypto_tx_failed
: transaction failed on the blockchain
Additionally, you weill be able to defined a
secret
to validate our requests. Using this secret, we encrypt the request parameters and add the hash for you to verify:const signature = crypto.createHmac('sha256', secret).update(JSON.stringify(payload)).digest('hex')
Example of a request:
{
"eventName": "crypto_delivered", // event, from the list above
"orderId": "5a3288ea-0bd4-44d2-af11-aae1f88bbd61", // order id
"timeStamp": "2022-10-26T22:36:41.658Z",
"signature": "ed40d34ab7a587cf1a16338a16cc7765ae4420936677482bb33f5f738e4f7189" // hash
}
You can setup a URL to your API for us to confirm a user is allowed to operate in your specific context. Every time a user wants to buy, sell, or check private information associated to your environment, we will send a request to this URL before proceeding.
Our platform assumes your API will respond something that looks like a boolean and supports many authentication methods.
An example using pseudo code:
// user buys crypto
const createOrder (payload) {
if (!validUser(payload.email)) throw new Error('user not allowed');
else continue
}
// we check with your API before proceeding
const validUser(email) {
const payload = { email }
const headers = { 'Authorization': 'Bearer superJWT' }
const { data } = await axios.post(urlExternalAPI, payload, { headers })
reurn data
}
Last modified 2mo ago