Withdrawals Assignments
Withdrawal Workflow
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.
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.
- It can retrieve all current withdrawal assignments via a GET call from the Trever API.
- 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.
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.
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.
Withdrawal Assigments
All Assignments of a withdrawal can be viewed in the Assignment
tab of the withdrawal dialog.
To rectify assignments, select them and press the Rectify selected
.
The rectified amount can be assigned to multiple accounts. The whole amount must be assigned.