Skip to content

Peppol Ap Admin Applet

The console for operating BigLedger’s own Peppol Access Point — AP here means Access Point, not Accounts Payable: the inbox every inbound network message lands in, the history of what was delivered, the receiver mappings that decide which customer a document is handed to, and the PINT Malaysia testbed. It creates no accounting entries and moves no stock. A document in Inbox History that the customer never received usually means no receiver mapping matched — the message is recorded and delivered to nobody, with no error — and a mapping exists only for a Peppol ID that has been added to a company on the Organisation applet’s Peppol Config tab.

Your job, and the screen for it

The jobScreen or tabRead
Find out why a customer never received a Peppol document — a receiver ID with no mapping is recorded and delivered to nobody, with no errorInbox History, then that tenant on Registered CompaniesTroubleshooting; Lifecycle and effects
Check that inbound messages are being routed — rows here mean routing has not runInbox Queue (normally empty)Lifecycle and effects
Confirm a customer’s new Peppol ID is routable — one row, against the right companyRegistered Companies › pick the tenant in the Tenant dropdown (read-only)Lifecycle and effects
Add, correct or remove a receiver mapping — not here: Edit’s SAVE does nothing, and the mapping follows the company’s Peppol IDOrganisation applet › company › Peppol ConfigSettings in other applets that control this applet
Validate PINT Malaysia sample files — name each file with invoice or creditnote; a malformed time still passes VALID; check times separatelyTestbed › Validation Test › upload a ZIP › Run CheckingTroubleshooting
Get access — a session in BigLedger’s access-point tenant, and read permissions for inbox and testbed screensApplet installation and login; Settings › Permission Set / Role PermissionBefore you can use it

Overview

The Peppol AP Admin Applet is the console for operating BigLedger’s own Peppol Access Point, not for a customer’s own Peppol traffic. Where the My Peppol Admin Applet is a tenant looking at its own outgoing and incoming documents, this applet is the access point looking at everything the network delivers to it — the inbox queue that every inbound AS4 message lands in, the history of what was delivered, the tenant-company receiver mappings that decide which customer a document is handed to, and the PINT Malaysia testbed used to prove conformance to OpenPeppol and MDEC.

It is an operations and accreditation tool. It creates no accounting entries, moves no stock, and has no document of its own that can be finalised or voided.

AP here means Access Point, not Accounts Payable. Nothing on this page is about supplier invoices or payables.

Where it fits

UpstreamThis appletDownstream
Any Peppol access point on the network sending an AS4 message to a participant ID that resolves to BigLedgerInbox Queue — one transient row per inbound messageA background job routes the document into the receiving tenant and removes the queue row
The routed documentInbox History — the retained access-point recordThe tenant’s own External Reception screens in the My Peppol Admin Applet
A company Peppol participant ID added, changed or deleted in the Organisation Applet → company → Peppol ConfigRegistered Companies — the routing table: one row per company Peppol ID, written, changed and deleted along with that IDRouting decisions for every inbound document
Sample XML supplied by OpenPeppol / MDEC for accreditationTestbed → Validation Test, Testbed → Sending TestValidation results, and (when the sending path works — see Troubleshooting) test transmissions through the access point

Screens and menus

MenuRouteWhat it showsActions
Inbox Queuepeppol-testbed-receiving-test-queueMessages waiting to be routed, newest first — Sender ID, Receiver ID, Organization ID, Document Creation Datetime, Document Creation Datetime UTC, Document Type ID, Process ID, Payload ID, Lookup Results Status, Lookup Results Endpoint URL, Lookup Results Duration, App Domain, App ModeView only — click a row for the read-only Details tab
Inbox Historypeppol-testbed-receiving-test-historyEvery message received, same columns, newest firstView only
Registered Companiesregistered-companiesThe receiver mappings for one selected tenant — Tenant Code, Tenant Comp Peppol ID, Comp Name, Comp Code, Created Date, Updated Date. A Tenant dropdown at the top lists every tenant on the platformPick a tenant; quick search; view only — the Edit screen has a SAVE button that does nothing (see Troubleshooting)
Testbed → Sending Testpeppol-testbed-sending-testSending tests — Test Name, DescriptionCreate (choose one of the four PINT MY test cases, paste XML, Submit)
Testbed → Validation Testpeppol-testbed-validation-testValidation test runs — Validation Test Name, Validation Test Code, Validation Test Description, Validation Test DateCreate; open a test, upload a ZIP of XML files, Run Checking, Send Only Valid XML; drill into one file to Revalidate or Send
Settingssettings/field-settings, settings/default-selection, plus the shared Webhook, Feature Visibility and Permission Set / User / Team / Role screensSee Configuration—
Personalizationpersonalization/personal-default-selection, personalization/sidebarPer-user defaults and sidebar—

The Registered Companies grid starts empty: its tenant code defaults to peppolap — the access point’s own tenant, which normally has no mappings of its own — and only fills in once a tenant is chosen from the dropdown.

Two things in the navigation do not do what their labels suggest. The Testbed parent entry only opens and closes its group — Sending Test and Validation Test beneath it are the screens. And the Personalization menu lists a Field Settings item that leads to the applet’s 404 page.

Inside the Inbox Queue listing there is an advanced-search box that does nothing; typing in it has no effect.

Screenshots needed

Screenshots for this applet are still to be captured. A capture session should take: the Inbox Queue listing with rows; the Inbox Queue Details read-only tab; the Registered Companies listing; the Validation Test listing; Validation Test → upload ZIP; the Checking grid showing VALID and INVALID rows with an error message; and the Sending Test input form with the Test Name dropdown open. Because every row on these screens is a real trading party’s identifier, captures must come from a scratch tenant or be redacted before publishing.

Configuration

Before you can use it

PrerequisiteWhereWhy
A session in BigLedger’s access-point tenantApplet installation and loginThe Inbox screens show the current tenant’s data, and the inbox is kept in BigLedger’s access-point tenant — on an ordinary customer tenant both grids are empty. Registered Companies goes further and refuses any caller that is not the access-point tenant.
A Peppol ID on each company that should receive documentsOrganisation Applet → company → Peppol ConfigAdding the ID is what creates the company’s receiver mapping, and deleting it deletes the mapping. No screen adds a mapping by hand, and My Peppol Admin’s Registration screen saves nothing. The Registration step on the Organisation tab, with the KYC PDF, puts the ID on the Peppol network so that senders can find this access point. It writes no mapping.
The AS4 receiving endpoint connectedPlatform configurationWithout it nothing arrives in the inbox.
The inbox routing job runningBigLedger supportIf it is not running, rows pile up in Inbox Queue and nothing is delivered onward.
Server-side permissions assignedSettings → Permission Set / Role PermissionEach screen’s data is behind its own permission — see below.

Applet settings

There are no working applet settings; both settings screens are inert:

  • Settings → Field Settings shows eight slide toggles — Unit Discount, SST/VAT/GST, WHT, Blanket Order, Segment, G/L Dimension, Profit Center, Project — that are not saved, and a SAVE button that does nothing. These are the labels of a sales-document settings screen and have nothing to do with Peppol.
  • Settings → Default Selection and Personalization → Default Selection offer a Default Branch and a Default Location dropdown. Changing either raises an error and SAVE saves nothing — and nothing in the applet would use either value if it did.

Settings in other applets that control this applet

SettingWhere it is setEffect here
Company Peppol participant IDsOrganisation Applet → company → Peppol ConfigEach ID saved there writes one receiver mapping row, editing the ID rewrites the row, and deleting the ID deletes it. That decides whether an inbound document reaches a tenant at all. The SMP registration on the same tab decides whether senders can find the ID. Neither is done in My Peppol Admin.

Feature visibility / permissions

The applet has no client-side permissions and no HIDE_* / SHOW_* keys, so the Feature Visibility screen has nothing to gate. Access is decided entirely server-side:

ScreenPermission needed to read
Inbox QueueAPI_TNT_DM_ERP_PPL_AP_INBOX_QUEUE_READ
Inbox HistoryAPI_TNT_DM_ERP_PEPPOL_AP_INBOX_DOC_HDR_READ
Registered CompaniesNo permission — the screen answers only when the caller is the access-point tenant
The Tenant dropdown on Registered CompaniesWhatever the platform’s tenant list requires; an empty dropdown is the symptom of not having it
Sending TestAPI_TNT_DM_ERP_PEPPOL_AP_TESTBED_SENDING_DOC_HDR_READ (create needs …_CREATE)
Validation Test listing and createAPI_TNT_DM_ERP_PEPPOL_AP_VALIDATION_TEST_HDR_READ / …_CREATE
Uploaded file listingAPI_TNT_DM_ERP_PEPPOL_AP_VALIDATION_TEST_FILE_ZIP_HELPER_READ
Run Checking and RevalidateAPI_TNT_DM_ERP_PEPPOL_AP_VALIDATION_TEST_FILE_ZIP_HELPER_RUN_CHECKING_READ

A role with none of these opens the applet and sees empty grids rather than an authorisation error.

Fields

Inbox Queue / Inbox History → Details — every control is read-only; this is a viewer, not a form. Several labels promise the Peppol envelope and deliver something else, and the gap matters when you are matching a message against the sender’s records. For a message received from the network:

FieldWhat it actually holds
Sender IDThe sending participant’s Peppol ID, as it arrived in the SBDH. It is also the ID the receiving tenant’s supplier record is looked up by — for a self-billed document, the customer record — so a document from a supplier whose Peppol ID is missing or different in the tenant arrives with no supplier record linked
Receiver IDThe receiving participant’s Peppol ID — the value matched against the receiver mapping table
Document Creation DatetimeThe document’s own issue date and time (midnight when the document carries no time), not the moment the envelope was created. Shown as a date only
Document Creation Datetime UTCWhen BigLedger’s access point received the message, stored in UTC — not the creation time converted. Shown as a date only, in your browser’s time zone
Document Type IDThe document’s type code from inside the invoice or credit note, not the Peppol document-type identifier that names the PINT profile
Process IDThe document’s own number (the invoice or credit-note ID), not the Peppol process identifier — which makes it the column to search when a sender quotes an invoice number
Organization ID, Payload IDAlways empty — the receiving code never fills either
Lookup Results Status / Endpoint URL / Duration; App Domain, App ModeAlways empty — the receiving path fills none of them, so a blank here is not a failed lookup and not a reason to resend

Registered Companies → Details — also entirely read-only: Tenant Code, Tenant Comp Peppol ID, Company Name, Company Code, Created Date, Updated Date.

Validation Test → Create — Validation Test Code, Name and Description, none of them checked; a code is not required to be unique.

Sending Test → Create

FieldMeaningRequiredNotes
Test NameOne of four fixed PINT Malaysia test cases: PINT-TC-BISC1-1 (MY Invoice to MY recipient), -2 (MY Credit Note), -3 (MY Self Billing Invoice), -4 (MY Self Billing Credit Note)No validatorThe list is hard-coded in the component, not fetched
XMLThe document to send, pasted as textNo validatorNothing pasted here leaves the screen. Submit posts an empty request to an unrelated service and still toasts Send Successfully (see Troubleshooting)

Checking grid (Validation Test → open a test → open an uploaded ZIP): No., File Name, File Size, File Format, Validation Status, Validation Error, Error Message, User Error Message, Created Date, Updated Date — one row per XML file found in the ZIP.

Lifecycle and effects

This is a master-data and operations applet. It has no document of its own, no journal and no stock movement; nothing here is finalised or voided.

Receiving — what happens to an inbound document

  1. An AS4 message arrives. The access point reads its Standard Business Document envelope, writes one Inbox Queue row and starts the routing job at once.
  2. The routing job copies the row into Inbox History — the permanent access-point record.
  3. It then looks up Registered Companies by the message’s receiver Peppol ID. For every mapping found it hands the document to that tenant, where it appears under External Reception.
  4. Finally it permanently deletes the Inbox Queue row.

Two consequences follow directly, and they are the two facts an operator needs. Inbox Queue is transient — under normal operation it is empty, because rows are removed as soon as they are routed; a row sitting in it means the routing job has not run. And a receiver ID with no mapping is not an error — the job simply finds nobody to deliver to, the Inbox History row is written, and the message is silently not delivered to any tenant.

How a mapping appears, changes and goes

A receiver mapping is written when a company’s Peppol ID is saved on the Organisation applet’s Peppol Config tab. The backend copies the tenant, the company and the ID into the access point’s own database at that moment. Editing the ID rewrites that row, and deleting the ID deletes it. This applet only reads the table.

The participant registration on the same tab does not write a mapping. That is the SMP step, with the KYC PDF. So the two can disagree. An ID can be routable here and still unknown to the network, so nothing is sent to it. Or a registration can stay on the network after its company ID was deleted, so documents arrive and land in Inbox History with nobody to deliver to.

A tenant cannot see this table, so the check that a new ID is routable belongs to BigLedger. After a customer adds an ID, an operator picks that tenant in Registered Companies and confirms one row for the ID, against the right company. A missing row means the ID was never saved in Organisation. Two rows for one ID mean two companies hold it, and both will receive every document sent to it.

Validation Test — what “Run Checking” actually checks

Run Checking checks every file extracted from the ZIP. For each file:

  • the document type is inferred from the file name — a name containing invoice selects the invoice rules, a name containing creditnote the credit-note rules, anything else yields an empty type;
  • the XML is validated against the PINT UBL schematron for that type;
  • it is validated a second time against the Malaysian jurisdiction rules, and every failed assertion is collected;
  • one assertion is deliberately dropped before the verdict — [ibr-119]-A time MUST be formatted hh:mm:ss with optional fractional seconds .sss and time zone expression (ibt-168).;
  • if nothing remains, the file is marked VALID; otherwise INVALID with the collected texts. The row’s Updated Date is stamped either way.

Revalidate on a single file checks that file again and returns either the failure texts or the single token THIS_DOCUMENTS_IS_VALID.

Uploading a ZIP attaches it to the open validation test. The success toast reads “Upload Image Successful” — a label inherited from the applet this screen was cloned from. The delete and download buttons on the uploaded-file screen do nothing.

Sending — Send Only Valid XML and the per-file Send do not work today; see Troubleshooting.

Related applets

  • My Peppol Admin Applet — the tenant-side counterpart. Documents routed from here surface there under External Reception. Its Registration screen saves nothing and writes no mapping.
  • My E-Invoice Admin Applet — the parallel LHDN pipeline; it shares the mandatory-field check but not this applet’s data.
  • Organisation Applet — holds the company Peppol status and participant IDs. Adding, editing or deleting an ID there writes, rewrites or deletes the receiver mapping listed here. The SMP registration is made there too.

Troubleshooting

SymptomCauseFix
Rows accumulate in Inbox Queue instead of clearingThe routing job is not running. When it runs it deletes the row it processed, so a non-empty queue is by itself the symptom.Ask support to check the routing job on the access-point tenant. The documents are not lost — they are re-processed when it resumes.
A document appears in Inbox History but the customer never received itNo receiver mapping matches the message’s Receiver ID. The history row is written first and then there is nobody to deliver to — nothing fails, nothing is delivered.Check the receiver ID against Registered Companies. If it is missing, add the ID to that company on the Organisation applet’s Peppol Config tab. Saving the ID is what creates the mapping. My Peppol Admin’s Registration screen saves nothing.
The same document is delivered to more than one recipientEvery mapping for that participant ID receives it, one for each company that holds the ID.Delete the ID from the company that should not receive it, on the Organisation applet’s Peppol Config tab. Its mapping is deleted with it. There should be one mapping per participant ID.
Registered Companies → Edit → SAVE appears to do nothingIt does nothing, and every field on the form is read-only anyway.Do not try to correct a mapping here. Edit or delete the company’s Peppol ID in the Organisation applet, and the mapping follows.
Run Checking fails with a server error for a whole ZIPThe document type is taken from the file name. A file whose name contains neither invoice nor creditnote has no type, no rule set can be found for it, and the whole run stops for every file in the ZIP.Name each file so it contains invoice or creditnote — for example PINT-MY-invoice-01.xml, PINT-MY-creditnote-01.xml — and upload again.
A file is reported VALID although it has a malformed timeThe [ibr-119] time-format assertion is removed from the result list before the verdict is decided.Expected behaviour of this build; validate time formats separately if they matter to you.
Send Only Valid XML or the per-file Send returns a 404The screen calls an address the server does not serve.Use the validation results only; sending from the testbed needs a fix to the applet.
Sending Test → Submit toasts Send Successfully but nothing is sentThe screen sends an empty request to an unrelated service, left over from the applet it was cloned from. No Peppol message is sent.Treat the Sending Test screen as not implemented.
The Inbox Queue advanced search does nothingThe search box is not connected to anything.Sort and filter with the grid’s own column filters instead.
Personalization → Field Settings shows the 404 pageThe menu entry leads to a screen that does not exist.Use Settings → Field Settings (which is itself inert — see Configuration).

Related documentation

Last updated on