API Documentation

Send via Email When delivery as Einvoice is not Possible

Send via Email if no Peppol or einvoicing receiving capability - How to disable if needed

What Happens when no Einvoice Receiving is Possible

In the Billit API, you can send your invoices using the commands/send API endpoint. This endpoint allows you to specify a transport type.

When using Peppol as the TransportType, (or another einvoice network)

  • If the customer is registered on the Peppol network, then normal delivery via Peppol will happen.
    • Remarkt : on the Peppol test network much less companies are registered.
  • If the customer is not registered on the Peppol network,
    • Then by default, alternative sending via email will be launched.
      • If no email address is available, then sending via Paper based postal service will happen. This applies to production environment, not for sandbox.
      • This might not be the desired behaviour : if the receiver is not on Einvoice network, then maybe no alternative email delivery should happen. You can then activate "StrictTransportType", see further.

Requirement for Alternative Sending via Email

When the alternative email sending is launched, then a valid customer email address must be defined.

Remark : on einvoicing test networks such as Open/Peppol less companies are registered as a receiver than on production, so the email alternative email sending might occur more regularly.

When the email of the Receiver is not defined, then the sending will be set to error. Error info:

{"errors":
[{"Code":"TheCustomer_0_DoesNotHaveAValidEmailAddress",
"Description":"Customer XYZ does not have a valid email address"}]}

Information to include when sending per Email

The following elements are important for email sending

Information elementTag NameSample value
Email address CustomerEmail"[email protected]"
Language CustomerLanguage"NL"

Examples : Below 3 examples where delivery feedback is available with the 3 statuses (positive, pending, negative).

{
 "OrderType": "Invoice",
 "OrderDirection": "Income",
 "OrderNumber": "QS-001",
 "OrderDate": "2025-09-01",
 "ExpiryDate": "2025-10-30",
  "Customer": {
   "Name": "Billit",
   "VATNumber": "BE0563846944",
   "PartyType": "Customer",
   "Addresses": [
        {
        "AddressType": "InvoiceAddress",
        "Name": "Billit",
        "Street": "Oktrooiplein",
        "StreetNumber": "1",
        "City": "Ghent",
        "Zipcode" : "9001",
        "Box": "box1",  // Postal box in the building"
	"Email" : "[email protected]",  
        "Language" : "NL", 
        "CountryCode": "BE"
        }
   ]
 "OrderLines": [
  {
   "Quantity": 1,
   "UnitPriceExcl": 10.0,
   "Description": "Box of cookies", 
   "DescriptionExtended": "Box of cookies 20 pieces, 200 g",  
   "Reference": "915025", 
   "VATPercentage": 6
   }
 ]
}
{
 "OrderType": "Invoice",
 "OrderDirection": "Income",
 "OrderNumber": "QS-001",
 "OrderDate": "2025-09-01",
 "ExpiryDate": "2025-10-30",
  "Customer": {
   "Name": "Billit",
   "VATNumber": "BE0563846944",
   "PartyType": "Customer",
   "Addresses": [
        {
        "AddressType": "InvoiceAddress",
        "Name": "Billit",
        "Street": "Oktrooiplein",
        "StreetNumber": "1",
        "City": "Ghent",
        "Zipcode" : "9001",
        "Box": "box1",  
	"Email" : "[email protected]; [email protected]",  
        "Language" : "NL",  
        "CountryCode": "BE"
        }
   ]
 "OrderLines": [
  {
   "Quantity": 1,
   "UnitPriceExcl": 10.0,
   "Description": "Box of cookies", // In peppol will come in the field name
   "DescriptionExtended": "Box of cookies 20 pieces, 200 g",
   "Reference": "915025", 
   "VATPercentage": 6
   }
 ]
}

Avoid Sending via alternative Channel such as Email

By setting the StrictTransportType header to true, the system will prevent sending the invoice via email and will instead throw a validation error if the customer is not registered on the Einvoicing network such as Peppol.

This ensures that invoices are only sent through the specified transport type, no alternatives are tried.

Below an example of the use of StrictTransportType on header level in Postman:


What’s Next