e-invoicing

Compliance Network Implementation Guide

Configure network

Configure your PEPPOL network endpoints and ERP System Communications so Sovos can route documents to and from your system for Norway e-invoicing.

Confirm the following before configuring network endpoints:

  • Your organization and companies are created in Compliance Network and the Norway e-invoicing products are assigned. See Set up account.

  • An ERP System ID is created manually in Compliance Network under ERP Setup. Auto-provisioned defaults aren't synchronized to Network Services and can't be used for endpoint configuration.

  • Your organisasjonsnummer (orgnr) is active and in good standing with Brønnøysundregistrene (BRREG). Use a real, active orgnr in all environments, including UAT.

Endpoint configuration registers your company in the Norwegian PEPPOL network and tells Sovos where to deliver documents. Inbound endpoints register your participant identifier in ELMA, making your organization visible to suppliers who want to send invoices to you. Outbound endpoints aren't published to ELMA and are required to receive lifecycle status messages (buyer application responses) sent back through the PEPPOL network after you submit an invoice.

Complete the following tasks in order:

  1. Configure ERP System Communications

  2. Create an inbound endpoint

  3. Create an outbound endpoint

  4. Manage endpoints

Configure ERP System Communications

ERP System Communications define the document types and format the Sovos platform uses to deliver documents to your ERP system. Two communications are required: one for Invoice documents and one for Lifecycle status messages. Both must use the same ERP System ID.

  1. In Compliance Services, go to Settings and select Organisations.
  2. Select the organization, open the context menu, and click ERP System Communications.
  3. Click New communication.
  4. Select the ERP System ID from the dropdown.
  5. Set Type to Invoice.
  6. Set Delivery method and select Polling.
  7. Set Format ID to ALL-PEPPOLBISUBL-3.0-INVOICE-1.0.
  8. Select the Plugin that converts invoices to the format your ERP expects.
  9. In Network Services, select your organization and go to ERP System Communications and select the items for your ERP.
  10. Click Add communication.
  11. Repeat steps 3 through 9 for Type: Lifecycle, using the same ERP System ID. Skip step 7, you don't need to set any lifecycle format.
    Note:

    For lifecycle delivery, the platform derives the ERP System ID from the originating document transaction, so you don't configure a separate lifecycle ERP system.

    If an ERP system communication record exists for document type LifeCycle under that ERP System ID, it's used. Otherwise it falls back to the company endpoint's communication. The application response is generated internally by the platform and no customer mapper plugin is required for it..

Create an inbound endpoint

Before you begin, make sure:

  • Your organisation and companies are created in Compliance Network and the Norway e-invoicing products are assigned. See Set up account.

  • An ERP System ID is created manually in Compliance Network under ERP Setup. See Configure ERP System Communications.

  • Your organisasjonsnummer (orgnr) is active.

  • The ERP System Communication for the organisation is configured. See Configure ERP System Communications.

  • The Norway inbound product (no_invoice_inbound_1.0) is assigned to the company.

A Peppol participant identifier registers your business on the Peppol network. When it is published in ELMA, it becomes resolvable: senders use it to discover which Access Point serves you and which document processes you support.

Every Norwegian company that receives Peppol invoices must have an active participant registration in ELMA. Sending participants are onboarded into ELMA under scheme 0192.

Property Value
ICD 0192 - Organisasjonsnummer
Scheme 0192
Name Norwegian organization number
Sector B2B
Format 9 digits, MOD-11 validated, no spaces or separators
Example 123456789

When you create an endpoint, you provide your 9-digit orgnr as the IDENTIFIER value and the scheme ID (0192).

  1. Go to Settings and select Companies.
  2. Select the company, open the context menu, and click Network Settings.
  3. Click New endpoint.
  4. Select the no_invoice_inbound_1.0 product.
  5. Select the ERP System ID from the dropdown.
    Note: If the ERP System ID dropdown is empty, return to Configure ERP System Communications. Only ERP System IDs created manually in Sovos Compliance Network appear here.
  6. In Endpoint components, enter your 9-digit organisasjonsnummer, including the 0192 schema.

    Don't include spaces, hyphens, or the prefix NO.

  7. Under Supported documents, click the Invoices tab, click Add Subtype, and select Invoice and CreditNote.
  8. Click the Lifecycles tab, click Add Subtype, and select LifeCycle.
  9. Click Create.

Sovos registers your organisasjonsnummer in ELMA. A status indicator in Network Settings confirms the registration is complete. The registeredDirectories field in the API response confirms the endpoint is registered in the Norwegian PEPPOL directory.

Create an inbound endpoint through the API

  1. Send the following request to create the inbound endpoint:
    JSON
    curl --location 'https://api-qa.sovos.com/v2/configurations/organizations/020d66e0-f286-482f-aaf1-b332b93f4019/companies/b73a74ab-b75d-4ea0-8795-2133b93f4019/endpoints%27 \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer 123' \
    --header 'Content-Type: application/json' \
    --data-raw '{
        "productId": "no_invoice_inbound_1.0",
        "validityPeriod": {
            "start": "2025-01-01T00:00:00Z",
            "end": "2027-12-31T00:00:00Z"
        },
        "codeComponents": [
            {
                "field": "IDENTIFIER",
                "value": "123456789"
            }
        ],
        "supportedDocuments": [
            {
                "type": "Invoice",
                "subTypes": [
                    "Invoice",
                    "DebitNote",
                    "CreditNote"
                ]
            }
        ],
        "erpSystemId": "NO_ERP",
        "contact": {
            "name": "Your name",
            "email": "example@email.com"
        }
    }'
    Field Type Required Notes
    companyId String Required The Compliance Network company GUID.
    productId String Required no_invoice_inbound_1.0
    codeComponents[].field String Required Must be "IDENTIFIER". Don't add additional code component fields.
    codeComponents[].value String Required Your 9-digit organisasjonsnummer. Must match ^\d{9}$ and pass MOD-11 validation. Don't include the NO prefix or spaces.
    supportedDocuments Array Required Must be non-empty. Include Invoice (subtypes: Invoice, CreditNote) and LifeCycle (subtype: LifeCycle).
    erpSystemId String Required The ERP System ID configured for this organisation.
  2. Confirm the response returns HTTP 201 and verify the registeredDirectories and code.scheme values.
    JSON
    {
      "status": 201,
      "message": "Created",
      "success": true,
      "data": {
        "id": "{endpoint-uuid}",
        "code": {
          "value": "123456789",
          "scheme": "0192"
        },
        "registeredDirectories": ["Peppol"],
       }
    }

    code.scheme: "0192" confirms the assigned PEPPOL scheme ID. registeredDirectories: ["Peppol"] confirms ELMA registration is complete. An empty registeredDirectories array indicates directory registration didn't complete.

The inbound endpoint is created and the participant identifier is registered in ELMA.

Create an outbound endpoint

Complete Create an inbound endpoint before creating an outbound endpoint. Both endpoints use the same ERP System ID and organisasjonsnummer.

The outbound endpoint is required to receive lifecycle status messages, including buyer application responses returned through the Peppol network after you submit an invoice.

Outbound endpoints are not published to ELMA. ELMA registration only covers your inbound (receiving) participant. Outbound routing is automatic: when you submit an invoice, the platform resolves the buyer's participant identifier and delegates discovery to the Peppol extension. The extension performs the network lookup using the SML (for Norwegian buyers, ELMA) to determine the buyer's Access Point.

Property Value
ICD 0192 - Organisasjonsnummer
Scheme 0192
Name Norwegian organization number
Sector B2B
Format 9 digits, MOD-11 validated, no spaces or separators
Example 123456789
  1. Go to Settings and select Companies.
  2. Select the company, open the context menu, and click Network Settings.
  3. Click New endpoint.
  4. Select the no_invoice_outbound_1.0 product.
  5. Select the ERP System ID from the dropdown.

    Only ERP System IDs created manually in Compliance Network appear here. If the dropdown is empty, return to ERP Setup and create the ERP System ID manually before continuing.

  6. In Endpoint components, enter your 9-digit organisasjonsnummer, including the 0192 schema.

    Don't include spaces, hyphens, or the prefix NO.

  7. Under Supported documents, click the Lifecycles tab, click Add Subtype, and select LifeCycle.

    Outbound endpoints don't use Invoice or CreditNote subtypes.

  8. Click Create.

The outbound endpoint is created. You can now receive lifecycle status messages for invoices you submit through the PEPPOL network.

Create an outbound endpoint through the API

  1. Send the following request to create the outbound endpoint.
    JSON
    curl --location 'https://api-qa.sovos.com/v2/configurations/organizations/020d66e0-f286-482f-aaf1-b332b93f4019/companies/b73a74ab-b75d-4ea0-8795-2133b93f4019/endpoints%27 \
    --header 'Accept: application/json' \
    --header 'Authorization: Bearer 123' \
    --header 'Content-Type: application/json' \
    --data-raw '{
      "productId": "no_invoice_outbound_1.0",
      "validityPeriod": {
        "start": "2025-01-01T00:00:00Z",
        "end": "2027-12-31T00:00:00Z"
      },
      "codeComponents": [
        {
          "field": "IDENTIFIER",
          "value": "123456789"
        }
      ],
      "supportedDocuments": [
        {
          "type": "Lifecycle",
          "subTypes": [
            "Lifecycle"
          ]
        }
      ],
      "erpSystemId": "NO_ERP",
      "contact": {
        "name": "Your name",
        "email": "example@email.com"
      }
    }'
  2. Confirm the response returns HTTP 201.
    JSON
    {
      "status": 201,
      "message": "Created",
      "success": true,
      "data": {
        "id": "{endpoint-uuid}",
        "code": {
          "value": "123456789",
          "scheme": "0192"
        },
        "registeredDirectories": []
       }
    }

    Outbound endpoints are not published to ELMA. An empty registeredDirectories array is expected and correct for outbound endpoint creation.

    Field Type Required Notes
    companyId String Required The Compliance Network company GUID.
    productId String Required no_invoice_outbound_1.0
    codeComponents[].field String Required Must be "IDENTIFIER". Do not add additional code component fields.
    codeComponents[].value String Required Your 9-digit organisasjonsnummer. Must match ^\d{9}$ and pass MOD-11 validation. Do not include the NO prefix or spaces.
    supportedDocuments Array Required Must contain LifeCycle only (subtype: LifeCycle). Invoice and CreditNote subtypes are not permitted on outbound endpoints.
    erpSystemId String Required The ERP System ID configured for this organisation.

The outbound endpoint is created. You can now receive lifecycle status messages for submitted invoices.

Modify an endpoint

Before modifying an endpoint, confirm the following:

  • The endpoint exists and is active. Go to Administration > Companies, select the company, then go to Settings and click Endpoints to confirm.

  • You have the organisasjonsnummer (orgnr) for the company. The orgnr cannot be changed after endpoint creation. If the orgnr is incorrect, remove the endpoint and create a new one.

Warning: Modifying a live endpoint takes effect immediately and affects document routing for that endpoint.

You can update the ERP System ID and supported document types for an existing endpoint. The participant identifier (organisasjonsnummer) can't be changed after creation.

  1. Select Administration > Companies and choose the company.
  2. Go to Settings and click Endpoints or Networks and choose the corresponding one.
  3. Go to General, then click Company endpoints.
  4. In the row for the endpoint you want to update, open the row actions menu and click Edit.
  5. Update the fields as needed.
    Field Editable Notes
    ERP System ID Yes Select a different ERP System ID from the dropdown. Only manually created ERP System IDs appear here.
    Invoice supported document types Yes Inbound endpoints only. Valid subtypes: Invoice and CreditNote.
    Lifecycle supported document types Yes Valid subtype: LifeCycle. Outbound endpoints are restricted to Lifecycle only.
    Participant identifier (orgnr) No Can't be changed after creation. To correct an orgnr, remove the endpoint and create a new one with the correct identifier.
  6. Click Submit.

Modify endpoints through the API

  1. Obtain a valid token.

    See the authentication section for the token request format.

  2. Send a request to update the endpoint.
    CODE
    PUT https://api-test.sovos.com/v2/configurations/organizations/organizationId/companies/companyId/endpoints/endpointId

    Include only the fields you want to update in the request body. The following fields are editable:

    Field Editable Notes
    supportedDocuments Yes Inbound: Invoice (subtypes: Invoice, CreditNote) and LifeCycle (subtype: LifeCycle). Outbound: LifeCycle only. The platform returns error M-NO-3001014 if Invoice or CreditNote subtypes are supplied for an outbound endpoint.
    erpSystemId Yes Must reference a manually created ERP System ID. Auto-provisioned defaults are not supported.
    codeComponents No The participant identifier (organisasjonsnummer) cannot be changed after creation. To correct an orgnr, remove the endpoint and create a new one.
  3. Confirm the response indicates success.

    A successful update returns HTTP 200 OK. The response body contains the updated endpoint record.

Delete endpoints

Before removing an endpoint, confirm that no active document flows depend on this endpoint. Removing an inbound endpoint remove your participant identifier from ELMA. Your organization can't receive PEPPOL invoices until a new inbound endpoint is created.

Warning: Removing an inbound endpoint deletes the ELMA registration for your organisasjonsnummer. Suppliers can't send invoices to your organization until you create a new inbound and restore ELMA registration.
  1. Select Administration > Companies and choose the company.
  2. Go to Settings and click Endpoints or Networks and choose the corresponding one.
  3. Go to General, then click Company endpoints.
  4. In the row for the endpoint you want to remove, open the row actions menu and click Remove.
  5. Confirm the removal in the dialog.

Delete endpoints through the API

  1. Obtain a valid token.

    See the authentication section for the token request format.

  2. Send a DELETE request for the endpoint.
    CODE
    DELETE https://api-test.sovos.com/v2/configurations/organizations/organizationId/companies/companyId/endpoints/endpointId

    Replace {endpointId} with the UUID of the endpoint to remove. No request body is required.

  3. Confirm the response indicates success.

    A successful deletion returns HTTP 200 OK or 204 No Content.