---
title: Debit Customers Bank Accounts
slug: poc-onboarding/debit-customers-bank-accounts
createdAt: 2025-06-06T04:47:01.007Z
---

Monoova provides a flexible and scalable way to debit customer accounts and fund your ledger. This guide walks through three primary methods for funding a ledger:

1. **PayTo (NPP)&#x20;**(Preferred)
2. **Direct Debit (BECS)** fallback
3. **Manual Deposit via PayID or BSB/Account** fallback

All funds settle into your **Monoova Ledger**, either directly in production or via transfer in the sandbox.

***

### Step 1: PayTo Debit (Primary Method)

PayTo provides real-time debiting of a customer's bank account through an approved Payment Agreement.

**Endpoint**

POST https\://sand-api.monoova.com/au/payto/pam-v1/PaymentInitiation

**Auth**

Bearer Token (from Step 4 of onboarding)

**Request**

:::BlockQuote
\{
&#x20; "paymentAgreementUID": "BOBSBUILDERS1",
&#x20; "paymentInitiationUID": "BillPaymentBatch1",
&#x20; "paymentDetails": \{
&#x20;   "amount": "950",
&#x20;   "lodgementReference": "Debit for Bill payment Batch 1"
&#x20; }
}
:::

**Response**

:::BlockQuote
\{
&#x20; "paymentAgreementUID": "BOBSBUILDERS1",
&#x20; "paymentInitiationUID": "BILLPAYMENTBATCH1",
&#x20; "nppInstructionId": "MOPYAUS1XXXI20250606008007217416540",
&#x20; "paymentInitiationStatus": "ACSC",
&#x20; "paymentInitiationStatusDescription": "Accepted & Settled",
&#x20; "mmsId": "cbca2a8617b511dc822db0cc2db500b6",
&#x20; "traceId": "fb69b957-d6d2-403b-9ff3-9058504c3665"
}
:::

**Result**

Funds settle **instantly** to the ledger account you specified during onboarding.

### Step 2: Check Ledger Balance

After any funding event (PayTo, Direct Debit, etc.), confirm the balance.

**Endpoint**

GET https\://api.m-pay.com.au/ledger/v1/balance/&#x7B;ledgerAccountNumber}

**Response**

:::BlockQuote
\{
&#x20; "durationMs": 143,
&#x20; "status": "Ok",
&#x20; "statusDescription": "Operation completed successfully",
&#x20; "automatcherBankAccountNumber": "917567642",
&#x20; "balance": 950.0000,
&#x20; "ledgerAccountNumber": "6279059712214060",
&#x20; "ledgerUniqueReference": "1749113750331x889097018231972200",
&#x20; "name": "Bill Pay"
}
:::

***

### Step 3: Direct Debit (Fallback Method)

When PayTo is unavailable, you can use a traditional BECS Direct Debit as a fallback. In production, this takes `T+2` for settlement.

**Endpoint**

POST https\://api.m-pay.com.au/financial/v2/transaction/execute

**Request**

:::BlockQuote
\{
&#x20; "totalAmount": 1500,
&#x20; "paymentSource": "directDebit",
&#x20; "lodgementReference": "ABCD-123",
&#x20; "uniqueReference": "DDforBobsBuilders",
&#x20; "description": "Direct debit transaction for bills",
&#x20; "directDebit": \{
&#x20;   "bsbNumber": "802950",
&#x20;   "accountNumber": "22090100",
&#x20;   "accountName": "Bobs Builders"
&#x20; }
}
:::

**Response**

:::BlockQuote
\{
&#x20; "totalAmount": 1500,
&#x20; "paymentSource": "directDebit",
&#x20; "lodgementReference": "ABCD-123",
&#x20; "uniqueReference": "oDDforBobsBuilders",
&#x20; "description": "Direct debit transaction for bills",
&#x20; "directDebit": \{
&#x20;   "bsbNumber": "802950",
&#x20;   "accountNumber": "22090100",
&#x20;   "accountName": "Bobs Builders"
&#x20; }
}
:::

### Sandbox Note

In sandbox, the funds will settle to your **mAccount**, not the ledger. You must manually transfer them.

**Move funds to ledger**

Endpoint: POST https\://api.m-pay.com.au/financial/v2/transaction/execute

**Request**

:::BlockQuote
\{
&#x20; "totalAmount": 1500,
&#x20; "disbursements": \[
&#x20;   \{
&#x20;     "disbursementMethod": "mWallet",
&#x20;     "toMWallet": "6279059712214060",
&#x20;     "amount": 1500
&#x20;   }
&#x20; ],
&#x20; "uniqueReference": "MoveDDtoLedger"
}
:::

**Response**

:::BlockQuote
\{
&#x20; "durationMs": 572,
&#x20; "status": "Ok",
&#x20; "statusDescription": "Operation completed successfully",
&#x20; "callerUniqueReference": "MoveDDtoLedger",
&#x20; "transactionId": 50555805
}
:::

***

### Step 4: Manual Deposit (PayID / BSB Fallback)

If the customer prefers to transfer funds manually, you can display their PayID or BSB/account number.

**No API Required**

Simply show the ledger deposit information:

- PayID (auto-generated from onboarding step)
- BSB: 802-985
- Account: 917567642

**Notes**

- PayID enables real-time NPP deposits
- BSB/Account supports traditional EFT
- In sandbox, deposits via PayID or BSB are not simulated
- In production, they settle directly to the ledger

***

### Summary

| Method       | Settlement Time | API Call | Destination                   |
| ------------ | --------------- | -------- | ----------------------------- |
| PayTo        | Real-time       | Yes      | Ledger                        |
| Direct Debit | T+2             | Yes      | mAccount → transfer to ledger |
| PayID        | Real-time       | No       | Ledger                        |

You can safely combine all three methods to provide a robust and reliable account funding experience for your users.
