Skip to content

Wajub BuildersBecome one of the 50 founding members. Apply 

Orchestration

When a connection goes down, your payments keep going.

Connect several providers to the same mobile money operator. For each payment, Wajub picks the connection by your priorities, your rules and the health of each one, and goes through another if it fails.

Included in every plan. You never name a provider in a payment.

Your customerWajubYour connectionsMTN MoMo9:41Boutique NkoloTotalFCFA 25,000MTN MoMo+237 6 77 •• •• 35Pay FCFA 25,000CinetPayFirst choiceunreachableFlutterwaveSecond choiceacceptedpawaPayThird choicenot calledNotch PaySet aside after failuresFCFA 25,000

Routing

For every payment, the right connection.

You create a payment without naming a provider. Wajub keeps the connections able to carry it and ranks them by your priorities, your rules and their current health. Every decision can be reviewed in Konsole.

  • Your priorities

    In the Dashboard, you choose which connections to favour.

  • Your rules

    Country, operator, currency, amount range: a rule sends these payments to the connection you choose, with a fallback.

  • Their live health

    Recent success counts. A connection that fails repeatedly is set aside until it works again.

Failover

One provider down, another takes the payment.

If the chosen connection fails during a mobile money payment, another of your connections takes over. Your customer sees nothing and you get a single result.

  • Set aside

    A connection that fails repeatedly is set aside, then takes its place back as soon as it works again.

  • Each operator on its own

    An outage on MTN does not set the same connection aside on Orange.

What never fails over, on purpose

  • A request already received

    If the provider has already received the request, the payment waits for its answer. Sending it elsewhere could charge the customer twice.

  • A customer refusal

    Insufficient balance, PIN rejected, prompt ignored: the payment stops. Your customer never gets two prompts for the same purchase.

  • A card

    A card is never retried with another provider: it stays with the one where it was entered. Failover is for mobile money.

Coverage

Several routes to every operator.

An operator can be reached through several providers. Connect two or more on the same channel and none of them carries your collections alone. You keep your contracts and your rates.

Every route, country by country 
MTN MoMoCameroon
MTN MoMoCameroon

Providers that reach MTN MoMo

Wajub, Campay, CinetPay, Fapshi, Flutterwave, InTouch, Maviance, Monetbil, MTN MoMo API, MyCoolPay, Neero, Nokash, Notch Pay, pawaPay, Taramoney.

The Wajub rail does not count toward the number of connections in your plan.

Routing rules

Your rules, without a line of code.

A rule says where to send certain payments: by country, operator, currency or amount range. It names a connection and, if you want, a fallback.

From Growth
  • Conditions: country, operator, currency, amount range
  • Route to a connection, with a fallback
  • Reorder your rules by drag and drop
  • Preview the impact before saving

Before you save, the preview shows how many payments from the last 7 days would have changed route, and where they were going.

Read the docs(opens in a new tab)

Monitoring

Every decision on the record.

The Dashboard tells you whether your routes are healthy and how much orchestration has saved. Every payment keeps its routing decision, to review in Konsole.

  • Operator or provider

    The matrix crosses operators and connections, live. A whole red row: the operator is down. A single cell: it is the provider.

    MTN MoMo Cameroon: Provider issue

  • An alert before your customers notice

    Success rate, errors, volume: you set the threshold, the alert goes out by email, Slack or to your URL.

    Triggered: 76% over 15 minutes

  • Protected value

    Payments picked up by another route after an outage, and their amount, over 7, 30 or 90 days.

    Recovered transactions: 1,284

  • Every payment's log

    In Konsole, the routing decision and its attempts, payment by payment.

    14:08:30, Flutterwave: Accepted

Developers

One payment, no provider name.

You send the operator and the phone number. Wajub picks the route, fails over if needed and returns a single result, in the response and then by webhook.

  • No provider in the request

    Adding or removing a connection does not change your code.

    channel

  • No double charge

    The same key charges only once. Sent again with a different body, it is rejected.

    Idempotency-Key422

  • Routing in production

    The sandbox simulates one provider. Routing across your connections is checked live, on small amounts.

    sandbox

  • Your connections keep you posted

    A webhook fires when a connection or one of its channels is turned on or off.

    provider.activatedprovider.channel_deactivated

RequestPOST /payments/{id}

Idempotency-Key: charge-order-4172-1{  "channel": "cm.mtn",  "data": { "phone": "+237670000000" }}

Response202 Accepted

{  "code": 202,  "status": "Accepted",  "message": "Confirm the transaction on your phone.",  "transaction": {    "id": "trx_4Rm8Qx2LkV7nTc9WbZp3",    "reference": "order-4172",    "amount": 25000,    "currency": "XAF",    "status": "processing",    "channel": "cm.mtn"  }}

Plans

Orchestration is in every plan.

What changes from one plan to the next: the number of connections and routing rules. The Wajub rail comes on top and does not count.

Compare plans 
Pay as you goGrowthScaleEnterprise
Connections26UnlimitedUnlimited
Ranking, failover, failing connections set asideIncludedIncludedIncludedIncluded
Routing rulesNot includedIncludedIncludedIncluded

Frequently asked questions

Another question? Talk to the team

What is payment orchestration?
It is a layer between your application and your payment providers. You no longer call a provider: you create a payment, and Wajub decides which connection carries it, in what order to try the others, and when to stop. Every decision is recorded.
How many providers can I connect?
As many as your plan allows: 2 on Pay as you go, 6 on Growth, no limit on Scale and Enterprise. The Wajub rail does not count toward that number. The providers you can connect are listed on the Payment methods page; every connection uses your own credentials, except the Wajub rail.
What happens if the customer does not confirm on their phone?
As soon as the operator has sent the confirmation prompt, the payment counts as accepted by that connection. If the customer does not approve, the payment fails without calling another connection: your customer never gets two prompts for the same purchase.
Does failover protect against an operator outage?
It protects against a provider outage: if one of them is down, your mobile money payments go through another of your connections to the same operator, if you have connected more than one. If the operator itself is down, every route to it is affected; every attempt remains visible in the routing log.
Can I test routing in sandbox?
The sandbox validates your integration against a simulated provider. Routing across your connections runs in production: check it on small amounts, every decision shows up in the routing log.
Where can I see which connection carried a payment?
In the Konsole routing log, payment by payment. Rules and priorities are managed in the Dashboard.

Add a second connection to your main operator.

That is all a payment needs to have a backup route. The rest is set in the Dashboard, without touching your code.