Register your Peppol participant IDs
Steps 2 to 4 of the Peppol configuration guide: make your company addressable on the Peppol network, and tell BigLedger how to address your trading partner. Your company is registered and given its 0230: participant ID, your partner’s ID is recorded with exactly one default, and the master data the document is built from is complete. It follows Step 1, where Peppol was switched on for the company.
- Step 2: register your company and add its participant ID.
- Step 3: record your trading partner’s participant ID.
- Step 4: make sure the master data LHDN needs is complete.
Step 2: Register your company and add its participant ID
Outcome: your company is published on the Peppol network, and BigLedger’s access point knows that anything addressed to it belongs to you.
Organisation Applet → your company → Peppol Config
This is the same tab as Step 1, and it has two sub-tabs that do two different jobs. You need both, in this order: Peppol Registration puts your company on the network, and Peppol Ids is what makes it addressable. Registering does not do the second job for you.
First, register — the Peppol Registration sub-tab. Press + and fill in the form:
- Special Identifier — which kind of Malaysian registration the identifier is. The list is
01SSM number,02Sabah,03Sarawak,04foreign businesses,05testing. - Business Identifier — the registration number itself.
- The business card that will be published in the Peppol directory: company name and registration number, contact name, e-mail and phone, and any websites or additional identifiers you want listed.
SAVE stores the registration as a draft. BigLedger builds your participant ID from the first two fields: 0230: + special identifier + registration number. For GSD, registered with SSM, that is 0230:01 followed by its SSM number. Write it down, because you type it again below.
A draft is not on the network. Tick the row in the Peppol Registration list and press Final. That is the moment BigLedger creates your participant with the Malaysian service metadata publisher (SMP), the directory other access points look you up in. Then open the row again. A Sign With Pdf tab is shown once the registration is FINAL. Choose the KYC document there (the PDF that evidences the company’s identity) and press Sign With PDF. BigLedger stores the file and signs it into the SMP for you, and if the SMP refuses it the upload fails with an error rather than looking as if it worked.
Then add the ID — the Peppol Ids sub-tab. Press +, type the participant ID the registration produced, and press Verify Participant ID. Verify is a live lookup in the SMP at the moment you press it: it passes only once the registration is FINAL, and Add stays greyed out until it does. Nothing from the Verify result is stored anywhere, so a green Peppol ID Valid yesterday says nothing about today, and Add — not Verify — is the step that writes. You may type the ID with or without its 0230: prefix; the lookup assumes 0230 when the prefix is omitted. Switch Default on and press Add.
The registration itself is not kept in your tenant. It is written into BigLedger’s access-point database through cross-tenant endpoints, which is why its status is checked in the access point’s own console and not on a screen of yours.
Adding the ID is the step that makes you routable. When you add it, BigLedger writes a routing row at its access point that sends any document addressed to that ID to this company. Changing or deleting the ID changes or removes the row with it. A registration with no ID behind it on Peppol Ids has no routing row, so a partner’s document addressed to you is delivered to nobody. The default ID is also the sender on every document you send (Step 3).
How you know it worked. On your side: the registration row says FINAL, and the ID is listed on Peppol Ids with Default on. You cannot see the routing row from your tenant, so the last check is BigLedger’s. Ask your BigLedger contact to confirm it: an operator opens your tenant in the access point’s Registered Companies screen and looks for exactly one row for your ID, against GSD. No row means the ID was never added on Peppol Ids. Two rows mean two companies hold the same ID, and both receive every document sent to it.
0230, so a finished ID looks like 0230: followed by your special identifier and registration number. Every Malaysian participant ID in BigLedger’s production tenants uses that prefix. An ID built with any other prefix will not resolve, and the symptom is not a validation message — it is a delivery that silently never arrives.02 or 03 are checked by hand against the state registry, and MDEC — which runs the Malaysian Peppol authority — puts that at 2 to 10 working days. The figure is MDEC’s, not BigLedger’s, and nothing in the applet speeds it up. Start those first and plan the rest of your go-live around them.Step 3: Record your trading partner’s participant ID
Outcome: BigLedger knows where to send this customer’s documents.
Customer Applet (or Supplier Applet) → the trading partner → Peppol Config tab
Add the participant ID your partner gave you and mark exactly one of them as the default. The default is the address BigLedger uses when it builds the document — and it reads it then, not at finalise. The sweep in Step 7 looks up the customer’s default ID and your company’s default ID at the moment it builds each document, and stamps both onto the Peppol document for good. A default flag you fix on Tuesday reaches every document the sweep builds from Tuesday on, and none it built on Monday.
The usual stopping point on this whole page lives here. A customer with Peppol IDs on file but none marked default produces a Peppol document stamped “Missing Peppol Sender or Receiver ID”, which stops before it is ever sent. So does your own company having registered IDs with none of them flagged default — the sender and the receiver are read the same way, by the default flag, one from your company’s list and one from the customer’s. If your first document stalls, check those two flags before anything else.
Treat the ID like a bank account number. The send goes to whichever access point the network has registered for that ID, so a mistyped or out-of-date ID delivers your invoice to another business, and History records the receipt all the same. Ask the partner for the ID in writing when the account is created, have a second person compare the record with the letter before the first invoice, and treat a later change the way you would a change to a supplier’s bank details.
Step 4: Make sure the master data LHDN needs is complete
Outcome: the Peppol document can be built and passes the network’s own validation.
Peppol does not have its own data requirements to learn. It builds its document from the same fields the LHDN pipeline needs — buyer and supplier name, tax number, identity type and value, an address with line 1, city and state, a contact number of 8 to 20 characters, industry code, and the classification and tax fields on every line.
What is different is when you find out. Nothing checks these before the document enters the waiting queue, so an incomplete customer does not hold the row back — it produces a Peppol document the builder refuses, one stage later. If you have already worked through MyInvois Setup, this step is done. If a document is failing the check, Validation Rules & Troubleshooting names the field.
Screenshot withdrawn; a recapture from a demo tenant is on the list.
Next: Steps 5 to 8, send the first document and follow it.
What success looks like for this part
On your company’s Peppol Config the registration is FINAL with the KYC PDF signed, and your 0230: participant ID is on Peppol Ids with Default on. The customer carries exactly one default participant ID, checked by a second person against the partner’s letter.
Common mistakes in this part
| Mistake | What you see | Fix |
|---|---|---|
| Building a participant ID from a format found elsewhere | Nothing arrives, and nothing reports an error | Malaysian participant IDs are published under scheme 0230. Register on the Organisation applet’s Peppol Config → Peppol Registration and add the ID it produced, rather than typing an ID you constructed |
| Registering in My Peppol Admin → Peppol Config → Registration | The form saves without complaint, and nothing exists: no registration, no ID, no routing row | That screen sends nothing. Register and add the ID on the Organisation applet’s Peppol Config tab (Step 2) |
| Registering, but never adding the ID on Peppol Ids | Every invoice you send stops at Missing Peppol Sender or Receiver ID, and nothing your partners send you arrives | Add the registered ID on Peppol Ids with Default on. That is the step that writes the routing row |
| Several Peppol IDs on a customer, or on your own company, and none marked default | “Missing Peppol Sender or Receiver ID” on the to-Peppol document | Mark exactly one as default on each side — the customer’s Peppol Config tab and your company’s |
| Registering a Sabah or Sarawak company the week you go live | The registration is still pending on launch day | Those two are verified by hand, and MDEC’s own figure is 2 to 10 working days. Register them first |
| Trusting a green Verify from last week | Add was never pressed, so there is no ID row and no routing row | Verify is a live lookup and stores nothing. Add is the step that writes |
Related documentation
- Peppol Configuration Guide: the whole setup, with its success check.
- My Peppol Admin Applet: field-level reference for the queues.
- Organisation Applet: the Peppol Config tab.