# receiveContentChangeWebhook

Receive content-level nomenclature change webhook notifications.

`POST /nomenclature/webhook/content-changes`

**API:** Avalara Item Classification API
**Tag:** NomenclatureChangeWebhook
**API Version:** 16.0.1-oas3
**Base URL:** https://api-sandbox.classification.avalara.net
**Authentication:** Basic (username + license key) or Bearer token

Source: https://developer.avalara.com/products/managed-and-premium-tariff-code/api/methods/NomenclatureChangeWebhook/receiveContentChangeWebhook/

## Description

This endpoint receives general nomenclature updates, for example, when a description is updated or an HS code is retired, that match configured HS-mask filters. The payload is identified by the top-level notificationType: NOMENCLATURE_CHANGES and uses a nested structure grouped by HS root and country. Return an HTTP 2xx response to acknowledge receipt. Avalara does not retry 4xx responses, but retries 5xx responses and timeouts.

## Request Body

**Content-Type:** `application/json`
**Schema:** `ContentChangeNotification`

Defines the content-level general nomenclature notification. The changes use a nested structure, grouped by HS root and country, following the path `changes[] -> changedCountries[] -> changes[]`.

| Property | Type | Required | Description |
|---|---|---|---|
| `notificationId` | string | **Yes** | Provides the unique identifier for this notification. |
| `timestamp` | string | **Yes** | Provides the date and time the notification was sent, in ISO-8601 UTC format. |
| `customerId` | integer | **Yes** | Identifies the Avalara customer account associated with this notification. |
| `notificationType` | string | **Yes** | This value is always `NOMENCLATURE_CHANGES` for this payload. Values: `NOMENCLATURE_CHANGES`. |
| `summary` | object | No | Provides a high-level summary of the changes included in this notification. |
| `changes` | RootChange[] | **Yes** | Lists the nomenclature changes grouped by HS root. |

## Responses

| Status | Description | Schema |
|---|---|---|
| 200 | Indicates that the notification was received and acknowledged. |  |
| 201 | Indicates that the notification was received and processed. |  |
| 202 | Indicates that the notification was accepted for asynchronous processing. |  |
| 204 | Indicates that the notification was acknowledged and returns no content. |  |
| 400 | Indicates a bad request where the payload was rejected by the client. Avalara does not retry this request. |  |

## Example Request

```bash
curl -X POST "https://api-sandbox.classification.avalara.net/nomenclature/webhook/content-changes" \
  -H "Authorization: Basic <credentials>" \
  -H "Accept: application/json" \
  -d '{
  "notificationId": "550e8400-e29b-41d4-a716-446655440000",
  "timestamp": "2026-06-22T10:30:00.000Z",
  "customerId": 123,
  "notificationType": "NOMENCLATURE_CHANGES",
  "summary": {
    "totalRoots": 1,
    "totalChanges": 1,
    "affectedChapters": [
      "07"
    ],
    "affectedCountries": [
      "US"
    ]
  },
  "changes": [
    {
      "root": "0701",
      "changedCountries": [
        {
          "country": "US",
          "changes": [
            {
              "hsCode": "0701000000",
              "changeType": "DESCRIPTION",
              "oldDescription": "Old text",
              "newDescription": "New text",
              "effectiveFrom": 20260101,
              "effectiveTo": 20261231
            }
          ]
        }
      ]
    }
  ]
}'
```