Repayment
How repayment collection works
Once a loan is active, PayMongo collects repayments through one automated and two manual repayment mechanisms:
Sales repayment (daily sweep). At each settlement cycle, PayMongo calculates a repayment from the merchant's settled transactions:
- Sum the merchant's settled amount for the cycle across all payment methods (card, QR Ph, e-wallet, online banking, etc.). Only settled proceeds count — in-flight authorisations and pending clearing do not.
- Compute the collection: repayment_amount = daily_settled × repayment_rate (capped at outstanding balance).
- Debit repayment_amount from the merchant's PayMongo wallet.
- Apply the collected amount against the outstanding balance in priority order: principal first, then interest, then DST (Documentary Stamp Tax). Each is tracked separately as
outstanding_principal_amount,outstanding_interest_amount, andoutstanding_dst_amounton the loan object. - When all three outstanding amounts reach zero, the loan transitions to
repaid.
Manual repayment. Merchants can initiate a repayment via Dashboard → Capital → Active loan → Make a payment. This creates a checkout session; on payment completion, the loan balance is reduced.
Direct lender repayment. Lenders can record a direct off-platform payment received from the merchant then record the payment on PayMongo:
curl https://api.paymongo.com/v1/capitals/lenders/repayments -H "Content-Type: application/json" -d \
'{
"loan_id": "loan_01HX...",
"amount": 5000000,
"currency": "PHP",
"reference_id": "BankRef-20260420-001"
}'Key property: repayments are capped at the outstanding balance. The final collection is almost always smaller than daily_settled × repayment_rate.
Overpayments
PayMongo caps every repayment at the exact outstanding balance. Any amount received above the outstanding balance is not applied to the loan and is refunded to the merchant's PayMongo wallet.
Applied amount = min(payment_received, outstanding_balance)
Overpayment = payment_received − applied_amount
Overpayments can occur when:
- A merchant sends a rounded amount that slightly exceeds what is due
- A manual payment and a daily sweep are processed in the same cycle
- Timing differences cause a payment to post before the balance is fully updated
Example — term loan fully paid with small excess
Outstanding balance PHP 10,000.00
Payment received PHP 10,003.25
Applied amount PHP 10,000.00
Overpayment PHP 3.25
New outstanding balance PHP 0.00
Refunded to wallet PHP 3.25
The loan is marked repaid and the PHP 3.25 excess is returned to the merchant's PayMongo wallet.
Days with no sales
If the merchant has zero settled transactions on a given day, no automated repayment occurs. No event is fired. The loan simply takes longer to close. This is the core risk-sharing property of revenue-based financing: slow days cost the merchant nothing extra.
Prepayment and payoff
A merchant can pay off the remaining balance at any time with no prepayment penalty. Merchants initiate a manual repayment from Dashboard → Capital → Active loan → Make a payment. PayMongo creates a checkout session; on payment completion, the outstanding balance is reduced. When all outstanding amounts reach zero, the loan transitions to repaid.
Updated about 4 hours ago