How your documents flow through the Peppol network
Your ERPREST API
PeppolUBL 2.1 Conversion
AS4 GatewayDigital Signing
Peppol NetworkGlobal Delivery
RecipientTrading Partner
Cloud Hosted
Encryption
Digital Signing
Archiving
Compliance
Participants
Manage Peppol participant identifiers
Participant ID
Scheme
Services
SML Status
Actions
Loading participants...
Service Groups
Manage document types and processes for your participants
Total Service Groups
-
Document Types
-
Active Processes
-
Registered Service Groups
Loading service groups...
Endpoints
AS4 access point configuration and transport settings
Total Endpoints
-
Transport Protocols
AS4
Registered Endpoints
Loading endpoints...
Invoice Hub
Drafts, imported & sent invoices. Invoices that couldn't be delivered appear at the top as exceptions to correct and resend.
Loading invoices…
Document Archive
Long-term storage and retrieval of exchanged documents
Total Documents
-
Invoices
-
Credit Notes
-
Storage Used
-
Document
Type
Sender
Recipient
Date
Actions
Archive is empty
Documents will appear here after exchange
Showing 0 documents
Reports
Generate compliance reports, transaction logs, and audit trails. Export to CSV, Excel, or PDF.
Popular
Monthly Transaction Summary
Overview of all documents sent and received, grouped by month with delivery status breakdown.
Delivery Report
Detailed delivery status for all AS4 transmissions including timestamps, receipts, and error details.
Failed Transactions
All failed deliveries with error codes, validation failures, and troubleshooting details.
Trading Partner Report
Document volume and delivery stats per trading partner. See your most active recipients.
Document Type Breakdown
Distribution of invoices, credit notes, and other document types with volume trends.
Audit
Compliance & Validation
EN16931 and Peppol BIS 3.0 validation pass rates, error codes, and compliance status.
Reconciliation Report
Match sent invoices against delivery receipts. Identify unreconciled or disputed documents.
Archive & Retention
10-year retention compliance status, storage usage, and archived document inventory.
Export
Full Transaction Log
Complete audit trail of all transactions. Export to CSV, JSON, or XML for your records.
Audit
User Activity (Audit Trail)
Who changed, sent, or deleted invoices — with before/after values. Filter by user, action, and date.
Need a custom report?
Tell us what you need — we'll build it and get back to you within 24 hours.
Custom Report Request
We'll get back to you within 24 hours
Connectors
Pre-built billing system connectors — receive invoices via webhook automatically
Your connectors & health
Register the connectors you run so your provider can see their status.
Loading…
EBS
Oracle E-Business Suite R12.2
Connected · Sandbox
On-prem ERP · Integrated SOA Gateway (ISG) · AR → Peppol / Fawtara · outbound (issue)
A lightweight, outbound-only agent runs inside your network and talks to EBS over the Integrated SOA Gateway (ISG). No inbound firewall holes. Configure once per operating unit — the mapping below is configuration, not code.
Business Event System · oracle.apps.ar.transaction.completed
DFF on RA_CUSTOMER_TRX · UUID/QR + attachment
Extract AR header, lines, tax & parties
Map EBS → canonical (config-driven)
Validate + clear via OTA Fawtara
Write UUID/QR back into EBS
EBS Receivables (AR / ZX / HZ) source columns mapped to the GoRoute canonical model. Parameterised per operating unit, tax code and item/UoM convention.
Canonical field
EBS source
number
RA_CUSTOMER_TRX_ALL.TRX_NUMBER
issue_date
RA_CUSTOMER_TRX_ALL.TRX_DATE
seller
Operating-unit LE · TIN/CR from org setup
buyer
HZ_PARTIES + HZ_CUST_ACCOUNTS (TIN → 9959)
lines[]
RA_CUSTOMER_TRX_LINES_ALL (item, qty, price, UoM)
tax
ZX_LINES (rate, taxable amount → UBL category)
totals
line extension / tax-excl / tax-incl / payable
clearance write-back
UUID, QR, status → DFF on RA_CUSTOMER_TRX
Extract → Map → Clear → Write-back
Pulls a sample AR invoice from the EBS sandbox and runs it through the full GoRoute pipeline.
Supplier e‑invoices addressed to your Peppol ID are received by GoRoute (you are corner 4). The same outbound-only agent pulls them — or receives a signed invoice.received webhook — and loads them into the EBS Payables Open Interface, so accounts payable is automated without opening any inbound firewall port.
Peppol AS4 inbound (C3 → C4) · OTA Fawtara inbound
Payables Open InterfaceISG-REST or staging
OOMCO Oman OU · LE: Oman Oil Marketing Company
OAuth2 token · mTLS · IP allow-list (same agent)
Webhook invoice.received → stage → Payables Open Interface Import
Supplier site by TIN / Peppol ID (9959) · 2‑/3‑way PO match
Received invoice (Peppol BIS / PINT OM canonical) mapped to the EBS Payables Open Interface. The supplier becomes the vendor; a PO reference drives 2‑/3‑way matching.
Simulates a supplier e‑invoice arriving over Peppol for OOMCO and loads it into the EBS Payables Open Interface, matched to its PO.
POS
OOMCO Fuel POS → Fawtara
Live QR
Real-time pump sale · Oracle APEX/ORDS → certified Oman AP → Fatoora QR
Mints a fresh OOMCO fuel sale on every click (based on the real Al Mabeela MEGA SS receipt) and runs the whole flow end‑to‑end: a POS event is sent to GoRoute, which validates against PINT OM, builds the Fatoora QR, generates the Tax Data Document and clears it — landing on your Transactions page as Delivered, exactly as an Oracle APEX/ORDS or EBS ISG call would.
Pump event (POS)
POST /pos/fuel-invoice
Station
Al Mabeela MEGA SS · 001718
Site VAT
OM1100015908
Receipt / Pump
18513 · Pump 7
Product
MOGAS 91
Volume
4.365 L @ 0.229 RO
VAT (5%)
0.048 RO
Total
1.000 RO
The Fawtara-compliant receipt with its scannable QR appears here.
Z
Zuora
Waiting for first event
Subscription billing · Webhook integration
Choose Integration Method
1
Enable PEPPOL Extract in Zuora
a.In Zuora, go to Billing → E-Invoicing → PEPPOL Extract
b.Create an e-invoice file template — map your Zuora billing fields to PEPPOL BIS 3.0 UBL elements
c.Configure e-invoice settings — set document types (Invoice, Credit Note) and enable auto-generation on posting
d.Zuora will generate PEPPOL-compliant XML files for each billing document automatically
Used to verify webhook payloads are genuinely from Zuora. Set this as the shared secret in your callout configuration.
HMAC Verification: GoRoute verifies every inbound webhook using HMAC-SHA256. Zuora signs each callout payload with this shared secret and includes the signature in the X-Zuora-Signature header. GoRoute recomputes the HMAC and rejects any request where the signature does not match — preventing spoofed or tampered payloads from being processed.
••••••••••••••••••••••••••••••••
3
Configure Zuora Notification Callout
a.Go to Zuora → Platform → Notifications → Notification Definitions
b.Click + Add New Notification, set Event Type to Invoice Posted
c.Under Callout, select Active, method POST, Content-Type application/json
d.Paste the webhook URL from Step 1 into the Callout Base URL field
e.In the request body, use Zuora merge fields to include full invoice + line items + account data
f.Save and activate the notification — GoRoute converts JSON → UBL 2.1 → validates → delivers via AS4
Production Architecture: Trigger + Fetch
In production, GoRoute treats the webhook as a trigger signal, not the sole data source. When a callout arrives, GoRoute:
Authenticates the webhook (HMAC verification)
Deduplicates the event (idempotency check on invoice ID)
Uses the Zuora REST API to fetch the full invoice object — including line items, taxation items, account details, legal entity, and buyer identifiers
Maps the enriched data into compliant UBL 2.1 / Peppol BIS 3.0
Validates, delivers via AS4, and archives evidence
Why? Peppol/UBL compliance requires more structured data than a lightweight webhook payload alone. The webhook triggers processing; the Zuora API provides the full source of truth.
4
Required Event Subscriptions
Invoice Posted
Primary — triggers UBL conversion + AS4 delivery. Use this over "Invoice Created" — posted invoices are finalized billing documents.
Credit Memo Posted
Optional — sends Peppol credit notes
Notification Filters: Zuora supports filters on notification definitions. You can scope events by entity, business unit, invoice amount, account segment, or custom logic. Use filters to send only relevant invoices to GoRoute — e.g., filter by country = OM for Oman-only compliance, or by amount threshold for phased rollout.
5
Verify Connection
Send a test event to confirm the webhook is configured correctly.
Fallback: Polling Mode — If your environment cannot receive inbound webhooks, GoRoute supports a polling fallback where it queries the Zuora API using object queries and a updatedDate high-water mark. Webhook/callout is the recommended primary pattern; polling should be used only when webhooks are not possible. Contact support to enable polling mode.
Status
Waiting for events
Environment
Test (Sandbox)
Last Event
—
Events Processed
0
Last Successful Sync
—
Failed Events
0
Recent Events
Timestamp
Invoice
Status
Validation
Actions
No events received yet. Complete setup and post an invoice in Zuora, or use Send Test Event to verify.
Zuora → UBL 2.1 Field Mappings
Default transformation rules applied during conversion. Overrides per field coming soon.
Zuora Field
→
UBL Element
Notes
InvoiceNumber
→
cbc:ID
Invoice identifier
InvoiceDate
→
cbc:IssueDate
YYYY-MM-DD
DueDate
→
cbc:DueDate
Payment due date
Currency
→
cbc:DocumentCurrencyCode
Passed through from Zuora as-is/td>
Account.PeppolId
→
cac:AccountingCustomerParty
Receiver endpoint (scheme:id)
Amount
→
cac:LegalMonetaryTotal
TaxExclusiveAmount + TaxInclusiveAmount
TaxAmount
→
cac:TaxTotal/cbc:TaxAmount
Total tax
InvoiceItems[].ChargeAmount
→
cac:InvoiceLine/cbc:LineExtensionAmount
Per-line net amount
TaxationItems[].TaxRate
→
cac:TaxCategory/cbc:Percent
VAT rate (e.g. 5%)
BillToContact.*
→
cac:PostalAddress
Street, city, postal code, country
Oman-Specific Compliance Notes
Zuora invoices are passed through in their billing currency. When auto-convert is enabled and the receiver's jurisdiction requires a different currency (e.g., OMR for Oman), GoRoute converts amounts using live Central Bank exchange rates at invoice time. GoRoute validates that the 5% VAT rate matches Oman's standard rate and that tax amounts are mathematically consistent with line totals
VAT Registration
Oman VAT numbers use the 9959 participant identifier scheme. GoRoute validates that the supplier VAT number (e.g., OM3100209729) is present and correctly formatted in cac:AccountingSupplierParty.
B2B vs B2C Determination
GoRoute checks whether the buyer has a VAT/Tax number. If Account.TaxNumber is blank, GoRoute classifies the transaction as B2C and applies appropriate CIUS rules. B2B invoices require a buyer identifier and may need a Peppol endpoint ID for network delivery.
Currency & Tax Handling
Zuora invoices are passed through in their billing currency. When auto-convert is enabled and the receiver's jurisdiction requires a different currency (e.g., OMR for Oman), GoRoute converts amounts using live Central Bank exchange rates at invoice time. GoRoute validates that the 5% VAT rate matches Oman's standard rate and that tax amounts are mathematically consistent with line totals.
Compliance Channels
GoRoute routes Oman invoices to the appropriate channel: Peppol AS4 for network-registered recipients, tax authority reporting when required by Oman regulations, and PDF + UBL archive for audit evidence. GoRoute does not replace the billing system's customer-facing PDF — it generates the structured compliance artifact alongside it.
a.Click Connect with QuickBooks below to authorize GoRoute via OAuth 2.0
b.Sign in to your Intuit account and select the company file to connect
c.Grant GoRoute read access to Invoices, Customers, and Company Info
d.GoRoute stores an encrypted refresh token — re-authorization is automatic
2
Webhook Endpoint
Intuit sends real-time notifications when invoices are created or updated.
POST/connectors/quickbooks/webhook/quickbooks
Configure this URL in Intuit Developer Portal → Webhooks. Select Invoice and CreditMemo entity events. The connector verifies the intuit-signature header via HMAC-SHA256.
3
Verifier Token
HMAC-SHA256 Verification: Intuit signs each webhook payload with this verifier token. GoRoute validates the intuit-signature header to ensure authenticity and reject tampered requests.
••••••••••••••••••••••••••••••••
What GoRoute Handles
QuickBooks JSON → UBL 2.1 conversion
Schematron validation (EN16931 + BIS)
AS4 delivery via Peppol network
OAuth token refresh & retry logic
4
Verify Connection
Send a test QuickBooks invoice through the GoRoute pipeline.
Status
Waiting for events
Platform
QuickBooks Online
Last Event
—
Events Processed
0
Last Successful Sync
—
Failed Events
0
Recent Events
Timestamp
Invoice
Status
Validation
Actions
No events received yet. Complete setup and create an invoice in QuickBooks, or use Send Test Event to verify.
QuickBooks → UBL 2.1 Field Mappings
Default transformation rules applied when converting QuickBooks invoices to Peppol BIS 3.0.
QuickBooks Field
→
UBL Element
Notes
DocNumber
→
cbc:ID
Invoice number
TxnDate
→
cbc:IssueDate
YYYY-MM-DD
DueDate
→
cbc:DueDate
Payment due date
CurrencyRef.value
→
cbc:DocumentCurrencyCode
ISO 4217 currency
CustomerRef
→
cac:AccountingCustomerParty
Customer lookup via API
TotalAmt
→
cac:LegalMonetaryTotal
Tax-inclusive total
TxnTaxDetail.TotalTax
→
cac:TaxTotal/cbc:TaxAmount
Total tax amount
Line[].Amount
→
cac:InvoiceLine/cbc:LineExtensionAmount
Line net amount
Line[].SalesItemLineDetail
→
cac:Item/cbc:Name
Item description
BillAddr.*
→
cac:PostalAddress
Street, city, postal, country
X
Xero
Waiting for first event
Accounting · OAuth 2.0 · Webhook integration
1
Connect Xero Organisation
a.Click Connect with Xero below to authorize GoRoute via OAuth 2.0 (PKCE)
b.Sign in to your Xero account and select the organisation to connect
c.Grant GoRoute read access to Invoices, Contacts, and Organisation scopes
d.GoRoute handles token refresh automatically — connections persist until revoked
2
Webhook Endpoint
Xero fires notifications when invoices are created, updated, or approved.
POST/connectors/xero/webhook/xero
Configure in Xero Developer Portal → Webhooks. GoRoute responds to the Intent to Receive validation automatically. Payloads are verified via x-xero-signature HMAC-SHA256.
3
Webhook Signing Key
HMAC-SHA256 Verification: Xero signs each webhook with the key displayed below. GoRoute verifies the x-xero-signature header to ensure payload authenticity.
••••••••••••••••••••••••••••••••
What GoRoute Handles
Xero JSON → UBL 2.1 conversion
Schematron validation (EN16931 + BIS)
AS4 delivery via Peppol network
Multi-org tenant isolation
4
Verify Connection
Send a test Xero invoice through the GoRoute pipeline.
Status
Waiting for events
Platform
Xero
Last Event
—
Events Processed
0
Last Successful Sync
—
Failed Events
0
Recent Events
Timestamp
Invoice
Status
Validation
Actions
No events received yet. Complete setup and approve an invoice in Xero, or use Send Test Event to verify.
Xero → UBL 2.1 Field Mappings
Default transformation rules applied when converting Xero invoices to Peppol BIS 3.0.
Xero Field
→
UBL Element
Notes
InvoiceNumber
→
cbc:ID
Invoice identifier
Date
→
cbc:IssueDate
YYYY-MM-DD
DueDate
→
cbc:DueDate
Payment due date
CurrencyCode
→
cbc:DocumentCurrencyCode
ISO 4217 currency
Contact
→
cac:AccountingCustomerParty
Contact name + tax number
Total
→
cac:LegalMonetaryTotal
Tax-inclusive total
TotalTax
→
cac:TaxTotal/cbc:TaxAmount
Total tax amount
LineItems[].LineAmount
→
cac:InvoiceLine/cbc:LineExtensionAmount
Line net amount
LineItems[].TaxType
→
cac:TaxCategory/cbc:Percent
Tax rate from tax type lookup
Contact.Addresses[0]
→
cac:PostalAddress
Street, city, postal, country
Odoo
Odoo
Waiting for first event
Invoicing · Accounting · XML-RPC / REST API
Choose Integration Method
1
Odoo Connection Details
GoRoute uses these credentials to call account.move via XML-RPC. Credentials are encrypted at rest.
2
Polling Configuration
a.GoRoute polls Odoo every 5 minutes for newly posted invoices (state = 'posted')
b.Uses a high-water mark on write_date to pick up only new/changed records
c.Fetches invoice lines, partner data, and tax details in a single batch call
d.Converts to Peppol BIS 3.0 UBL, validates, and delivers via AS4
1
Webhook Endpoint
Configure Odoo's automated action to POST invoice data to GoRoute on validation.
POST/connectors/odoo/goroute/webhook/status
2
Install GoRoute Module
a.Download the goroute_peppol module from Settings → Apps
b.Configure the GoRoute API key in Odoo Settings → Peppol Integration
c.The module creates an Automated Action on account.move validation that POSTs to GoRoute
d.Each invoice is sent as JSON with partner, tax, and line-item data
What GoRoute Handles
Odoo account.move → UBL 2.1 conversion
Schematron validation (EN16931 + BIS)
AS4 delivery via Peppol network
Multi-company & multi-currency support
3
Verify Connection
Send a test Odoo invoice through the GoRoute pipeline.
Status
Waiting for events
Platform
Odoo 17+
Last Event
—
Events Processed
0
Last Successful Sync
—
Failed Events
0
Recent Events
Timestamp
Invoice
Status
Validation
Actions
No events received yet. Complete setup and post an invoice in Odoo, or use Send Test Event to verify.
Odoo → UBL 2.1 Field Mappings
Default transformation rules applied when converting Odoo invoices to Peppol BIS 3.0.
Odoo Field
→
UBL Element
Notes
name
→
cbc:ID
Invoice number (e.g., INV/2026/0001)
invoice_date
→
cbc:IssueDate
YYYY-MM-DD
invoice_date_due
→
cbc:DueDate
Payment due date
currency_id.name
→
cbc:DocumentCurrencyCode
ISO 4217 currency
partner_id
→
cac:AccountingCustomerParty
Partner name + VAT number
amount_total
→
cac:LegalMonetaryTotal
Tax-inclusive total
amount_tax
→
cac:TaxTotal/cbc:TaxAmount
Total tax amount
invoice_line_ids[].price_subtotal
→
cac:InvoiceLine/cbc:LineExtensionAmount
Line net amount
invoice_line_ids[].tax_ids
→
cac:TaxCategory/cbc:Percent
Tax rate from account.tax
partner_id.street/city/zip/country
→
cac:PostalAddress
Partner address fields
More Connectors
SAP
SAP
Coming Soon
S/4HANA · Business One · IDoc/BAPI
ORC
Oracle / NetSuite
Coming Soon
SuiteScript · Cloud ERP · Multi-subsidiary
MS
Microsoft Dynamics 365
Coming Soon
Business Central · Finance · Power Automate
How Connectors Work
1
Billing System
Invoice posted in Zuora / ERP
2
Webhook Fires
Invoice payload sent to GoRoute endpoint
3
Convert & Validate
Mapped to Peppol BIS 3.0 UBL, Schematron validated
Delivered via Peppol
AS4 message sent, receipt confirmed
API & ERP Integrations
Connect your ERP system to GoRoute.ai Peppol for automated document exchange
Pre-Built Connectors Available
Zuora connector is live! Send invoices with one click — no coding needed.
GoRoute.ai Peppol provides a comprehensive REST API for seamless integration with any ERP system. Send invoices, receive documents, and manage participants programmatically.
Invoices are retained for compliance and audit purposes and cannot be deleted from the portal.
If you need a document removed, please contact us at
support@example.com
and our team will assist you.
Total
0
Sent
0
Delivered
0
Failed
0
Import batch:
Invoice / ID
Direction
Status
Participant
Business
Document Type
Created ▼
Actions
Loading transactions...
Showing 0 transactions
Sender Domain
Send invoice emails from your own domain. After registering, add the DNS records below to your DNS provider; verification typically completes within a few hours.
Lookup Recipient
Search the Peppol network for participants and their capabilities
Get notified when documents are delivered or received
Webhook Integration Guide
What are Webhooks?
Webhooks are automated HTTP POST requests that GoRoute sends to your server when events occur. Instead of polling our API, you get instant notifications when invoices are delivered, received, or fail.
Available Events
transaction.delivered
Fires when your outgoing invoice is successfully delivered to the recipient's Peppol Access Point.
transaction.failed
Fires when invoice delivery fails (validation error, recipient not found, network issue).
transaction.received
Fires when you receive an incoming invoice from another Peppol participant.
Setup Steps
1
Create an HTTPS endpoint on your server
Your endpoint must accept POST requests and return a 2xx status code.
2
Register your webhook URL here
Click "Add Webhook", enter your URL, and select which events to subscribe to.
3
Save your webhook secret
Copy the whsec_... secret shown after creation. Use it to verify webhook signatures.
4
Test your webhook
Click the "Test" button to send a test.ping event and verify your endpoint is working.