Two independent sources
Rates are polled from a primary commercial feed and cross-referenced against the European Central Bank’s published reference rates.
Conversion is not a feature bolted onto a wallet — it is part of the money layer. Rates are sourced independently and checked before they are used, a quote holds its price for a defined window, and the conversion behind it can be claimed exactly once.
Six currencies are held and settled. Five of them carry live rates across the engine’s tracked pairs; the Saudi Riyal is held and settled without a live pair.
A conversion is a pair, not a journey. What matters is the middle — what was locked, for how long, and what happens when the window closes before it is used.
No rate, spread or amount appears in this diagram. Both are configuration and market data — a plausible-looking figure here would be a price BINK had not agreed to.
A conversion is five distinct stages, and each one can fail closed. Nothing moves until the stage before it has committed.
The engine tries four answers in order and stops at the first one it can stand behind. Degrading is explicit: the further down this list a rate comes from, the louder the system is about it.
BINK publishes no spread figure, no refresh latency and no execution-speed claim on this page. Spread is configuration, not a headline number.
Most of the engine exists to refuse a bad price rather than to publish a fast one.
Rates are polled from a primary commercial feed and cross-referenced against the European Central Bank’s published reference rates.
A tick that moves too far from the previous observation for the same pair is rejected rather than published. A bad upstream print does not become your price.
Each source carries a health score that rises and falls with its behaviour. A failing provider is taken out of rotation and retried periodically, not hammered.
Spread is a stored rule, resolvable by currency, by direction, by customer tier and by region. The most specific matching rule wins; a default applies when none does.
Open, high, low and close are captured hourly and daily per pair, so a rate used on any past conversion can be placed in context.
A target can be set above or below the current level for a pair, and is evaluated on each refresh cycle.
The shape of the API follows the shape of the guarantee: if a price is going to be honoured, holding it has to be a real object with a real lifetime.
Show a customer a converted total and honour it for the length of the window, rather than re-pricing between the screen and the confirmation.
Take a payment in one currency and settle it in another, with the conversion resolved as part of the settlement rather than as a separate reconciliation problem.
Apply a different spread to a customer tier or a region by adding a more specific rule — the most specific match wins without touching the others.
Set a target above or below the current rate for a pair and be told when it is reached, evaluated on each refresh cycle.
Conversion is rarely the whole job. These are the surfaces on either side of it.
Quote, lock and convert through one API — with the spread you set and a record of every rate you used.