Search
Procurement · Pay Your Vendors

Vendor Payments

Settle approved purchase orders by M-Pesa or bank transfer straight from your own account — B2C to a supplier's phone, B2B to a paybill or till, or a Paystack transfer to a vendor's bank account — and watch the payment post itself back onto the PO balance.

It runs on your own Safaricom Daraja and Paystack credentials, so money flows directly from your M-Pesa shortcode or Paystack wallet to the vendor — AWRA only initiates the transfer and records the outcome. Non-custodial by design, and completely separate from your AWRA subscription billing.

4
Ways to pay a vendor
100%
Your account, your funds
0
Manual balance updates
A tenant paying a vendor by M-Pesa and bank transfer, posted back onto the purchase order
Why It Matters

Paying suppliers shouldn't live in a separate app.

Most teams approve a purchase order in one system, then jump to M-Pesa or online banking to actually pay — and re-key the amount, the reference, and the balance by hand afterwards. Vendor Payments closes that loop: pay from the PO itself, on your own rails, and the balance and status update automatically.

Paying in a different app

Initiate B2C, B2B, or a Paystack transfer from the approved PO — no switching to the M-Pesa portal or your bank.

Money through a middleman

Funds leave your own M-Pesa shortcode and Paystack wallet directly to the vendor. AWRA never holds or routes your cash.

Balances re-keyed by hand

Each confirmed payment posts onto the PO, updates amount paid and balance due, and flips status to partial or paid.

Four Ways To Pay

However your vendor wants to be paid.

Small suppliers take M-Pesa on a phone; companies have a paybill or a bank account; some payments still happen offline. Vendor Payments covers all four — every one recorded against the same purchase order.

M-Pesa B2C

Pay a vendor's phone

Send from your paybill or till straight to a supplier's personal M-Pesa number — ideal for small vendors. Uses Daraja's B2C API with your stored initiator credentials; the async result posts back automatically.

M-Pesa B2B

Pay a paybill or till

Settle a company vendor's registered paybill or till number, with the PO number embedded as the account reference so they can reconcile on their side too.

Paystack Transfer

Pay a vendor's bank account

Transfer from your Paystack wallet to a vendor's bank account at any supported bank. The account is validated and saved as a reusable recipient, and the wallet balance is shown before you confirm.

Manual

Record cash, cheque & EFT

Paid outside the system? Record an offline payment — cash, cheque, or bank EFT — with its reference and date. It posts onto the PO balance immediately, no webhook needed.

How It Works

From "Pay Vendor" to a settled PO.

1 Approve PO approved, balance due 2 Initiate B2C · B2B · Transfer · Manual 3 Confirm Daraja / Paystack result 4 Post Balance & status update
1

Approve

Vendor Payments only opens on POs that are approved with a balance still due — paying a draft or cancelled PO is blocked at the server, not just hidden in the UI.

2

Initiate

A cashier opens the PO, picks a method, and confirms the amount (pre-filled to the balance due) and the vendor's phone, paybill, or bank account.

3

Confirm

Safaricom or Paystack sends a secure, signed result to AWRA. The transaction is logged idempotently with its receipt or transfer code; a status poller keeps the cashier updated.

4

Post

On success the payment posts onto the PO — amount paid, balance due, and status (partial / paid) all update — and the vendor gets a remittance email.

A vendor payment initiated from a purchase order and posted back onto its balance
Non-custodial by design

Your money never passes through us.

Vendor Payments uses your own Safaricom and Paystack credentials, so every shilling leaves your shortcode or wallet and lands with your vendor. AWRA initiates the request and records the outcome — it never holds, pools, or routes your funds. This is entirely separate from how you pay for your AWRA subscription.

Funds leave your own accounts
Initiator secrets encrypted at rest
Signed, IP-allow-listed callbacks
Strict per-tenant credential isolation
Secure, non-custodial payouts directly from the tenant's own accounts to vendors
Vendor payments dashboard with totals, statuses and reusable bank recipients
Control & Safeguards

Pay confidently, never twice.

Before a bank transfer, AWRA shows your live Paystack wallet balance and blocks the payment if there aren't enough funds — so a transfer never fails silently. Vendor bank accounts are validated on first use and saved as reusable recipients, so future payments are one click.

Every payment is recorded against the PO with a unique provider reference, so a repeated M-Pesa or Paystack callback can never double-post. A timeout is treated as still pending, never as a failure — so a cashier is never nudged into paying the same vendor twice.

Wallet balance shown before transfer
Reusable, validated bank recipients
Idempotent on provider reference
Only approved POs can be paid
Who It's For

For anyone who pays suppliers.

Retail & distribution

Pay restock suppliers by M-Pesa the moment goods are received and the PO is approved.

Construction & projects

Settle company subcontractors by B2B paybill or bank transfer against each PO.

Hospitality & FMCG

Pay many small farm and produce suppliers to their phones, all tracked in one ledger.

Finance teams

Approve once, pay on-platform, and keep a clean, reconciled trail for every vendor payout.

FAQ

Common questions

Whose account does the money come from?

Yours. Vendor Payments uses your own Safaricom Daraja and Paystack credentials, so funds leave your M-Pesa shortcode or Paystack wallet directly to the vendor. AWRA is non-custodial — it never holds your money, and this is entirely separate from your AWRA subscription billing.

What is the difference between M-Pesa B2C and B2B?

B2C pays a vendor's personal M-Pesa phone number (common for small suppliers). B2B pays a company vendor's registered paybill or till number, with the PO number embedded as the account reference. You pick whichever the vendor uses.

Can I pay a vendor's bank account?

Yes — via a Paystack transfer to any supported bank. The first time, you enter the bank and account number; AWRA validates it, confirms the account name, and saves it as a reusable recipient. Your Paystack wallet balance is shown before you confirm, and the transfer is blocked if there aren't enough funds.

How does the purchase order balance update?

When a payment is confirmed (or recorded manually), it posts onto the PO: amount paid and balance due are recalculated and the status flips to partial or paid automatically. No re-keying — and only approved POs with a balance can be paid.

What happens if M-Pesa never confirms a payment?

A timeout is treated as still pending, never as a failure, so you are not nudged into paying the vendor twice. The transaction stays visible in the vendor payments dashboard until the provider returns a definitive result, and every callback is idempotent so a repeat can never double-post.

Does the vendor get a receipt?

Yes — on a successful payment AWRA can email the vendor a remittance confirmation with the amount and the M-Pesa code or bank reference, provided the vendor has an email on file.

Ready to pay vendors without leaving the PO?

We'll walk your procurement and finance teams through connecting M-Pesa and Paystack, paying by B2C, B2B, bank transfer, or manual record, and watching every payment reconcile back onto the purchase order.