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