- Belgium
Belgian structured communication (OGM): format, check digits, use
Belgian structured payment references: OGM/VCS format, modulo-97 checks and invoice references. Bank reconciliation in OrdoGrid requires Business.
- Updated
- Content owner
- Customer education team
- For
- Freelancers and small business owners · Office and finance staff who match customer payments · Accountants supporting Belgian clients
At a glance
A structured communication (OGM, or VCS in French) is a 12-digit Belgian payment reference written +++123/4567/89002+++: the last two digits are the remainder of the first ten divided by 97, or 97 when that remainder is 0. It is a Febelfin banking standard, not a VAT mention, and Peppol carries it in the optional field BT-83. OrdoGrid fills one per invoice from the invoice number; keep it unchanged and reuse it only in reminders for that same invoice. Creating this reference on an invoice does not require Business; matching it to bank statements in OrdoGrid requires Business.
Before you begin
- Your IBAN in Profil entreprise → Informations bancaires (only owners and administrators can edit that page)
- Owner or administrator access, to create invoices and record payments
- For automatic matching: bank statements in a supported format (CODA, CAMT.053, MT940, OFX, CSV) and a plan that includes Accounting
What you will achieve
- A valid structured communication on every invoice, and a quick way to check any reference by hand
- Incoming transfers matched to the right invoice, including partial and grouped payments
- Correct handling of foreign payers, credit notes, payment requests and changed invoice numbers
On this page
A structured communication is the Belgian 12-digit payment reference written +++123/4567/89002+++. Your customer copies it into the bank transfer, the banks carry it unchanged, and your bank statement then shows exactly which invoice was paid. It is a banking standard, not a VAT mention: the invoice number stays your legal reference, and the structured communication sits next to your IBAN.
This article covers the format and the check digits, where the reference travels (bank transfer, Peppol, QR code), how OrdoGrid fills it and uses it to match payments, and what to do when a payment arrives without it. Payment terms, reminders and late-payment interest are in Get paid on time in Belgium. Recording money that has arrived is in Follow up an invoice and record a partial payment.
- Structured communication (OGM / VCS)
Belgian payment reference of 12 digits, shown as +++123/4567/89002+++, whose last two digits check the first ten (modulo 97). OGM stands for overschrijving met gestructureerde mededeling, VCS for virement avec communication structurée. Febelfin, the Belgian financial sector federation, calls the standard OGM-VCS.
Required by law, or recommended?
| Element | Status | Basis |
|---|---|---|
| Sequential invoice number | Required on every VAT invoice | Royal Decree no. 1, art. 5 §1 |
| Structured communication | Optional: a banking standard, not a VAT mention | Febelfin OGM-VCS (AOS1) |
| Payment reference in a Peppol invoice | Optional field BT-83 (cbc:PaymentID), at most once | Peppol BIS Billing 3.0 |
| IBAN and due date | Not VAT mentions, but they get you paid | Not listed in Royal Decree no. 1, art. 5 §1 |
What the law requires. Nothing about payment references. Neither the VAT Code nor article 5 of Royal Decree no. 1, which lists the invoice mentions, asks for one, and Peppol BIS Billing 3.0 defines BT-83 as optional. No VAT rule obliges your customer to use the reference either: ask for it in your payment terms.
What the banks apply. Febelfin's OGM-VCS rules cover SEPA credit transfers, instant transfers and direct debits in Belgium. Banks in Belgium validate the check digits when a payer types the reference on screen. Payers who upload bulk payments are strongly advised to validate them. The receiving bank must pass the reference on to you in your (electronic) statements.
What we recommend. One structured communication per invoice, kept unchanged on every reminder for that invoice. Never a fixed reference per customer or per contract: payments for different invoices would carry the same key, which defeats the purpose. Recurring invoices follow the same rule (recurring invoices in Belgium).
The format: 12 digits, one check
| Part | Digits | Content |
|---|---|---|
| Block 1 | 3 | Digits 1 to 3 of the base |
| Block 2 | 4 | Digits 4 to 7 of the base |
| Block 3 | 5 | Digits 8 to 10 of the base, then the 2 check digits |
On invoices the reference is shown with plus signs and slashes, as in Febelfin's own example +++010/8068/17183+++. In the bank transfer itself it is the 12 digits alone: 010806817183. The issuer chooses the first ten digits freely; the last two are calculated.
Calculate the check digits
- Take the ten-digit base, with leading zeros if needed.
- Divide it by 97 and keep the remainder (0 to 96).
- If the remainder is 0, use 97. Otherwise use the remainder, written with two digits (2 becomes
02). - Append the two check digits to the base and group the 12 digits as 3/4/5 between
+++signs.
| Base (10 digits) | Largest multiple of 97 | Remainder | Check digits | Structured communication |
|---|---|---|---|---|
| 1234567890 | 97 × 12,727,504 = 1,234,567,888 | 2 | 02 | +++123/4567/89002+++ |
| 0020260042 (invoice F-2026-0042) | 97 × 208,866 = 20,260,002 | 40 | 40 | +++002/0260/04240+++ |
| 0020260002 (invoice F-2026-0002) | 97 × 208,866 = 20,260,002 | 0 | 97 | +++002/0260/00297+++ |
Check any reference in 30 seconds
Remove the plus signs and slashes, take the first ten digits and divide them by 97. In a spreadsheet, =MOD(20260042,97) returns 40 (type ; instead of , if your spreadsheet uses Belgian regional settings); leading zeros do not change the result. The reference is valid when the remainder equals the last two digits, or when the remainder is 0 and the last two digits are 97.
Where the reference travels
| Channel | Where the reference goes | Rule |
|---|---|---|
| SEPA transfer from a bank in Belgium | Structured creditor reference: type SCOR, issuer BBA, the 12 digits | Febelfin AOS1 |
| Your bank statement (CODA, camt.053) | Passed on by your bank with the payment | Febelfin AOS1 |
| Peppol invoice (UBL) | BT-83 Remittance information: cbc:PaymentID in the payment means | Peppol BIS Billing 3.0 |
| QR code printed on the invoice | The QR code's structured reference field, in +++ format | Febelfin QR guidelines |
| PDF and email | The payment box, next to the IBAN | Common practice |
Peppol carries the invoice, including the reference that the customer's software needs to prepare the transfer. The bank carries the money and the reference back to you. Neither replaces the other: the Traité (processed) badge in Peppol → Outbox means the network delivered the invoice, not that it was accepted or paid.
Payers outside Belgium
Febelfin's OGM-VCS rules bind banks in Belgium. A bank abroad may offer no field for a Belgian structured communication, so the payer types it as free text, or forgets it. The international equivalent is the ISO 11649 creditor reference: RF, two check digits calculated as for an IBAN, then up to 21 letters or digits. Built from the same invoice digits, it would read RF88 2026 0042.
What we recommend: keep the Belgian reference and ask foreign customers to paste it exactly into the remittance text; OrdoGrid's matching recognises it there too (see below). Use an RF reference only when a customer's payment system insists on an international creditor reference. OrdoGrid does not generate RF references, but you can type one in Communication. OrdoGrid's bank matching recognises only the 12-digit Belgian format, so a payment that quotes an RF reference is not justified automatically: justify it yourself in Accounting → Transactions or record it with Record payment.
How OrdoGrid fills the reference
What OrdoGrid does:
- When you open Nouvelle facture (New invoice), OrdoGrid proposes the next number and fills Communication with a structured communication built from the last ten digits of that number, padded with zeros, plus the modulo-97 check. With the default format
F-{YYYY}-{####}, invoice F-2026-0042 gets+++002/0260/04240+++. - The reference appears in the payment box of the preview and the PDF (labelled Communication, Mededeling, Reference or Verwendungszweck, depending on Langue des documents (document language)), in the email sent from OrdoGrid together with your IBAN, in the QR Code SEPA, and in the Peppol invoice as BT-83, with a short payment-terms note repeating the due date and the reference.
- Text you type in Communication replaces the structured communication everywhere: saved PDF, QR code and Peppol. The exception is Aperçu du PDF, which always shows the reference built from N°. OrdoGrid does not check the check digits of a reference you type.
- An empty Communication field is rebuilt from the invoice number when you save.
- Dupliquer (Duplicate) gives the copy a fresh reference based on its own number.
- Credit notes carry no communication, no QR code and no Peppol payment block.
- Without an IBAN on the invoice (by default the one in Profil entreprise), there is no QR code, and the Peppol invoice has no payment block and therefore no BT-83. The same applies when nothing is left to pay (Montant à payer, amount due, at zero).
If your numbering format produces more than ten digits, only the last ten are used. Keep the counter at the end of the format, so that the last ten digits differ from one invoice to the next. Numbering formats are explained in invoice numbering in Belgium.
Steps on each invoice
- Once per company: open Profil entreprise (Company profile), and under Informations bancaires (bank details) enter your IBAN and choose your bank for the BIC. Only owners and administrators can edit this page.
- Create the invoice with Nouvelle facture, select the client and keep or change the number in N°.
- Click the payment box in the preview. In Informations de paiement (payment details), check that IBAN is right and choose QR Code SEPA. If you changed the number in N°, empty Communication: OrdoGrid rebuilds it from the final number when the invoice is saved. Otherwise check that Communication shows a
+++reference. Then click Enregistrer in that dialog: it applies the payment details but does not save the invoice yet. - To confirm the final reference before sending, save the invoice with Enregistrer (Save) in the editor header and open it with the PDF action in the invoice list. Do not rely on Aperçu du PDF (PDF preview) for this: it currently rebuilds the reference from N° and does not show what is in Communication.
- Send with Envoyer, then Sauvegarder & Envoyer (Save & Send).
- After sending, leave Communication alone: your customer already has the reference, and the XML delivered over Peppol does not change.
Matching incoming payments in OrdoGrid
On a plan that includes Accounting (Business on the pricing page):
- Open Accounting → Import and import your bank statement: CODA, CAMT.053, MT940, OFX, CSV, or PDF for some banks.
- Open Accounting → Transactions. For each incoming payment, OrdoGrid suggests open invoices. An exact match on the structured communication is the decisive signal. OrdoGrid also recognises the 12 digits when the payer typed them in free text, with or without plus signs and slashes. Draft invoices are not proposed.
- Click Auto-apply to justify (link to an invoice), in one go, the transactions whose reference matches an open invoice exactly. Suggestions based only on amount, date, customer name or invoice number wait for your decision. However, Auto-apply also justifies payments you made against received Peppol invoices when the amount matches, even without a reference. Review those lines in Accounting → Transactions afterwards.
- Each justification records a Bank transfer payment in the invoice's Settlement panel: the invoice shows Payée (Paid), or Partiellement payée (Partially paid) when less arrived. Do not record the same money again by hand.
Without Accounting, open the invoice, click Record payment in Settlement, choose Bank transfer, enter the amount received and put the bank's transaction reference or the communication in Reference. The full procedure is in Follow up an invoice and record a partial payment.
When you are the payer. In Peppol → Inbox, a received invoice shows a Paiement block with Bénéficiaire (payee), IBAN, Montant (amount), Communication and a QR code. Copy the communication exactly. If the supplier sent no payment reference, OrdoGrid shows the supplier's invoice number there instead: that is free text, not a structured communication, so check the supplier's PDF before you pay.
Worked example: two invoices for the same amount
Atelier Mertens SRL in Liège invoices Brasserie Delvaux SA in Namur twice on 5 October 2026, both over Peppol, both due on 4 November 2026.
| F-2026-0042 | F-2026-0043 | |
|---|---|---|
| Content | 8 hours of maintenance at €125.00 | Annual check of the cooling installation, flat fee |
| Net | €1,000.00 | €1,000.00 |
| VAT 21% | €210.00 | €210.00 |
| Total | €1,210.00 | €1,210.00 |
| Ten-digit base | 0020260042 | 0020260043 |
| Remainder after dividing by 97 | 40 | 41 |
| Structured communication | +++002/0260/04240+++ | +++002/0260/04341+++ |
Both bases equal 20,260,002 (97 × 208,866) plus 40 or 41, which gives the check digits. What happens next:
- 20 October: €1,210.00 arrives with
+++002/0260/04341+++. Auto-apply justifies it against F-2026-0043, which shows Payée. Without the reference, a €1,210.00 transfer from Brasserie Delvaux could belong to either invoice. - 28 October: €1,000.00 arrives with
+++002/0260/04240+++. F-2026-0042 shows Partiellement payée with €210.00 outstanding. - After 4 November: your reminder asks for the remaining €210.00 with the same reference,
+++002/0260/04240+++, not a new one. - 12 November: €210.00 arrives with that reference and is justified the same way; F-2026-0042 shows Payée.
Edge cases and common mistakes
| Situation | What to do |
|---|---|
| The customer wrote "invoice F-2026-0042" instead of the reference | There is no structured match, so nothing is applied automatically. Check amount and customer, justify the transaction yourself, and ask the customer to copy the reference next time. |
| The customer's bank refuses the reference as invalid | The check digits do not match. Check the reference with the method above. If you typed it yourself, send the corrected reference in writing. Do not change the invoice number. |
| One transfer pays several invoices, with a single reference | A justification in Transactions applies the whole transfer to one invoice, and OrdoGrid refuses more than that invoice's open balance. Record each invoice's share with Record payment (Bank transfer, the bank's reference in Reference) and ask the customer to pay invoices separately or to quote every reference. On a plan with Accounting, do not also justify that bank line against one of the invoices: the money is already recorded. |
| You changed N° after the reference was filled in | The reference still reflects the proposed number and could later clash with the invoice that receives that number. Empty Communication and save. |
| A payment request (Demande de paiement) and an invoice with the same digits, such as DP-2026-0042 and F-2026-0042 | Both get +++002/0260/04240+++. If both are open at the same time, type a different reference on one of them. Converting a payment request into its invoice keeps the payment request's reference, which is what you want. |
| Recurring invoices with one fixed reference per customer | Payments for different months cannot be told apart. Use one reference per invoice; Dupliquer and recurring invoices create a fresh one for each invoice. |
| A credit note | No reference: the credit reduces what the customer owes on the original invoice. If money must go back, see correct or credit an invoice. |
| You changed the reference after sending | The customer pays with the reference it received. Restore it, or tell the customer in writing which reference to use. |
Evidence to keep
- The invoice as issued (Original document in Settlement) and, for Peppol, the XML that carries the reference in BT-83, downloadable from Peppol → Outbox.
- The bank statement line with amount, date and communication: the CODA or camt.053 file, or the PDF statement.
- The Movement history in the invoice's Settlement panel, and the justification in Accounting → Transactions.
- The reminders you sent, each quoting the same reference.
- Written exchanges with a customer who paid with a wrong or missing reference.
Invoices are kept for seven years from 1 January of the year after issue; see invoice archiving in Belgium. Ask your accountant how long to keep bank statements with your accounting records.
FAQ
What does OGM mean on a Belgian invoice?
OGM is the Dutch abbreviation for a transfer with a structured communication; VCS is the French one. It is the 12-digit reference shown as +++002/0260/04240+++ that you copy exactly into the transfer, so that the payee's bank statement links the payment to that invoice.
Is a structured communication mandatory on a Belgian invoice?
No. It is not among the invoice mentions of article 5 of Royal Decree no. 1, and Peppol BIS treats the payment reference (BT-83) as optional. The sequential invoice number is mandatory. The structured communication is a Febelfin banking standard that we recommend on every invoice paid by transfer.
How do I check that a structured communication is valid?
Take the first ten digits and divide them by 97. The remainder must equal the last two digits; a remainder of 0 corresponds to 97. In a spreadsheet, =MOD(20260042,97) returns 40, which matches +++002/0260/04240+++.
Can I keep the same structured communication for a customer every month?
We advise against it. Payments for different invoices would carry the same reference and could no longer be matched automatically. Give each invoice its own reference, and reuse it only in reminders for that same invoice.
Can I type my own reference in OrdoGrid?
Yes, in Communication under Informations de paiement. Your text then replaces the generated reference on the PDF, in the QR code and in the Peppol invoice. OrdoGrid does not check its check digits, so verify them first, and keep it unique.
Does Peppol require a structured communication?
No. BT-83 is an optional Peppol BIS field. OrdoGrid fills it with the communication when the invoice carries your IBAN and something is left to pay, so the customer's software can prepare the transfer with the right reference.
A payment arrived without the reference: what now?
Check amount, date and customer against your open invoices, then justify the transaction in Accounting → Transactions or record it with Record payment. Ask the customer to use the reference next time; do not change the invoice to fit the payment.
Can a customer abroad pay with a structured communication?
Usually, yes, as free text: foreign banks are not bound by the Febelfin standard and may have no dedicated field. Ask the customer to paste the reference exactly. If their system requires an international reference, an ISO 11649 RF reference is the alternative.
Sources and references
- Febelfin, AOS1 structured remittance information OGM-VCS (v1.2, 27 July 2017)
- Febelfin, QR code on invoice for credit transfer initiation: implementation guidelines (v1.0)
- OpenPeppol, Peppol BIS Billing 3.0: cbc:PaymentID (BT-83 Remittance information)
- Royal Decree no. 1 on VAT (consolidated, Justel), art. 5: invoice mentions
- Finance Finland, Structure of the RF creditor reference (ISO 11649)