Skip to main content

Bank linking & direct debit

Bank accounts power both sides of a loan: payouts land in the borrower's linked account, and repayments are collected through a direct-debit mandate on it.

Linking an account

Pick the linking method

GET /v1/bank-accounts/linking-method tells your client which flow to use for this user (provider-hosted linking vs. manual entry).

Link

For provider-hosted linking, POST /v1/bank-accounts/connect/initiate starts a Connect session your client completes in-app. Otherwise create the account record directly with POST /v1/bank-accounts.

Manage

GET /v1/bank-accounts lists linked accounts; DELETE /v1/bank-accounts/{account_id} unlinks one. Borrowers declare their salary account with POST /v1/bank-accounts/{account_id}/salary-declaration.

Resolving account details

Before sending money anywhere, resolve and display the receiving account:

  • GET /v1/transfer/banks — the list of supported banks and their codes.
  • POST /v1/transfer/account/details — resolve an account number + bank code to the account holder's name.

Direct-debit mandates

A mandate authorizes Roja to debit the borrower's account for scheduled repayments:

  • POST /v1/direct-debit-mandates — create a mandate on a linked account.
  • GET /v1/direct-debit-mandates / GET /v1/direct-debit-mandates/{mandate_id} — list and inspect mandates and their activation status.
  • POST /v1/direct-debit-mandates/{mandate_id}/debit — execute a debit against the mandate (used by repayment flows). Money-moving: send an idempotency key.
  • GET /v1/banking/mandates — mandates in the context of banking providers.

Mandate activation involves the user's bank and is not instant. Check the mandate's status before relying on it for a repayment, and surface pending states to the user instead of retrying the debit.