Skip to content
Peppol Configuration Guide

Peppol Configuration Guide

Some of your corporate customers will ask you to stop e-mailing PDFs and start delivering invoices straight into their system. That is what Peppol is for. By the end of this guide one real sales invoice will have left your company, crossed the network and landed in a trading partner’s software — and you will know exactly where to look when the next one does not. Budget an afternoon for the setup, plus a wait of a few working days if your company is registered in Sabah or Sarawak.

Peppol setup, at a glance

  1. Go live on MyInvois first (before you start).
  2. Turn Peppol on for the company, and the peppol notification box off unless you choose it instead (Step 1).
  3. Register the company on the Organisation applet, never in My Peppol Admin, then add its 0230: participant ID (Step 2).
  4. Record your partner’s participant ID on the customer, and have a second person check it (Step 3).
  5. Complete the master data LHDN needs (Step 4).
  6. Send only what Peppol can carry: invoices and credit notes (Step 5).
  7. Carry the order number onto the invoice (Step 6).
  8. Send one real, small invoice the partner expects, and follow it to History (Step 7).
  9. Know where documents sent to you arrive (Step 8).

The setup runs across three pages, in step order: Step 1 here, Steps 2 to 4 on Register the participant IDs, and Steps 5 to 8 on Send the first document and follow it. Why Peppol behaves the way it does beside MyInvois, e-mail and the e-invoice pools is on How Peppol fits beside MyInvois.

Meet GadgetSphere

GadgetSphere Distribution Sdn Bhd (GSD) sells to corporate clients — the arm that invoices other businesses rather than shoppers. Two of its larger clients have asked for Peppol delivery, and a third has said it will in the new year. Nothing about GadgetSphere’s LHDN e-invoicing changes because of that; Peppol is an extra channel bolted alongside it, not a replacement.

What you need to know first

Peppol delivers; LHDN clears. MyInvois is a clearance channel, and Peppol is a delivery network: your document travels from BigLedger’s access point to your partner’s, addressed by participant ID. They are two separate journeys for the same finalised document, and you need both. Peppol runs beside the LHDN pipeline, not after it, so a Peppol delivery can succeed while the LHDN submission is still Invalid, and the other way round. Watch the Waiting Queue, not the Posting Queue, and expect no customer-facing test network: your test is a real, small invoice in Step 7. The full picture, and the consequences of each point, are on How Peppol fits beside MyInvois.

Peppol configuration: before you start

  • The company is already live on MyInvois — see MyInvois Setup. Peppol reuses that master data wholesale, so doing it second saves the work twice. It also rides on the same switch: the job that writes a Peppol waiting-queue row at finalise is subscribed through the e-invoice trigger template, the one that starts the LHDN pipeline, so a tenant whose MyInvois plumbing is on (MyInvois Setup, Step 7) has it, and a tenant that never set MyInvois up does not — and nothing on your side shows which.
  • You have the company’s business registration number and a PDF that evidences the company’s identity, for the know-your-customer step.
  • Your trading partner has given you their Peppol participant ID, in writing, and has confirmed which document types they are registered to receive.
  • You can open the Organisation Applet (registration and IDs) and the My Peppol Admin Applet (the queues). If either is not in your applet list, ask your BigLedger contact to add it.

The Peppol processors have to be scheduled, and a new tenant does not get them. A tenant is created with a standard set of scheduled jobs and no Peppol processor is in it. Without them, everything above works and the waiting queue simply fills up: no error, no e-mail, and nothing on the screen saying why.

Check whether it is yours to do. Open the Scheduler applet, press +, and click Scheduler Code. If EINVOICE_WAITING_QUEUE_TO_XAP_DOC_PROCESSOR is in the Select Processor picker, you can schedule it yourself — every fifteen minutes is a sensible starting cadence for a queue that takes ten rows from each route a sweep — and press Run once to prove it works. If the picker does not offer it, that part is ours: ask in the same message as the applet access above, and name the processor code, the cadence you want and your tenant (what to send).


Step 1: Turn Peppol on for the company

Outcome: finalised documents from this company start producing Peppol waiting-queue rows.

Organisation Applet → your company → Peppol Config

The switch is the Peppol Status select at the top of the Peppol Ids sub-tab, not a field on the Peppol Registration sub-tab or on the E-Invoice tab. Set it to ENABLED and press the company’s Save — the select is written together with the company record, so choosing a value without pressing Save changes nothing. Nothing enters the Peppol pipeline for a company that is not enabled — no queue row, no error, exactly as with the LHDN e-invoice switch. (The E-Invoice Mechanism field on the E-Invoice tab offers a Peppol value, but the Peppol pipeline is switched by Peppol Status, not by it — the Organisation applet page has the detail.)

Then, on the same tab, look at Notification Config and its peppol checkbox. That is a different switch for a different moment: Peppol Status puts a row in the waiting queue when the document is finalised, and the notification checkbox puts one there again once LHDN has accepted the submission (accepted, not yet validated — the row is written when the submission goes through, before Valid or Invalid comes back).

They are not a pair to tick together. Each row becomes its own Peppol document, both are built from the same invoice, and nothing removes the duplicate — with both on, your partner receives the same invoice twice. Choose the moment you want the partner to receive the invoice: at finalise, or only once the e-invoice has been submitted. Which of the two BigLedger recommends is an open question (Q-1143); until it is answered, pick one and leave the other off.

The checkbox also exists on each customer record, and the two are read together as an or: the company’s tick or the customer’s tick is enough on its own, and unticking one side does not switch the row off while the other is still on. Its label reads peppol (only applicable if valid peppol id), and the brackets promise more than happens: the row is written on the strength of the tick alone, and the participant IDs are looked at only later, when the Peppol document is built (Step 7).

The other two boxes on that screen — other UCC channels and through customer portals — are not read by anything today. Ticking them changes nothing.

GadgetSphere enables GSD only. The retail company sells to walk-in shoppers who have no participant ID, so there is nothing for it to deliver.

Before the first document, make sure the Peppol processors are scheduled: a new tenant does not get them, and without them the waiting queue fills with no error. Schedule them yourself if the Scheduler offers them, or ask for them in the same message as the applet access (Before you start says how to tell which).

Steps 2 to 8, in brief

Step 2: Register your company and add its participant ID

Two sub-tabs on the company’s Peppol Config do two different jobs, and you need both, in order: Peppol Registration puts your company on the network, and Peppol Ids makes it addressable. Registering does not do the second job for you. Register on the Organisation applet, never in My Peppol Admin, whose registration screen saves nothing; press Final, sign the KYC PDF, then add the 0230: participant ID on Peppol Ids with Default on. Register a Sabah or Sarawak company first: MDEC puts its check at 2 to 10 working days (Step 2).

Step 3: Record your trading partner’s participant ID

Add the participant ID your partner gave you on the customer, mark exactly one as the default, and have a second person check it against the partner’s letter: a wrong ID delivers your invoice to another business (Step 3).

Step 4: Make sure the master data LHDN needs is complete

Peppol builds its document from the same fields the LHDN pipeline needs, and nothing checks them before a document is queued, so an incomplete customer fails one stage later (Step 4).

Step 5: Know which documents can actually travel

BigLedger builds four Peppol documents and nothing else. A sales debit note, a sales refund note, and a self-billed purchase credit note or refund note have no Peppol shape: raising one produces nothing on the Peppol side, with no message (Step 5).

Step 6: Carry the order reference onto the invoice

If the sale started as a purchase order or a sales order, put that number on the invoice: a document can cross the network and still be turned down at the far end for a missing order reference (Step 6).

Step 7: Send one document and follow it through

Finalise one straightforward invoice to the partner you set up in Step 3, then walk it through the three screens in order: the Waiting Queue, Internal Submission → To Peppol AP, and Internal Submission → Queue, then History. SUBMITTED is not delivered: only a row in History is a receipt (Step 7).

Step 8: Watch what arrives from the other direction

Documents other participants address to your participant IDs arrive under My Peppol Admin → External Reception: Docs Queue, Docs History and From Peppol AP (Step 8).

What success looks like

Thirty seconds, on the company you just set up:

  1. In the Organisation applet, on your company’s Peppol Config, the Peppol Registration row is FINAL with the KYC PDF signed, and your participant ID is on Peppol Ids with Default on. BigLedger has confirmed one row for that ID in Registered Companies. (The FINAL and the routing row live in the access point’s database; the Default flag is the one stored in your tenant, and it is the one the sweep reads.)
  2. One real invoice you finalised today is in Internal Submission → History — not merely marked SUBMITTED under To Peppol AP, and not sitting in the Queue with an error. (SUBMITTED was written before the send; the History row was written on the receiving access point’s receipt.)
  3. On that invoice’s To Peppol AP row, the Sender ID is your company’s participant ID and the Receiver ID is the one your partner gave you — both beginning 0230:. (Both were copied from the default flags at the moment of the build.)
  4. Your partner confirms they received it. Until somebody at the other end says so, you have tested four screens and not a delivery. Agree the test document with the partner before you finalise it — a real, small invoice they are expecting, so that the person at their end knows to look.

Common mistakes

MistakeWhat you seeFix
Turning Peppol Status and the peppol notification box onEvery invoice is queued twice, so the partner can receive it twice — once at finalise, once when LHDN accepts the submission — and two rows per document build up in the Waiting QueueChoose one moment and switch the other off (which one BigLedger recommends is Q-1143)
Going live without scheduling the Peppol processorsEverything configures cleanly, the Waiting Queue fills, nothing is ever sent, and there is no error anywhereSchedule them in the Scheduler applet before the first document, not after — none is in the default set a new tenant gets. Press Run once and watch a row leave the Waiting Queue; that is the only proof that counts
Looking for the Peppol switch on the Peppol Registration sub-tab or the E-Invoice tabA FINAL registration, an added ID, and no row ever appears in the Waiting QueueThe switch is the Peppol Status select at the top of the Peppol Ids sub-tab, saved with the company’s Save (Step 1)
Waiting for the Posting Queue to show somethingIt never will — the gate on that route is never opened, so nothing is written thereWatch the Waiting Queue

The mistakes that belong to Steps 2 to 4 are on Register the participant IDs, and those for Steps 5 to 8 on Send the first document.

Related documentation

Last updated on