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 both x-platform-signature and x-liminal-signature headers. However, Liminal will deprecate x-liminal-signature in future. As an organisation, you are advised to configure only x-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
}
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
feeStringThe fee associated with the transaction.0.00824932
effectivechangedecimal(28,8)The number of coins or tokens being transferred.4.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
coinStringThe symbol of the asset "received" or "sent" in the transaction. It can be a coin or token.USDT
effectivechangeusddecimal(18,5)The transaction amount in USD.4.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
inputsaddressStringThe wallet address from where the transaction is initiated.0x505e71695e9bc45943c58adec1650577bca68fd9
inputsamountIntegerThe total amount of the transaction.0.00000000
inputsisMineBooleanThis indicates whether the source address belongs to the transaction initiator or not.true
outputsaddressStringWallet address where the transaction is received0x1963159d1f64538b5dc105d4498d248d615ae57c
outputsamountIntegerThe amount of cryptocurrency received at the destination address.4.00000000
outputsisMineBooleanThis 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 height at which the transaction was included844391

📘

Note

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.