Sign inGet started
Built on Nomba · bank-grade HMAC

Every transfer,
on the right invoice.

Start free
No card · first invoice in 60 seconds
Every invoice gets its own virtual account.

Your customer just transfers from any bank app — PaidUp already knows exactly what they paid for. No reference. No guessing.

A business owner smiling at her phone as her invoices reconcile themselves
Mint a virtual account Auto-reconcile transfers Refund overpayments Export the audit ledger
LIVE · reconciling
Your invoiceslive
INV-1042Dangote Cement · 3049420327
₦450,000Paid
Fully paid
INV-1043Jumia Nigeria · 9882319033
₦70,000Partial
₦28,000 of ₦70,000 · ₦42,000 due
INV-1046MTN Nigeria · 5521190044
₦1,300,000Refundable
Received ₦1,400,000 · ₦100,000 over
Paid · Partial · Refundable — every transfer matched by its virtual-account reference. Nothing typed by hand.
Built on Nomba virtual accounts — 9-field HMAC-verified webhooks, an audit-grade ledger.
100%of transfers auto-matched or safely flagged
Zeropayments matched by hand
60sto your first live invoice
CSVone-tap audit-grade export
9:41 PM · every night

You know the evening ritual.

Scrolling bank alerts, trying to figure out who paid for what.

Someone sends ₦450,000 with no description — is that Dangote's invoice, or Konga's?

So you open the spreadsheet. Again. And match it by hand. Every single day.

keep scrolling ↓

PaidUp ends that.

01
INV-1042 · Dangote CementIts own dedicated account number3049420327minted on Nomba

Create an invoice — it comes with its own account number. Not yours. Its.

02
paidup.site/pay/x7f2…DC

Send it to your customer. Whoever pays into that number can only be paying this invoice.

03
₦450,000 · Dangote CementPAID

The moment the transfer lands, PaidUp marks it paid. Automatically.

No spreadsheet. No guessing. The account number is the reference.

End your evening ritual
The reconciliation tax

You're paid by transfer. So every evening, you match by hand.

One account, every payer, a flood of look-alike “payment” narrations. PaidUp deletes the guesswork at the source.

Without PaidUp

You are the reconciliation engine.

0123456789one account · every customer pays here
  • “Transfer from JOHN G — Pymt for inv 1050” — is that this month's or last?
  • NIP/—/payment · ₦20,000 — but against which invoice?
  • Every evening: open the spreadsheet, cross-check alerts, match by hand.
Result — hours lost, money mismatched, customers chased twice.
With PaidUp

The account number does the matching.

3049420327a dedicated account · for INV-1042 alone
  • The account number is the reference — the customer types nothing.
  • Transfer lands → matched instantly → invoice flips to Paid.
  • Partial, overpaid and unmatched money — all handled for you.
Result — reconciled the second money lands. Nothing typed by hand.
The loop

How money finds its invoice.

Four steps, zero human matching — it runs the second funds arrive. Scroll →

INVOICE · INV-1042₦450,000
mints ↓
VIRTUAL ACCOUNT3049 420 327
01

Provision

Create an invoice — PaidUp mints a dedicated Nomba virtual account that belongs to that invoice alone.

Any Nigerian bank app
3049 420 327
02

Customer pays

They transfer to that account number from any bank — no portal, no login, no reference to type.

payment_success 9-field HMAC · verified
03

Signed webhook

Nomba fires a cryptographically-signed payment_success the instant funds land. PaidUp verifies every field.

INV-1042 · ₦450,000
PAID
04

Reconciled

Matched by its account reference, classified paid / partial / overpaid, and written to the live ledger — automatically.

Why PaidUp

Nomba ships the rails.
We ship the ledger.

Virtual accounts and webhooks are powerful primitives — but they leave you to answer “who paid, how much, against what?” That reconciliation layer is the whole product.

Under-paid

Tracks a running balance and keeps the invoice open until it's fully settled.

Over-paid

Flags the surplus and refunds it to the payer in one tap, over the Nomba rails.

Duplicate

Idempotent on transaction id — a retried webhook never double-counts a payment.

Misdirected transfers never get lost

Unmatched money is quarantined for review with a smart suggested match — assign it to the right invoice or bounce it back to the sender. Nothing silently disappears.

Audit-grade export

One-click CSV: the full reconciliation ledger or a per-invoice customer statement.

You shouldn't have to recognise a payment. The account it landed in already knows which invoice it belongs to.

Stop matching transfers by hand.

Mint your first invoice and its virtual account in under a minute — sandbox-ready, no card.

Get started