Belgian Structured Communication Generator
Type an invoice number and get a valid Belgian structured communication - gestructureerde mededeling in Dutch, communication structurée in French, OGM or VCS for short - in the familiar +++123/4567/89012+++ format with correct mod-97 check digits. Then send it straight into a SEPA payment QR code with one click, so your customer scans and pays with the reference already attached.
Mode
Type anything - letters, slashes and dashes are stripped, and the digits that remain become the base number.
Add payment details for the QR handoff
Optional. Fill these in and the “Use in a SEPA QR code” button carries them across too, so the QR generator opens with the whole transfer already filled in.
Your gestructureerde mededeling appears here
Type an invoice number on the left to calculate the mod-97 check digits.
How the mod-97 check works
A structured communication is always twelve digits: ten you choose, plus two check digits. The check digits are simply the ten-digit base number divided by 97, keeping the remainder. There is one special case that trips up nearly every home-made implementation - when the remainder is zero, the check digits are written as 97, never as 00. That is why the base 0000000000 gives +++000/0000/00097+++.
The +++ and / characters are pure decoration for human eyes. Some Belgian banks print *** instead, and both mean the same thing. Your accounting system should store the twelve bare digits.
Why the QR handoff matters
A structured communication only helps if the customer actually types it into the right field. In practice plenty of them paste it into the free-text message box instead, where the bank treats it as ordinary text and your reconciliation breaks. A SEPA payment QR code removes that risk entirely: the reference travels inside the code, in the structured-reference slot, so the banking app puts it in the correct field every time. That is what the “Use in a SEPA QR code” button here does - it opens our SEPA payment QR generator with this reference, and optionally your name, IBAN and amount, already filled in.
Häufig gestellte Fragen
Hoe kan ik een gestructureerde mededeling berekenen vanuit mijn factuurnummer?
Type the invoice number into the field above. Letters, slashes and dashes are stripped automatically, the remaining digits are padded to ten with leading zeros, and the two mod-97 check digits are appended. An invoice numbered 2026/0114 becomes the base 0020260114 and the tool prints the finished +++ reference plus the twelve bare digits for your accounting software.
Comment fonctionne ce générateur de communication structurée gratuit ?
It divides your ten-digit base number by 97 and keeps the remainder as the two check digits, with the standard exception that a remainder of zero is written as 97. Everything runs in your browser - no account, no upload, no limit on how many references you generate. You can also switch to check mode and paste a reference you received to confirm it is genuine.
What happens if my invoice number is longer than 10 digits?
A structured communication has room for exactly ten free digits, so something has to give. This tool keeps the last ten digits, because the tail of an invoice number is normally the part that distinguishes one invoice from another while the leading digits repeat a year or a branch code. If that rule does not suit your numbering scheme, shorten the number yourself before generating the reference.
Why do the check digits show 97 instead of 00?
Because a remainder of zero is deliberately written as 97 in the Belgian scheme. Check digits of 00 would make it impossible to distinguish a genuine reference from an empty or truncated one, so the specification substitutes 97. It is the single most common bug in home-grown implementations, and it only ever appears for base numbers that happen to be exact multiples of 97.
Can I put a structured communication inside a SEPA QR code?
Yes, and it belongs in the structured-reference field rather than the free-text one. Use the "Use in a SEPA QR code" button and the reference is carried into our SEPA payment QR generator through the page's ?ref= parameter, already switched to structured mode and already validated. Fill in the optional name, IBAN and amount first and those travel across too, so the QR generator opens with the whole transfer ready.
Is a structured communication the same as an RF creditor reference?
No. A structured communication is a Belgian domestic format that Belgian banks recognise; an RF Creditor Reference is the ISO 11649 standard understood across the whole SEPA area. They use the same mod-97 arithmetic but different layouts. If you invoice customers outside Belgium, generate an RF reference with our Nordic payment reference generator instead - it works everywhere a structured communication does not.