I’m getting an issue when trying to send a Peppol BIS Billing 3.0 invoice for one specific participant.
Error message:
EBMS:0004: Could not fetch metadata from SMP for documentId [busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1] and processId [urn:fdc:peppol.eu:2017:poacc:billing:01:1.0]
The participant exists in the Peppol Directory and clearly supports Peppol BIS Billing UBL Invoice V3, so the recipient side seems correctly registered.
However, the SMP lookup fails when sending the invoice.
Has anyone seen this issue before? What should I check next (documentId / processId mismatch, SMP lookup configuration, or AP behavior)?
In Belgium you can register with your enterprise ID 0208: and/or your VAT number 9925:.
The law requires only to register with the enterprise ID but it is recommended to register both. (I have seen some companies registered only one of them).
Tryton is using the first of the identifier defined for the participant ID. I guess in your case, the company is registered only for one ID and Tryton is using the other one.
In Tryton, a company has three identifiers: the European VAT number, the Belgian VAT number, and the business number. The participant exists:
However, I still get this error:
EBMS:0004: Could not fetch metadata from SMP for documentId [busdox-docid-qns::urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0::2.1] and processId [urn:fdc:peppol.eu:2017:poacc:billing:01:1.0]
I would like to test using only the European VAT number. This works for another participant, but Tryton does not let me remove the other identifiers because they were already used in billing.
Tryton uses the first identifier from the list that can be used as PEPPOL identifier (based on the type) but it does not check that it is an actual registered identifier by the company on the PEPPOL network.
I’ve tried changing the order and retrying the Peppol sending, and it finally works.
I would expect Tryton to first check whether the party exists with his identifiers and retrieve the peppol identifier (here 0208:067...), or that there would be a way to explicitly define a Peppol identifier.
It should be possible to add a check using Peppol Directory - REST API documentation (but it is limite to 2 queries per seconds, so it will require cache and retry).
watch out, it’s possible to be registered in the peppol network while not appearing in the peppol directory, those are separate and the directory shouldn’t be used as a verification method…
See “who is listed here” in:
peppyrus does seem to have the capability in its api (/peppol/lookup)
As this should be implemented in edocument_peppol, we need a way that is independent of the access point.
I guess we could use the Peppol Lookup Service - OpenPeppol