Receive transaction webhooks

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 only the x-platform-signature header. Liminal has deprecated the x-liminal-signatureheader.

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
}

Webhook Payload Parameters (Receive transactions)

ObjectParameterData TypeDescriptionExample Value
idIntegerThe unique identifier of the event.1965382
txidStringThe unique identifier of the transaction or the transaction hash.0x62eaf9706dac678d8daf672259c44a22e13c7f73b62c6240bd8b5719764d9ae8
rawStringThe memo for the supported chains, else null.null
walletIdint32The unique identifier of the wallet.2876
typeStringThe type of "send" or "receive" transaction. If its value is “internal”, ignore it, as it is an internally occurring webhook.receive
feeString (decimal, 8 places)Transaction network fee, sliced to 8 decimals."0.00012432"
effectivechangeString (decimal, 8 places)Net transaction amount of coins or tokens received or sent, sliced to 8 decimals."10.00000000"
runningbalanceStringThe real-time updated total funds change after each transaction.null
timestampStringThe date and time when the transaction was initiated.2023-10-05T07:20:29.000Z
externaladdressStringFor a "receive" transaction, this represents the source address.
For a "send" transaction, this represents the target address.
0x505e71695e9bc45943c58adec1650577bca68fd9
blockintegerThis is the block number/ height at which the transaction was included765544
coinStringThe symbol of the asset "received" or "sent" in the transaction. It can be a coin or a token.USDT
effectivechangeusdString (decimal, 5 places)Net transaction amount (USD) of coins/ tokens received/ sent, sliced to 5 decimals."10.00000"
walletidint32The unique identifier of the wallet.2876
walletnameStringThe name of the wallet.Lightning Nodes Deposit POLYGON
wallettypeStringThe type of wallet.pipeline
walletconfigStringThe minimum required signer configuration of the wallet.2of2
walletbalancedecimal(28,8)The total balance of the wallet.0.07000000
walletaddressStringThe unique address of the wallet.0x6d3E8E04f8F178eF755627546aA84Fca4397B20b
walletcoinStringThe native coin of the wallet chain.MATIC
walletchainStringThe blockchain network of the wallet.POLYGON
walletparentchainStringThe parent blockchain network of the chain where the wallet operates.EVM
walletsubtypeStringThe sub type of the wallet from where the transaction is initiated.deposit
walletisArchivedBooleanThis indicates whether the wallet is archived or not. "1" refers to true, whereas, "0" refers to false.0
walletorgidIntegerThe unique identifier of the organisation.864
walletbalanceUSDdecimal(18,8)The total balance of the wallet in USD.0.00000000
walletorgWebhookStringThe webhook URL setup on the client side.https://testnet-api.pi42.exchange/v1/liminal/webhook
tokenContractAddressStringThe contract address of the token for which the transaction has taken place.0xc2132D05D31c914a87C6611C10748AEb04B58e8F
sequenceIdStringThe unique identifier (ID) of the transaction sequence. A sequence ID is generated only for a "send" transaction.93544241-c00e-c754-3bd0-494567a67ee8
explorerLinkStringThe 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[]addressStringThe wallet address from where the transaction is initiated.0x505e71695e9bc45943c58adec1650577bca68fd9
inputs[]amountString (decimal, 8 places)Amount from each input in the transaction, sliced to 8 decimals."10.00000000"
inputs[]isMineBooleanThis indicates whether the source address belongs to the transaction initiator or not.true
outputs[]addressStringWallet address where the transaction is received0x1963159d1f64538b5dc105d4498d248d615ae57c
outputs[]amountString (decimal, 8 places)Amount from each output in the transaction, sliced to 8 decimals."10.00000000"
outputs[]isMineBooleanThis indicates whether the destination address belongs to the transaction initiator or not.true
outputs > walletidint32The unique identifier of the destination wallet.2876
outputs > walletnameStringThe name of the destination wallet.Lightning Nodes Deposit POLYGON
outputs > wallettypeStringThe type of the destination wallet.pipeline
outputs > walletconfigStringThe minimum required signer configuration of the destination wallet.2of2
outputs > walletbalancedecimal(28,8)The total balance of the destination wallet.0.00000000
outputs > walletaddressStringThe blockchain address to which the transaction is sent.0x6d3E8E04f8F178eF755627546aA84Fca4397B20b
outputs > walletcoinStringThe type of cryptocurrency held in the destination wallet.MATIC
outputs > walletchainStringThe type of blockchain network associated with the wallet.POLYGON
outputs > walletparentchainStringThe parent blockchain of the chain where the destination wallet operates.EVM
outputs > walletsubtypeStringThe sub type of the destination wallet.deposit
outputs > walletisArchivedBooleanThis indicates whether the destination wallet is archived or not.0
outputs > walletorgidIntegerThe unique identifier of the exchange organisation.864
outputs > walletbalanceUSDdecimal(18,8)Total balance of the destination wallet in USD.0.00000000
outputs > walletorgwebhookStringThe webhook URL setup on the client side.https://testnet-api.pi42.exchange/v1/liminal/webhook
blockConfirmationNumberThe difference between the latest block (at the time of processing the transaction) and the block number in which the transaction was included. 5
transactionStatuslegacyStatusNumberThe legacy status of the transaction in number that is retrieved via old transaction status API1
transactionStatusprimaryStatusStringThis is the broader stage of the transaction.pending
transactionStatussecondaryStatusStringThe specific stage of the transactionawaiting_finalisation
blockConfirmationDataperiodicitynumber | nullnumber of block confirmations at which the periodic webhook was triggered. This value is null when the transaction is finalised on-chain and completed1 | null
blockConfirmationDatanumberOfConfirmationsnumberThe number of confirmations on the blockchain that have passed since this transaction was first confirmed1
blockConfirmationDatablocknumberThis is the block number/ height at which the transaction was included844391
txStatusnumberCan be 0 or 1.
0- Transaction is not fully confirmed/ finalised
1 - Transaction is finalised
1

📘

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.
  • We standardize the decimal precision for specific fields in the webhook payload to ensure all systems reliably interpret transaction amounts. This prevents precision errors and ensures consistent data processing.
    The following fields in the payload are sliced as follows:
    • effectivechange up to 8 decimals.
    • effectivechangeusd to 5 decimals.
    • fee to 8 decimals.
    • amount in inputs[] and outputs[] up to 8 decimals.

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 the webhook dashboard, see View and manage your webhooks.