How to build for a switch you are not connected to yet
Waiting for a scheme to publish its profile before writing any code wastes a year. Writing against an internal contract, with a simulator for the ugly cases, means the connection becomes a codec rather than a rebuild.
There are two ways to build for a national scheme you are not yet connected to.
The common one: wait for the profile, then write the integration against it. This is safe, and it costs a year, and at the end of the year you discover the interesting problems for the first time.
The protocol is the easy part
Translating between message formats is work, but it is known work. Any competent team can do it once the specification exists.
The hard part is the behaviour around the edges, and none of it depends on the format:
- The switch times out — but the money moved.
- A payment is reported not found, provisionally, and then found.
- A duplicate success arrives for something already settled.
- A late rejection contradicts a success you already acted on.
- An acknowledgement arrives with no completion behind it.
Every one of those is a decision about money, and every one can be designed, built and tested before anybody publishes anything.
An internal contract
Payments are expressed in a canonical internal form that presumes nothing about the wire: not ISO 8583, not ISO 20022, not REST, not SOAP.
An adapter translates between that form and whatever the scheme speaks. The protocol never reaches the business logic, which has two consequences:
- A change to the profile is a change to a codec.
- A second scheme, in a second country, is a second adapter rather than a second platform.
The simulator is for the ugly cases
Our simulator does not simulate a successful payment, which is the easy case and tells you nothing.
It reproduces the timeout after a financial effect. The provisional not-found. The duplicate success. The contradictory late rejection. The invalid signature. The acknowledgement with nothing behind it. The authorisation that never completes.
These are the scenarios that, met for the first time in production, turn into a month of reconciliation and a difficult conversation with a regulator.
It never pretends
Everything the simulator produces is labelled as simulation, and it never attests certification.
This is a deliberate line. A simulator that could be mistaken for a certified connection is a liability — to us, and to anyone reading a report produced from it. Certification is a separate recorded state, and the certified adapter loads only for a connection that has it.
Fees stay off the payment
Aggregation fees on switch payments are accrued per completed payment and invoiced per period and per currency.
They are never posted onto the payment itself. The payment amount is the payment amount; the fee is a separate, visible obligation on a statement. A merchant can see what they were charged without reverse-engineering it from a net figure.
What you can check
These are facts about the running platform, not adjectives. Each one is visible in the product, in the API reference or in the ledger.
- The internal contract presumes nothing about the wire format — not ISO 8583, not ISO 20022, not REST — so the protocol never reaches the business logic.
- The simulator reproduces a timeout after a financial effect, a provisional not-found, a duplicate success, a contradictory late rejection, an invalid signature and an acknowledgement without completion.
- Everything the simulator produces is labelled as simulation and it never attests certification.
- A certified adapter is loaded only for a connection whose certification state says so.
- Aggregation fees on switch payments are accrued per completed payment and invoiced per period, never posted onto the payment itself.
What it costs
Scheme and aggregation fees are set in the console and shown on the merchant’s statement as their own line.
Is it switched on?
Whether this is available depends on the authorisations in place and on what the administrator of a given deployment has switched on. That changes, and an article does not — so the live answer lives on the feature page, which reads it from the platform itself: National switch connection on the features page.
Read next
- Smart Route — The rail that will work, not the rail that is first.
- Corridor network — Regulatory posture as configuration.
- The gateway API — Three calls and a webhook.
Frequently asked questions
Why build before the profile is published?
Because the hard part is not the wire format — it is the behaviour around it: what happens on a timeout that had a financial effect, or a rejection that contradicts an earlier success. Those can be built and tested now, and the format becomes a codec later.
Does the simulator prove you are certified?
No, and it says so on everything it produces. It proves the behaviour was built and tested. Certification is a separate, recorded state, and the certified adapter loads only for a connection that has it.
How are the switch fees charged?
Accrued per completed payment and invoiced per period and per currency. They are never posted onto the payment itself, so the payment amount is the payment amount and the fee is a separate, visible obligation.
Send with a QR code, add money by card or mobile money, issue a virtual card. Sandbox balances let you explore before any real money moves.
Keep reading
Comment construire pour un switch auquel on n’est pas encore raccordé
Attendre qu’un système publie son profil avant d’écrire la moindre ligne gaspille un an. Écrire contre un contrat interne, avec un simulateur pour les cas pénibles, fait du raccordement un codec plutôt qu’une reconstruction.
The fastest integration is one you do not have to write
Most of an integration is the same every time: authentication, idempotency, signature verification, retries. SDKs and a shop plugin do that part, and they are built from the same table that serves the requests.
How a payment decides which way to go
A payment can usually travel several ways, and they are not equally good at two in the morning. Routing on measured success, cost and latency — with a breaker on failing rails — is the difference between resilience and a bad night.