Escrow and Collateral Agreement
1. Scope & Fundamental Architecture
This Escrow and Collateral Agreement ("Collateral Agreement") establishes the legal and cryptographic framework governing the recourse security deposits held by Paytali. This Agreement is incorporated into the Terms of Service and applies to all registered Merchants and platform counterparties.
Fundamental Distinction Between Settlement Funds & Collateral:
- Settlement Funds: The fiat funds (EGP, NGN, XOF) exchanged between buyer and merchant are never held, custoded, or received by Paytali. Fiat transfers flow directly between the banking or mobile money accounts of the trading parties.
- Collateral Deposits: Paytali only custodies the merchant's own security deposit, provided in Nigerian Naira (NGN) or West African CFA Franc (XOF). This deposit serves strictly as recourse collateral to protect buyers against merchant non-performance and as the automated debit source for platform fees.
2. Append-Only Ledger Accounting
All collateral balances within Paytali are maintained via an immutable, append-only double-entry ledger (ledger_entries). Balances are never stored as mutable numbers in database records; instead, a merchant's balance is derived dynamically by summing confirmed historical ledger credits and debits.
All monetary values are recorded strictly as integer minor units (kobo for NGN, centimes for XOF, piastres for EGP) to eliminate rounding errors and floating-point precision discrepancies.
3. Capacity Calculation & Mathematical Formula
A merchant's ability to post ads and accept orders is strictly bound by their Available Insurance Capacity. Capacity is calculated according to the following mathematical formula:
Where:
- Deposit Balance: The total sum of confirmed merchant security deposits held in the platform escrow vault, less approved withdrawals and settled platform fees;
- Reactivation Floor: A mandatory reserve buffer fixed at 80% of the minimum required deposit. This floor prevents collateral balance erosion toward zero. If a merchant's balance falls below this floor due to fee deductions, the merchant's ads are automatically paused;
- Active Exposure: The cumulative total of payout obligations across all active, non-terminal orders (orders in
MATCHED,BUYER_PAID, orDISPUTEDstatus) converted dynamically into the base deposit currency.
4. Concurrency Safety & Double-Spend Prevention
To prevent race conditions and over-commitment of collateral capacity during concurrent order spikes, order creation and capacity verification execute inside a PostgreSQL Serializable isolation transaction.
The transaction re-validates the live collateral balance and active exposure at commit time, rather than read time. If concurrent transactions exhaust available capacity before commit, the transaction safely aborts with an immediate notification that the offer is no longer available, guaranteeing that no merchant can ever take on order exposure exceeding their verified collateral.
5. Recourse Execution in Event of Default
By depositing collateral with Paytali, the merchant explicitly grants Paytali an irrevocable security interest and right of set-off against the deposit balance.
If a dispute investigation determines that a buyer completed valid payment and the merchant failed or refused to disburse the agreed counterparty payout, Paytali shall execute recourse:
- Paytali debits the merchant's collateral deposit balance for the full counterparty-equivalent value of the unfulfilled trade;
- The debited funds are used to reimburse the buyer or complete settlement on the merchant's behalf;
- A dispute administrative penalty fee is debited from the merchant's remaining deposit;
- The merchant's account is suspended until the deposit is restored to the full operating threshold.
6. Collateral Withdrawal Rules
Merchants may withdraw unencumbered collateral exceeding the required minimum operating balance, or initiate a full deposit withdrawal upon terminating their merchant status.
Withdrawal requests are subject to an administrative review and a mandatory 24 to 48 hour cooling-off period to guarantee that all open trades, pending disbursements, and historical dispute time windows have fully elapsed. All withdrawal approvals re-verify live capacity inside a Serializable transaction prior to fund disbursement.