# Status management in ELR

Source: https://developer.avalara.com/products/e-invoicing/integration-guides/elr/ltb9326846416456/

Guide: E-Invoicing and Live Reporting

# Status management in ELR

To retrieve the status of a submitted (outbound) document or detect a new inbound document, you have 2 options.

1.  **Option 1 - Webhooks (push)** – receive real-time updates through event notifications
2.  **Options 2 - Polling (pull)** – query the API at regular intervals to check for updates

## Option 1 - Webhooks (push)

The webhook feature in E-Invoicing and Live Reporting (ELR) allows API users to receive real-time updates about document status through an API-based callback mechanism.

Note

This is the preferred option.

Using the ELR subscription API endpoints, partners can programmatically create and configure webhooks to receive notifications when specific events occur. These events include when a document reaches one of the following statuses:

-   **Pending** – the document has been submitted and is being processed
-   **Complete** – the document has been processed and accepted
-   **Error** – the document has failed processing due to validation or regulatory issues

This approach is more efficient than polling. For details on how and when to set up webhook subscriptions, see [Set up webhook subscriptions](/elr/zln9129681902712/).

**Webhook payload**

```
{
  "id": "3f0a64e0-3e01-4608-950d-e72fefdf98b8",
  "invocationTimestamp": "2025-07-30T09:55:17.946036441",
  "items": [
    {
      "tenantId": "65ddba688036abae9b2ef1f0",
      "systemCode": "DES",
      "eventName": "statusChange",
      "message": {
        "id": "503b6e08-0001-41d2-9d05-c34b3d7b71d8",
        "companyId": "0b06c307-f626-4ab8-a61b-e7d9429a2533",
        "processDateTime": "2025-07-30T09:55:07.020Z",
        "status": "Complete",
        "documentNumber": "PEPPOL-EU-1753869307-allow",
        "documentType": "ubl-invoice",
        "documentVersion": "2.1",
        "documentDate": "2025-07-30T00:00:00",
        "flow": "out",
        "countryCode": "GB",
        "countryMandate": "GB-B2B-PEPPOL",
        "receiver": "9930:DE986532263",
        "supplierName": "Avalara Europe Ltd.",
        "customerName": "Buyer Official Name",
        "interfaceName": "PEPPOL"
      },
      "signature": {
        "value": "II/rPyNPFQQBO5CNUyga6BHXsG+DjKAvKup1L8AukRA=",
        "algorithm": "SHA-256"
      }
    }
  ]
}
```

The same information in the `items[0].message` object (`DocumentSummaryModel`) is available through the `GET /einvoicing/documents` endpoint.

## Option 2 - Polling (pull)

Poll the

```
GET
        /einvoicing/documents
```

endpoint. Set the `startDate` and `endDate` query parameters based on your polling frequency. Filter by `flow = "in"` to retrieve new inbound documents.