These webhooks are triggered when funds are received in any of the addresses belonging to a Liminal Wallet.
The structure of the receive webhook contains several fields that provide information about the transaction.
Identifying webhooks that belong to incoming (Receive) transactions
You can differentiate a send and receive webhook using the parameters–type. The parameter is described as follows:
- type: This is the name of the event. For example, "receive".
Differentiating between a native coin (eg. ETH, POL) transaction and a token transaction (eg. USDC,USDT)
You can differentiate a native coin webhook from token transaction webhook using the parameter–tokenContractAddress. This parameter will be an empty string "" in case of a native coin transaction and will contain the token contract address of the token in case of a token transaction.
Differentiating between a completed webhook and periodic webhook
The transactionStatus and blockConfirmationData objects have been newly added to the webhook response.
For periodic webhooks the periodicity field in the blockConfirmationData will not be null. For detailed information on Periodic Webhooks read the complete guide.
"transactionStatus": {
"legacyStatus": 4,
"primaryStatus": "success",
"secondaryStatus": "completed"
},
"blockConfirmationData": {
"periodicity": null,
"block": 8863651,
"numberOfConfirmations": 24
},
Note
- Currently, webhooks contain both
x-platform-signature
andx-liminal-signature
headers. However, Liminal will deprecatex-liminal-signature
in future. As an organisation, you are advised to configure onlyx-platform-signature
going forward.
The following is a sample payload of the "Receive" webhook.
{
"id": 155034527,
"txid": "0x63479976d5b14cc99d07df7c69ecf54a684f9606bea4fec9b98877a6b4ef3179",
"raw": null,
"walletid": 36215,
"type": "receive",
"fee": "0.00012432",
"effectivechange": "10.00000000",
"runningbalance": null,
"timestamp": "2025-07-28T21:45:19.000Z",
"externaladdress": "0xd844ba11f64d23a7481e24474d2f184e350b9b3d",
"block": 8863651,
"coin": "USDC",
"effectivechangeusd": "10.00000",
"wallet": {
"id": 36215,
"name": "Deepak Org deposit ETH 2",
"type": "mpc",
"config": "2of2",
"balance": "0.07000000",
"address": "0x53c405792e91a8aEA1606333D6Ca2271eA305326",
"chain": "ETH",
"subtype": "deposit",
"coin": "ETH",
"orgid": 2022,
"parentchain": "EVM",
"isArchived": 0,
"balanceUSD": "265.99321294",
"orgWebhook": "https://c70a5e1afdb0a586c53ae351815c8f6b.m.pipedream.net/\t"
},
"tokenContractAddress": "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",
"sequenceId": "",
"explorerLink": "https://sepolia.etherscan.io/tx/0x63479976d5b14cc99d07df7c69ecf54a684f9606bea4fec9b98877a6b4ef3179",
"inputs": [
{
"address": "0xd844ba11f64d23a7481e24474d2f184e350b9b3d",
"amount": "0.00000000",
"isMine": false
}
],
"outputs": [
{
"address": "0x2c9fd519c5e13a11eea6aaa35f5b54e78a5989f6",
"amount": "10.00000000",
"isMine": true,
"wallet": {
"id": 36215,
"name": "Deepak Org deposit ETH 2",
"type": "mpc",
"config": "2of2",
"status": 1,
"balance": "0.07000000",
"balanceusd": "265.99321294",
"raw": null,
"issynced": true,
"walletpath": "m/44/60/0/2022/1/0/0",
"walletidentifier": "0x53c405792e91a8aEA1606333D6Ca2271eA305326",
"chain": "ETH",
"subtype": "deposit",
"coin": "ETH",
"orgid": 2022,
"parentchain": "EVM",
"canInitiatorSign": 1,
"suspendedStatus": 0,
"suspendedRemark": null,
"isArchived": false,
"teamId": null,
"version": 2,
"account": null
}
}
],
"blockConfirmation": 24,
"transactionStatus": {
"legacyStatus": 4,
"primaryStatus": "success",
"secondaryStatus": "completed"
},
"blockConfirmationData": {
"periodicity": null,
"block": 8863651,
"numberOfConfirmations": 24
},
"resData": {
"success": true
},
"txStatus": 1
}
Object | Parameter | Data Type | Description | Example Value |
---|---|---|---|---|
id | Integer | The unique identifier of the event. | 1965382 | |
txid | String | The unique identifier of the transaction or the transaction hash. | 0x62eaf9706dac678d8daf672259c44a22e13c7f73b62c6240bd8b5719764d9ae8 | |
raw | String | The memo for the supported chains, else null. | null | |
walletId | int32 | The unique identifier of the wallet. | 2876 | |
type | String | The type of "send" or "receive" transaction. If its value is “internal”, ignore it, as it is an internally occurring webhook. | receive | |
fee | String | The fee associated with the transaction. | 0.00824932 | |
effectivechange | decimal(28,8) | The number of coins or tokens being transferred. | 4.00000000 | |
runningbalance | String | The real-time updated total funds change after each transaction. | null | |
timestamp | String | The date and time when the transaction was initiated. | 2023-10-05T07:20:29.000Z | |
externaladdress | String | For a "receive" transaction, this represents the source address. For a "send" transaction, this represents the target address. | 0x505e71695e9bc45943c58adec1650577bca68fd9 | |
coin | String | The symbol of the asset "received" or "sent" in the transaction. It can be a coin or token. | USDT | |
effectivechangeusd | decimal(18,5) | The transaction amount in USD. | 4.00000 | |
wallet | id | int32 | The unique identifier of the wallet. | 2876 |
wallet | name | String | The name of the wallet. | Lightning Nodes Deposit POLYGON |
wallet | type | String | The type of wallet. | pipeline |
wallet | config | String | The minimum required signer configuration of the wallet. | 2of2 |
wallet | balance | decimal(28,8) | The total balance of the wallet. | 0.07000000 |
wallet | address | String | The unique address of the wallet. | 0x6d3E8E04f8F178eF755627546aA84Fca4397B20b |
wallet | coin | String | The native coin of the wallet chain. | MATIC |
wallet | chain | String | The blockchain network of the wallet. | POLYGON |
wallet | parentchain | String | The parent blockchain network of the chain where the wallet operates. | EVM |
wallet | subtype | String | The sub type of the wallet from where the transaction is initiated. | deposit |
wallet | isArchived | Boolean | This indicates whether the wallet is archived or not. "1" refers to true, whereas, "0" refers to false. | 0 |
wallet | orgid | Integer | The unique identifier of the organisation. | 864 |
wallet | balanceUSD | decimal(18,8) | The total balance of the wallet in USD. | 0.00000000 |
wallet | orgWebhook | String | The webhook URL setup on the client side. | https://testnet-api.pi42.exchange/v1/liminal/webhook |
tokenContractAddress | String | The contract address of the token for which the transaction has taken place. | 0xc2132D05D31c914a87C6611C10748AEb04B58e8F | |
sequenceId | String | The unique identifier (ID) of the transaction sequence. A sequence ID is generated only for a "send" transaction. | 93544241-c00e-c754-3bd0-494567a67ee8 | |
explorerLink | String | The URL of a web-based tool that allows to view and search blockchain transactions, blocks, addresses, and other relevant information. | https://polygonscan.com/tx/0x62eaf9706dac678d8daf672259c44a22e13c7f73b62c6240bd8b5719764d9ae8 | |
inputs | address | String | The wallet address from where the transaction is initiated. | 0x505e71695e9bc45943c58adec1650577bca68fd9 |
inputs | amount | Integer | The total amount of the transaction. | 0.00000000 |
inputs | isMine | Boolean | This indicates whether the source address belongs to the transaction initiator or not. | true |
outputs | address | String | Wallet address where the transaction is received | 0x1963159d1f64538b5dc105d4498d248d615ae57c |
outputs | amount | Integer | The amount of cryptocurrency received at the destination address. | 4.00000000 |
outputs | isMine | Boolean | This indicates whether the destination address belongs to the transaction initiator or not. | true |
outputs > wallet | id | int32 | The unique identifier of the destination wallet. | 2876 |
outputs > wallet | name | String | The name of the destination wallet. | Lightning Nodes Deposit POLYGON |
outputs > wallet | type | String | The type of the destination wallet. | pipeline |
outputs > wallet | config | String | The minimum required signer configuration of the destination wallet. | 2of2 |
outputs > wallet | balance | decimal(28,8) | The total balance of the destination wallet. | 0.00000000 |
outputs > wallet | address | String | The blockchain address to which the transaction is sent. | 0x6d3E8E04f8F178eF755627546aA84Fca4397B20b |
outputs > wallet | coin | String | The type of cryptocurrency held in the destination wallet. | MATIC |
outputs > wallet | chain | String | The type of blockchain network associated with the wallet. | POLYGON |
outputs > wallet | parentchain | String | The parent blockchain of the chain where the destination wallet operates. | EVM |
outputs > wallet | subtype | String | The sub type of the destination wallet. | deposit |
outputs > wallet | isArchived | Boolean | This indicates whether the destination wallet is archived or not. | 0 |
outputs > wallet | orgid | Integer | The unique identifier of the exchange organisation. | 864 |
outputs > wallet | balanceUSD | decimal(18,8) | Total balance of the destination wallet in USD. | 0.00000000 |
outputs > wallet | orgwebhook | String | The webhook URL setup on the client side. | https://testnet-api.pi42.exchange/v1/liminal/webhook |
blockConfirmation | Number | The difference between the latest block (at the time of processing the transaction) and the block number in which the transaction was included. | 5 | |
transactionStatus | legacyStatus | Number | The legacy status of the transaction in number that is retrieved via old transaction status API | 1 |
transactionStatus | primaryStatus | String | This is the broader stage of the transaction. | pending |
transactionStatus | secondaryStatus | String | The specific stage of the transaction | awaiting_finalisation |
blockConfirmationData | periodicity | number | null | number of block confirmations at which the periodic webhook was triggered. This value is null when the transaction is finalised on-chain and completed | 1 | null |
blockConfirmationData | numberOfConfirmations | number | The number of confirmations on the blockchain that have passed since this transaction was first confirmed | 1 |
blockConfirmationData | block | number | This is the block height at which the transaction was included | 844391 |
Note
- Before receiving batch token transactions from smart contracts into your deposit hot wallets, ensure to whitelist smart contract addresses. To learn more, see Whitelist smart contract addresses for deposit wallets.
You can view webhook status code, request and response body, and other details in the webhook dashboard within Vaults, as shown below. To learn more about webhook dashboard, see View and manage your webhooks.

