> For the complete documentation index, see [llms.txt](https://support.ordereazi.com/central/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://support.ordereazi.com/central/developers/webhooks/payload-reference.md).

# Payload reference

The JSON each OrderEazi webhook event sends, with every field and an example.

Your endpoint needs to know which fields to expect in each delivery. The body is a JSON payload (the data about the event), and its shape depends on the event. The [Event catalogue](/central/developers/webhooks/event-catalogue.md) says which events send which payload.

### How payloads are formatted

* **No wrapper:** The body is the payload itself. The event's name is only in the `X-OE-Webhook-Process` header.
* **Field names:** These are in PascalCase, such as `ProjectNumber`. The Client called payload is the exception.
* **Dates:** These are in UTC, and look like `2026-11-06T10:30:00`, with no time zone marker.
* **Empty values:** Any field with no value is sent as `null`, not left out.
* **Status and type fields:** In the Document, Picking slip, Checking, Stocktake, and Warehouse transfer payloads, these are names, such as `Completed`. In the Project and Project history payloads, they're numbers.

Build your endpoint to ignore fields it doesn't know, so new fields don't break it.

### Document

Sent by the document, GRV, dispatch, and return events. It covers every document type.

| Field                    | Type   | What it holds                                                                                                                                                                        |
| ------------------------ | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `Created`                | string | The document's date. For a Tax Invoice, this is the invoice date.                                                                                                                    |
| `Modified`               | string | When the document was last changed.                                                                                                                                                  |
| `ProjectId`              | string | The project's ID.                                                                                                                                                                    |
| `ProjectNumber`          | string | The project number, such as `PRO001234`.                                                                                                                                             |
| `ProjectSalesRepName`    | string | The project's sales rep.                                                                                                                                                             |
| `ProjectSalesRepEmail`   | string | The sales rep's email address.                                                                                                                                                       |
| `WorkflowId`             | string | The project's workflow, on Sales Orders and Purchase Orders only.                                                                                                                    |
| `SupplierName`           | string | The supplier, on supplier documents such as Purchase Orders and GRVs.                                                                                                                |
| `CustomerName`           | string | The client, on client documents such as Quotes and Tax Invoices.                                                                                                                     |
| `CustomerCode`           | string | The client's code.                                                                                                                                                                   |
| `ContactPerson`          | string | The delivery contact's name, on client documents.                                                                                                                                    |
| `ContactEmail`           | string | The delivery contact's email address.                                                                                                                                                |
| `ContactTelephone`       | string | The delivery contact's phone number.                                                                                                                                                 |
| `VatReference`           | string | The client's VAT number, taken from the project.                                                                                                                                     |
| `FromBranch`             | string | The code of the branch the order was placed from, when your organisation records branches on orders.                                                                                 |
| `DocumentType`           | string | The document type, such as `Quote`, `SalesOrder`, `TaxInvoice`, `PurchaseOrder`, `Grv`, `DeliveryNote`, `SupplierInvoice`, `CustomerReturn`, `SupplierReturn`, or `ProformaInvoice`. |
| `DocumentNumber`         | string | OrderEazi's document number. For a Supplier Invoice, this is the supplier's invoice number.                                                                                          |
| `FinDocumentId`          | string | The document's ID.                                                                                                                                                                   |
| `DocumentStatus`         | string | The document's status, on GRVs, Delivery Notes, and supplier returns.                                                                                                                |
| `ExternalDocumentNumber` | string | The document's number in your accounting system.                                                                                                                                     |
| `ExternalDocumentId`     | string | The document's ID in your accounting system.                                                                                                                                         |
| `TotalExcl`              | number | The total, excluding tax.                                                                                                                                                            |
| `TotalIncl`              | number | The total, including tax.                                                                                                                                                            |
| `DeliveryDate`           | string | The delivery date, on GRVs, Delivery Notes, and supplier returns.                                                                                                                    |
| `Warehouse`              | string | The warehouse.                                                                                                                                                                       |
| `DeliveryTruck`          | string | Not used.                                                                                                                                                                            |
| `Reference`              | string | The client's order number, on client documents.                                                                                                                                      |
| `CurrencyCode`           | string | The currency, such as `ZAR`.                                                                                                                                                         |
| `ExchangeRate`           | number | The exchange rate used.                                                                                                                                                              |
| `ShippingAddress`        | object | The delivery address (see below).                                                                                                                                                    |
| `BillingAddress`         | object | The billing address (see below).                                                                                                                                                     |
| `Lines`                  | array  | The document's lines (see below).                                                                                                                                                    |

**Lines:**

| Field           | Type   | What it holds                                                  |
| --------------- | ------ | -------------------------------------------------------------- |
| `Created`       | string | When the line was added.                                       |
| `Modified`      | string | When the line was last changed.                                |
| `LocationId`    | number | The stock location.                                            |
| `Code`          | string | The product's SKU (stock keeping unit, the product code).      |
| `Description`   | string | The line's description.                                        |
| `TotalQty`      | number | The quantity.                                                  |
| `PickedQty`     | number | The quantity picked.                                           |
| `UnitPriceExcl` | number | The unit price, excluding tax.                                 |
| `UnitPriceIncl` | number | The unit price, including tax.                                 |
| `AmountExcl`    | number | The line total, excluding tax.                                 |
| `AmountIncl`    | number | The line total, including tax.                                 |
| `Vat`           | number | The tax rate, such as `0.15` for 15%. It isn't an amount.      |
| `Discount`      | number | The discount percentage.                                       |
| `ReceiptId`     | string | The receipt the line came from, on GRVs.                       |
| `Type`          | string | The line's stock type, such as `GoodStock` on a Delivery Note. |
| `ReturnQty`     | number | The quantity returned, on returns.                             |
| `CheckedQty`    | number | The quantity checked.                                          |
| `DispatchSKU`   | string | The SKU dispatched.                                            |
| `KeyValues`     | object | The project line's custom fields, as names and values.         |

**Addresses:** `BuildingFloorUnitCompany`, `StreetAddress`, `Suburb`, `City`, `Province`, `Country`, and `StreetCode`, all strings.

On `OrderDispatched`, the payload is the Delivery Note, without `CustomerCode`, `Reference`, `CurrencyCode`, `ExchangeRate`, or `ExternalDocumentId`.

**Example (`DocumentCreatedTaxInvoice`):**

```json
{
  "Created": "2026-11-06T10:30:00",
  "Modified": "2026-11-06T10:30:00",
  "ProjectId": "6f1c2a9e-0b7d-4c4f-9a51-1f0b8f6a2d11",
  "ProjectNumber": "PRO001234",
  "ProjectSalesRepName": "Sipho Dlamini",
  "ProjectSalesRepEmail": "sipho@example.com",
  "WorkflowId": null,
  "SupplierName": null,
  "CustomerName": "Clientco (Pty) Ltd",
  "CustomerCode": "CLI001",
  "ContactPerson": "Thandi Nkosi",
  "ContactEmail": "thandi@example.com",
  "ContactTelephone": "0115550000",
  "VatReference": "4123456789",
  "FromBranch": null,
  "DocumentType": "TaxInvoice",
  "DocumentNumber": "INV000812",
  "FinDocumentId": "9f8e7d6c-5b4a-4c3d-8e2f-1a0b9c8d7e6f",
  "DocumentStatus": null,
  "ExternalDocumentNumber": null,
  "ExternalDocumentId": null,
  "TotalExcl": 2900.00,
  "TotalIncl": 3335.00,
  "DeliveryDate": null,
  "Warehouse": "Johannesburg Warehouse",
  "DeliveryTruck": null,
  "Reference": "WEB-10045 - PO 7781",
  "CurrencyCode": "ZAR",
  "ExchangeRate": 1.0,
  "ShippingAddress": {
    "BuildingFloorUnitCompany": "",
    "StreetAddress": "12 Main Rd",
    "Suburb": "Rosebank",
    "City": "Johannesburg",
    "Province": "Gauteng",
    "Country": "ZA",
    "StreetCode": "2196"
  },
  "BillingAddress": null,
  "Lines": [
    {
      "Created": "2026-11-06T10:30:00",
      "Modified": "2026-11-06T10:30:00",
      "LocationId": null,
      "Code": "CHAIR-01",
      "Description": "Office chair, black mesh",
      "TotalQty": 2.0,
      "PickedQty": null,
      "UnitPriceExcl": 1450.00,
      "UnitPriceIncl": 1667.50,
      "AmountExcl": 2900.00,
      "AmountIncl": 3335.00,
      "Vat": 0.15,
      "Discount": 0.0,
      "ReceiptId": null,
      "Type": null,
      "ReturnQty": null,
      "CheckedQty": 0.0,
      "DispatchSKU": null,
      "KeyValues": { "Colour": "Black" }
    }
  ]
}
```

### Picking slip

Sent by the picking events. `OrderPickingException` sends only the line with the problem.

| Field                      | Type           | What it holds                                                                                                                                                |
| -------------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `Id`                       | number         | The picking slip's ID.                                                                                                                                       |
| `Created`, `Modified`      | string         | When it was created and last changed.                                                                                                                        |
| `Priority`                 | number         | Its priority. Lower numbers are picked first.                                                                                                                |
| `Status`                   | string         | Its status, such as `Completed`.                                                                                                                             |
| `PickedBy`                 | string         | The picker's name.                                                                                                                                           |
| `Type`                     | string         | Its type.                                                                                                                                                    |
| `Barcode`                  | string         | Its barcode.                                                                                                                                                 |
| `ReservationNumber`        | string         | The same as `Barcode`.                                                                                                                                       |
| `DocumentNumber`           | string         | The Sales Order it was created from.                                                                                                                         |
| `ExternalDocumentNumber`   | string         | That document's number in your accounting system.                                                                                                            |
| `WarehouseId`, `Warehouse` | number, string | The warehouse.                                                                                                                                               |
| `PickingslipLines`         | array          | Each line's `Id`, `Created`, `Modified`, `PickingslipNumber`, `StockItemSKU`, `Bin`, `QtyRequired`, `QtyRemaining`, `Processed` (true or false), and `Type`. |

### Picking slips allocated

Sent by `PickingSlipsAllocated`: the project number and the new picking slips, each in the Picking slip format above.

```json
{ "ProjectNumber": "PRO001234", "PickingSlips": [] }
```

### Checking

Sent by the checking events.

| Field                                    | Type           | What it holds                                                                                                                                                                        |
| ---------------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `Id`                                     | number         | The check's ID.                                                                                                                                                                      |
| `Created`, `Modified`                    | string         | When it was created and last changed.                                                                                                                                                |
| `SalesOrderNumber`                       | string         | The Sales Order being checked.                                                                                                                                                       |
| `DeliveryNoteNumber`                     | string         | The Delivery Note, once created.                                                                                                                                                     |
| `Status`                                 | string         | Its status.                                                                                                                                                                          |
| `PickingslipNumber`, `ReservationNumber` | string         | The picking slip.                                                                                                                                                                    |
| `WarehouseId`, `Warehouse`               | number, string | The warehouse.                                                                                                                                                                       |
| `CheckingLines`                          | array          | Each line's `Id`, `CheckingNumber`, `Created`, `Modified`, `StockItemSKU`, `QuantityRequired`, `QuantityScanned`, and `BoxNumber` (the boxes it was packed in, separated by commas). |

### Stock levels

`StocklevelChanged` sends a list of changed stock levels, up to 1,000 in one delivery:

```json
[
  { "StocklevelId": 10452, "SKU": "CHAIR-01", "Location": "A1-01-03", "WarehouseCode": "JHB", "Quantity": 37.0 },
  { "StocklevelId": 10453, "SKU": "MUG-11", "Location": "B2-04-01", "WarehouseCode": "JHB", "Quantity": 120.0 }
]
```

`Quantity` is the new quantity on hand in that location. On Simple Inventory Management, `WarehouseCode` holds the warehouse's name.

### Stocktake

Sent by the stocktake events: `Id`, `Created`, `Modified`, `Creator` (who created the stocktake), `Number` (the stocktake's name), `StartDate`, `EndDate`, `WarehouseId`, `Warehouse`, and `Status`.

### Warehouse transfer

Sent by the warehouse transfer events.

| Field                                                | Type           | What it holds                                                                                                                                                                                                                                       |
| ---------------------------------------------------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Id`                                                 | number         | The transfer's ID.                                                                                                                                                                                                                                  |
| `Created`, `Modified`                                | string         | When it was created and last changed.                                                                                                                                                                                                               |
| `SourceWarehouseId`, `SourceWarehouseName`           | number, string | Where the stock comes from.                                                                                                                                                                                                                         |
| `DestinationWarehouseId`, `DestinationWarehouseName` | number, string | Where it goes.                                                                                                                                                                                                                                      |
| `DocumentNumber`                                     | string         | The transfer's number.                                                                                                                                                                                                                              |
| `Status`                                             | string         | Its status.                                                                                                                                                                                                                                         |
| `DeliveryTruck`                                      | string         | The truck it's on.                                                                                                                                                                                                                                  |
| `ReferenceNumber`                                    | string         | Its reference.                                                                                                                                                                                                                                      |
| `ProjectCode`                                        | string         | The project it's for.                                                                                                                                                                                                                               |
| `WarehouseTransferLines`                             | array          | Each line's `Id`, `Created`, `Modified`, `StockItemSKU`, `StockLevelId` and `LocationName` (where it's taken from), `RequiredQty`, `PickedQty`, `DestinationStockLevelId` and `DestinationLocationName` (where it goes), `Processed`, and `Status`. |

### Product

Sent by `ProductCreated` and `ProductUpdated`.

| Field                                            | Type          | What it holds                                                                                                                                                                                                                                                                                |
| ------------------------------------------------ | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ProductId`                                      | string        | The product's ID.                                                                                                                                                                                                                                                                            |
| `CreatedOn`, `ModifiedOn`                        | string        | When it was created and last changed.                                                                                                                                                                                                                                                        |
| `Code`                                           | string        | Its SKU.                                                                                                                                                                                                                                                                                     |
| `BaseItemCode`                                   | string        | The code its size and colour variants share.                                                                                                                                                                                                                                                 |
| `Description`                                    | string        | Its description.                                                                                                                                                                                                                                                                             |
| `Brand`                                          | string        | Its brand.                                                                                                                                                                                                                                                                                   |
| `Categories`                                     | array         | Its categories, as text.                                                                                                                                                                                                                                                                     |
| `SizeName`, `SizeCode`                           | string        | Its size.                                                                                                                                                                                                                                                                                    |
| `ColourName`, `ColourCode`, `ColourHex`          | string        | Its colour.                                                                                                                                                                                                                                                                                  |
| `ERPId`                                          | string        | Its ID in your accounting system.                                                                                                                                                                                                                                                            |
| `ImageUrl`                                       | string        | Its main image.                                                                                                                                                                                                                                                                              |
| `Deleted`, `IsActive`                            | true or false | Whether it's deleted or active.                                                                                                                                                                                                                                                              |
| `IsServiceItem`, `IsCourierItem`, `IsSerialized` | true or false | Whether it's a service, a courier charge, or has serial numbers.                                                                                                                                                                                                                             |
| `Length`, `Width`, `Height`, `Weight`            | number        | Its size and weight. These are `0` when not set.                                                                                                                                                                                                                                             |
| `DefaultQty`, `MinQty`, `MaxQty`                 | number        | Its order quantities.                                                                                                                                                                                                                                                                        |
| `MoqIsEnabled`                                   | true or false | Whether its minimum order quantity is enforced.                                                                                                                                                                                                                                              |
| `ProductSuppliers`                               | array         | Each supplier's `SupplierId`, `Name`, `IsDefault`, `ProductCode`, costs (`PreviousReceiptCost`, `CurrentReceiptCost`, `ConvertedDefaultCost`), `SupplierStockLevel`, `StockLastUpdatedOn`, `RecommendedRetailPrice`, and `Prices` (cost tiers, each with `PriceId`, `Cost`, and `Quantity`). |
| `ProductWarehouses`                              | array         | Each warehouse's `WarehouseId`, with its costs and selling prices: `DefaultCost`, `RecommendedRetailPrice`, and the previous, current, and average receipt cost and selling price.                                                                                                           |
| `Barcodes`                                       | array         | Each barcode's `Id`, `Barcode`, `Quantity`, and `Enabled`.                                                                                                                                                                                                                                   |
| `ProductKeyValues`                               | array         | Its custom fields, each with `Id`, `Key`, `Value`, and `Code`.                                                                                                                                                                                                                               |
| `Prices`                                         | array         | Its pricelist prices, each with the pricelist's `Name`, `Qty`, `SellingPrice`, and `ModifiedOn`.                                                                                                                                                                                             |
| `ProductSerials`                                 | array         | Always empty. Read serial numbers through the API.                                                                                                                                                                                                                                           |

### Project

Sent by most project events, and by `OrderApproved`. It's the whole project (OrderEazi's record of an order, with its lines and documents), as the API returns it. The table lists the most useful fields by name:

| Field                                                                         | What it holds                                                                                                                |
| ----------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `ProjectId`, `ProjectNumber`                                                  | The project's ID and number.                                                                                                 |
| `CreatedOn`, `ModifiedOn`, `Deadline`                                         | Its dates.                                                                                                                   |
| `Status`, `OrderStatus`, `ReportedStatus`                                     | Its status.                                                                                                                  |
| `Description`                                                                 | Its description.                                                                                                             |
| `SalesRep`, `SalesRepEmail`, `SalesRepId`                                     | Its sales rep.                                                                                                               |
| `ClientListDDL`, `ManualClient`                                               | The client's name, and the client and contact details captured on the project.                                               |
| `ContactPerson`, `Surname`, `ContactNumber`, `CellContactNumber`              | The contact.                                                                                                                 |
| `CustomerOrderNumber`, `CustomerOrderReference`                               | The client's order number and reference.                                                                                     |
| `DeliveryType`, `Collection`, `DeliveryInstructions`                          | How it's delivered.                                                                                                          |
| `ShippingAddress`, `PostalAddress`                                            | Addresses, each with `BuildingFloorUnitCompany`, `StreetAddress`, `Suburb`, `City`, `Province`, `Country`, and `StreetCode`. |
| `ProjectTotalCost`, `ProjectTotalSales`, `ProjectTotalValue`, `ProjectMargin` | Its totals.                                                                                                                  |
| `CurrencyId`, `ProjectExchangeRate`                                           | Its currency.                                                                                                                |
| `WorkflowId`, `ProjectWorkflowId`                                             | Its workflow.                                                                                                                |
| `SourceSalesChannelName`                                                      | The sales channel the order came from.                                                                                       |
| `KeyValues`                                                                   | Its custom fields, as names and values.                                                                                      |
| `Tags`                                                                        | Its tags, each with a `Title`, `Text`, and `Colour`.                                                                         |
| `ProjectLines`, `FinDocuments`                                                | Its lines and documents.                                                                                                     |

### Project summary

Sent by the smaller project events, such as `ProjectDueDateUpdated`. It has the same fields as the Project payload, but `ProjectLines` and `FinDocuments` are empty. To get them, call `GET /api/project/{pro}/lines` or `GET /api/project/{pro}/documents`, where `{pro}` is the project number.

### Project history

Sent by `ProjectHistory`: `ProjectHistoryId`, `ProjectId`, `ProjectNumber`, `UserId`, `RepName`, `DisplayName`, `CreatedOn`, `ModifiedOn`, `EventType` (a number), `EventDetails` (the text shown in the project's history), and `Type` (a number).

### Workflow step completed

Sent by `OnWorkflowActionCompleted`.

| Field                        | Type          | What it holds                                                                                                                       |
| ---------------------------- | ------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| `ProjectWorkflowNodeId`      | string        | The completed step's ID.                                                                                                            |
| `ProjectId`, `ProjectNumber` | string        | The project.                                                                                                                        |
| `NodeName`                   | string        | The step's name, such as "Order Approval".                                                                                          |
| `NodeType`                   | string        | `Action`, `SystemAction`, or `Condition`.                                                                                           |
| `CompletedByUserId`          | string        | Who completed it, or `null` if OrderEazi completed it automatically.                                                                |
| `CompletedByName`            | string        | Their name. Empty when completed automatically.                                                                                     |
| `CompletedOnUtc`             | string        | When it was completed, in UTC.                                                                                                      |
| `Remarks`                    | string        | Any remarks entered on completion.                                                                                                  |
| `SelectedPath`               | string        | The answer chosen, on a condition step.                                                                                             |
| `AutoCompleted`              | true or false | Whether OrderEazi completed it automatically.                                                                                       |
| `DataFields`                 | array         | The answers entered on completion, each with its `Key` (the field's label), `Value`, and `Type`, such as `Text`, `Date`, or `File`. |

For a `File` field, `Value` is a download link that may expire an hour after the delivery is sent, so download the file straight away. `FileId` and `FileName` identify the file, so you can find it again with `GET /api/project/{pro}/attachment`, where `{pro}` is the project number.

### Shipment

Sent by the shipment events, once for each shipment on the order. `Project` is the Project payload, and `Shipment` is the shipment (both shortened here):

```json
{
  "Project": { "ProjectId": "6f1c2a9e-0b7d-4c4f-9a51-1f0b8f6a2d11", "ProjectNumber": "PRO001234" },
  "Shipment": {
    "ShipmentId": "1d2e3f40-5a6b-4c7d-8e9f-0a1b2c3d4e5f",
    "Courier": "Courier Guy",
    "CourierReference": "WB123456",
    "ShipmentStatus": "Delivered",
    "ShipmentAmount": 120.50,
    "Parcels": []
  }
}
```

If the order has no shipments, one delivery is sent, with `Shipment` as `{}`.

### Courier booking

Sent by `ProjectReadyForDelivery`, once for each parcel. It's the courier booking request, with the same fields as the body of `POST /api/order/ship`. See [Shipments](/central/developers/api-guides/shipments.md).

### Branch client

Sent by the branch client events: `BranchId`, `FinClientId` (the client's ID), `Code` (the client's code at that branch), `CreditLimit`, `CreatedOn`, and `ModifiedOn`.

### Serial allocated

Sent by `SerialAllocated`: `ProjectNumber`, `CustomerOrderNumber`, `CustomerOrderReference`, `Code` (the product's SKU), `SerialNumber`, and `KeyValues` (the line's custom fields, each with a `Key` and `Value`).

### Client called

Sent by `ProjectClientCalled`: `ProjectNumber`, `number` (the number called), and `user` (who called). `number` and `user` are lowercase, unlike every other field.

### Related pages

* [Event catalogue](/central/developers/webhooks/event-catalogue.md): which events send which payload
* [Webhooks](/central/developers/webhooks.md): the headers each delivery has
* [Delivery and troubleshooting](/central/developers/webhooks/delivery-and-troubleshooting.md): retries and resending
