# Payload Reference

## 📦 Webhook Payload Reference

Every webhook event delivers a JSON payload describing the resource that changed. This page documents each payload type with complete field tables and realistic examples.

> All dates use ISO 8601 sortable format (e.g. `2024-01-15T10:30:00`). Fields marked as nullable may be `null` in the JSON payload.

### 🧾 WebhookDocument

Used by document creation, GRV, dispatch, return, and ERP sync events. Covers all financial document types including invoices, purchase orders, quotes, sales orders, delivery notes, GRVs, credit notes, and supplier returns.

**Fields:**

| Field                  | Type                  | Description                                                            |
| ---------------------- | --------------------- | ---------------------------------------------------------------------- |
| Created                | string                | The date the document was created                                      |
| Modified               | string                | The last date the document was modified                                |
| ProjectId              | string                | The internal ID of the project this document is linked to              |
| ProjectNumber          | string                | The project number this document is linked to                          |
| ProjectSalesRepName    | string                | The name of the sales rep who created the project                      |
| ProjectSalesRepEmail   | string                | The email of the sales rep who created the project                     |
| WorkflowId             | string (GUID) or null | The project's workflow ID                                              |
| SupplierName           | string                | The supplier linked to the document (relevant for GRV, PO, SRN, SIV)   |
| CustomerName           | string                | The customer linked to the document (relevant for QTE, INV, SO, CRN)   |
| CustomerCode           | string                | The code of the customer linked to the document                        |
| DocumentType           | string                | The document type (e.g. INV, PO, QTE, SO, GRV, CRN, SRN, SIV, DN, PRO) |
| DocumentNumber         | string                | The internal document number                                           |
| FinDocumentId          | string                | The internal document ID                                               |
| DocumentStatus         | string                | The current status of the document                                     |
| ExternalDocumentNumber | string                | The external/ERP document number                                       |
| ExternalDocumentId     | string                | The external/ERP document ID                                           |
| TotalExcl              | decimal or null       | The total excluding tax                                                |
| TotalIncl              | decimal or null       | The total including tax                                                |
| DeliveryDate           | string                | The delivery date associated with the document                         |
| Warehouse              | string                | The warehouse name the document was generated on                       |
| DeliveryTruck          | string                | The delivery truck linked to the document (delivery notes only)        |
| Reference              | string                | The document reference                                                 |
| CurrencyCode           | string                | The currency code used for this document                               |
| ExchangeRate           | decimal or null       | The exchange rate used for this document                               |
| Lines                  | array                 | The line items that are part of the document                           |

**Line items (WebhookLine):**

| Field         | Type            | Description                                         |
| ------------- | --------------- | --------------------------------------------------- |
| Created       | string          | The date the line was created                       |
| Modified      | string          | The date the line was last modified                 |
| LocationId    | long or null    | The stock location ID                               |
| Description   | string          | The line item description                           |
| TotalQty      | decimal         | The total quantity                                  |
| PickedQty     | decimal or null | The quantity that was picked                        |
| UnitPriceExcl | decimal or null | The unit price excluding tax                        |
| UnitPriceIncl | decimal or null | The unit price including tax                        |
| AmountExcl    | decimal or null | The line total excluding tax                        |
| AmountIncl    | decimal or null | The line total including tax                        |
| Vat           | decimal or null | The tax amount                                      |
| Code          | string          | The product SKU code                                |
| ReceiptId     | string          | The receipt ID                                      |
| Discount      | decimal or null | The discount percentage                             |
| Type          | string          | The line type                                       |
| ReturnQty     | int or null     | The return quantity (credit notes and returns only) |
| CheckedQty    | double          | The checked quantity                                |
| DispatchSKU   | string          | The dispatch SKU                                    |
| KeyValues     | object          | Key-value pairs attached to this line               |

**Sample payload:**

```json
{
  "Created": "2024-01-15T10:30:00",
  "Modified": "2024-01-15T14:22:00",
  "ProjectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "ProjectNumber": "PRJ-00123",
  "ProjectSalesRepName": "Jane Smith",
  "ProjectSalesRepEmail": "jane.smith@example.com",
  "WorkflowId": "f9e8d7c6-b5a4-3210-fedc-ba0987654321",
  "SupplierName": null,
  "CustomerName": "Acme Corporation",
  "CustomerCode": "ACME001",
  "DocumentType": "INV",
  "DocumentNumber": "INV-002045",
  "FinDocumentId": "98765",
  "DocumentStatus": "Approved",
  "ExternalDocumentNumber": "ERP-INV-8821",
  "ExternalDocumentId": "ERP-55012",
  "TotalExcl": 1500.00,
  "TotalIncl": 1725.00,
  "DeliveryDate": "2024-01-20T00:00:00",
  "Warehouse": "(JHB) Johannesburg Main",
  "DeliveryTruck": null,
  "Reference": "PO-REF-4421",
  "CurrencyCode": "ZAR",
  "ExchangeRate": 1.0,
  "Lines": [
    {
      "Created": "2024-01-15T10:30:00",
      "Modified": "2024-01-15T10:30:00",
      "LocationId": 101,
      "Description": "Blue Widget 100mm",
      "TotalQty": 10.0,
      "PickedQty": 10.0,
      "UnitPriceExcl": 100.00,
      "UnitPriceIncl": 115.00,
      "AmountExcl": 1000.00,
      "AmountIncl": 1150.00,
      "Vat": 150.00,
      "Code": "WIDGET-001",
      "ReceiptId": null,
      "Discount": 0.0,
      "Type": "StockItem",
      "ReturnQty": null,
      "CheckedQty": 0.0,
      "DispatchSKU": "WIDGET-001",
      "KeyValues": {
        "Colour": "Blue",
        "Size": "100mm"
      }
    },
    {
      "Created": "2024-01-15T10:31:00",
      "Modified": "2024-01-15T10:31:00",
      "LocationId": 101,
      "Description": "Red Widget 50mm",
      "TotalQty": 5.0,
      "PickedQty": 5.0,
      "UnitPriceExcl": 100.00,
      "UnitPriceIncl": 115.00,
      "AmountExcl": 500.00,
      "AmountIncl": 575.00,
      "Vat": 75.00,
      "Code": "WIDGET-002",
      "ReceiptId": null,
      "Discount": 0.0,
      "Type": "StockItem",
      "ReturnQty": null,
      "CheckedQty": 0.0,
      "DispatchSKU": "WIDGET-002",
      "KeyValues": {}
    }
  ]
}
```

### 📋 WebhookPickingslip

Sent when a picking slip is created, picking starts, picking completes, or picking is cancelled.

**Fields:**

| Field                  | Type   | Description                                     |
| ---------------------- | ------ | ----------------------------------------------- |
| Id                     | long   | The picking slip ID                             |
| Created                | string | The date the picking slip was created           |
| Modified               | string | The date the picking slip was last modified     |
| Priority               | int    | The picking priority (lower is higher priority) |
| Status                 | string | The current picking slip status                 |
| PickedBy               | string | The name of the user who picked the slip        |
| Type                   | string | The picking slip type                           |
| Barcode                | string | The picking slip barcode                        |
| DocumentNumber         | string | The linked document number                      |
| ExternalDocumentNumber | string | The external/ERP document number                |
| ReservationNumber      | string | The reservation number                          |
| WarehouseId            | long   | The warehouse ID                                |
| Warehouse              | string | The warehouse name                              |
| PickingslipLines       | array  | The picking slip line items                     |

**Line items (WebhookPickingslipLine):**

| Field             | Type    | Description                               |
| ----------------- | ------- | ----------------------------------------- |
| Id                | long    | The line item ID                          |
| Created           | string  | The date the line was created             |
| Modified          | string  | The date the line was last modified       |
| PickingslipNumber | string  | The picking slip number                   |
| StockItemSKU      | string  | The product SKU                           |
| Bin               | string  | The bin location                          |
| QtyRequired       | decimal | The quantity required for picking         |
| QtyRemaining      | decimal | The quantity still remaining to be picked |
| Processed         | bool    | Whether the line has been processed       |
| Type              | string  | The line type                             |

**Sample payload:**

```json
{
  "Id": 54321,
  "Created": "2024-01-15T08:00:00",
  "Modified": "2024-01-15T09:45:00",
  "Priority": 1,
  "Status": "Completed",
  "PickedBy": "John Picker",
  "Type": "Standard",
  "Barcode": "PS-54321",
  "DocumentNumber": "INV-002045",
  "ExternalDocumentNumber": "ERP-INV-8821",
  "ReservationNumber": "RES-00789",
  "WarehouseId": 10,
  "Warehouse": "(JHB) Johannesburg Main",
  "PickingslipLines": [
    {
      "Id": 110001,
      "Created": "2024-01-15T08:00:00",
      "Modified": "2024-01-15T09:30:00",
      "PickingslipNumber": "PS-54321",
      "StockItemSKU": "WIDGET-001",
      "Bin": "A1-01-03",
      "QtyRequired": 10.0,
      "QtyRemaining": 0.0,
      "Processed": true,
      "Type": "StockItem"
    },
    {
      "Id": 110002,
      "Created": "2024-01-15T08:00:00",
      "Modified": "2024-01-15T09:42:00",
      "PickingslipNumber": "PS-54321",
      "StockItemSKU": "WIDGET-002",
      "Bin": "B2-04-01",
      "QtyRequired": 5.0,
      "QtyRemaining": 0.0,
      "Processed": true,
      "Type": "StockItem"
    }
  ]
}
```

### ✅ WebhookChecking

Sent when a checking process starts, completes, or is cancelled. Checking validates that picked items match the order before dispatch.

**Fields:**

| Field              | Type   | Description                             |
| ------------------ | ------ | --------------------------------------- |
| Id                 | long   | The checking record ID                  |
| Created            | string | The date the checking was created       |
| Modified           | string | The date the checking was last modified |
| SalesOrderNumber   | string | The linked sales order number           |
| DeliveryNoteNumber | string | The linked delivery note number         |
| Status             | string | The current checking status             |
| PickingslipNumber  | string | The linked picking slip number          |
| ReservationNumber  | string | The reservation number                  |
| WarehouseId        | long   | The warehouse ID                        |
| Warehouse          | string | The warehouse name                      |
| CheckingLines      | array  | The checking line items                 |

**Line items (WebhookCheckingLine):**

| Field            | Type   | Description                             |
| ---------------- | ------ | --------------------------------------- |
| Id               | long   | The checking line ID                    |
| CheckingNumber   | string | The checking number                     |
| Created          | string | The date the line was created           |
| Modified         | string | The date the line was last modified     |
| StockItemSKU     | string | The product SKU                         |
| QuantityRequired | int    | The quantity required to check          |
| QuantityScanned  | int    | The quantity scanned during checking    |
| BoxNumber        | string | The box number assigned during checking |

**Sample payload:**

```json
{
  "Id": 7890,
  "Created": "2024-01-15T10:00:00",
  "Modified": "2024-01-15T10:25:00",
  "SalesOrderNumber": "SO-001234",
  "DeliveryNoteNumber": "DN-005678",
  "Status": "Completed",
  "PickingslipNumber": "PS-54321",
  "ReservationNumber": "RES-00789",
  "WarehouseId": 10,
  "Warehouse": "(JHB) Johannesburg Main",
  "CheckingLines": [
    {
      "Id": 220001,
      "CheckingNumber": "CHK-7890",
      "Created": "2024-01-15T10:00:00",
      "Modified": "2024-01-15T10:15:00",
      "StockItemSKU": "WIDGET-001",
      "QuantityRequired": 10,
      "QuantityScanned": 10,
      "BoxNumber": "BOX-01"
    },
    {
      "Id": 220002,
      "CheckingNumber": "CHK-7890",
      "Created": "2024-01-15T10:00:00",
      "Modified": "2024-01-15T10:22:00",
      "StockItemSKU": "WIDGET-002",
      "QuantityRequired": 5,
      "QuantityScanned": 5,
      "BoxNumber": "BOX-01"
    }
  ]
}
```

### 📊 WebhookStocklevel

Sent when a stock level changes. This is a simple flat payload with no nested objects.

**Fields:**

| Field         | Type   | Description                                 |
| ------------- | ------ | ------------------------------------------- |
| StocklevelId  | long   | The stock level record ID                   |
| SKU           | string | The product SKU                             |
| Location      | string | The bin location name                       |
| WarehouseCode | string | The warehouse code                          |
| Quantity      | double | The current stock quantity at this location |

**Sample payload:**

```json
{
  "StocklevelId": 330044,
  "SKU": "WIDGET-001",
  "Location": "A1-01-03",
  "WarehouseCode": "JHB",
  "Quantity": 150.0
}
```

### 📦 WebhookStocktake

Sent when a warehouse enters or exits stocktake mode. This is a flat payload with no nested objects.

**Fields:**

| Field       | Type   | Description                              |
| ----------- | ------ | ---------------------------------------- |
| Id          | long   | The stocktake record ID                  |
| Created     | string | The date the stocktake was created       |
| Modified    | string | The date the stocktake was last modified |
| Creator     | string | The user who created the stocktake       |
| Number      | string | The stocktake number                     |
| StartDate   | string | The stocktake start date                 |
| EndDate     | string | The stocktake end date                   |
| Warehouse   | string | The warehouse name                       |
| WarehouseId | long   | The warehouse ID                         |
| Status      | string | The current stocktake status             |

**Sample payload:**

```json
{
  "Id": 456,
  "Created": "2024-01-15T06:00:00",
  "Modified": "2024-01-15T18:00:00",
  "Creator": "admin@example.com",
  "Number": "ST-000456",
  "StartDate": "2024-01-15T06:00:00",
  "EndDate": "2024-01-15T18:00:00",
  "Warehouse": "(JHB) Johannesburg Main",
  "WarehouseId": 10,
  "Status": "InProgress"
}
```

### 🔄 WebhookWarehouseTransfer

Sent when a warehouse transfer is dispatched or received. Includes line items for each SKU being transferred.

**Fields:**

| Field                    | Type   | Description                                 |
| ------------------------ | ------ | ------------------------------------------- |
| Id                       | long   | The warehouse transfer ID                   |
| Created                  | string | The date the transfer was created           |
| Modified                 | string | The date the transfer was last modified     |
| SourceWarehouseId        | long   | The source warehouse ID                     |
| SourceWarehouseName      | string | The source warehouse name                   |
| DestinationWarehouseId   | long   | The destination warehouse ID                |
| DestinationWarehouseName | string | The destination warehouse name              |
| DocumentNumber           | string | The transfer document number                |
| Status                   | string | The current transfer status                 |
| DeliveryTruck            | string | The delivery truck assigned to the transfer |
| ReferenceNumber          | string | The transfer reference number               |
| ProjectCode              | string | The linked project code                     |
| WarehouseTransferLines   | array  | The transfer line items                     |

**Line items (WebhookWarehouseTransferLine):**

| Field                   | Type         | Description                         |
| ----------------------- | ------------ | ----------------------------------- |
| Id                      | long         | The transfer line ID                |
| Created                 | string       | The date the line was created       |
| Modified                | string       | The date the line was last modified |
| StockItemSKU            | string       | The product SKU                     |
| StockLevelId            | long         | The source stock level ID           |
| LocationName            | string       | The source bin location name        |
| StockItemId             | long         | The stock item ID                   |
| RequiredQty             | int          | The quantity required to transfer   |
| PickedQty               | int          | The quantity picked for transfer    |
| DestinationStockLevelId | long or null | The destination stock level ID      |
| DestinationLocationName | string       | The destination bin location name   |
| Processed               | bool         | Whether the line has been processed |
| Status                  | string       | The line status                     |

**Sample payload:**

```json
{
  "Id": 891,
  "Created": "2024-01-15T07:00:00",
  "Modified": "2024-01-15T11:30:00",
  "SourceWarehouseId": 10,
  "SourceWarehouseName": "(JHB) Johannesburg Main",
  "DestinationWarehouseId": 20,
  "DestinationWarehouseName": "(CPT) Cape Town Branch",
  "DocumentNumber": "WT-000891",
  "Status": "Dispatched",
  "DeliveryTruck": "Truck-05",
  "ReferenceNumber": "REF-TRN-442",
  "ProjectCode": "PRJ-00123",
  "WarehouseTransferLines": [
    {
      "Id": 440001,
      "Created": "2024-01-15T07:00:00",
      "Modified": "2024-01-15T10:00:00",
      "StockItemSKU": "WIDGET-001",
      "StockLevelId": 330044,
      "LocationName": "A1-01-03",
      "StockItemId": 5001,
      "RequiredQty": 25,
      "PickedQty": 25,
      "DestinationStockLevelId": null,
      "DestinationLocationName": "DEFAULT",
      "Processed": true,
      "Status": "Picked"
    },
    {
      "Id": 440002,
      "Created": "2024-01-15T07:00:00",
      "Modified": "2024-01-15T10:15:00",
      "StockItemSKU": "WIDGET-002",
      "StockLevelId": 330099,
      "LocationName": "B2-04-01",
      "StockItemId": 5002,
      "RequiredQty": 10,
      "PickedQty": 10,
      "DestinationStockLevelId": null,
      "DestinationLocationName": "DEFAULT",
      "Processed": true,
      "Status": "Picked"
    }
  ]
}
```

### 🏷️ WebhookProduct

Sent when a product is created or updated. This payload includes nested arrays for suppliers, warehouses, barcodes, serials, key-value pairs, and pricelist prices.

**Fields:**

| Field             | Type            | Description                                  |
| ----------------- | --------------- | -------------------------------------------- |
| ProductId         | string (GUID)   | The product ID                               |
| CreatedOn         | string          | The date the product was created             |
| ModifiedOn        | string          | The date the product was last modified       |
| Code              | string          | The product SKU code                         |
| Brand             | string          | The product brand                            |
| SizeName          | string          | The size display name                        |
| SizeCode          | string          | The size code                                |
| ColourName        | string          | The colour display name                      |
| ColourCode        | string          | The colour code                              |
| ColourHex         | string          | The colour hex value                         |
| ERPId             | string          | The external ERP ID                          |
| ImageUrl          | string          | The product image URL                        |
| Description       | string          | The product description                      |
| BaseItemCode      | string          | The base item code (parent SKU for variants) |
| Deleted           | bool            | Whether the product is deleted               |
| IsActive          | bool            | Whether the product is active                |
| IsServiceItem     | bool            | Whether the product is a service item        |
| IsCourierItem     | bool            | Whether the product is a courier item        |
| IsSerialized      | bool            | Whether the product uses serial numbers      |
| Categories        | array of string | The product categories                       |
| Length            | decimal or null | The product length                           |
| Width             | decimal or null | The product width                            |
| Height            | decimal or null | The product height                           |
| Weight            | decimal or null | The product weight                           |
| DefaultQty        | int or null     | The default order quantity                   |
| MinQty            | int or null     | The minimum order quantity                   |
| MaxQty            | int or null     | The maximum order quantity                   |
| ProductSuppliers  | array           | The product's supplier records               |
| ProductWarehouses | array           | The product's warehouse cost records         |
| Barcodes          | array           | The product's barcodes                       |
| ProductSerials    | array           | The product's serial numbers                 |
| ProductKeyValues  | array           | Custom key-value attributes                  |
| Prices            | array           | Pricelist prices                             |

**Nested type - WebhookSupplier:**

| Field                  | Type            | Description                              |
| ---------------------- | --------------- | ---------------------------------------- |
| SupplierId             | string (GUID)   | The supplier ID                          |
| CreatedOn              | string          | Date the supplier link was created       |
| ModifiedOn             | string          | Date the supplier link was last modified |
| Name                   | string          | The supplier name                        |
| IsDefault              | bool            | Whether this is the default supplier     |
| ProductCode            | string          | The supplier's product code              |
| PreviousReceiptCost    | decimal or null | The previous receipt cost                |
| CurrentReceiptCost     | decimal or null | The current receipt cost                 |
| ConvertedDefaultCost   | decimal or null | The converted default cost               |
| SupplierStockLevel     | long or null    | The supplier's stock level               |
| StockLastUpdatedOn     | string or null  | When the supplier stock was last updated |
| RecommendedRetailPrice | decimal or null | The recommended retail price             |
| Prices                 | array           | Volume-based supplier prices             |

**Nested type - WebhookSupplierPrice:**

| Field    | Type            | Description                              |
| -------- | --------------- | ---------------------------------------- |
| PriceId  | string (GUID)   | The price record ID                      |
| Created  | string          | Date the price was created               |
| Modified | string          | Date the price was last modified         |
| Cost     | decimal or null | The cost at this quantity tier           |
| Quantity | int             | The minimum quantity for this price tier |

**Nested type - WebhookWarehouse:**

| Field                  | Type            | Description                               |
| ---------------------- | --------------- | ----------------------------------------- |
| WarehouseId            | long            | The warehouse ID                          |
| CreatedOn              | string          | Date the warehouse link was created       |
| ModifiedOn             | string          | Date the warehouse link was last modified |
| DefaultCost            | decimal or null | The default cost                          |
| RecommendedRetailPrice | decimal or null | The recommended retail price              |
| PreviousReceiptCost    | decimal or null | The previous receipt cost                 |
| CurrentReceiptCost     | decimal or null | The current receipt cost                  |
| AverageReceiptCost     | decimal or null | The average receipt cost                  |
| PreviousSellingPrice   | decimal or null | The previous selling price                |
| CurrentSellingPrice    | decimal or null | The current selling price                 |
| AverageSellingPrice    | decimal or null | The average selling price                 |

**Nested type - WebhookBarcode:**

| Field    | Type   | Description                          |
| -------- | ------ | ------------------------------------ |
| Id       | long   | The barcode record ID                |
| Created  | string | Date the barcode was created         |
| Modified | string | Date the barcode was last modified   |
| Barcode  | string | The barcode value                    |
| Quantity | int    | The quantity this barcode represents |
| Enabled  | bool   | Whether the barcode is active        |

**Nested type - WebhookSerial:**

| Field              | Type                  | Description                                    |
| ------------------ | --------------------- | ---------------------------------------------- |
| Id                 | long                  | The serial record ID                           |
| Created            | string                | Date the serial was created                    |
| Modified           | string                | Date the serial was last modified              |
| SerialNumber       | string                | The serial number value                        |
| Enabled            | bool                  | Whether the serial is active                   |
| StockLevelId       | long or null          | The linked stock level ID                      |
| Damaged            | bool                  | Whether the serial item is damaged             |
| SerialComment      | string                | A comment about the serial item                |
| Status             | int                   | The serial status code                         |
| BinLocation        | string                | The bin location of the serial item            |
| PickingSlipBarcode | string                | The picking slip barcode linked to this serial |
| Warehouse          | string                | The warehouse name                             |
| ProjectId          | string (GUID) or null | The linked project ID                          |
| ProjectNumber      | string                | The linked project number                      |
| WarehouseId        | long or null          | The warehouse ID                               |
| LocationId         | long or null          | The stock location ID                          |

**Nested type - WebhookKeyValue:**

| Field | Type   | Description             |
| ----- | ------ | ----------------------- |
| Id    | long   | The key-value record ID |
| Key   | string | The attribute key       |
| Value | string | The attribute value     |
| Code  | string | The attribute code      |

**Nested type - WebhookPricelistPriceModel:**

| Field        | Type    | Description                              |
| ------------ | ------- | ---------------------------------------- |
| Name         | string  | The pricelist name                       |
| Qty          | int     | The minimum quantity for this price tier |
| ModifiedOn   | string  | Date the price was last modified         |
| SellingPrice | decimal | The selling price                        |

**Sample payload:**

```json
{
  "ProductId": "c3d4e5f6-a1b2-7890-cdef-123456789abc",
  "CreatedOn": "2024-01-10T09:00:00",
  "ModifiedOn": "2024-01-15T14:00:00",
  "Code": "WIDGET-001",
  "Brand": "WidgetCo",
  "SizeName": "Large",
  "SizeCode": "LG",
  "ColourName": "Blue",
  "ColourCode": "BLU",
  "ColourHex": "#0000FF",
  "ERPId": "ERP-PROD-5001",
  "ImageUrl": "https://cdn.example.com/products/widget-001.jpg",
  "Description": "Blue Widget 100mm - Large",
  "BaseItemCode": "WIDGET-BASE",
  "Deleted": false,
  "IsActive": true,
  "IsServiceItem": false,
  "IsCourierItem": false,
  "IsSerialized": false,
  "Categories": ["Widgets", "Accessories"],
  "Length": 100.0,
  "Width": 50.0,
  "Height": 25.0,
  "Weight": 0.5,
  "DefaultQty": 1,
  "MinQty": 1,
  "MaxQty": 100,
  "ProductSuppliers": [
    {
      "SupplierId": "d4e5f6a1-b2c3-7890-defa-234567890bcd",
      "CreatedOn": "2024-01-10T09:00:00",
      "ModifiedOn": "2024-01-15T14:00:00",
      "Name": "Widget Supplies Ltd",
      "IsDefault": true,
      "ProductCode": "SUP-WDG-001",
      "PreviousReceiptCost": 45.00,
      "CurrentReceiptCost": 48.50,
      "ConvertedDefaultCost": 48.50,
      "SupplierStockLevel": 500,
      "StockLastUpdatedOn": "2024-01-14T12:00:00",
      "RecommendedRetailPrice": 120.00,
      "Prices": [
        {
          "PriceId": "e5f6a1b2-c3d4-7890-efab-345678901cde",
          "Created": "2024-01-10T09:00:00",
          "Modified": "2024-01-10T09:00:00",
          "Cost": 48.50,
          "Quantity": 1
        }
      ]
    }
  ],
  "ProductWarehouses": [
    {
      "WarehouseId": 10,
      "CreatedOn": "2024-01-10T09:00:00",
      "ModifiedOn": "2024-01-15T14:00:00",
      "DefaultCost": 48.50,
      "RecommendedRetailPrice": 120.00,
      "PreviousReceiptCost": 45.00,
      "CurrentReceiptCost": 48.50,
      "AverageReceiptCost": 46.75,
      "PreviousSellingPrice": 110.00,
      "CurrentSellingPrice": 115.00,
      "AverageSellingPrice": 112.50
    }
  ],
  "Barcodes": [
    {
      "Id": 8801,
      "Created": "2024-01-10T09:00:00",
      "Modified": "2024-01-10T09:00:00",
      "Barcode": "6001234567890",
      "Quantity": 1,
      "Enabled": true
    }
  ],
  "ProductSerials": [],
  "ProductKeyValues": [
    {
      "Id": 9901,
      "Key": "Material",
      "Value": "Aluminium",
      "Code": "MAT"
    }
  ],
  "Prices": [
    {
      "Name": "Retail",
      "Qty": 1,
      "ModifiedOn": "2024-01-15T14:00:00",
      "SellingPrice": 115.00
    },
    {
      "Name": "Wholesale",
      "Qty": 10,
      "ModifiedOn": "2024-01-15T14:00:00",
      "SellingPrice": 95.00
    }
  ]
}
```

### 📁 ProjectModel

Sent for project lifecycle events such as project updates, approvals, cancellations, completions, and sales rep changes. This is a large model - the table below covers the most important fields your integration is likely to need.

**Key fields:**

| Field                    | Type            | Description                                         |
| ------------------------ | --------------- | --------------------------------------------------- |
| ProjectId                | string (GUID)   | The project ID                                      |
| ProjectNumber            | string          | The project number                                  |
| CreatedOn                | string          | The date the project was created                    |
| ModifiedOn               | string          | The date the project was last modified              |
| Deadline                 | string          | The project deadline                                |
| Status                   | string          | The current project status                          |
| OrderStatus              | string          | The order status                                    |
| ReportedStatus           | string          | The reported status                                 |
| DeclineReason            | string          | The reason the project was declined (if applicable) |
| ContactPerson            | string          | The primary contact person name                     |
| Surname                  | string          | The contact person surname                          |
| SalesRep                 | string          | The assigned sales rep name                         |
| SalesRepEmail            | string          | The sales rep email                                 |
| SalesRepId               | string (GUID)   | The sales rep user ID                               |
| Description              | string          | The project description                             |
| ContactNumber            | string          | The contact phone number                            |
| CellContactNumber        | string          | The contact cell number                             |
| CustomerOrderNumber      | string          | The customer's purchase order number                |
| CustomerOrderReference   | string          | The customer's order reference                      |
| AdditionalReference      | string          | An additional reference field                       |
| DeliveryType             | string          | The delivery type                                   |
| Collection               | bool            | Whether the order is a collection                   |
| DeliverToCompany         | bool            | Whether to deliver to the company address           |
| ApprovedByAccounts       | bool            | Whether accounts has approved the project           |
| RequiresAccountsApproval | bool            | Whether the project requires accounts approval      |
| ProjectMargin            | decimal         | The project margin                                  |
| ProjectTotalCost         | decimal         | The total project cost                              |
| ProjectTotalValue        | decimal         | The total project value                             |
| ProjectTotalSales        | decimal         | The total project sales value                       |
| ProjectExchangeRate      | decimal         | The project exchange rate                           |
| EstimatedOrderValue      | decimal or null | The estimated order value                           |
| CurrencyId               | string (GUID)   | The currency ID                                     |
| WorkflowId               | string (GUID)   | The workflow ID                                     |
| ProjectWorkflowId        | string (GUID)   | The project workflow ID                             |
| OrganizationId           | string (GUID)   | The organization ID                                 |
| IndustryName             | string          | The industry name                                   |
| SourceSalesChannelName   | string          | The source sales channel name                       |
| ClientListDDL            | string          | The client/company name                             |
| ClientRepEmail           | string          | The client representative email                     |
| ClientRepName            | string          | The client representative name                      |
| EarliestDeliveryDate     | string          | The earliest delivery date                          |
| DeliveryInstructions     | string          | Delivery instructions                               |
| KeyValues                | object          | Custom key-value attributes on the project          |
| Tags                     | array           | Tags assigned to the project                        |
| PostalAddress            | object          | The postal address                                  |
| ShippingAddress          | object          | The shipping address                                |
| ManualClient             | object          | The manual client details                           |
| ProjectLines             | array           | The project line items                              |
| FinDocuments             | array           | The linked financial documents                      |

**Sample payload (abbreviated):**

```json
{
  "ProjectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "ProjectNumber": "PRJ-00123",
  "CreatedOn": "2024-01-10T09:00:00",
  "ModifiedOn": "2024-01-15T14:30:00",
  "Deadline": "2024-02-01T00:00:00",
  "Status": "Approved",
  "OrderStatus": "In Production",
  "ReportedStatus": null,
  "DeclineReason": null,
  "ContactPerson": "Alice",
  "Surname": "Johnson",
  "SalesRep": "Jane Smith",
  "SalesRepEmail": "jane.smith@example.com",
  "SalesRepId": "b2c3d4e5-f6a1-7890-bcde-f12345678901",
  "Description": "Bulk widget order for Q1 2024",
  "ContactNumber": "011-555-0100",
  "CellContactNumber": "082-555-0101",
  "CustomerOrderNumber": "CUST-PO-9921",
  "CustomerOrderReference": "REF-AJ-2024",
  "AdditionalReference": null,
  "DeliveryType": "Delivery",
  "Collection": false,
  "DeliverToCompany": true,
  "ApprovedByAccounts": true,
  "RequiresAccountsApproval": true,
  "ProjectMargin": 35.5,
  "ProjectTotalCost": 4850.00,
  "ProjectTotalValue": 7500.00,
  "ProjectTotalSales": 7500.00,
  "ProjectExchangeRate": 1.0,
  "EstimatedOrderValue": 8000.00,
  "CurrencyId": "f6a1b2c3-d4e5-7890-cdef-a12345678901",
  "WorkflowId": "f9e8d7c6-b5a4-3210-fedc-ba0987654321",
  "ProjectWorkflowId": "a9b8c7d6-e5f4-3210-abcd-ba0987654321",
  "OrganizationId": "01234567-89ab-cdef-0123-456789abcdef",
  "IndustryName": "Manufacturing",
  "SourceSalesChannelName": "Website",
  "ClientListDDL": "Acme Corporation",
  "ClientRepEmail": "alice.johnson@acme.com",
  "ClientRepName": "Alice Johnson",
  "EarliestDeliveryDate": "2024-01-25T00:00:00",
  "DeliveryInstructions": "Deliver to loading bay B, ask for warehouse manager",
  "KeyValues": {
    "AccountNumber": "ACC-00123",
    "Region": "Gauteng"
  },
  "Tags": [
    {
      "Id": 1,
      "Name": "Priority",
      "Colour": "#FF0000"
    }
  ],
  "PostalAddress": {
    "Address1": "123 Main Road",
    "Address2": "Sandton",
    "City": "Johannesburg",
    "Province": "Gauteng",
    "PostalCode": "2196",
    "Country": "ZA"
  },
  "ShippingAddress": {
    "Address1": "456 Industrial Ave",
    "Address2": "Midrand",
    "City": "Johannesburg",
    "Province": "Gauteng",
    "PostalCode": "1685",
    "Country": "ZA"
  },
  "ManualClient": {
    "CompanyName": "Acme Corporation",
    "VatNumber": "VAT-12345"
  },
  "ProjectLines": [],
  "FinDocuments": []
}
```

> The ProjectModel payload includes nested objects for addresses, client details, project lines, and financial documents. The sample above shows the structure - your integration should handle the full object graph.

### ✅ Summary

* **WebhookDocument** - The most common payload, used across all financial document events (invoices, POs, quotes, GRVs, delivery notes, credit notes, supplier returns). Contains line items with pricing, quantities, and key-value metadata.
* **WebhookPickingslip** - Covers picking lifecycle events with line-level bin locations and pick quantities.
* **WebhookChecking** - Tracks the checking/verification process with scanned quantities and box assignments.
* **WebhookStocklevel** - A simple flat payload for stock level changes with SKU, location, and quantity.
* **WebhookStocktake** - A flat payload for stocktake mode enter/exit events.
* **WebhookWarehouseTransfer** - Tracks inter-warehouse transfers with source/destination details and line items.
* **WebhookProduct** - The richest payload, with nested suppliers, warehouses, barcodes, serials, key-values, and pricelist prices.
* **ProjectModel** - A large model covering all project lifecycle events with client details, financials, addresses, and line items.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://support.ordereazi.com/developers/webhooks/payload-reference.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
