Skip to main content

Mono Mandate Setup

Direct debit mandate provider via Mono.

Configuration Keys

KeyDescriptionExample
MONO_MANDATE_ENABLEDEnable Mono mandatestrue
MONO_API_BASE_URLMono API endpointhttps://api.withmono.com
MONO_SECRET_KEYMono secret keysk_live_xxx
MONO_MANDATE_INITIATE_ENDPOINTMandate initiation path/v1/mandates/initiate
MONO_MANDATE_RETRIEVE_ENDPOINTMandate retrieval path/v1/mandates/{id}
MONO_MANDATE_CANCEL_ENDPOINTMandate cancellation path/v1/mandates/{id}/cancel
MONO_MANDATE_PAUSE_ENDPOINTMandate pause path/v1/mandates/{id}/pause
MONO_MANDATE_REINSTATE_ENDPOINTMandate reinstatement path/v1/mandates/{id}/reinstate
MONO_DIRECT_DEBIT_REPAYMENT_ENDPOINTDebit repayment path/v1/mandates/debit
MANDATE_DEFAULT_PROVIDERSet to MonoMono

Ledger Setup

Set MANDATE_REPAYMENT_COLLECTIONS_LEDGER_CODE to the GL account code where mandate collections are credited (Asset ledger).

Testing

  1. Set all Mono keys in Configuration
  2. Set MANDATE_DEFAULT_PROVIDER = Mono
  3. Create a loan and initiate a mandate from the loan dropdown
  4. Trigger MandateRepaymentSyncJob to sync repayment status

Webhook

Mono sends mandate status updates to the CoreWave webhook endpoint. Configure your webhook URL in Mono dashboard to point to: POST /api/integrations/recova/v1/{institutionId}/SmsAlert

Troubleshooting

  • Mandate initiation fails: Verify MONO_SECRET_KEY is valid
  • Repayment not syncing: Check MandateRepaymentSyncJob cron is active
  • Duplicate mandates: Mono enforces one active mandate per customer