BitriPay
ONE QR. ONE GATEWAY. EVERY ELIGIBLE RAIL.Pay Local. Fund Global. Settle Your Way.
developers

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:

  1. A change to the profile is a change to a codec.
  2. 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.

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.

build on bitripay national switch connection
Try it with a free account

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.

Open an account

Keep reading