Withdrawals Assignments

Integration, Compliance and Bookings for Withdrawals, using the Trever Treasury Integration Service

Withdrawal Workflow

Worklfow

1 - Create New Withdrawal

A new withdrwawl can be created in the Trever Treasury.

2 - Withdrawal Processing

This transaction is processed by the underlying venue.

New Withdrawal

3 - Withdrawal Assigment

Like deposits, withdrawals are also retrieved from the venue. Regardless of whether a withdrawal was created in Trever or externally and then integrated, it can be assigned to an account.

As soon as a withdrawal has the status Sucessful, an attempt is made to assign it to a customer. The first step is to check the route. If the output wallet of a route is assigned to a customer, an assigement is created for the customer’s wallet. As soon as a withdrawal has the status Sucessful, an attempt is made to assign it to a customer. The first step is to check the route. If the output wallet of a route is assigned to a customer, an assigement is created for the customer’s wallet. If this is not the case, all wallets are checked for Assigement Configurations in the same way as for Depost Matching.

How exactly assigment data can be configured is explained below.

If the assignment to an account is successful, a so-called Withdrawal Assignment is created. The amount withdrawn is booked to the customer’s Lock account. This means that the amount appears in his balances but is not available to him anymore.

If no compliance is activated (Workspace Setting) the successful Withdrawal Assignment is immediately booked to the Integration Account account of the customer. This means that the amount is also available for trading.

4 - Compliance

If compliance is activated, there are two possibilities for the client’s system to learn that there are new Withdrawal Assignments.

If compliance is activated, there are two possibilities for the client’s system to learn that there are new Withdrawal Assignments.

  1. It can retrieve all current withdrawal assignments via a GET call from the Trever API.
  2. It can provide an http POST endpoint itself and store the information about it in Trever. Trever Treasury will then send the current withdrawal assignments to this endpoint as soon as they are created.

At this point, the withdrawal assigment has the status PENDING. The client’s system can now perform the compliance checks for the assigned customer and then set the withdrawal assigments to REJECTED or SUCCESSFUL if necessary. Trever provides a PATCH endpoint for this purpose.

5 - Bookkeeping

If a Withdrawal Assigment is set to SUCCESSFUL, the amount is booked to the Integration Account account and is not visible for the customer anymore. If a Withdrawal Assigment is set to REJECTED, the amount booked back to the HEAD account of the assigned customer. A manual decision must now be made on how to proceed with this withdrawal. It can either be set from REJECTED to SUCCESSFUL at a later date or the assignment can be rectified. Either via the API or in the frontend.

Withdrawal Matching

For withdrawals that are initiated directly via Trever and not externally, the route itself is checked before the assignment configurations of all customer wallets.

For withdrawals that are initiated directly via Trever and not externally, the route itself is checked before the assignment configurations of all customer wallets. If the source wallet of a route is assigned to a customer account, the assignment is created for this customer.

Source without reference

  • withdrawal.source_address == wallet.withdrawal_config.source_address

For withdrawals that cannot be assigned via the route (e.g. if they were integrated externally), an assignment configuration of the type source_without_reference can be created on the customer wallet. If this address is specified as the source in a withdrawal, it can be assigned to the customer.

Assignment Information for sourcw address and reference

Source with reference

  • withdrawal.source_address == wallet.withdrawal_config.source_address
  • withdrawal.reference == wallet.withdrawal_config.source_reference

If an address is used by several customers, a reference can also be stored.

Destination without reference

  • withdrawal.destination_address == wallet.withdrawal_config.destination_address

If withdrawals are made from an Omnibus Wallet, but outgoing payments should still be assigned to a customer, a destination address can also be used for assignment. So if it is known that the destination address of a transaction is the wallet of customer XY, this address can be added to his customer wallet as an Assigmnet Configuration of the type destination_without_reference for withdrawals.

Assignment Information for destination address

Destination with reference

  • withdrawal.destination_address == wallet.withdrawal_config.destination_address
  • withdrawal.reference == wallet.withdrawal_config.destination_reference

If withdrawals are made from an Omnibus Wallet, but outgoing payments should still be assigned to a customer, a destination address can also be used for assignment. So if it is known that the destination address of a transaction is the wallet of customer XY, this address can be added to his customer wallet as an Assigmnet Configuration of the type destination_without_reference for withdrawals.

However, if the destination is also a wallet used by more than one customer, a reference can also be used.

Assignment Information for destination address and reference

Withdrawal Assigments

All Assignments of a withdrawal can be viewed in the Assignment tab of the withdrawal dialog.

Assignment Tab

To rectify assignments, select them and press the Rectify selected.

Assignment Tab - Select Assignments

The rectified amount can be assigned to multiple accounts. The whole amount must be assigned.

Rectification