Als je ooit een betaalfunctie hebt gebouwd en je afvroeg hoe geld eigenlijk een grens oversteekt, dan draait het antwoord bijna altijd om twee rekeningen met vreemde Latijnse namen: nostro en vostro. Ze vormen het leidingwerk achter elke internationale overboeking, remittance en betaling in meerdere valuta's. De meeste uitleg over nostro- en vostro-rekeningen stopt bij een woordenboekdefinitie. Deze gids gaat verder: hij legt het concept in gewone taal uit, doorloopt een uitgewerkt voorbeeld van dubbel boekhouden en laat je vervolgens zien hoe je deze saldi in code modelleert, waardeert en afstemt met een wisselkoers-API. Als je fintech-, treasury- of boekhoudsoftware bouwt, is dit het mentale model dat je nodig hebt.
Wat zijn nostro- en vostro-rekeningen?
Nostro en vostro komen uit het Italiaans (via het Latijn): nostro betekent "van ons" en vostro "van jullie". Het zijn twee labels voor dezelfde rekening, bekeken vanaf de twee tegenovergestelde kanten van een bankrelatie.
- Een nostro-rekening is "ons geld dat bij jullie staat". Het is een rekening die een bank aanhoudt bij een buitenlandse bank, luidend in de vreemde valuta. In de boeken van de thuisbank is het een actief.
- Een vostro-rekening is "jullie geld dat bij ons staat". Het is precies dezelfde rekening, bekeken door de bank die het geld bewaart. In haar boeken is het een verplichting.
Het cruciale inzicht voor een ontwikkelaar: nostro en vostro zijn geen twee verschillende rekeningen — het is één rekening, beschreven vanuit twee perspectieven. Wat Bank A haar USD-nostro bij Bank B noemt, noemt Bank B haar vostro voor Bank A. Zelfde saldo, zelfde transacties, twee grootboeken, tegengestelde tekens.
Hier is het klassieke voorbeeld. Een Duitse bank moet dollarbetalingen doen voor haar klanten, maar heeft geen filiaal in de Verenigde Staten en geen directe toegang tot dollarclearing. Dus opent ze een USD-rekening bij een Amerikaanse correspondentbank en houdt daar de dollars aan.
- Voor de Duitse bank is die USD-rekening een nostro ("onze dollars, daarginds").
- Voor de Amerikaanse bank is diezelfde rekening een vostro ("de dollars van de Duitsers, hier bij ons").
Nostro vs. vostro: het kernverschil
Het onderscheid gaat volledig over het gezichtspunt. Deze tabel vat het samen:
| Kenmerk | Nostro-rekening | Vostro-rekening |
|---|---|---|
| Betekenis | "Ons geld bij jullie" | "Jullie geld bij ons" |
| Wiens perspectief | De bank die het geld bezit | De bank die het geld bewaart |
| Aangehouden waar | Bij een buitenlandse correspondentbank | Bij de binnenlandse (bewarende) bank |
| Valuta | Vreemde valuta | Lokale valuta van de bewarende bank |
| Balansverwerking | Actief voor de eigenaar | Verplichting voor de bewaarder |
| Typisch gebruik | Uitgaande betalingen in vreemde valuta afwikkelen | Een buitenlandse bank in lokale valuta laten betalen |
Waar de loro-rekening past
Af en toe zie je een derde term, loro ("van hen"). Een loro-rekening is geen nieuw soort rekening — het is een verwijzing die een bank gebruikt wanneer ze het heeft over een rekening die van twee andere banken is. Als Bank A het heeft over de rekening die Bank B voor Bank C aanhoudt, noemt Bank A die een loro-rekening. Het is vooral van belang voor de duidelijkheid van SWIFT-berichten in betaalketens met meerdere banken; je hoeft het zelden rechtstreeks te modelleren.
Waarom deze rekeningen bestaan: correspondentbankieren
Geen enkele bank heeft een filiaal in elk land, en geen enkele bank is direct lid van het binnenlandse clearingsysteem van elk land. Correspondentbankieren lost dit op. Een kleinere "respondentbank" werkt samen met een grotere "correspondentbank" die wel lokale toegang heeft, en financiert daar vooraf een nostro-rekening. Nu kan de respondent betalingen in die valuta aanbieden zonder ooit lokale infrastructuur op te zetten.
Eén grote bank kan wereldwijd tientallen nostro-rekeningen aanhouden — één per valuta waarin ze moet afwikkelen — elk een vooraf gefinancierde liquiditeitspool. Aan de andere kant beheert een grote correspondent honderden vostro-rekeningen voor respondentbanken wereldwijd. De instructies die saldi tussen deze rekeningen verplaatsen, reizen over het SWIFT-netwerk als gestandaardiseerde berichten (steeds vaker in het ISO 20022-formaat).
Daarom kan een "eenvoudige" grensoverschrijdende betaling drie of vier banken aandoen, één tot drie dagen duren en onderweg een deel verliezen aan kosten en wisselkoersspread. Elke stap is een debet- en een creditboeking tegen een nostro- of vostro-saldo ergens.
Een uitgewerkt voorbeeld: dubbel boekhouden over een nostro/vostro-paar
Concepten worden snel concreet als je het geld volgt. Stel dat FNBA (een bank in Australië) een USD-nostro aanhoudt bij CMB (een Amerikaanse bank). FNBA verkoopt AUD 1.000.000 aan een klant, C, in ruil voor USD 2.000.000 tegen een afgesproken koers.
In het grootboek van FNBA (haar nostro is een actief in USD):
Dr USD Nostro @ CMB 2,000,000 USD
Cr FX Trading (USD) 2,000,000 USD
Dr FX Trading (AUD) 1,000,000 AUD
Cr Customer C (AUD) 1,000,000 AUDIn het grootboek van CMB is diezelfde USD-rekening een vostro (een verplichting die ze aan FNBA verschuldigd is):
Dr Customer C (USD) 2,000,000 USD
Cr FNBA Vostro (USD) 2,000,000 USDLet op de spiegeling: FNBA debiteert haar nostro om meer dollars vast te leggen die ze bezit; CMB crediteert de identieke vostro om meer dollars vast te leggen die ze verschuldigd is. Tel beide bankbeelden van de rekening op en, per ontwerp, stemmen ze af op nul. Die spiegeling is de hele kern — en het is precies wat je afstemmingscode zal benutten.
Nostro/vostro-saldi modelleren als ontwikkelaar
Als je treasury-, grootboek- of betaalsoftware bouwt, hoef je geen bank te zijn om dit model te gebruiken. Elk systeem dat saldi in meerdere valuta's namens anderen aanhoudt — een multivaluta-wallet, een uitbetaalengine van een marktplaats, het grootboek van een neobank — staat voor hetzelfde probleem: je houdt echte saldi in meerdere valuta's aan en moet hun gecombineerde waarde rapporteren in één basisvaluta.
Begin met een minimaal schema. Elk nostro-achtig saldo is slechts een valuta, een bedrag en de tegenpartij die het bewaart:
CREATE TABLE nostro_balances (
id BIGSERIAL PRIMARY KEY,
correspondent TEXT NOT NULL, -- who holds the funds
currency CHAR(3) NOT NULL, -- ISO 4217 code, e.g. 'USD'
balance NUMERIC(20,4) NOT NULL DEFAULT 0,
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
);Zodra je meer dan één valuta aanhoudt, duikt er een rapportagevraag op: hoeveel is het totaal op dit moment waard in onze basisvaluta? Je kunt USD, EUR en JPY niet zomaar optellen — je moet eerst elk saldo waarderen tegen de actuele wisselkoers. Daar verdient een valuta-API zijn plek. Hier is een Python-functie die een reeks nostro-saldi waardeert in een gekozen basisvaluta:
import requests
FINEXLY_KEY = "YOUR_API_KEY"
def value_nostros(balances, home="EUR"):
"""balances: dict of {currency: amount}. Returns total in `home`."""
symbols = ",".join(c for c in balances if c != home)
resp = requests.get(
"https://api.finexly.com/v1/latest",
params={"base": home, "symbols": symbols},
headers={"Authorization": f"Bearer {FINEXLY_KEY}"},
timeout=5,
)
resp.raise_for_status()
rates = resp.json()["rates"] # e.g. {"USD": 1.0842, "JPY": 161.4}
total = 0.0
for currency, amount in balances.items():
if currency == home:
total += amount
else:
# rates[X] = units of X per 1 home unit, so divide to convert back
total += amount / rates[currency]
return round(total, 2)
nostros = {"USD": 2_000_000, "JPY": 500_000_000, "GBP": 750_000}
print(value_nostros(nostros, home="EUR"))De API-aanroep geeft een schoon koersobject terug — {"base": "EUR", "date": "2026-08-08", "rates": {"USD": 1.0842, ...}} — dus elk buitenlands saldo terugrekenen naar de basisvaluta is één enkele deling. Voor een volledige uitleg van het endpoint en de parameters, zie de documentatie van de wisselkoers-API, en als je nieuw bent, is het niveau gratis valuta-API genoeg om het geheel te prototypen.
Nostro-afstemming en wisselkoerswinst/-verlies
Twee problemen domineren de echte nostro-operatie, en beide zijn duidelijk het werk van de ontwikkelaar.
1. Afstemming. Omdat een nostro en zijn spiegelende vostro moeten overeenstemmen, betekent afstemmen dat je jouw interne registratie van de rekening vergelijkt met het afschrift dat de correspondent stuurt (tegenwoordig doorgaans een SWIFT MT940/camt.053-afschrift). Elke boeking in jouw boeken zou een overeenkomstige boeking in de hunne moeten hebben. Verschillen — een boeking aan de ene kant maar niet aan de andere — wijzen op een ontbrekende, dubbele of vertraagde transactie die onderzocht moet worden voordat het een liquiditeits- of complianceprobleem wordt. De spiegeleigenschap uit het voorbeeld hierboven maakt automatische matching mogelijk.
2. Wisselkoersherwaardering. Een nostro-saldo wordt aangehouden in vreemde valuta, maar je rapporteert in je basisvaluta. Omdat wisselkoersen bewegen, verandert de basisvalutawaarde van een statisch buitenlands saldo elke dag. Dat verschil is een ongerealiseerde wisselkoerswinst of -verlies, en boekhoudstandaarden vereisen dat je het verantwoordt. Het patroon: leg de koers vast op het moment dat het saldo ontstond, vergelijk die met de koers van vandaag en boek het verschil.
const FINEXLY_KEY = "YOUR_API_KEY";
async function fxGainLoss(currency, amount, rateAtBooking, home = "EUR") {
const url = `https://api.finexly.com/v1/latest?base=${home}&symbols=${currency}`;
const res = await fetch(url, {
headers: { Authorization: `Bearer ${FINEXLY_KEY}` },
});
const { rates } = await res.json();
const currentRate = rates[currency]; // currency units per 1 home unit
const valueAtBooking = amount / rateAtBooking;
const valueNow = amount / currentRate;
return {
home,
valueAtBooking: +valueAtBooking.toFixed(2),
valueNow: +valueNow.toFixed(2),
unrealizedPnl: +(valueNow - valueAtBooking).toFixed(2),
};
}
// 2,000,000 USD booked at 1.0800, revalued at today's rate
fxGainLoss("USD", 2_000_000, 1.08).then(console.log);Voor periodeafsluiting en audittrails wil je ook historische koersen, niet alleen live — de exacte slotkoers van een datum in het verleden ophalen. Daarvoor dient een endpoint voor historische wisselkoersen, essentieel om maanden later een maandeindeherwaardering te reproduceren. Naarmate je aantal saldi en afstemmingsfrequentie groeien, bekijk de prijsplannen om je aanvraagvolume te dimensioneren; een treasury-dashboard dat tientallen valuta's om de paar minuten ververst, loopt snel op.
Als je live conversies aan eindgebruikers wilt tonen bovenop deze saldi — bijvoorbeeld een klant een uitbetaling in zijn eigen valuta laten zien — dan voedt een gehoste valutaomrekenaar of hetzelfde latest-endpoint dit rechtstreeks.
Moderne alternatieven: waar nostro/vostro heen gaat
Het nostro/vostro-model is eeuwenoud en verplaatst nog steeds het grootste deel van de grensoverschrijdende waarde, maar de wrijving — vooraf gefinancierde liquiditeit die vastzit in tientallen rekeningen, meerdaagse afwikkeling, ondoorzichtige kosten — heeft de sector richting alternatieven geduwd:
- SWIFT gpi voegt end-to-end-tracering en afwikkeling op dezelfde dag toe bovenop de bestaande correspondentrails, zonder de rekeningen te vervangen.
- Stablecoins en getokeniseerde deposito's laten instellingen in minuten afwikkelen zonder in elke valuta een nostro voor te financieren, al is de regelgevende duidelijkheid nog aan het bijtrekken.
- CBDC's en wholesale-afwikkelingspilots (verschillende centrale banken testen grensoverschrijdende corridors) willen de keten van tussenpersonen volledig inkorten.
Toch gaan voor de meeste software die je de komende jaren bouwt de rekeningen — en de bovenstaande afstemmings- en herwaarderingslogica — nergens heen. Ze begrijpen is een blijvende vaardigheid.
Veelgestelde vragen
Wat is het verschil tussen een nostro- en een vostro-rekening? Het is dezelfde rekening, bekeken vanaf twee kanten. Een nostro is "ons geld bij jullie" (een actief, in vreemde valuta) vanuit de bezittende bank; een vostro is "jullie geld bij ons" (een verplichting, in lokale valuta) vanuit de bewarende bank.
Is een nostro-rekening een actief of een verplichting? Een nostro-rekening is een actief op de balans van de bezittende bank — het vertegenwoordigt haar eigen middelen die bij een correspondent geparkeerd staan. De spiegelende vostro is een verplichting voor de bank die die middelen bewaart.
Waarom hebben banken nostro- en vostro-rekeningen nodig? Omdat geen enkele bank filialen of directe clearingtoegang in elk land heeft. Correspondentrelaties, gedekt door nostro/vostro-saldi, stellen een bank in staat betalingen te doen en te ontvangen in valuta's waar ze geen lokale aanwezigheid heeft.
Hoe stem je een nostro-rekening af?
Door je interne grootboek van de rekening te matchen met het afschrift van de correspondent (bijvoorbeeld een SWIFT camt.053). Elke boeking zou aan beide kanten moeten verschijnen; niet-gematchte boekingen ("verschillen") worden onderzocht. Omdat nostro en vostro elkaars spiegelbeeld zijn, zouden de twee registraties tot nul moeten salderen.
Hoe helpt een valuta-API bij nostro/vostro-boekhouding? Saldi staan in meerdere vreemde valuta's, maar je rapporteert in één basisvaluta. Een valuta-API levert de live en historische koersen die nodig zijn om elk saldo te waarderen, de ongerealiseerde wisselkoerswinst/-verlies te berekenen en consistente multivaluta-rapporten te maken.
Probeer het zelf
Klaar om multivaluta-saldi te waarderen en af te stemmen met echte wisselkoersen? Haal je gratis Finexly API-sleutel — geen creditcard nodig. Begin met 1.000 gratis verzoeken per maand, haal live en historische koersen op voor meer dan 170 valuta's en schaal op naarmate je treasury-logica groeit.
Explore More
Vlado Grigirov
Senior Currency Markets Analyst & Financial Strategist
Vlado Grigirov is a senior currency markets analyst and financial strategist with over 14 years of experience in foreign exchange markets, cross-border finance, and currency risk management. He has wo...
View full profile →