Skip to main content

Webhook - Onramp

This section explains the steps to configure callback URLs for receiving events about completed onramp transactions.

Configuring Webhook

Webhooks are configured in the merchant dashboard.

Inside the Setup section, webhooks can be added and modified under the Callback URL's section.

Webhook Configuration

Generating HMAC

Signature is computed using Hash-based message authentication code (HMAC) using a secret key. The secret key is the API Secret present in your merchant dashboard.

The example implementation in Node.js is shown below:

let hmac = crypto.createHmac('sha256', apiSecret);
hmac.update(JSON.stringify(postBody));
let hash = hmac.digest('hex');
assert(hash == headers["X-Onmeta-Signature"])

Completed Order

POST{{configured_webhook_url}}

This callback will be triggered when the crypto coins are deposited to the given receiver address. It will use the configured webhook URL to send order completed details in the POST body.

info

Event Type: onramp

Make sure you have firewall rules configured to allow receiving the webhook body, otherwise your firewall might block our webhook requests.

Headers

HeaderTypeRequiredDescription
AcceptstringYesapplication/json
Content-TypestringYesapplication/json
X-Onmeta-SignaturestringYesHMAC signature for webhook verification

Request Body Parameters

ParameterTypeRequiredDescription
fiatnumberYesFiat amount
receiverWalletAddressstringYesWallet address receiving the crypto
buyTokenSymbolstringYesSymbol of the purchased token
buyTokenAddressstringYesContract address of the purchased token
orderIdstringYesUnique order identifier
statusstringYesOrder status
currencystringYesFiat currency code
chainIdnumberYesBlockchain network chain ID
customerobjectYesCustomer information object
txnHashstringYesBlockchain transaction hash
transferredAmountstringYesAmount transferred in human-readable format
transferredAmountWeistringYesAmount transferred in wei
createdAtstringYesOrder creation timestamp
eventTypestringYesEvent type identifier (value: "onramp")
metaDataobjectNoAdditional metadata including conversion rate and commission

Code Examples

curl --location -g --request POST '{{configured_webhook_url}}' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-Onmeta-Signature: string' \
--data-raw '{
"fiat": 100,
"receiverWalletAddress": "0x14o2422324232323232323232232",
"buyTokenSymbol": "MATIC",
"buyTokenAddress": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"orderId": "63c93f0ffa666e128b7ab131",
"status": "completed",
"currency": "INR",
"chainId": 80001,
"customer": {
"id": "63aaedf35b07a87b1f912023",
"email": "test@test.com",
"phone": {},
"created_at": "2022-12-27T13:06:59.068Z"
},
"createdAt": "2023-01-19T13:01:03.289Z",
"txnHash": "0xae21ff484bd2d05d22f6....7d1f795e9e09cda97b4d522",
"transferredAmount": "0.01",
"transferredAmountWei": "10000000000000000",
"eventType": "onramp",
"metaData": {
"conversionRate": "90.2",
"commission": "0"
}
}'

Response Sample

{
"fiat": 100,
"receiverWalletAddress": "0x14o2422324232323232323232232",
"buyTokenSymbol": "MATIC",
"buyTokenAddress": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"orderId": "63c93f0ffa666e128b7ab131",
"status": "completed",
"currency": "INR",
"chainId": 80001,
"customer": {
"id": "63aaedf35b07a87b1f912023",
"email": "test@test.com",
"phone": {},
"created_at": "2022-12-27T13:06:59.068Z"
},
"createdAt": "2023-01-19T13:01:03.289Z",
"txnHash": "0xae21ff484bd2d05d22f6....7d1f795e9e09cda97b4d522",
"transferredAmount": "0.01",
"transferredAmountWei": "10000000000000000",
"eventType": "onramp",
"metaData": {
"conversionRate": "90.2",
"commission": "0"
}
}

Webhook Events

Onmeta provides seven types of webhook events that allow you to receive real-time notifications when specific events occur during the onramp flow.

#Event NameDescription
1fiatPending

This event is triggered when a user has initialised an order but fiat deposit from user is pending.

2orderReceived

This event is triggered when a user completes payment and Onmeta has initiated the crypto transfer.

3InProgress(optional)

This event is triggered when the order is in-progress on the blockchain.

4fiatReceived

This event is received on confirming that Onmeta has received payment for the onramp order.

5transferred

This event is triggered when a user's token transfer is confirmed on the blockchain.

6completed

This event is triggered when a user's order is completed and the user has received the tokens.

7expired

When an order remains pending for more than three hours, the order is expired and this webhook event is triggered.

Example Webhook Request

{
"fiat": 100,
"receiverWalletAddress": "0xF12dc1E2EEb4d0475DE270447A92a481635caF4a",
"buyTokenSymbol": "MATIC",
"buyTokenAddress": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"orderId": "641c30286ad7d01834a02e2c",
"status": "fiatPending",
"currency": "INR",
"chainId": 137,
"customer": {
"id": "web52390easf35fas2a25d3fffwsdae",
"email": "documentation@onmeta.in",
"phone": {},
"created_at": "2023-01-04T06:58:24.968Z"
},
"createdAt": "2023-03-23T10:55:36.584Z",
"txnHash": "",
"transferredAmount": "0.990628",
"transferredAmountWei": "990628498656169300",
"eventType": "onramp",
"metaData": {
"submeta1": "metadata"
}
}