Ask us anything. We're here to help.

OTC Integration Flow

The following is a specific integration flow for platforms using Zero Hash for institutional OTC trade settlement.

1. Participant Onboarding

1.1 Connecting with Counterparties

Onboarding of institutional counterparties requires manual KYC processes. You can submit the KYC information online via our portal, or via some other mutually agreed-upon process. Once the customer is onboarded, we will associate them with your OTC platform.

Relevant articles: Add Counterparties

1.2 Viewing All Counterparties

Note: you must obtain the participant_code for each of your counterparties. You can do this a variety of ways:

1.2.1 Portal

You can review all of the participants you are associated with via the Parties page in the portal. Also, refer to the Participant Relationships and Access Rights page for more information on relationships.

1.2.2 Reports

You can review all of the participants listed as a customer_of_platform via the Platform Customers report in the Reports page in the portal

1.2.3 API

You can perform a GET /participants request to be provided a list of participants you are connected with. You can read more here: https://zerohash.com/api/web/#participants 

2. Client Funding

2.1 Deposits

Clients can initially fund their account through one of our banking partners for fiat or via one of their dedicated wallets for digital assets.

2.2 Allocations

Once funded, clients can allocate funds to various Zero Hash-integrated platforms. It's important to note that this type of movement will not produce an on-chain or inter-bank account movement. It will only take place on the Zero Hash ledger and gives the client trading power on different platforms. You can read about it more here.

Platforms can elect to lock assets once allocated to their platform. You can read about it more here.

2.3 Monitoring Client Funds

2.3.1 Email

When configured, platforms can receive email updates when clients balances change on their platform. 

2.3.2 Reports

Reports can be found in the Reports section of the portal. Here are the relevant options for client funding:

  • Platform Net Open Positions (NOP): Displays clients open positions with your platform.
  • Platform Net Delivery Obligations (NDO): Displays the amount that clients need to fund to clear trades that have been processed for settlement, but that could not be fully settled. Delivering the NDO balance will clear active and outstanding trades.
  • Platform Account Balances, Snapshot: Displays the current funding levels of all clients.
  • Platform Account Balances, Historical: Displays clients historical movements in and out of your platform.

2.3.3 API

You can perform a GET /accounts request and filter on account_owner = your customer’s participant_code to see how much they have in accounts dedicated for trading on your platform.

3. Trade Submission

Trade submission can be done via the standard Zero Hash FIX STP gateway, a custom FIX STP gateway or REST API.

3.1 Submission GUI

Navigate to the Trades section of the portal, and you will find an option to Submit Trade. This allows  you to submit trade details between you and your counterparties.

3.2 FIX STP

Zero Hash operates a standard FIX STP gateway into which you can submit trades. Note: you must include the participant_code of the customers as tag 448 PartyID.

You can read more here: https://zerohash.com/api/fix-stp/ 

3.3 REST API

You can submit trades via REST API via the POST /trades endpoint. Upon submission, and as a response you will receive a trade_id. This is the unique ID for the trade, useful in step 3.

You can read more here: https://zerohash.com/api/web/#trades

4. Trade Settlement

4.1 Settlement Schedules

We can process a trade for settlement according to a variety of schedule parameters, including:

  • Instant settlement
  • Repeated settlement attempts across any time interval
  • Batch settlement every day at a certain time

Further, we can configure a different schedule to retry settlement after the initial attempt, e.g. attempt to settle all new trades at 4pm CT and then retry every hour to settle outstanding trades.

For exchanges, we recommend batch settlement at 4pm CT each day, with a retry schedule that allows for delivery up to 24 hours later, i.e. first attempt at 4pm CT and retry until 4pm CT the next day.

4.2 Settlements

4.2.1 Portal

The Trades section of the portal allows you to view high-level information about trades that have been submitted to Zero Hash. The trade_state field will indicate whether a trade is:

  • accepted i.e. received but settlement has not yet been attempted
  • active i.e. received and settlement has been attempted, but the trade has not been fully settled or reached maturity
  • terminated i.e. the trade has concluded due to a full settlement, or a default

4.2.2 API

You will want to wait for the trade to settle before processing the withdrawal. So you can submit a GET /trades/ to see all trades and their status. You will want to see that the trade_state is terminated and the settlement_state is settled

You can read more here: https://zerohash.com/api/web/#trades

Optional validation: you can perform a GET /accounts request and filter on account_owner = your customer’s participant_code and you can see that they now have crypto in their account. But this can be safely assumed if the settlement_state is settled.

You can read more here: https://zerohash.com/api/web/#accounts