Skip to content

Wajub BuildersBecome one of the 50 founding members. Apply 

Checkout

A payment page in your colours, ready in one call.

Create the payment, redirect your customer: Wajub shows the available operators, guides the confirmation and notifies you of the result. No payment page to build or maintain.

  • Mobile money and cards
  • French and English
Merchant siteWajubOperatorsCustomerOrdersBoutique NkoloPaid todayFCFA 44,000OrderCustomerAmountStatus#4171Mireille EtogaFCFA 12,000Paid#4170Brice NgonoFCFA 4,500Paid#4169Esther MbargaFCFA 27,500Paid9:41Boutique NkoloCartOrder #4172TotalFCFA 15,000Go to payment

They get paid with Wajub

  • Laravel Cameroun
  • Moniwa
  • Trelund
  • Komerxe
  • Goshen Tabernacle

Why Wajub Checkout

Built for mobile money, from choice to receipt.

Your customer picks a payment method, confirms on their phone and comes back to your site. The page handles every step; you have nothing to build.

  1. Mobile money first

    Mobile Money shows at the top, marked Recommended, with the operators available in your customer's country. Bank card sits right below.

  2. Operator detected from the number

    Your customer types their number: the page selects the operator from the prefix. They can pick another one at any time.

  3. Guided confirmation

    Depending on the operator, your customer approves a notification on their phone or dials the code shown. The page moves to the result on its own, without reloading.

  4. Cards and wallets

    Bank card with 3-D Secure, plus Apple Pay or Google Pay where available.

  5. French or English

    Based on your account setting or the device language. Your customer can switch language on the page.

  6. Always up to date

    New operators, new instructions: the page keeps up, your integration stays the same.

Coverage

69 payment channels in 24 countries.

Checkout shows your customer the mobile money operators open in their country. Every channel listed here is available in the API, with the connections able to carry it.

See every payment method 
  • Benin

    MTN MoMo, Moov Money

  • Burkina Faso

    Orange Money, Moov Money, Wave

  • Cameroon

    MTN MoMo, Orange Money, Wave, Express Union

  • Congo - Brazzaville

    MTN MoMo, Airtel Money

  • Congo - Kinshasa

    MTN MoMo, Orange Money, Airtel Money, M-Pesa, Africell Money, Vodacom M-Pesa

  • Côte d’Ivoire

    MTN MoMo, Orange Money, Moov Money, Wave, Djamo

  • Gabon

    Airtel Money, Moov Money

  • Ghana

    MTN MoMo, Telecel Cash, AirtelTigo Money

  • Guinea

    MTN MoMo, Orange Money

  • Kenya

    Airtel Money, M-Pesa

  • Liberia

    MTN MoMo

  • Malawi

    Airtel Money, TNM Mpamba

  • Mali

    Orange Money, Moov Money

  • Mozambique

    M-Pesa

  • Niger

    Airtel Money, Moov Money

  • Nigeria

    MTN MoMo, Bank account debit, Bank transfer, Transfer to a dedicated account, USSD

  • Rwanda

    MTN MoMo, Airtel Money

  • Senegal

    Orange Money, Wave, Djamo, Free Money

  • Sierra Leone

    Orange Money

  • South Africa

    Capitec Pay, EFT, QR

  • Tanzania

    Airtel Money, M-Pesa, HaloPesa, Tigo Pesa, Vodacom M-Pesa, Zantel

  • Togo

    Moov Money, T-Money, Togocel

  • Uganda

    MTN MoMo, Airtel Money, Wave

  • Zambia

    MTN MoMo, Airtel Money, Zamtel Money

Branding

The page takes on your brand's colours.

In the Dashboard's Brand studio, you set your logo, colours, font and corner radius once. The live preview shows the page before your customers see it.

  • Icon and logo, eight ready-made palettes or your own colours, 20 fonts and five corner styles, from the Growth plan.
  • One setting for the whole account, in sandbox and production alike, with a preview on mobile, tablet and desktop.
  • The page on your own domain, with the Scale plan or the custom domain add-on: add two DNS records and the SSL certificate is set up for you.

For developers

One call to create the payment, one webhook to confirm it.

You create the payment on your server and redirect your customer to the returned URL. Wajub sends you a signed webhook as soon as the payment succeeds, and you can read the payment back through the API at any time.

Hosted checkout guide API reference 

POST /paymentsCreate the payment
Amount, currency, customer email, your reference and the return URL. An idempotency key prevents a duplicate if the call is replayed.
authorization_urlRedirect your customer
The response holds the hosted page URL. Your customer pays there, then lands back on your return URL.
payment.succeededReceive the webhook
A signed event reaches your server, even if your customer closed the page. If it is not received, Wajub retries for 72 hours.
GET /payments/{id}Read the payment back
Before you deliver, read the payment by its ID: its status is the one that counts.
import { Wajub } from '@wajub/node'

const wajub = new Wajub({ secretKey: process.env.WAJUB_SECRET_KEY! })

const payment = await wajub.payments.create(
  {
    amount: 15000,
    currency: 'XAF',
    email: '[email protected]',
    reference: 'order-4172',
    callback: 'https://shop.example.com/checkout/return',
  },
  { idempotencyKey: 'order-4172' },
)
res.redirect(payment.authorization_url)

// Webhook
const event = wajub.webhooks.constructEvent(rawBody, signature, timestamp)
const paid = await wajub.payments.retrieve(String(event.data.id))
if (paid.status === 'succeeded') await fulfil(paid.reference)

Response201 Created

{  "code": 201,  "authorization_url": "https://pay.wajub.com/tok_5f3a9c21",  "transaction": {    "id": "trx_8Kd2",    "reference": "order-4172",    "status": "pending"  }}

WebhookX-Wajub-Signature

{  "event": "payment.succeeded",  "data": {    "id": "trx_8Kd2",    "reference": "order-4172",    "amount": 15000,    "currency": "XAF",    "status": "succeeded"  },  "livemode": true}

Response201 Created

{  "code": 201,  "authorization_url": "https://pay.wajub.com/tok_5f3a9c21",  "transaction": {    "id": "trx_8Kd2",    "reference": "order-4172",    "status": "pending"  }}

WebhookX-Wajub-Signature

{  "event": "payment.succeeded",  "data": {    "id": "trx_8Kd2",    "reference": "order-4172",    "amount": 15000,    "currency": "XAF",    "status": "succeeded"  },  "livemode": true}

Protections

Protections on by default.

No box to tick: these measures apply to every account, on every plan.

All about security 
Cards handled by your providers
Card numbers are typed into the card providers' own fields or payment windows: they never reach Wajub.
Secret key refused in a browser
A secret key is meant for your server. Sent from a browser, the request is refused and the key's owner is notified by email.
Idempotency
An idempotency key ensures a repeated call on a payment or transfer runs only once.
Signed webhooks
Every delivery carries an HMAC-SHA256 signature over the timestamp and the body, with a secret per endpoint. The SDKs reject a delivery older than 300 seconds.

Pricing

No subscription to start, in your colours from Growth.

Pay as you go has no subscription and no setup fee. Checkout appearance opens with Growth; your own domain, with Scale or the Custom domain add-on.

See full pricing 
FeaturePay as you go$0You only pay for usage beyond the quotaGrowthRecommended$17/ monthBilled monthly, no commitmentScale$52/ monthBilled monthly, no commitmentEnterpriseCustom
Checkout appearanceNot includedIncludedIncludedIncluded
Custom domainAdd-on$17 / monthAdd-on$17 / monthIncludedIncluded
Payments included per month2001,0005,000Unlimited
Wajub rail commissionfrom 2%from 1.7%from 1.5%from 1.2%
  • Pay as you go

    $0

    You only pay for usage beyond the quota

    pay.wajub.com/tok_5f3a9c21

    Checkout appearance
    Not included
    Custom domain
    Add-on$17 / month
    Payments included per month
    200
    Wajub rail commission
    from 2%
  • Growth

    Recommended

    $17

    / month

    Billed monthly, no commitment

    pay.wajub.com/tok_5f3a9c21

    Checkout appearance
    Included
    Custom domain
    Add-on$17 / month
    Payments included per month
    1,000
    Wajub rail commission
    from 1.7%
  • Scale

    $52

    / month

    Billed monthly, no commitment

    pay.nkolo.cm/tok_5f3a9c21

    Checkout appearance
    Included
    Custom domain
    Included
    Payments included per month
    5,000
    Wajub rail commission
    from 1.5%
  • Enterprise

    Custom

    pay.nkolo.cm/tok_5f3a9c21

    Checkout appearance
    Included
    Custom domain
    Included
    Payments included per month
    Unlimited
    Wajub rail commission
    from 1.2%

Subscriptions and add-ons are billed in CFA francs, or in euros by card at the fixed rate of 655.957 CFA francs. Amounts in your currency are indicative, at today's rate.

Other ways to get paid

Get paid in your app and by link too.

The Payments API and Link open the same payment methods and report to the same Dashboard as your checkout.

  • Payments

    Accept mobile money and cards with a single integration.

    • Signed webhooks
    • Built-in idempotency
    • SDKs in 7 languages

    Explore Payments 

  • Link

    Get paid with a simple link: product, event, fundraising, donation.

    • 25 links included, no subscription
    • Mobile money and cards

    Explore Link 

Frequently asked questions

Another question? Talk to the team

How do I customise the payment page?
In the Dashboard, under Branding, from the Growth plan: icon and logo, eight ready-made palettes or six colours of your choice, 20 fonts and the corner radius, with a live preview. The setting applies to the whole account.
Can I change the look per payment?
Appearance is defined at account level, in the Dashboard: all your payments share the same visual identity.
What happens if my customer closes the page before the end?
The payment carries on at the operator. If it succeeds, the webhook still reaches your server, and GET /payments/{id} returns the current status. Deliver on the webhook or on that read, never on the browser's return alone.
How do I test the page without real money?
With your sandbox keys, the page shows a TEST MODE banner. The last six digits of the phone number decide the outcome: a number ending in 000000 succeeds. Every case is described in the documentation, on the Test scenarios page.
Can I serve the page from my own domain?
Yes, with the Scale plan or the custom domain add-on. You add a TXT record that proves the domain is yours and a CNAME to connect.wajub.com; the SSL certificate is set up automatically.

Put your payment page live today.

Create your account, test the page in sandbox with test numbers, then go live with your live keys.