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
  },

📘

* 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)

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 (decimal, 8 places)

Transaction network fee, sliced to 8 decimals.

"0.00012432"

effectivechange

String (decimal, 8 places)

Transaction network fee, sliced to 8 decimals.

"10.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

block

integer

This is the block number/ height at which the transaction was included

765544

coin

String

The symbol of the asset "received" or "sent" in the transaction. It can be a coin or a token.

USDT

effectivechangeusd

String (decimal, 5 places)

Net transaction amount (USD)of coins/ tokens received/ sent, sliced to 5 decimals

"10.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

String (decimal, 8 places)

The total amount of the transaction.

"10.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

String (decimal, 8 places)

Amount from each output in the transaction, sliced to 8 decimals.

"10.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 number/ height at which the transaction was included

844391

txStatus

number

Can 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.