Work · Full-stack products

Meta4 Payments

Automated quotes and payment links: from a WhatsApp chat to a paid invoice, with agentic AI drafting the quote and code deciding the money.

Organisation
Meta-IV Solutions, Lagos
My role
Built and deployed it (Operations Associate, internal software)
When
2026 to present
Stack
Next.js 15, TypeScript, PostgreSQL, Drizzle

Problem statement

Sales ran on WhatsApp chats, quotes were typed by hand, and finance matched bank alerts to customers manually. Nobody could say at a glance who had been quoted, who had paid, or what was still outstanding.

Objectives & goals

  • Turn every chat into a priced quote automatically
  • Send an approved quote with its payment link, no retyping
  • Match each payment to its quote automatically
  • Give management one live view and a daily 3pm report

Process

  1. DiscoverSat with sales and finance and mapped every step from first message to production.
  2. DefineWrote down eight customer stages and the legal moves between them.
  3. BuildNext.js app, Postgres schema, agentic AI for capture and drafting, automated Paystack payment links and webhooks.
  4. ProveLoad test, retry and concurrency tests, CI on every push.

Who it's for

Sales

Sees every customer's stage and what to do next.

Finance

Approves quotes and sees payments matched without spreadsheets.

Operations

Gets paid jobs handed to production.

Management

Reads the 3pm report: collected, outstanding, who paid.

Challenges

  • A language model could invent a price or a product
  • Paystack retries webhooks, and two payments can land at once
  • Naira amounts in floating point drift by kobo
  • Customers pay without the reference, so payments can't always be matched

What I built

AI drafts, rules decide

An AI agent proposes catalogue items and quantities from the chat. Prices, VAT and totals are computed in code, and a draft that sets a price or uses an unknown product is rejected.

Safe payments

Verified HMAC webhooks, idempotent ingestion, row locks and integer-kobo amounts.

8-stage pipeline

Every customer sits in exactly one stage, from New chat to Sent to production.

Unmatched queue

Payments that can't be matched wait for a person instead of being guessed.

Role-based access

Admin, finance and sales each see what their job needs.

Teams bot and Power Automate

A FastAPI + Microsoft Graph bot and flows cut manual operations work from about 80% to 10%.

Flow

  1. WhatsApp chat
  2. AI agent captures details
  3. AI agent drafts quote
  4. Finance approves
  5. Quote + payment link sent
  6. Webhook verified
  7. Payment matched
  8. Production hand-off
  9. 3pm report

Screens

The dashboard from the sample version. All customers and amounts are invented.
The dashboard from the sample version. All customers and amounts are invented.

Results

358 req/son a single instance
263 msmedian latency under load
596 msp99 latency
80% → 10%manual operations work

Tools & languages

  • Next.js 15
  • TypeScript
  • PostgreSQL
  • Drizzle
  • Agentic AI
  • Paystack
  • GitHub Actions

The code

Clean-room sample with the same core logic: AI-draft guard, kobo money, HMAC verification, idempotent and concurrent payment ingestion. 8 tests, no dependencies.

The repository is private. I'm happy to share it with a hiring team or walk you through it on a call.

Request a code walkthrough

Samples are written with synthetic data. No client code or client data is used.