Meerdere afleverkanalen instellen: Peppol, DICO, andere netwerken, e-mail fallback en prioriteiten.
Een van de krachtigste eigenschappen van de PSB is multi-channel levering: via één API-integratie bereik je ontvangers op Peppol, andere procurement-netwerken en per e-mail. De PSB kiest automatisch het beste kanaal, maar je kunt de routering ook zelf sturen.
Standaard routeert de PSB alle facturen via Peppol. Het systeem controleert of de ontvanger op Peppol is geregistreerd en stuurt de factuur via het Peppol-netwerk. Als de ontvanger niet op Peppol staat, treedt de fallback in werking.
Door meerdere hooks te configureren met Send*-topics, kun je aanvullende kanalen activeren:
-0003:XC...) als identifierDe PSB selecteert het kanaal op basis van een prioriteitsvolgorde:
InvoiceSent gaat voor een wildcard-hookVoordat je een factuur verstuurt, kun je via queryRecipientParty controleren welk kanaal de PSB zal gebruiken:
GET /api/v1/queryRecipientParty?identifier={schemeID}:{id}
De response toont het geselecteerde kanaal en de beschikbare alternatieven.
In sommige gevallen wil je het automatische kanaalselectie overrulen. Dat kan met de ?channel={hookId} queryparameter bij de send-endpoints:
POST /api/v1/{partyId}/salesInvoice/send?channel=hook-123-abc
Dit forceert de PSB om het specifieke kanaal (hook) te gebruiken, ongeacht de automatische selectie.
Een veelgebruikte combinatie is een Peppol-hook met een mail-hook als fallback. Via conditional output topics publiceert de Peppol-hook bij delivery-fouten (HTTP 400, 404 of 500) een Send*Fallback-topic, waarop de mail-hook luistert. Wanneer dezelfde mail-hook ook expliciet luistert op Send* (naast Send*Fallback), verschijnt deze automatisch als kanaal peppol-fallback in de queryRecipientParty-response. Daarmee kan de aanroepende code het kanaal expliciet kiezen via ?channel=peppol-fallback op de send-endpoints, wat handig is voor scenario's waarin Peppol bewust wordt overgeslagen.
Bij Duitse ontvangers weet je niet altijd vooraf of de tegenpartij op Peppol staat, en of deze ZUGFeRD (B2B) dan wel XRechnung (B2G, verplicht voor Duitse overheidsinstellingen) per e-mail verwacht. Duitse overheidsinstellingen mogen geen ZUGFeRD ontvangen; die krijgen verplicht pure XRechnung-XML. Het ZUGFeRD-PDF-containerformaat gaat sowieso niet over Peppol.
Architectuur (3 hooks): één Peppol-hook met conditional output vangt HTTP 404 (ontvanger niet op Peppol) op en publiceert Send*Fallback. Twee mail-hooks luisteren op dat fallback-topic en leveren, afhankelijk van filter, ZUGFeRD of XRechnung per e-mail.
Peppol-hook (Send*) --404--> Send*Fallback
|
+------------+------------+
| |
ZUGFeRD-email (DE) XRechnung-email (DE + DE:LWID)
Hook 1 -- Peppol met conditional fallback
{
"id": "peppol",
"action": "peppol",
"name": "peppol hook",
"topics": ["Send*"],
"output": [
{ "when": "404", "topic": "Send*Fallback" }
],
"isActive": true
}
Optioneel ook 400/500 opnemen in output voor een breder Peppol-met-emailfallback-patroon. Bij een 404 publiceert deze hook Send*Fallback in plaats van het standaard Send*-resultaat.
Hook 2 -- ZUGFeRD via e-mail (B2B, standaard Duitse fallback)
["Send*Fallback", "Send*"] (ook op Send*, zodat het kanaal als peppol-fallback in queryRecipientParty verschijnt)receiver.contains("DE")targetDocumentTypeId forceert hybride ZUGFeRD/Factur-X (PDF/A-3 met embedded CII) voor verzending:
econnect-docid::urn:peppol:doctype:pdf+xml##urn:cen.eu:en16931:2017#conformant#urn:econnect:germany:billing:Factur-X:1.0::D22BHook 3 -- XRechnung via e-mail (B2G, Duitse overheid)
["Send*Fallback", "Send*"]receiver.contains("DE") && receiver.contains("DE:LWID")targetDocumentTypeId forceert pure XRechnung 3.0 UBL (geen PDF):
urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0::2.1DE:LWID staat voor Leitweg-ID in de ontvanger-identifier (Peppol schemeID 0204).Geen dubbele aflevering bij DE:LWID
Beide mail-hooks matchen op een overheidsontvanger, want een DE:LWID-identifier bevat ook DE. Bij meerdere hooks die op hetzelfde topic matchen, geeft de PSB voorrang aan het langste filter (op aantal karakters): het XRechnung-filter is langer en wint dus, waardoor de ZUGFeRD-hook niet wordt getriggerd voor overheidsontvangers. Je hoeft de filters daarom niet handmatig wederzijds exclusief te maken. Deze filter-lengte-regel komt bovenop de algemene prioriteitsvolgorde hierboven (partyId voor environment, specifiek topic voor wildcard, hook-id als tiebreaker).
Mailhook-parameters (fallbackEmail, includeAttachment, filename, templateId, standaardafzender noreply@econnect.email) staan beschreven in E-mail hooks configureren. Formaatdetails: Factur-X / ZUGFeRD en XRechnung.
eConnect transformeert UBL-facturen automatisch naar het cXML-formaat dat Coupa verwacht. De koppeling vereist:
De Ariba-koppeling werkt met 1-op-1 handelsrelaties, anders dan het open Peppol-netwerk:
eConnect transformeert een UBL-factuur naar cXML en levert deze af bij de Ariba-ontvanger, op dezelfde manier als bij de Coupa-transformatie hierboven. Het onboardingtraject verloopt als volgt:
Abonnementsdrempel SAP: voor geautomatiseerde verzending/ontvangst van cXML via je eigen ERP-pakket (via eConnect) is minimaal SAP-abonnementsniveau Silver (Enterprise) vereist. Dit niveau dekt volumes van 25 tot 99 documenten per jaar.
De PSB converteert automatisch tussen alle gangbare e-factuurformaten. Als je een factuur in NLCIUS-formaat verstuurt maar de ontvanger XRechnung verwacht, transformeert de PSB het document automatisch. Dit werkt voor alle ondersteunde standaarden: BIS Billing, NLCIUS, PINT, XRechnung, Svefaktura, ebInterface, DICO, SETU en meer.
De transformatie is beschikbaar vanaf het 10K pakket.
Een groot bedrijf verstuurt facturen aan:
Alle facturen worden via dezelfde API verstuurd (POST /api/v1/{partyId}/salesInvoice/send). De PSB zorgt per factuur voor de juiste routering, het juiste format en het juiste kanaal.
De PSB selecteert het kanaal op basis van een prioriteitsvolgorde. PartyId-level hooks gaan voor op environment-level hooks, en specifieke topics gaan voor wildcards. Standaard routeert de PSB via Peppol. Als de ontvanger niet op Peppol staat, treedt de geconfigureerde fallback in werking (bijv. DICO, Coupa of e-mail).
Ja, met de ?channel={hookId} queryparameter bij de send-endpoints forceer je een specifiek kanaal. Dit overschrijft de automatische kanaalselectie. Je kunt vooraf via queryRecipientParty controleren welk kanaal de PSB zou selecteren en op basis daarvan beslissen of je wilt overrulen.
Ja, multi-channel routing werkt voor alle documenttypen die de PSB ondersteunt, zoals creditnota's, orders en order responses. Alle documenten worden via dezelfde API verstuurd en de PSB zorgt per document voor de juiste routering, het juiste formaat en het juiste kanaal.
Hulp nodig bij het instellen van multi-channel levering? Neem contact op met TechSupport.
Open de API-referentie