Verapay in one line: Nigerians abroad pay for school fees, hospital bills and building projects back home through PayPal, and the money is released only after AI has checked the proof and the sender has approved.

Inspiration

Nigerians abroad send home about $20 billion a year. Much of it is meant for something specific: school fees, a parent's surgery, a house. But once the money lands, the sender can't see where it goes.

The stories are common. One man in the US sent building money home for six years and later found that nothing had been built. Contractors take the first payment and stall, send old photos as "progress", or inflate the price of materials. And a Nigerian bank transfer is very hard to reverse once it is sent.

The person abroad usually has the money, but no one on the ground they fully trust. We built Verapay to be that trusted check.

What it does

Verapay follows one rule: verify, then release.

  1. Fund: the sender pays through PayPal. The money is held, not passed to a relative.
  2. Verify: the provider's bill, quote or site photos are checked by AI.
  3. Approve: the sender sees a plain verdict and decides.
  4. Release: the money goes straight to the school, hospital, landlord or supplier, never to a middleman.
  5. Refund: if the proof fails, the sender gets their money back.

Four checks before any money moves

  • Payee check: is the business real, and does the name on the bill match the account being paid?
  • Bill check: do the names, items and totals on the invoice add up?
  • Quote Agent: is the price fair? It compares the quote with local market prices and suggests cheaper verified suppliers.
  • Proof check: is the evidence genuine and new?

Each payment gets a clear verdict: green (all good, approve), amber (for example, cement quoted 24% above the local wholesale price, with cheaper suppliers shown) or red (for example, a roof photo that was already submitted in an earlier stage, so payment is blocked and a refund is offered).

School fees

Verapay pays the school's own registered account, never a relative's. Before release, it checks:

  • The school is registered with the CAC, and the account name matches the school.
  • Gemini reads the bill: the student's name, class and term must be on it.
  • The fee items add up to the total, and the fees are in line with the school's normal charges.

In our demo, a ₦660,000 first-term bill for a JSS 2 student (tuition and books, plus a development levy) passes every check and gets a green verdict.

Hospital bills

Hospital bills are often urgent and large. Verapay pays the hospital directly against its bill or estimate:

  • The hospital's name is checked against the bank account being paid.
  • Gemini reads the bill or estimate: the patient's name, the treatment, each item and the total.
  • Relatives can share the cost through a family pot.

In our demo, a family pot covers ₦2,475,000 for a father's eye surgery at LUTH (Lagos University Teaching Hospital).

Rent

Rent is often paid a year in advance, sometimes through an agent, so a fake agent or an inflated figure costs a lot. Verapay pays the landlord or agent directly:

  • The name on the rent invoice must match the bank account being paid.
  • Gemini reads the invoice: the property, the rent period and the amount.
  • Nothing is paid until the sender has seen the verdict and approved.

Building projects, stage by stage

A house is split into stages: foundation, blockwork, roofing, finishing. Each stage stays locked until its proof passes. Contractors submit proof through Verapay's site camera:

  • Photos must be taken live in the app; gallery uploads are blocked.
  • GPS location, compass bearing and time are burned into each photo.
  • Every photo is compared with earlier ones, so recycled "progress" photos are caught.
  • For stages over $1,000, the contractor must record a surprise 15-second video saying a random phrase, which is very hard to fake in advance.

For large stages, the sender can also book an independent surveyor visit.

Built for families

  • Family Hub: relatives can be invited to a shared family group, so everyone sees the same verified payment history.
  • Family pots: several people can contribute to one bill, such as a parent's surgery.

How we built it

We built Verapay as an AI-assisted verification layer on top of PayPal: money sent from abroad is held first, checked by AI, and only then released to the school, hospital or supplier.

1. Frontend and audit ledger

  • Framework and UI: Next.js 14 (App Router), TypeScript and Tailwind CSS, with responsive navigation and light and dark themes.
  • Payment ledger; AG Grid powers the audit ledger. Senders can filter by column, sort by status and search across all payments and project milestones.
  • State management: Zustand with persistent storage keeps payment verifications, sandbox PayPal orders and balances in sync across the dashboard, family pots and project milestone pages.

2. Payments on PayPal

  • Collecting the money: the PayPal REST API (Orders v2) with '@paypal/react-paypal-js'. The sender pays in US dollars, and the funds are held by Verapay before anything is paid out.
  • Releasing the money: the PayPal Payouts APIbsends approved funds to the provider's PayPal account (sandbox).
  • Refunds: if an invoice fails verification or a site photo is flagged, a one-click refund returns the money to the sender's PayPal balance.

3. AI and image checks

  • Reading bills and invoices: Google Gemini 1.5 with strict JSON output schemas ('Response schema') extracts line items, totals and account details. The payee's name is compared with the registered business name using Levenshtein (edit-distance) similarity.
  • Quote Agent (price check): Gemini compares an itemised quote, for example 500 bags of Dangote cement, with local market prices and flags inflated markups, such as the 24% markup in our demo.
  • Duplicate-photo detection: server-side image processing with Sharp and difference hashing (dHash) catches reused, recycled or downloaded site photos before a milestone can be paid.

4. The Forensic Risk Index

Every payment gets a risk score R from 0 (safe) to 1 (high risk). It adds up four signals, each scored from 0 to 1, with fixed weights:

R = 0.30N + 0.30P + 0.25D + 0.15E

  • N, name mismatch (30%): how different the name on the invoice is from the registered owner of the bank account, measured with Levenshtein similarity.
  • P, price padding (30%): how far the quoted price is above the local market average, measured in standard deviations and capped at 1.
  • D, duplicate photo (25%): 1 if the photo matches an earlier site photo (a hash difference of 5 or less), otherwise 0.
  • E, weak proof (15%): how unsure the system is that the proof is genuine, based on its metadata, GPS location and timestamp.

5. Traffic-light verdicts

  • Green (R below 0.25): low risk. The sender sees a green verdict and releases the payment through PayPal Payouts with one tap.
  • Amber (R from 0.25 to 0.69): price padding or another anomaly. The payment stays held, and the sender is shown cheaper verified suppliers.
  • Red (R of 0.70 or above): for example, the payee's identity does not match. The payment is blocked, with a one-click refund.
  • Hard rule: a confirmed duplicate photo sends a payment straight to Red, whatever its score.

6. Testing with Postman

We tested each API call in Postman before connecting it to the app. The PayPal requests ran against the PayPal sandbox. These are the test bench scenarios we used:

  1. PayPal access token: 'POST /v1/oauth2/token' with the sandbox client ID and secret. Expected: 200 OK with an access token, which every PayPal request after it uses.
  2. Fund a payment: 'POST /v2/checkout/orders' for $400 of school fees to Bright Future Academy Ltd, approved with a sandbox buyer account, then 'POST /v2/checkout/orders/{id}/capture'. Expected: order status COMPLETED, and the $400 (₦660,000) shown as held.
  3. Green, school bill: the Bright Future Academy bill sent for checking. Expected: Gemini returns JSON with the payee name, line items and total; the name matches the registered school and the total matches the payment; R is below 0.25, so the verdict is Green.
  4. Release: 'POST /v1/payments/payouts' for $400 to the school's sandbox PayPal account, then 'GET /v1/payments/payouts/{payout_batch_id}'. Expected: 201 Created with a payout batch ID, then a batch status of SUCCESS.
  5. Amber, padded cement quote: a quote for 500 bags of Dangote cement at ₦14,200 a bag (₦7.1M), against a local price of about ₦10,800 a bag (₦5.4M). Expected: the Quote Agent flags price padding, the verdict is Amber, the money stays held, and three cheaper verified suppliers are returned, saving about ₦1.7M.
  6. Red, reused roof photo: a $2,000 roof-stage claim from Alhaji Sikiru Builders with a photo already submitted for an earlier stage. Expected: the dHash difference from the earlier photo is 5 or less, so the hard rule sets the verdict to Red and the payout is blocked. 7.Refund:'POST/v2/payments/captures/{capture_id}/refund' for the blocked payment. Expected: refund status COMPLETED, with the money back in the sender's sandbox PayPal account.

The AI only advises. Nothing is paid without the sender's approval.

Accomplishments that we're proud of

  • A complete product, not just a payment button: single payments, building projects, family groups and a dashboard.
  • Checks designed around how fraud really happens in Nigeria: padded material quotes, recycled progress photos and names that don't match the account.
  • Clear verdicts a non-technical parent or relative can act on in seconds.

What we learned

  • The real problem isn't sending money home. It's the lack of visibility after it arrives.
  • AI is very good at checking consistency (names, totals, prices, repeated photos), but a person should always make the final call on money.
  • Trust features need to be simple. A green, amber or red verdict works better than a long report.

What's next

  • Connect live business-registry and bank-name checks for payees.
  • Pilot in Lagos and Ibadan, starting with school fees and hospital bills, where the payee is a known institution.
  • Pay out through PayPal's partnership with Paga as it opens to merchants.
  • Partner with a licensed payment company to hold funds.
  • Accept voice notes in Pidgin and Yoruba.

Verapay makes cheating much harder, but not impossible, which is why large stages can require an independent surveyor. "Verify, then release".

Built With

Share this project:

Updates

Submission history