Finance → Receivables → Payments → /payments · Receive Pay → /receive-pay
There are two surfaces for money coming in:
| Surface | Use it for |
|---|---|
| Payments | The full ledger of received payments — search, reconcile, refund, allocate, report. |
| Receive Pay | The fast counter-style capture flow: pick the unit, see what is due, take the money. |
Receiving a payment at the counter
Receive Pay is built for someone taking money with a tenant in front of them.
Find the unit
Search by unit name. The screen shows the outstanding items with their Due Amount.
Enter what was paid
Paid Amount, Paid Date, Paid By, the Bank Account the money landed in, and any Notes.
Submit
The payment is recorded against the unit's lease and becomes available for allocation.
Recording a payment from the Payments list
Add a payment
Payments → Add.
Identify the payer
Select the lease or unit. This determines whose balance the money lands on, so get it right — correcting the subject later is more work than choosing it now.
Enter the money
Amount, paid date, payment type (mobile money, bank transfer, cheque, cash), and the receiving bank account.
Record the reference
The Confirmation # — the M-Pesa code, bank reference or cheque number. This is what makes the payment reconcilable against a bank statement later. Do not leave it blank.
Save, then allocate
Saving records the cash. It does not settle any invoice until it is allocated. See Allocations.
The payments list
Useful columns include:
| Column | Meaning |
|---|---|
| Paid Date / Paid At | When the money was received. |
| Paid By | Who paid. |
| Paid Amount | Gross received. |
| Allocated Amount | How much has been applied to invoices. |
| Available Amount | What is left to allocate — the wallet contribution. |
| # Units Allocated | How many units the payment was spread across. |
| Confirmation # | The external reference. |
| Payment Type | Method. |
| Bank / Bank Account Name / Number | Where the money landed. |
| Origin | How the payment entered the system (counter capture, import, integration). |
| Property / Block / Unit | Where it applies. |
| Invoice # / Invoice Amount / Invoice Date / Invoice Status | The invoice side, on allocated rows. |
| Archived | Whether the record has been archived. |
Filter on Available Amount > 0 to find every payment still waiting to be allocated. That single filter is the fastest way to clean up a messy receivables position.
Payment detail
Opening a payment gives you:
- the payment header and its bank account;
- its allocations — which invoices it settled and for how much;
- its refunds — see below;
- its documents — receipts, deposit slips, screenshots;
- its audit trail.
Refunds from a payment
Refunds are managed directly from the payment:
Open the payment and expand Refunds
Existing refunds are listed with their amount, date and reason.
Add a refund
Enter the refund amount, the bank account it is paid from, the refund date, and a reason.
Save
Guards check that the amount is actually available and that a bank account is set before the refund can be recorded.
See Refunds for the full refunds ledger and its controls.
Bulk import of payments
Historical or bank-exported payments can be imported through Admin → Bulk Upload with the Payments type. The importer validates before committing and keeps a per-row outcome so you can see exactly what was created, skipped and rejected. See Bulk upload.
Reconciling to the bank
Filter by bank account and date range
Work one account and one statement period at a time.
Match on confirmation number
Not on amount. Amounts repeat; references do not.
Investigate anything unmatched
Money in the bank with no payment record means a receipt was never captured. A payment record with no bank line means it was captured twice or against the wrong account.
Check the wallet position
After matching, filter on available amount to confirm nothing is sitting unallocated.
Common problems
| Symptom | Cause and fix |
|---|---|
| Tenant insists they paid; nothing on their statement | The payment was captured against a different unit or lease. Search by confirmation number, not by tenant. |
| Invoice still unpaid after a payment | Not allocated. |
| Payment appears twice | Captured manually and imported. Archive the duplicate rather than deleting a record that has already been allocated — reverse the allocation first. |
| Negative wallet on a lease | An over-allocation from a legacy path. Report it; do not adjust balances by hand. |