Skip to content

Receipts

Last reviewed: 2026-03-31 · Nnamdi Status: Complete Route: /receipts/receipts/new/receipts/:id


1. What is it?

A Receipt records money received from a customer. There are two types: a payment against an existing invoice (which reduces what the customer owes), and a cash sale (where money is received without a prior invoice — like a walk-in school fees payment). Every receipt posts automatically to the General Ledger.


2. How does it work in Finora?

2.1 The receipts list (/receipts)

Header actions: - Columns — toggle which columns are visible in the table - Template — download a CSV template for bulk import - Import — bulk-import receipts from CSV - + Record Receipt — opens the new receipt form

KPI summary cards: | Card | What it shows | |------|--------------| | Total Receipts | Count of all receipt records | | Total Received | Total naira received across all receipts | | Allocated to Invoices | Portion of received funds that were applied to invoices | | Unallocated (Advance) | Funds received but not yet applied to any invoice |

Search and filter: - Search bar: searches by receipt number, payer name, or reference - Date filter — filter receipts by date range - Payment Method filter: All / Cash / Bank Transfer / Card / Mobile Money / Cheque - Status filter: All Receipts / Sent to Customer / Not Sent

Table columns: - Receipt # — auto-assigned (e.g. RCT-2026-00001), sortable - Date — date payment was received, sortable - Paid By — name of the person who paid - Payment Method — Cash, Bank Transfer, Card, Mobile Money, or Cheque - Amount — total amount received - Allocated — portion applied to invoices - Unallocated — portion not yet applied to any invoice (shows as - if zero) - Actions — Download PDF, Send to Customer, View Details


2.2 Recording a new receipt

Click + Record Receipt. The form has two stages: Receipt Details, then the allocation decision.

Receipt Details: | Field | Required | Notes | |-------|----------|-------| | Date | Yes | Defaults to today | | Amount Received | Yes | Numeric — enter amount in naira | | Customer | No | Optional — filters the invoice list below; select or create inline | | Paid By | Yes | Name of payer; auto-filled when customer is selected | | Payment Method | Yes | Cash / Bank Transfer / Card / Mobile Money / Cheque | | Reference Number | No | Bank transaction ref, cheque number, etc. | | Notes | No | Internal notes — not on the PDF |

Allocation decision:

The form asks: "Is there a matching invoice for this payment?"

Option 1 — Yes: Allocate to Invoice(s) - Shows a table of all outstanding invoices (filtered by customer if one was selected) - Columns: Invoice #, Customer, Due Date, Balance Due, Allocate Amount - Enter the amount to allocate to each invoice — can split across multiple invoices - Running totals update live: Receipt Amount / Allocated to Invoices / Unallocated (Advance) - Any unallocated amount is held as an advance against future invoices

Option 2 — No: Cash Sale (Line Items) - Shows a line items form (same structure as invoices) for recording what was sold - Used for walk-in / point-of-sale sales where no invoice was raised in advance - Revenue is posted directly to the specified income account

Send options: | Option | What happens | |--------|-------------| | I have confirmed the customer's email — send this receipt now | Emails a PDF receipt to the customer on creation | | Don't send — I will download and send the PDF manually | Creates receipt, no email sent | | Don't send — I am creating a record trail of a settled receipt | Creates receipt, no email sent; used for back-dating records |

Action buttons: - Cancel — discards and returns to list - Preview — renders the receipt PDF before saving - Save as Draft — saves without posting to GL - Create Receipt — creates and posts to GL per the send option


2.3 Receipt detail page (/receipts/:id)

Header actions: - Void Receipt — reverses the receipt and its GL entry - Download PDF — downloads the receipt as a PDF

Payment Details panel: - Date, Amount Received, Received From (payer name), Payment Method - Total Received summary

General Ledger Audit section (expandable): Shows the journal entry generated by this receipt, with a validity indicator (Valid / Invalid).

GL for a Cash Sale receipt: | Account | Description | Debit | Credit | |---------|-------------|-------|--------| | 1020 Cash at Bank - Operating Account | Cash sale RCT-XXXX from [Payer] | ₦amount | — | | 4xxx Revenue Account | Cash sale RCT-XXXX - Revenue | — | ₦amount |

GL for an Invoice-Allocated receipt: | Account | Description | Debit | Credit | |---------|-------------|-------|--------| | 1020 Cash at Bank - Operating Account | Payment received RCT-XXXX | ₦amount | — | | 1100 Accounts Receivable | Payment allocated to INV-XXXX | — | ₦amount |

Key distinction: Cash Sales credit Revenue directly. Invoice payments credit Accounts Receivable (reducing what the customer owes on the invoice).


3. Business rules & constraints

Rule Detail
Every receipt posts to the GL No receipt is record-only — the accounting entry is always created
Cash Sale receipt credits Revenue directly No prior invoice required; revenue is recognised immediately
Invoice-allocated receipt credits Accounts Receivable Reduces the invoice balance; invoice status updates to Paid when fully settled
Over-payment is held as an advance If allocated amount > invoice balance, surplus becomes unallocated (advance)
Partial payments are supported Multiple allocations across invoices in a single receipt
Void reverses the GL Voiding a receipt creates a reversing journal entry to undo the accounting impact
Draft receipts do not post to GL Only receipts created with "Create Receipt" (not "Save as Draft") post

4. Nigerian regulatory context

Cash basis vs accrual - Businesses can record cash receipts separately from invoices, accommodating both accrual (invoice-first) and cash-basis (receipt-only) workflows - For VAT: VAT is accounted for at invoice stage (output VAT), not receipt stage — receiving payment does not create a new VAT entry

School fees context - Schools typically collect fees in cash from parents before or without sending a formal invoice - The "Cash Sale (Line Items)" receipt path is designed for exactly this scenario — money received at the gate, posted directly to School Fees Revenue - Example: RCT-2026-00001, Mr. Okonkwo (Parent), ₦50,000 cash → Dr Cash, Cr School Fees Revenue

Payment evidence for FIRS - Receipts provide documentary evidence that a payment was received — useful if FIRS queries whether income was correctly declared - The PDF receipt can be issued to the payer as proof of payment


5. Common customer questions

Q: "What's the difference between a Receipt and an Invoice payment?"

When you use "Record Receipt → Allocate to Invoice", the payment reduces the invoice balance and updates the invoice status to Paid. When you use "Cash Sale (Line Items)", money is recorded without an invoice — revenue goes directly to your account. Use invoice allocation for customers on credit terms; use cash sale for walk-in / upfront payments.

Q: "I received money from a customer but there's no invoice yet. How do I record it?"

Use "Record Receipt → Cash Sale (Line Items)" and enter what you sold on the line items form. Revenue is recorded immediately. If you later raise an invoice for the same sale, be careful not to double-count it.

Q: "I overpaid — the customer paid more than the invoice. What happens to the extra?"

The surplus is held as "Unallocated (Advance)" and can be applied to future invoices. It appears in the Unallocated column on the Receipts list.

Q: "My invoice still shows as Unpaid even though I recorded a receipt."

Check that the receipt was created using "Allocate to Invoice" and that the correct invoice was selected. If it was a Cash Sale instead, the invoice was not reduced. You may need to void and re-record. Escalate to Tier 3 if the GL looks correct but the invoice status has not updated.

Q: "Can I send the customer a PDF receipt after the fact?"

Yes — click "Send to Customer" from the Receipts list row, or "Download PDF" from the receipt detail page and send it manually.


6. Known edge cases

Cash sale with no customer linked

A receipt can be created without selecting a customer — Paid By is entered as a free-text name. The receipt is recorded but not linked to any customer record, so it will not appear on the customer's transaction history. Advise businesses to link a customer where possible.

Partial payment across multiple invoices

A single receipt can be split across multiple invoices. If the total allocated does not equal the amount received, the difference stays unallocated. Advise businesses to check the Unallocated column regularly for funds sitting as advances.

Voided receipt and invoice status

If a receipt was the only payment on an invoice that marked it as Paid, voiding the receipt will revert the invoice to Unpaid. The GL reversal also undoes the Dr Cash / Cr Receivable entry. This is correct behaviour — escalate only if the invoice status does not update after voiding.

Receipts imported via CSV

Bulk imports from CSV do not always support the allocation flow. Check with the business what the imported receipts are linked to. If receipts imported as cash sales should have been invoice payments (or vice versa), a manual correction is needed — escalate to Tier 3.


7. Escalation trigger

Escalate to Tier 3 (Founder) if: - Invoice status is still Unpaid after a receipt was correctly allocated to it - General Ledger Audit shows "Invalid" on a receipt's journal entry - A voided receipt is still showing as applied on an invoice - Total Received on the KPI does not match the sum of individual receipt amounts

Escalate to Tier 2 (Support Lead) if: - CSV receipt import failed or produced duplicate records - Business wants to bulk-update or delete receipts - Business unsure whether to use Cash Sale vs Invoice Allocation path


8. Last reviewed

2026-03-31 — Nnamdi. Verified against production. Record Receipt form fully captured (both allocation paths). Receipt detail page confirmed: Payment Details, GL Audit panel (expandable), Void Receipt and Download PDF actions. Existing receipt RCT-2026-00001: ₦50,000 cash sale (Mr. Okonkwo, Parent), GL: Dr 1020 Cash at Bank ₦50,000 / Cr 4020 School Fees - 2nd Term ₦50,000.