Account Funding + Buy/Sell Reconciliation
Understanding net settlement across independent products
Context
This guide outlines the reconciliation process for two distinct products - Account Funding and Buy/Sell - each of which generates independent trading activity and settlement amounts. While these products operate separately, they ultimately contribute to a single net settlement value that determines whether a wire transfer is required from your platform or needs to be initiated by us. This document is intended for technical and finance teams who need to accurately match transaction-level data, validate fund flows, and reconcile trade activity with settlement outcomes. A clear understanding of how each product contributes to the overall net wire amount is critical for maintaining accounting accuracy and operational efficiency.
Data Objects
- A trade represents a conversion of 2 assets. You can query them via GET /trades or GET /trades/{trade_id}.
- A fund event represents a successful account funding (deposit) transaction. You can query them via GET /fund/transactions. Successful fund events lead to a trade (because there is a conversion of the deposited asset into fiat)
- A payment can represent a few things at Zero Hash, but in the context of the Account Funding product, will represent an account funding (withdrawal) transaction (Ie, someone withdrawing an asset to an external wallet). You can query them via GET /payments or GET /payments/{payment_id}
End to End Flow
Deposits
- When a end customer makes a deposit, Zero Hash will automatically and immediately convert the asset to fiat, creating a trade. Follow these steps in order to trace the fund event back to a trade:
- Step 1: Consume the fund event webhook or query the GET /fund/transactions and look for the
fund_id
- Step 2: Use the
fund_id
and query GET /movements?parent_link_id=[fund_id]. You'll see atrade_id
in the response - Step 3: Take this
trade_id
and query GET /trades/{trade_id}
- Step 1: Consume the fund event webhook or query the GET /fund/transactions and look for the
Withdrawals
- When a end customer initiates a withdrawal, Zero Hash will automatically and immediately convert fiat to the withdrawal asset via the payment object, creating a trade. Follow these steps in order to trace the payment back to a trade:
-
- Step 1: Consume the payments webhook or the GET /payments or GET /payments/{payment_id} endpoints and look for the
payment_id
- Step 2: Use the
payment_id
and query GET /movements?parent_link_id=[payment_id]. You'll see atrade_id
in the response - Step 3: Take this
trade_id
and query GET /trades/{trade_id}
- Step 1: Consume the payments webhook or the GET /payments or GET /payments/{payment_id} endpoints and look for the
Updated about 8 hours ago