Mono Mandate Setup
Direct debit mandate provider via Mono.
Configuration Keys
| Key | Description | Example |
|---|---|---|
MONO_MANDATE_ENABLED | Enable Mono mandates | true |
MONO_API_BASE_URL | Mono API endpoint | https://api.withmono.com |
MONO_SECRET_KEY | Mono secret key | sk_live_xxx |
MONO_MANDATE_INITIATE_ENDPOINT | Mandate initiation path | /v1/mandates/initiate |
MONO_MANDATE_RETRIEVE_ENDPOINT | Mandate retrieval path | /v1/mandates/{id} |
MONO_MANDATE_CANCEL_ENDPOINT | Mandate cancellation path | /v1/mandates/{id}/cancel |
MONO_MANDATE_PAUSE_ENDPOINT | Mandate pause path | /v1/mandates/{id}/pause |
MONO_MANDATE_REINSTATE_ENDPOINT | Mandate reinstatement path | /v1/mandates/{id}/reinstate |
MONO_DIRECT_DEBIT_REPAYMENT_ENDPOINT | Debit repayment path | /v1/mandates/debit |
MANDATE_DEFAULT_PROVIDER | Set to Mono | Mono |
Ledger Setup
Set MANDATE_REPAYMENT_COLLECTIONS_LEDGER_CODE to the GL account code where mandate collections are credited (Asset ledger).
Testing
- Set all Mono keys in Configuration
- Set
MANDATE_DEFAULT_PROVIDER=Mono - Create a loan and initiate a mandate from the loan dropdown
- Trigger
MandateRepaymentSyncJobto 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_KEYis valid - Repayment not syncing: Check
MandateRepaymentSyncJobcron is active - Duplicate mandates: Mono enforces one active mandate per customer