to select ↑↓ to navigate
eInvoicing

eInvoicing

Open in ChatGPT
Ask ChatGPT about this page
Open in Claude
Ask Claude about this page

Een serviceprovider instellen

Een serviceprovider configureren

Met credentials ingesteld (Een provider instellen) kiest u hoe documenten in- en uitgaan: webhook voor realtime inbound, polling voor geplande pull, of beide.

Webhook (inbound, realtime)

Een webhook laat uw serviceprovider uw ERPNext informeren zodra een document arriveert — meestal binnen seconden.

1. Configureer de webhook-URL in het dashboard van uw provider:

https://uw-domein.nl/api/method/edocument_integration.api.webhook

De webhook accepteert:

  • Method: POST
  • Body: rauwe PEPPOL UBL-XML
  • Authenticatie: publiek (geen auth-header vereist — endpoint is allow_guest)

2. Wat gebeurt er bij ontvangst:

  1. EDocument-record aangemaakt
  2. XML als bijlage toegevoegd
  3. Profiel auto-gedetecteerd uit XML-namespace (CustomizationID)
  4. Bedrijf auto-gedetecteerd uit EndpointID van koper
  5. Validatie draait

Antwoord aan provider:

{ "status": "success", "result": { "edocument": "EDOC-00001" } }

3. Beveiligings-overwegingen

Omdat de endpoint publiek is, kan iedereen met de URL XML POSTen. In de praktijk is dat acceptabel omdat:

  • XML wordt gevalideerd tegen XSD + Schematron — onzin komt niet door
  • EndpointID van koper moet matchen aan een Company op uw site
  • Mislukte validatie geeft "Validation Failed", door een System Manager te beoordelen

Wilt u harder beveiligen:

  • Plaats een WAF-regel die alleen het IP-bereik van uw provider toestaat
  • Voeg een shared-secret-header-check toe in een before_insert-hook op EDocument

Polling (inbound, gepland)

Als uw provider geen webhooks ondersteunt (of u liever pull-semantiek gebruikt), haalt polling de inbox periodiek op.

Automatische polling: de app installeert een dagelijkse scheduled task die alle actieve Integration Settings met Recommand-integrator polled. Zie scheduler_events in edocument_integration/hooks.py.

Handmatige polling: op het EDocument Integration Settings-formulier: klik Poll Incoming Documents. De app:

  1. Belt de provider-inbox
  2. Voor elk ongelezen document: dedup-check op EDocument.reference, maakt EDocument aan, bijlage XML, validatie
  3. Returnt een telling: "Processed 2 invoice(s)" of "Skipped 1 duplicate(s)"

Duplicaten voorkomen

Beide inbound-paden zetten EDocument.reference op het provider-document-ID. Bij re-poll of webhook-retry voorkomt de check duplicaten:

existing = frappe.db.exists("EDocument", {"reference": document_id})
if existing:
    return {"skipped": True, "reason": "duplicate"}

Overgeslagen duplicaten worden in Error Log gelogd met het document-ID — audit-spoor blijft behouden.

Outbound — API-methode

Voor outbound configureert u niets extra naast credentials. De verzending gebeurt bij klikken op Transmit via API op een EDocument. Zie Verzenden & ontvangen.

Troubleshooting

Symptoom Waar te kijken
Webhook vuurt niet Provider-dashboard-logs — bevestig URL en payload
Webhook geeft 500 Error Log in ERPNext — volledige traceback
Polling levert niets op Integration Settings: verifieer credentials; check API key niet geroteerd
Transmission succes maar ontvanger krijgt niets Tracking-dashboard provider — kan in wachtrij staan bij Access Point ontvanger
Dubbele documenten Check dat reference wordt gezet; oude EDocument zonder reference triggert dedup-check niet
Last updated 3 days ago
Was this helpful?
Thanks!