Sovos Docs

About webhooks

Sovos uses Svix to push notifications about document processing events to your ERP system.

To improve the efficiency and reliability of transmitting data between systems, Sovos has partnered with Svix to offer an automated method for pushing Indirect Tax API notifications to your endpoints using a webhook.

Benefits

The Svix integration gives you these advantages:

Complete automation

The entire process is automated, eliminating the need for manual intervention.

Enhanced security

Svix uses advanced security protocols to ensure the integrity of transmitted data.

Scalability

Svix handles high volumes of simultaneous webhooks without performance degradation. Your webhook infrastructure scales automatically as your needs grow.

Reliability

Svix guarantees webhook delivery through automatic retries with exponential backoff, which reduces the risk of data loss from temporary failures.

Monitoring and debugging

The Svix Consumer App Portal lets you inspect delivery logs, test events, and retry failed messages, which makes troubleshooting webhook issues straightforward.

How the integration works

These are the required steps:

  1. A partner or the Sovos Professional Services team configures an ERP system using the Compliance Network UI or through the Indirect Tax API.

  2. A partner or the Sovos Professional Services team uses the Compliance Network UI to configure a communication method for webhooks and add events for each organization, or uses the Indirect Tax API to configure the communication method and add events for all organizations.

    Note:

    You can't add or filter events using the Svix Consumer App Portal. All event configuration is on the Sovos side.

  3. Create your endpoints according to the prerequisites.

  4. Access your Consumer App Portal link through the Compliance Network UI or retrieve the link using the Indirect Tax API.

  5. Add your endpoints in Svix and specify a throttling value, ignoring the event filtering configuration.

    Note:

    The throttling value is the maximum messages per second your endpoint accepts. If Svix reaches that limit, the following requests are throttled so to keep a consistent rate under the defined limit.

  6. Test your webhook in Svix using an example event.

  7. Configure advanced endpoint options:

    Endpoint throttling
    Add or update the throttling value.
    Custom headers
    Use this if you need to add custom headers for your endpoint.
    Transformations
    You can modify the webhook's payload and redirect it to a different URL.
    Additional authentication
    You can add OAuth and mTLS authentication.
Note:

For more information on the Svix App Portal, go to their official documentation.

After you finish this configuration, when one of the events you configured at Sovos happen during document processing, Sovos sends notifications through Svix to your configured endpoints. Svix delivers the notifications, handles retries if your endpoint is unavailable, and provides security through signature verification.

You focus on processing the notifications while Svix ensures reliable delivery, even during network issues or temporary outages.

Prerequisites

To use the Svix webhook solution, you must configure an API endpoint that:

  • Accepts POST requests with JSON payloads using this structure:
    {
    	"appPrefix": "DLT",
    	"contentUrl": "https://uat-einvoicing-api-emea.sovos.com/download/api/v1/download/notification/P4pob2kFJrwkgZ04...",
    	"correlationId": "822431a1-ef99-4ef7-8dfa-38f9c6b6b0af-mock",
    	"createdDate": 1770290583638,
    	"eventType": "document.received",
    	"metadata": {
    		"documentId": "4e9528cdc7cbe2e5444a70b9a4314bcb",
    		"erpDocumentId": "#BC-UAT-MOCK582230",
    		"erpSystemId": "TestSystemId",
    		"processType": "0",
    		"productId": "WA_SPARK__2.0",
    		"sciCloudStatusCode": "100",
    		"sciGovtStatusCode": null,
    		"sciResponseCode": "IP",
    		"sciStatusAction": "NOA",
    		"taxId": "WA_SPARK_TaxId",
    		"transactionId": "7d7f0b4f-f60f-4be3-931f-b5ba8ab26ca6"
    	},
    	"notificationId": "bd92d169-7ec0-4f21-a7eb-e2238070d9d7",
    	"orgId": "faf412ed-bb3f-4e2c-9c7e-6bcf280e1ccf"
    }
  • Uses the HTTPS protocol for secure communication.

  • Uses an authentication layer, as explained in Additional Authentication and Advanced Endpoint Authentication.

  • Responds within 30 seconds.

  • Returns a HTTP status code in the 200-299 range for a successful receipt.

  • Handles duplicate deliveries (idempotency).

In addition, you must verify the webhook message using the Svix library or verify the message manually.