Disbursements
Access Prerequisites
- Permission (module):
creditDisburse(execute/operate disbursements). - License/Feature:
CREDIT_INVESTMENTSenabled on the tenant license (Vault). - Menu container: TOKENIZATION → group Tokenized Credit
What it is / when to use
The Disbursements screen tracks the transfer of the net amount of a Deal to the originator (cedent) — the moment when the anticipation effectively "pays" the client. The disbursement is executed against the originator's BaaS account (generating a baasTransferId) or, in the tokenized modality, via a token transfer.
Use this screen to monitor the state of disbursements (pending, processing, completed, failed), check the amount transferred per deal, and trace the corresponding BaaS transfer.
Pre-conditions
- Permission:
creditDisburse(dual permission — CPM enum + dynamic module in the DB). - License/Feature:
CREDIT_INVESTMENTSenabled. Without it the group does not appear in the menu at all. - Dependencies on other screens: the Deal must be approved/funded; the originator (Parties) must have an active BaaS account and a compatible status (APPROVED).
Step by step
- Go to the menu Tokenized Credit → Disbursements.
- Filter by Status.
- Monitor each row: deal, amount, status, BaaS transfer ID, and date.
- The execution of the disbursement is triggered by the deal flow (
executeDisbursement/disbursementViaToken); this screen is for monitoring.
Filters and columns
| Filter/Column | What it shows | Data source |
|---|---|---|
| Deal | Operation whose net amount was transferred | disbursement.dealId |
| Amount | Amount disbursed to the originator | disbursement.amount (BigNumber) |
| Status | PENDING, PROCESSING, COMPLETED, FAILED (and backend equivalents) | disbursement.status (filter statusFilter) |
| BaaS Transfer ID | Banking transfer identifier at the provider | disbursement.baasTransferId |
| Created at | Disbursement date | disbursement.createdAt |
Actions and modals
This screen is primarily for monitoring. Execution happens in the service flows:
- Fiat disbursement (BaaS):
executeDisbursement({ dealId, amount, idempotencyKey })— transfers the net amount to the originator's BaaS account and recordsbaasTransferId. - Token disbursement:
disbursementViaToken({ dealId, originatorUserId, tokenId, amount })— transfer represented as a token transfer (walletTransaction).
Disbursement execution is a sensitive financial action and may require step-up (password + MFA, X-Step-Up-Token, 5-minute window) depending on the environment.
Business rules / considerations
Attention
- Originator must be eligible. The transfer requires the originating Party to have an active BaaS account and approved status; without this the disbursement fails (
FAILED). baasTransferIdis the reconciliation anchor. Use it to match the disbursement against the BaaS provider statement.- Net amount, not gross. What is disbursed is the deal's
netDisbursement(gross − discount − fees), not the face value of the receivables.
Irreversible
- An executed disbursement has no rollback. Once the BaaS/token transfer goes out, the money is with the originator; corrections require a new financial event (reversal/buyback).
- Financial values:
amountis BigNumber in the backend; do not round when checking the transfer. - Idempotency: the disbursement accepts
idempotencyKeyand goes through FinLib — idempotent by externalId. On reprocessing,E00021("already processed") is success (already disbursed), not a failure. See [[reference_finlib_idempotency]]. - APPROVED status: the target originator must be approved to receive the transfer.
Examples
Scenario 1 — Completed fiat disbursement
- Deal approved and funded; originator with active BaaS account.
- The flow executes
executeDisbursementwith thenetDisbursement. - The row appears as
COMPLETEDwithbaasTransferIdfilled — reconcile with the provider's statement.
Scenario 2 — Safe reprocessing after a crash
- The process crashed right after the transfer went out, but before confirming.
- The reprocessing uses the same
idempotencyKey; FinLib responds withE00021. - Treat it as success — there is no double disbursement.