Send UBL to Peppol
Post to Endpoint : baseURL/V1/Peppol/SendXML
Preparation
Endpoint to use:
Information Element | Info |
---|---|
Post Command on Sandbox | POST https://api.sandbox.billit.be/v1/peppol/sendxml |
Post Command on Production | POST https://api.billit.be/v1/peppol/sendxml |
Create a Company | More info : https://docs.billit.be/docs/sandbox-vs-production-1 |
Include Party and Secret key in the header | More info : https://docs.billit.be/docs/authentication |
About the UBL file:
- Preparation: make sure that your UBL files are valid. When the POST https://api.sandbox.billit.be/v1/peppol/sendxml is done, then the Peppol validation rules will be checked. If not compliant, then an error will be returned and the document will not be sent.
- The UBL file will be included in the Json body.
- Requirement : All structured ID's get a backslash before and after the value.
- The structured ID types are : schemeID, unit code, currency ID
- Make sure that you do not forget any
UBL examples
Below example of Json body with the UBL content embedded:
{
"XML": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<Invoice xmlns:cac=\"urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2\" xmlns:cbc=\"urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2\" xmlns=\"urn:oasis:names:specification:ubl:schema:xsd:Invoice-2\">
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
<cbc:ID>2025000002-31</cbc:ID>
<cbc:IssueDate>2025-06-23</cbc:IssueDate>
<cbc:DueDate>2025-08-24</cbc:DueDate>
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:Note>Testcase 2</cbc:Note>
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<cac:OrderReference>
<cbc:ID>YR127130</cbc:ID>
</cac:OrderReference>
<cac:AccountingSupplierParty>
<cac:Party>
<cbc:EndpointID schemeID=\"0208\">0437295999</cbc:EndpointID>
<cac:PartyIdentification>
<cbc:ID>0437295999</cbc:ID>
</cac:PartyIdentification>
<cac:PartyName>
<cbc:Name>Supplier Namex</cbc:Name>
</cac:PartyName>
<cac:PostalAddress>
<cbc:StreetName>Teststraat 31</cbc:StreetName>
<cbc:CityName>Merchtem</cbc:CityName>
<cbc:PostalZone>1785</cbc:PostalZone>
<cac:Country>
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
<cac:PartyTaxScheme>
<cbc:CompanyID>BE0437295999</cbc:CompanyID>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
<cac:PartyLegalEntity>
<cbc:RegistrationName>Vilbox</cbc:RegistrationName>
<cbc:CompanyID schemeID=\"0208\">0437295999</cbc:CompanyID>
<cbc:CompanyLegalForm>RPR Gent</cbc:CompanyLegalForm>
</cac:PartyLegalEntity>
<cac:Contact>
<cbc:Name>Ivan Vanhaecht</cbc:Name>
<cbc:Telephone>+32(0)2589321</cbc:Telephone>
<cbc:ElectronicMail>[email protected]</cbc:ElectronicMail>
</cac:Contact>
</cac:Party>
</cac:AccountingSupplierParty>
<cac:AccountingCustomerParty>
<cac:Party>
<cbc:EndpointID schemeID=\"0208\">0759529999</cbc:EndpointID>
<cac:PartyIdentification>
<cbc:ID>0759529999</cbc:ID>
</cac:PartyIdentification>
<cac:PartyName>
<cbc:Name>Testcustomername</cbc:Name>
</cac:PartyName>
<cac:PostalAddress>
<cbc:StreetName>Oktrooiplein 1/bus 302</cbc:StreetName>
<cbc:CityName>Gent</cbc:CityName>
<cbc:PostalZone>9000</cbc:PostalZone>
<cac:Country>
<cbc:IdentificationCode>BE</cbc:IdentificationCode>
</cac:Country>
</cac:PostalAddress>
<cac:PartyTaxScheme>
<cbc:CompanyID>BE0759529999</cbc:CompanyID>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:PartyTaxScheme>
<cac:PartyLegalEntity>
<cbc:RegistrationName>Testcustomername</cbc:RegistrationName>
<cbc:CompanyID schemeID=\"0208\">0759529999</cbc:CompanyID>
<cbc:CompanyLegalForm>RPR Gent</cbc:CompanyLegalForm>
</cac:PartyLegalEntity>
<cac:Contact>
<cbc:Name>Jan Plessers</cbc:Name>
<cbc:ElectronicMail>[email protected]</cbc:ElectronicMail>
</cac:Contact>
</cac:Party>
</cac:AccountingCustomerParty>
<cac:Delivery>
<cbc:ActualDeliveryDate>2025-04-01</cbc:ActualDeliveryDate>
</cac:Delivery>
<cac:PaymentMeans>
<cbc:PaymentMeansCode>30</cbc:PaymentMeansCode>
<cbc:PaymentID>2023000001</cbc:PaymentID>
<cac:PayeeFinancialAccount>
<cbc:ID>BE54000000099997</cbc:ID>
<cac:FinancialInstitutionBranch>
<cbc:ID>BPOTBEB1</cbc:ID>
</cac:FinancialInstitutionBranch>
</cac:PayeeFinancialAccount>
</cac:PaymentMeans>
<cac:PaymentTerms>
<cbc:Note>30 days after invoice date</cbc:Note>
</cac:PaymentTerms>
<cac:TaxTotal>
<cbc:TaxAmount currencyID=\"EUR\">516</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID=\"EUR\">2400</cbc:TaxableAmount>
<cbc:TaxAmount currencyID=\"EUR\">504</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>21</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID=\"EUR\">200</cbc:TaxableAmount>
<cbc:TaxAmount currencyID=\"EUR\">12</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>6</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID=\"EUR\">2600</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID=\"EUR\">2600</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID=\"EUR\">3116</cbc:TaxInclusiveAmount>
<cbc:PayableAmount currencyID=\"EUR\">3116</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode=\"C62\">40</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID=\"EUR\">2400</cbc:LineExtensionAmount>
<cac:Item>
<cbc:Name>Good Y</cbc:Name>
<cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>21</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID=\"EUR\">60</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine>
<cac:InvoiceLine>
<cbc:ID>2</cbc:ID>
<cbc:InvoicedQuantity unitCode=\"C62\">10</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID=\"EUR\">200</cbc:LineExtensionAmount>
<cac:Item>
<cbc:Name>Good X</cbc:Name>
<cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>6</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID=\"EUR\">20</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine>
</Invoice>"
}
Feedback after post
Feedback | Production environment |
---|---|
Status Code | Status Code 200 is success. For Errors, see https://docs.billit.be/docs/possible-errors |
InboxItemID | When Status Code is 200, the InboxItemID is returned. This is used for further action. |
Updated 2 days ago