e-invoicing

Compliance Network Implementation Guide

Configure network

Set up company endpoints to register your business in the PEPPOL network and route inbound documents to your system.

Company endpoints register your business in the PEPPOL network and route documents to your system. Each endpoint belongs to a product, either be_invoice_inbound_1.0 or be_invoice_outbound_1.0, and has a participant identifier, supported document types, and an ERP system ID for notification routing. Sovos must grant you the product before you can create endpoints. Sovos publishes inbound endpoints to the Service Metadata Publisher (SMP), making your receiving capabilities visible to other PEPPOL participants.

For outbound invoices, Sovos reads the buyer's participant identifier from the cbc:EndpointID element in the invoice body. Sovos uses PEPPOL dynamic discovery to locate the buyer's access point automatically. You must also create an outbound endpoint in Sovos to receive Lifecycle status messages. Buyers use these messages to send invoice responses back through PEPPOL. Sovos doesn't publish outbound endpoints to the SMP.

Participant identifier formats

The Belgian PEPPOL Authority (BOSA) requires all Belgian companies to register with scheme 0208 as the primary identifier. You can register other schemes after the 0208 endpoint exists.

Scheme ID Name Format Status
0208 Belgian Enterprise Number (CBE) 10 digits Required (must register first)
9925 Belgian VAT Number BE + 10 digits Optional
0088 Global Location Number (GLN) 13 digits Optional
0060 DUNS Number 9 digits Optional

You must register the 0208 endpoint before you register any optional scheme. For 0208 format requirements and examples, see PEPPOL participant identifiers page.

ERP System Communications

ERP System Communication links an ERP System ID to the network and defines how Sovos delivers documents to your system. You must set up ERP System Communications at the organization level before creating endpoints.

You must create two communications for Belgium: one for Invoice and one for Lifecycle. Both must use the same ERP System ID.

Important:

If you create the Lifecycle ERP System Communication without a plugin, the system skips integration format generation and returns success with no error or warning. Always add a plugin when setting up the Lifecycle communication. Use ALL-PEPPOLBISUBL-3.0-INVOICE-1.0 as the formatId for the Invoice communication and ALL-PEPPOL_INVOICERESPONSE_UBL-3.0-LIFECYCLE-1.0 for the Lifecycle communication.

Invoice communication
CODE
POST /api/v1/erp-system-communications/organization
JSON
{
  "organizationId": "your-org-id",
  "erpSystemId": "Inbound_ERPSystemID",
  "documentType": "Invoice",
  "deliveryMethod": "Pull",
  "formatId": "ALL-PEPPOLBISUBL-3.0-INVOICE-1.0"
}
Lifecycle communication
JSON
{
  "organizationId": "your-org-id",
  "erpSystemId": "Inbound_ERPSystemID",
  "documentType": "LifeCycle",
  "deliveryMethod": "Pull",
  "formatId": "ALL-PEPPOL_INVOICERESPONSE_UBL-3.0-LIFECYCLE-1.0"
}

Create inbound endpoint

You must create the 0208 endpoint first.

Request
JSON
POST /v2/configurations/organizations/{orgId}/companies/{companyId}/endpoints
Content-Type: application/json
Request body
JSON
{
  "productId": "be_invoice_inbound_1.0",
  "codeComponents": [
    {
      "field": "META-SCHEME",
      "value": "iso6523-actorid-upis"
    },
    {
      "field": "SCHEME",
      "value": "0208"
    },
    {
      "field": "IDENTIFIER",
      "value": "0123456789"
    }
  ],
  "supportedDocuments": [
    {
      "type": "Invoice",
      "subTypes": ["Invoice", "CreditNote"]
    },
    {
      "type": "LifeCycle",
      "subTypes": ["LifeCycle"]
    }
  ],
  "erpSystemId": "Inbound_ERPSystemID"
}

The IDENTIFIER value must be your 10-digit CBE number without the "BE" prefix. For format requirements, see PEPPOL participant identifiers page.

Register an optional 9925 endpoint
After you register the 0208 endpoint, you can optionally add a VAT number identifier to improve discoverability for cross-border trading partners.
Request body
JSON
{
  "productId": "be_invoice_inbound_1.0",
  "codeComponents": [
    {
      "field": "META-SCHEME",
      "value": "iso6523-actorid-upis"
    },
    {
      "field": "SCHEME",
      "value": "9925"
    },
    {
      "field": "IDENTIFIER",
      "value": "BE0123456789"
    }
  ],
  "supportedDocuments": [
    {
      "type": "Invoice",
      "subTypes": ["Invoice", "CreditNote"]
    }
  ],
  "erpSystemId": "Inbound_ERPSystemID"
}

The 9925 IDENTIFIER value must include the "BE" prefix followed by 10 digits (for example, BE0123456789).

Retrieve an endpoint

To retrieve a company endpoint by ID, send a GET request:

Request
CODE
GET /api/v1/organizations/{organizationId}/companies/{companyId}/endpoints/{endpointId}

The response includes:

  • Endpoint ID

  • Code components

  • Validity period

  • Supported documents

  • ERP system ID

  • Registered directories

  • Contact information

Modify an endpoint

To update a company endpoint, send a PUT request:

Request
CODE
PUT /api/v1/organizations/{organizationId}/companies/{companyId}/endpoints/{endpointId}

You can modify:

  • validityPeriod

  • supportedDocuments

  • erpSystemId

  • contact

You can't modify these fields after creation:

  • code.value

  • code.scheme

  • code.components

You must include supportedDocuments in the request body. The field can't be empty.

Remove an endpoint

To remove a company endpoint, send a DELETE request.

Request
CODE
DELETE /api/v1/organizations/{organizationId}/companies/{companyId}/endpoints/{endpointId}