Multi-channel levering configureren

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.

Hoe werkt multi-channel?

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:

KanaalConfiguratieGebruikPeppolStandaard, altijd actiefPrimaire route voor alle Peppol-deelnemersDICOHook met DICO-topicBouwsectorfacturen via de DICO-ketenstandaardAndere netwerkenHook met netwerk-specifieke configuratieAflevering op procurement-netwerken zoals Coupa en SAP Ariba (zie configuratie hieronder)E-mail fallbackHook met e-mail-topicOntvangers die niet via een netwerk bereikbaar zijnSFTPHook met SFTP-configuratieOn-premise systemen met bestandsoverdrachtHTTPSHook met HTTPS-configuratieEnterprise-systemen met directe API-ontvangstCollabrrHook met Collabrr-configuratieDocumenten van/naar het Collabrr platform; kan in dezelfde aanroep een verzendinstructie meegeven (bijv. "verzend via Peppol"). Gebruikt Collabrr ID (-0003:XC...) als identifier
Kanaal automatisch selecteren

De PSB selecteert het kanaal op basis van een prioriteitsvolgorde:

  1. PartyId-level hooks gaan voor environment-level hooks, als je voor een specifieke ontvanger een kanaal hebt ingesteld, wordt dat kanaal altijd gebruikt
  2. Specifieke topics gaan voor wildcards, een hook voor InvoiceSent gaat voor een wildcard-hook
  3. Bij meerdere hooks met filters die matchen op hetzelfde topic: langste filter (op aantal karakters) wint -- bijvoorbeeld een filter met een extra &&-clausule wint van een korter filter zonder die clausule
  4. Bij gelijke prioriteit: hook-id als tiebreaker (alfanumeriek -- integer-id's gaan voor tekst, bijvoorbeeld: 1 < 02 < 10 < dico < peppol)

Voordat je een factuur verstuurt, kun je via queryRecipientParty controleren welk kanaal de PSB zal gebruiken. Er zijn twee endpoints, per documenttype:

POST /api/v1/{partyId}/salesInvoice/queryRecipientParty
POST /api/v1/{partyId}/purchaseOrder/queryRecipientParty

De body accepteert een eenvoudige array ["0106:12345678"] of een object met meta-attributen { "partyIds": [...], "metaAttributes": {...} }. Optionele query-parameters: ?preferredDocumentTypeId, ?includeOptions, ?documentFamily (alleen op de purchaseOrder-variant).

De response toont het geselecteerde kanaal en de beschikbare alternatieven.

Validatieregel: één identifier per scheme per call

In dezelfde queryRecipientParty-call mag per scheme/agency-code (bv. 0106, 0190, 0208, 9944) maximaal één identifier worden meegegeven. Meerdere identifiers in verschillende schemes binnen dezelfde call zijn wel toegestaan.

Bij overtreding antwoordt de PSB met:

EConnect.Psb.Models.EConnectException: 'Duplicate id agencies {code} requested.'

waar {code} de agency-code zonder leading nul is (scheme 0208208). Meerdere kandidaten binnen dezelfde scheme testen? Doe dan aparte API-aanroepen, één per kandidaat.

Voor geavanceerde lookups inclusief Access Point-URL en certificaat is het Peppol-endpoint beschikbaar:

GET /api/v1/peppol/deliveryOption?partyIds=...&documentFamily=...&isCredit=...&documentTypeIds=...&preferredDocumentTypeId=...

De response bevat partyId, documentTypeId, processId, protocol (As2/As4), url en certificate.

Kanaal forceren

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.

Peppol met e-mailfallback als apart kanaal

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.

Coupa en Ariba instellen
Coupa

eConnect transformeert UBL-facturen automatisch naar het cXML-formaat dat Coupa verwacht. De koppeling vereist:

  1. Je klant maakt accounts aan op de Coupa CSP test- en live-omgeving
  2. De ontvangende partij maakt een Shared Secret aan
  3. TechSupport configureert de verbinding in de PSB
Ariba (SAP Business Network)

De Ariba-koppeling werkt met 1-op-1 handelsrelaties, anders dan het open Peppol-netwerk:

  1. De leverancier deelt zijn AN-ID met de koper
  2. SAP kan een betaald abonnement vereisen bij hoger volume
  3. De testomgeving gebruikt een AN-ID met suffix "-T"
XML-transformatie

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.

SI 2.0 en SALES005

De PSB ondersteunt transformatie in beide richtingen tussen SI 2.0 en SALES005:

  • SI 2.0 → SALES005
  • SALES005 → SI 2.0

Belangrijk: het SALES005-factuurbericht mag niet via Peppol worden verzonden. Verzending van SALES005 vereist een e-mailkoppeling. Multi-channel delivery vangt dit op: je stuurt primair via Peppol, met automatische fallback naar e-mail wanneer nodig.

Target format op alle kanalen behalve Peppol

Bij het verzenden via e-mail, SFTP of HTTPS-endpoint kun je een targetFormat meegeven. De PSB transformeert de factuur dan on-the-fly naar het gewenste formaat. Een klant die een UBL-factuur wil omzetten naar SALES005 geeft bij de download of verzending een targetDocumentTypeId mee -- de factuur wordt dan automatisch getransformeerd.

Peppol ondersteunt geen targetFormat (SALES005 mag niet via Peppol). Op alle overige kanalen -- e-mail, SFTP, HTTPS -- is targetFormat wel beschikbaar.

Afname

Multi-channel delivery is niet standaard inbegrepen in de basisdienstverlening en moet apart worden afgenomen als losse dienst/configuratie. Neem contact op met TechSupport voor de mogelijkheden voor jouw situatie.

Praktijkscenario

Een groot bedrijf verstuurt facturen aan:

  • Nederlandse klanten → Peppol (automatisch)
  • Bouwsectorbedrijven → DICO (specifieke hook per partyId)
  • Een multinational op een ander procurement-netwerk → specifieke hook
  • Kleine leveranciers zonder netwerk → e-mail fallback
  • Collabrr-platformgebruikers → Collabrr (automatisch via Collabrr ID)

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.

Veelgestelde vragen
Hoe bepaalt de PSB welk kanaal wordt gebruikt voor een factuur?

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).

Kan ik het automatisch geselecteerde kanaal overschrijven?

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.

Ondersteunt multi-channel ook andere documenttypen dan facturen?

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