Skip to main content

Payment Data Structure

Learn how DePay Payment objects are structured.

{
"status": "success",
"failed_reason": undefined,
"blockchain": "ethereum",
"transaction": "0xd4a9424440f6010af1bec311dda4e23d4f0016f4cc215da84a41650150ecb8b7",
"sender": "0x29b0d4cb9cFfEB360067199cf026dfD4854A8aB0",
"nonce": "1",
"receiver": "0x29b0d4cb9cFfEB360067199cf026dfD4854A8aB0",
"token": "0xa0bEd124a09ac2Bd941b10349d8d224fe3c955eb",
"decimals": 18,
"commitment": "confirmed",
"confirmations": 1,
"after_block": "13609144",
"amount": "822.5",
"fee_amount": undefined,
"fee_receiver": undefined,
"payload": {
"somekey": "somevalue"
},
"secret_id": "74417770-e6ac-4ae8-b027-0657600d7bad",
"integration_id": "ef223b83-86c9-423f-9a0e-47a079d20f9d",
"callback": "https://webhook.site/74417770-e6ac-4ae8-b027-0657600d7bad",
"release": true,
"forward_to": "https://example.com/payments/depay/confirmation",
"forward_on_failure": false,
"confirmed_at": "2021-11-25T12:54:52.332Z",
"created_at": "2021-11-25T11:17:13.833Z",
"updated_at": "2021-11-25T12:54:52.334Z"
}

status​

Status can either be pending, success or failed.

In case a payment failed it will also provide a value for failed_reason.

failed_reason​

In case a payment failed, the reason it failed will be provided via failed_reason and can be one of the following values:

  • FAILED in cases where the payment transaction simply failed on the blockchain
  • MISMATCH in cases where the expectation provided does not match with what actually happened in the transaction
  • TRANSACTION_MISMATCH in cases where the transaction_id mismatches with the expected transaction_id
  • TOKEN_MISMATCH in cases where the token mismatches with the expected token address
  • SENDER_MISMATCH in cases where the sender mismatches with the expected sender address
  • RECEIVER_MISMATCH in cases where the receiver mismatches with the expected receiver address
  • AMOUNT_MISMATCH in cases where the amount mismatches with the expected amount
  • TRACKING_TIMED_OUT in cases where the tracking could not be completed within 24h

blockchain​

The blockchain the payment is executed/settled. Can be one of:

  • ethereum for Ethereum
  • bsc for BNB Smart Chain
  • polygon for Polygon/Matic

transaction​

The transaction id/hash of the payment.

sender​

The sender address of the payment.

nonce​

The nonce (Number only used once) of the sender for the payment transaction as a string.

receiver​

The receiver address of the payment.

token​

The received token of the payment.

decimals​

The decimals of the token received.

commitment​

The level of commitment required: confirmed (the transaction has been at least confirmed once by the network) or finalized (highly unlikely that it will be reversed or altered).

confirmations​

The confirmations (amount of blocks including the payment transaction) required to confirm the payment.

after_block​

The block after which to expect the payment to happen. The current block right before the payment was submitted. Required to scan for replaced payment transactions. As a string.

amount​

Expected amount. Human readable. As string, to prevent rounding issues.

fee_amount​

Expected payment fee amount. Human readable. As string, to prevent rounding issues.

fee_receiver​

Expected payment fee receiver address.

payload​

Arbitrary payload stored along with the payment.

secret_id​

Secret, universal unique identifier of the payment attempt. Suposed to identify the payment attempt within your systems. Do not expose this to the public! secret_id needs to be unguessable!

integration_id​

Assigns incoming payments to the given integration_id.

callback​

Secret callback url. Needs to be hidden from the public and needs to be unguessable. Will be called once the payment status completes either with success or failed.

release​

Boolean indicating if the user is to be released (from the payment widget).

forward_to​

URL used to forward the user to after payment has been completed.

forward_on_failure​

Boolean indicating if user is to be forwarded to forward_to also in the case of a failed payment.

confirmed_at​

Time when the payment was confirmed/validated.

created_at​

Time when the payment was initially created/submitted for tracking.

updated_at​

Time when the payment was last updated.