Jamii Pay

publicModern payment orchestration

Scale local and cross-border collections with confidence.

Jamii Pay helps platforms and businesses process payments through multiple providers, with resilient routing, transparent tracking, and secure APIs.

autorenew

99.95% routing availability

Automatic failover between providers keeps your checkout alive.

api

One unified API

Integrate once, operate across Stripe, Flutterwave, M-Pesa, and more.

monitoring

Real-time visibility

Track transaction status, confirmations, and webhook integrity end-to-end.

Why teams choose Jamii Pay

tune

Smart provider orchestration

Route by country, priority, or live fallback conditions for stronger conversion rates.

verified_user

Secure by design

Signed webhooks, tokenized access, and role-based admin controls protect your operation.

dashboard

Operations in one place

Manage account configuration, customer profiles, and transaction history from one control plane.

How your onboarding works

1
assignment_add

Create your request

Tell us about your business and expected usage.

2
fact_check

Compliance review

Our team verifies your profile and approves account access.

3
key

Receive your key

You get your Jamii Pay key and can start transacting immediately.

apiIntegrate Jamii Pay In Your Application

Use your Jamii Pay key to create charges, then query status to keep your app in sync.

settings1. Configure environment variables

PAYMENT_API_BASE_URL=https://www.pay.najamii.com
PAYMENT_API_KEY=jamiipay_live_a1b2c3
PAYMENT_API_AUTH_HEADER=x-jamii-pay-key

infoKey format: jamiipay_live_ + 6 lowercase letters/numbers (20 characters total).

code2. Create a charge (Node.js)

const payload = {
    reference: "order-173829",
    amount: 120,
    currency: "USD",
    customerEmail: "buyer@example.com",
    customerName: "Buyer Name",
    country: "KE",
    metadata: { source: "your-app" }
};

const res = await fetch(`${process.env.PAYMENT_API_BASE_URL}/v1/charge`, {
    method: "POST",
    headers: {
        "content-type": "application/json",
        [process.env.PAYMENT_API_AUTH_HEADER || "x-jamii-pay-key"]: process.env.PAYMENT_API_KEY,
    },
    body: JSON.stringify(payload),
});

const data = await res.json();

monitoring3. Track transaction status

const ref = "order-173829";
const statusRes = await fetch(
    `${process.env.PAYMENT_API_BASE_URL}/v1/status?ref=${encodeURIComponent(ref)}`,
    {
        headers: {
            [process.env.PAYMENT_API_AUTH_HEADER || "x-jamii-pay-key"]: process.env.PAYMENT_API_KEY,
        },
    }
);

const status = await statusRes.json();

infoTip: store the reference from your business object (order, booking, invoice) so reconciliation stays simple.

Customer Private Space

lockRegister, request your key, and log in to track your account and transactions.

contact_mailCreate Account Request

account_circleCustomer Login