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

# Payload Reference

Field tables and example deliveries for every production webhook event

{% hint style="info" %}
This page describes the current production release. Upcoming changes are documented in the **Preview** variant of this section.
{% endhint %}

This page documents the payload of every production webhook event: when it fires, its field table, and a complete example delivery. Events are listed in the [Event Catalog](/webhooks-customer/event-catalog.md).

Each field's **Presence** column states how the field behaves in real deliveries:

| Presence               | Meaning                                                                                                                                                                                                                           |
| ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Always**             | Present in every delivery                                                                                                                                                                                                         |
| **When available**     | Omitted entirely when there is no value — check for key presence rather than a `null` value                                                                                                                                       |
| **Not currently sent** | Part of the schema but not populated by the current production release. Do not build logic against these fields; they will be announced in the changelog (Resources section of the API documentation) before they start appearing |

Note: a small number of **Always** fields may carry a `null` value (e.g. `description`).

Envelope fields (`order_id`, `line_item_id`, `line_item_type`, `company_id`, `occurred_at`) are documented in the [Event Envelope](/webhooks-customer/event-catalog.md#event-envelope) and are generally not repeated inside payload objects.

***

## Order

Full detail for a line item on an order, including pricing, shipping intent, and requester context.

**Used by:** [`customer.order.line.created`](/webhooks-customer/event-catalog.md#customerorderlinecreated)

**Availability:** Production. **Fires when:** A line item was created on an order.

| Field                 | JSON Key                   | Type                         | Presence           | Description                                           |
| --------------------- | -------------------------- | ---------------------------- | ------------------ | ----------------------------------------------------- |
| Description           | `description`              | string                       | Always             | Item description                                      |
| UnitPrice             | `unit_price`               | decimal                      | Always             | Unit price for the line item                          |
| Quantity              | `quantity`                 | int                          | Always             | Quantity ordered                                      |
| UseShippingAccount    | `use_shipping_account`     | bool                         | Always             | Whether the customer's shipping account is used       |
| IsCriticalHardDown    | `is_critical_hard_down`    | bool                         | Always             | Whether this is a critical hard-down request          |
| CustomerPoNumber      | `customer_po_number`       | string                       | When available     | Customer purchase order number                        |
| SourcedPartNumber     | `sourced_part_number`      | string                       | When available     | Part number as sourced by PartsSource                 |
| RequestedPartNumber   | `requested_part_number`    | string                       | When available     | Part number as requested by the customer              |
| Manufacturer          | `manufacturer`             | string                       | When available     | Manufacturer name                                     |
| ManufacturerId        | `manufacturer_id`          | long                         | When available     | Manufacturer identifier                               |
| Condition             | `condition`                | string                       | When available     | Item condition                                        |
| Uom                   | `uom`                      | string                       | When available     | Unit of measure                                       |
| PsListPrice           | `ps_list_price`            | decimal                      | Not currently sent | PartsSource list price                                |
| Tax                   | `tax`                      | decimal                      | Not currently sent | Tax amount                                            |
| ShipCost              | `ship_cost`                | decimal                      | Not currently sent | Shipping cost                                         |
| Fees                  | `fees`                     | [Fee](#fee)\[]               | Not currently sent | Additional fees                                       |
| PlannedCarrier        | `planned_carrier`          | string                       | Not currently sent | Intended carrier                                      |
| PlannedShipMethod     | `planned_ship_method`      | string                       | Not currently sent | Intended ship method                                  |
| EstimatedShipDate     | `estimated_ship_date`      | DateTimeOffset               | When available     | Estimated ship date at time of creation               |
| IfOrderedBy           | `if_ordered_by`            | DateTimeOffset               | Not currently sent | Cutoff time for the quoted ship date                  |
| FacilityId            | `facility_id`              | long                         | When available     | Destination facility identifier                       |
| FacilityName          | `facility_name`            | string                       | When available     | Destination facility name                             |
| ShipAddress           | `ship_address`             | [ShipAddress](#shipaddress)  | When available     | Destination address                                   |
| Requester             | `requester`                | string                       | When available     | Who requested the item                                |
| RequesterId           | `requester_id`             | long                         | When available     | Requester identifier                                  |
| OrderedBy             | `ordered_by`               | string                       | Not currently sent | Who placed the order — use `ordered_by_id`            |
| OrderedById           | `ordered_by_id`            | long                         | When available     | Orderer identifier                                    |
| IsExchangeRequired    | `is_exchange_required`     | bool                         | When available     | Whether a core exchange is required                   |
| CustomerLineKey       | `customer_line_key`        | string                       | When available     | Customer-supplied line reference                      |
| LineType              | `line_type`                | string                       | Not currently sent | Line classification                                   |
| OriginatingLineItemId | `originating_line_item_id` | long                         | Not currently sent | Source line item, when this line derives from another |
| ExceptionReason       | `exception_reason`         | string                       | Not currently sent | Reason an exception was raised                        |
| TotalLines            | `total_lines`              | int                          | When available     | Total line count on the order                         |
| LineItemNumber        | `line_item_number`         | int                          | When available     | Position of this line on the order                    |
| Notes                 | `notes`                    | [Notes](#notes)\[]           | When available     | Notes attached to the line                            |
| FieldValues           | `field_values`             | [FieldValue](#fieldvalue)\[] | Not currently sent | Custom field values                                   |

```json
{
  "event_type": "customer.order.line.created",
  "company_id": 12345,
  "order_id": 50001,
  "line_item_id": 67890,
  "line_item_type": "part",
  "occurred_at": "2024-01-15T10:30:00Z",
  "payload": {
    "customer_po_number": "PO-2024-001",
    "requested_part_number": "HYD-3400-PUMP",
    "description": "Hydraulic Pump - 3400 Series",
    "manufacturer": "Acme Parts Co",
    "manufacturer_id": 100,
    "condition": "New",
    "unit_price": 49.99,
    "quantity": 1,
    "planned_carrier": "UPS",
    "planned_ship_method": "Ground",
    "use_shipping_account": false,
    "is_critical_hard_down": false,
    "estimated_ship_date": "2024-01-20T00:00:00Z"
  }
}
```

## OrderApproval

An approval request awaiting a decision.

**Used by:** [`customer.order.line.approval.requested`](/webhooks-customer/event-catalog.md#customerorderlineapprovalrequested)

**Availability:** Production. **Fires when:** Approval was requested for a line item.

| Field           | JSON Key           | Type           | Presence           | Description                                          |
| --------------- | ------------------ | -------------- | ------------------ | ---------------------------------------------------- |
| SubmittedAt     | `submitted_at`     | DateTimeOffset | Always             | When the approval was submitted                      |
| ApprovalLevel   | `approval_level`   | int            | Always             | Approval level in the workflow. Currently always `1` |
| TotalAmount     | `total_amount`     | decimal        | Always             | Amount requiring approval                            |
| ApprovalId      | `approval_id`      | long           | When available     | Approval identifier                                  |
| SubmittedBy     | `submitted_by`     | string         | When available     | Who submitted for approval                           |
| SubmittedById   | `submitted_by_id`  | long           | When available     | Submitter identifier                                 |
| ApprovalType    | `approval_type`    | string         | When available     | Type of approval required                            |
| RejectedAt      | `rejected_at`      | DateTimeOffset | Not currently sent | When rejected, if applicable                         |
| RejectionReason | `rejection_reason` | string         | Not currently sent | Reason for rejection, if applicable                  |

```json
{
  "event_type": "customer.order.line.approval.requested",
  "company_id": 12345,
  "order_id": 50001,
  "line_item_id": 67890,
  "line_item_type": "part",
  "occurred_at": "2024-01-15T14:30:00Z",
  "payload": {
    "approval_id": 555,
    "submitted_by": "jsmith@hospital.org",
    "submitted_by_id": 4471,
    "submitted_at": "2024-01-15T14:30:00Z",
    "approval_level": 1,
    "approval_type": "Price Override",
    "total_amount": 1250.00
  }
}
```

## OrderLineApprovalApproved

An approval decision at a single level.

**Used by:** [`customer.order.line.approval.approved`](/webhooks-customer/event-catalog.md#customerorderlineapprovalapproved)

**Availability:** Production. **Fires when:** An approver approved the line item.

| Field         | JSON Key         | Type           | Presence       | Description                       |
| ------------- | ---------------- | -------------- | -------------- | --------------------------------- |
| ApprovedById  | `approved_by_id` | long           | Always         | Approver identifier               |
| ApprovedAt    | `approved_at`    | DateTimeOffset | Always         | When approved                     |
| ApprovalLevel | `approval_level` | int            | Always         | Approval level that was satisfied |
| TotalAmount   | `total_amount`   | decimal        | Always         | Amount approved                   |
| ApprovedBy    | `approved_by`    | string         | When available | Who approved                      |

```json
{
  "event_type": "customer.order.line.approval.approved",
  "company_id": 12345,
  "order_id": 50001,
  "line_item_id": 67890,
  "line_item_type": "part",
  "occurred_at": "2024-01-15T16:05:00Z",
  "payload": {
    "approved_by": "mjones@hospital.org",
    "approved_by_id": 8812,
    "approved_at": "2024-01-15T16:05:00Z",
    "approval_level": 1,
    "total_amount": 1250.00
  }
}
```

## OrderLineApprovalRejected

A rejection decision.

**Used by:** [`customer.order.line.approval.rejected`](/webhooks-customer/event-catalog.md#customerorderlineapprovalrejected)

**Availability:** Production. **Fires when:** An approver rejected the line item.

| Field           | JSON Key           | Type           | Presence           | Description                             |
| --------------- | ------------------ | -------------- | ------------------ | --------------------------------------- |
| RejectedBy      | `rejected_by`      | string         | Always             | Who rejected                            |
| RejectedById    | `rejected_by_id`   | long           | Always             | Rejecter identifier                     |
| RejectedAt      | `rejected_at`      | DateTimeOffset | Always             | When rejected                           |
| ApprovalLevel   | `approval_level`   | int            | Always             | Approval level at which it was rejected |
| TotalAmount     | `total_amount`     | decimal        | Always             | Amount that was rejected                |
| RejectionReason | `rejection_reason` | string         | Not currently sent | Reason for rejection                    |

```json
{
  "event_type": "customer.order.line.approval.rejected",
  "company_id": 12345,
  "order_id": 50001,
  "line_item_id": 67890,
  "line_item_type": "part",
  "occurred_at": "2024-01-15T16:20:00Z",
  "payload": {
    "rejected_by": "mjones@hospital.org",
    "rejected_by_id": 8812,
    "rejected_at": "2024-01-15T16:20:00Z",
    "approval_level": 1,
    "rejection_reason": "Exceeds departmental budget for this quarter",
    "total_amount": 1250.00
  }
}
```

## OrderLineApprovalCompleted

The terminal approval outcome, once all levels are satisfied.

**Used by:** [`customer.order.line.approval.completed`](/webhooks-customer/event-catalog.md#customerorderlineapprovalcompleted)

**Availability:** Production. **Fires when:** The approval process finished.

| Field            | JSON Key             | Type           | Presence       | Description                    |
| ---------------- | -------------------- | -------------- | -------------- | ------------------------------ |
| ApprovedBy       | `approved_by`        | string         | Always         | Final approver                 |
| ApprovedById     | `approved_by_id`     | long           | Always         | Final approver identifier      |
| ApprovedAt       | `approved_at`        | DateTimeOffset | Always         | When approval completed        |
| TotalAmount      | `total_amount`       | decimal        | Always         | Approved amount                |
| CustomerPoNumber | `customer_po_number` | string         | When available | Customer purchase order number |

```json
{
  "event_type": "customer.order.line.approval.completed",
  "company_id": 12345,
  "order_id": 50001,
  "line_item_id": 67890,
  "line_item_type": "part",
  "occurred_at": "2024-01-15T16:30:00Z",
  "payload": {
    "approved_by": "mjones@hospital.org",
    "approved_by_id": 8812,
    "approved_at": "2024-01-15T16:30:00Z",
    "total_amount": 1250.00,
    "customer_po_number": "PO-2024-001"
  }
}
```

## OrderLineBackordered

A backorder notification with reason and expected availability.

**Used by:** [`customer.order.line.backorder.created`](/webhooks-customer/event-catalog.md#customerorderlinebackordercreated)

**Availability:** Production. **Fires when:** A line item was placed on backorder.

| Field           | JSON Key           | Type           | Presence       | Description                   |
| --------------- | ------------------ | -------------- | -------------- | ----------------------------- |
| BackorderedAt   | `backordered_at`   | DateTimeOffset | When available | When the line was backordered |
| BackorderReason | `backorder_reason` | string         | When available | Reason for the backorder      |
| BackorderEta    | `backorder_eta`    | DateTimeOffset | When available | Expected availability date    |

```json
{
  "event_type": "customer.order.line.backorder.created",
  "company_id": 12345,
  "order_id": 50001,
  "line_item_id": 67890,
  "line_item_type": "part",
  "occurred_at": "2024-01-16T09:00:00Z",
  "payload": {
    "backordered_at": "2024-01-16T09:00:00Z",
    "backorder_reason": "Out of stock - expected restock in 2 weeks",
    "backorder_eta": "2024-01-29T00:00:00Z"
  }
}
```

## BackorderUpdated

A revision to an existing backorder, most often a new ETA.

**Used by:** [`customer.order.line.backorder.updated`](/webhooks-customer/event-catalog.md#customerorderlinebackorderupdated)

**Availability:** Production. **Fires when:** Backorder details changed.

| Field                | JSON Key                 | Type           | Presence       | Description                      |
| -------------------- | ------------------------ | -------------- | -------------- | -------------------------------- |
| UpdatedAt            | `updated_at`             | DateTimeOffset | Always         | When the backorder was updated   |
| BackorderEta         | `backorder_eta`          | DateTimeOffset | When available | New expected availability date   |
| PreviousBackorderEta | `previous_backorder_eta` | DateTimeOffset | When available | Prior expected availability date |
| BackorderReason      | `backorder_reason`       | string         | When available | Reason for the change            |

```json
{
  "event_type": "customer.order.line.backorder.updated",
  "company_id": 12345,
  "order_id": 50001,
  "line_item_id": 67890,
  "line_item_type": "part",
  "occurred_at": "2024-01-22T11:15:00Z",
  "payload": {
    "backorder_eta": "2024-02-05T00:00:00Z",
    "previous_backorder_eta": "2024-01-29T00:00:00Z",
    "backorder_reason": "Manufacturer delay",
    "updated_at": "2024-01-22T11:15:00Z"
  }
}
```

## OrderLineCancelled

A terminal cancellation. The line item will not be fulfilled and will not ship.

**Used by:** [`customer.order.line.cancelled`](/webhooks-customer/event-catalog.md#customerorderlinecancelled)

**Availability:** Production. **Fires when:** A line item will not be fulfilled (terminal).

| Field              | JSON Key              | Type           | Presence       | Description                                |
| ------------------ | --------------------- | -------------- | -------------- | ------------------------------------------ |
| LineItemId         | `line_item_id`        | long           | Always         | Cancelled line item identifier             |
| CancellationReason | `cancellation_reason` | string         | Always         | Human-readable cancellation reason         |
| CancellationCode   | `cancellation_code`   | string         | Always         | Machine-readable cancellation code         |
| CancelledAt        | `cancelled_at`        | DateTimeOffset | Always         | When cancelled                             |
| IsRequote          | `is_requote`          | bool           | Always         | `true` when cancelled as part of a requote |
| CancelledBy        | `cancelled_by`        | string         | When available | Who cancelled                              |
| CancelledById      | `cancelled_by_id`     | long           | When available | Canceller identifier                       |

```json
{
  "event_type": "customer.order.line.cancelled",
  "company_id": 12345,
  "order_id": 50001,
  "line_item_id": 67890,
  "line_item_type": "part",
  "occurred_at": "2024-01-16T10:00:00Z",
  "payload": {
    "line_item_id": 67890,
    "cancellation_reason": "Customer Cancelled",
    "cancellation_code": "CUST_CANCEL",
    "cancelled_by": "jsmith@hospital.org",
    "cancelled_by_id": 4471,
    "cancelled_at": "2024-01-16T10:00:00Z",
    "is_requote": false
  }
}
```

{% hint style="info" %}
When `is_requote` is `true`, the line was cancelled as part of a requote rather than abandoned — expect a replacement line item to follow.
{% endhint %}

## Shipment

A shipment with tracking and delivery detail.

**Used by:** [`customer.shipment.shipped`](/webhooks-customer/event-catalog.md#customershipmentshipped)

**Availability:** Production. **Fires when:** A shipment was dispatched.

| Field                 | JSON Key                  | Type           | Presence           | Description                                      |
| --------------------- | ------------------------- | -------------- | ------------------ | ------------------------------------------------ |
| ShipmentType          | `shipment_type`           | string         | Always             | See [Shipment types](#shipment-types)            |
| Direction             | `direction`               | string         | Always             | `to_customer` or `from_customer`                 |
| OccurredAt            | `occurred_at`             | DateTimeOffset | Always             | When the shipment event occurred                 |
| TrackingNumber        | `tracking_number`         | string         | When available     | Primary tracking number                          |
| TrackingNumbers       | `tracking_numbers`        | string\[]      | When available     | All tracking numbers for multi-package shipments |
| Carrier               | `carrier`                 | string         | When available     | Shipping carrier                                 |
| ShipMethod            | `ship_method`             | string         | When available     | Service level                                    |
| ShippedAt             | `shipped_at`              | DateTimeOffset | When available     | When dispatched                                  |
| EstimatedDeliveryDate | `estimated_delivery_date` | DateTime       | When available     | Estimated delivery date                          |
| DeliveredAt           | `delivered_at`            | DateTimeOffset | Not currently sent | When delivered                                   |
| DeliverySignature     | `delivery_signature`      | string         | Not currently sent | Name captured on delivery                        |

```json
{
  "event_type": "customer.shipment.shipped",
  "company_id": 12345,
  "order_id": 50001,
  "line_item_id": 67890,
  "line_item_type": "part",
  "occurred_at": "2024-01-18T15:30:00Z",
  "payload": {
    "shipment_type": "order_fulfillment",
    "direction": "to_customer",
    "occurred_at": "2024-01-18T15:30:00Z",
    "tracking_number": "1Z999AA10123456784",
    "carrier": "UPS",
    "ship_method": "Ground",
    "shipped_at": "2024-01-18T15:30:00Z",
    "estimated_delivery_date": "2024-01-20"
  }
}
```

## ShipmentTrackingAssigned

Tracking assignment for a shipment.

**Used by:** [`customer.shipment.tracking.assigned`](/webhooks-customer/event-catalog.md#customershipmenttrackingassigned)

**Availability:** Production. **Fires when:** Tracking was assigned to a shipment.

| Field          | JSON Key          | Type           | Presence       | Description                           |
| -------------- | ----------------- | -------------- | -------------- | ------------------------------------- |
| ShipmentType   | `shipment_type`   | string         | Always         | See [Shipment types](#shipment-types) |
| Direction      | `direction`       | string         | Always         | `to_customer` or `from_customer`      |
| TrackingNumber | `tracking_number` | string         | Always         | Assigned tracking number              |
| AssignedAt     | `assigned_at`     | DateTimeOffset | Always         | When tracking was assigned            |
| Carrier        | `carrier`         | string         | When available | Shipping carrier                      |

```json
{
  "event_type": "customer.shipment.tracking.assigned",
  "company_id": 12345,
  "order_id": 50001,
  "line_item_id": 67890,
  "line_item_type": "part",
  "occurred_at": "2024-01-18T14:00:00Z",
  "payload": {
    "shipment_type": "order_fulfillment",
    "direction": "to_customer",
    "tracking_number": "1Z999AA10123456784",
    "carrier": "UPS",
    "assigned_at": "2024-01-18T14:00:00Z"
  }
}
```

## ShipmentEstimatedShipDateCreated

The first committed ship date for a shipment.

**Used by:** [`customer.shipment.estimated_ship_date.created`](/webhooks-customer/event-catalog.md#customershipmentestimated_ship_datecreated)

**Availability:** Production. **Fires when:** A shipment ship date was committed.

| Field             | JSON Key              | Type           | Presence       | Description                           |
| ----------------- | --------------------- | -------------- | -------------- | ------------------------------------- |
| ShipmentType      | `shipment_type`       | string         | Always         | See [Shipment types](#shipment-types) |
| Direction         | `direction`           | string         | Always         | `to_customer` or `from_customer`      |
| EstimatedShipDate | `estimated_ship_date` | DateTimeOffset | Always         | The committed ship date               |
| CommittedAt       | `committed_at`        | DateTimeOffset | Always         | When the date was committed           |
| ReasonDescription | `reason_description`  | string         | When available | Reason for the date                   |

```json
{
  "event_type": "customer.shipment.estimated_ship_date.created",
  "company_id": 12345,
  "order_id": 50001,
  "line_item_id": 67890,
  "line_item_type": "part",
  "occurred_at": "2024-01-15T14:00:00Z",
  "payload": {
    "shipment_type": "order_fulfillment",
    "direction": "to_customer",
    "estimated_ship_date": "2024-01-18T00:00:00Z",
    "reason_description": "Standard processing time",
    "committed_at": "2024-01-15T14:00:00Z"
  }
}
```

## ShipmentEstimatedShipDateUpdated

A revision to a previously committed shipment ship date.

**Used by:** [`customer.shipment.estimated_ship_date.updated`](/webhooks-customer/event-catalog.md#customershipmentestimated_ship_dateupdated)

**Availability:** Production. **Fires when:** A shipment ship date changed.

| Field                     | JSON Key                       | Type           | Presence       | Description                           |
| ------------------------- | ------------------------------ | -------------- | -------------- | ------------------------------------- |
| ShipmentType              | `shipment_type`                | string         | Always         | See [Shipment types](#shipment-types) |
| Direction                 | `direction`                    | string         | Always         | `to_customer` or `from_customer`      |
| EstimatedShipDate         | `estimated_ship_date`          | DateTimeOffset | Always         | The new ship date                     |
| PreviousEstimatedShipDate | `previous_estimated_ship_date` | DateTimeOffset | Always         | The prior ship date                   |
| UpdatedAt                 | `updated_at`                   | DateTimeOffset | Always         | When the date changed                 |
| ReasonDescription         | `reason_description`           | string         | When available | Reason for the change                 |

```json
{
  "event_type": "customer.shipment.estimated_ship_date.updated",
  "company_id": 12345,
  "order_id": 50001,
  "line_item_id": 67890,
  "line_item_type": "part",
  "occurred_at": "2024-01-17T09:00:00Z",
  "payload": {
    "shipment_type": "order_fulfillment",
    "direction": "to_customer",
    "estimated_ship_date": "2024-01-20T00:00:00Z",
    "previous_estimated_ship_date": "2024-01-18T00:00:00Z",
    "reason_description": "Vendor reported shipping delay",
    "updated_at": "2024-01-17T09:00:00Z"
  }
}
```

## OrderLineEstimatedShipDate

An estimated ship date assignment or update at the line item level.

**Used by:** [`order.line.estimated_ship_date.created`](/webhooks-customer/event-catalog.md#orderlineestimated_ship_datecreated), [`order.line.estimated_ship_date.updated`](/webhooks-customer/event-catalog.md#orderlineestimated_ship_dateupdated)

**Availability:** Production. **Fires when:** A line item ship date was set (`order.line.estimated_ship_date.created`).

**Availability:** Production. **Fires when:** A line item ship date changed (`order.line.estimated_ship_date.updated`).

| Field                     | JSON Key                       | Type           | Presence       | Description                      |
| ------------------------- | ------------------------------ | -------------- | -------------- | -------------------------------- |
| OccurredAt                | `occurred_at`                  | DateTimeOffset | Always         | When the date was set or changed |
| EstimatedShipDate         | `estimated_ship_date`          | DateTimeOffset | When available | The estimated ship date          |
| PreviousEstimatedShipDate | `previous_estimated_ship_date` | DateTimeOffset | When available | The prior estimated ship date    |
| ReasonId                  | `reason_id`                    | string         | When available | Reason code                      |
| ReasonDescription         | `reason_description`           | string         | When available | Human-readable reason            |

```json
{
  "event_type": "order.line.estimated_ship_date.created",
  "company_id": 12345,
  "order_id": 50001,
  "line_item_id": 67890,
  "line_item_type": "part",
  "occurred_at": "2024-01-15T14:00:00Z",
  "payload": {
    "occurred_at": "2024-01-15T14:00:00Z",
    "estimated_ship_date": "2024-01-20T00:00:00Z",
    "reason_id": "DELAY001",
    "reason_description": "Standard processing time"
  }
}
```

```json
{
  "event_type": "order.line.estimated_ship_date.updated",
  "company_id": 12345,
  "order_id": 50001,
  "line_item_id": 67890,
  "line_item_type": "part",
  "occurred_at": "2024-01-17T09:00:00Z",
  "payload": {
    "occurred_at": "2024-01-17T09:00:00Z",
    "estimated_ship_date": "2024-01-20T00:00:00Z",
    "previous_estimated_ship_date": "2024-01-18T00:00:00Z",
    "reason_id": "DELAY001",
    "reason_description": "Supplier delay"
  }
}
```

{% hint style="warning" %}
`order.line.estimated_ship_date.*` and `customer.shipment.estimated_ship_date.*` both report ship dates but from different perspectives — line item versus shipment. If you subscribe to both, expect two events for a single date change.
{% endhint %}

***

## Shared objects

### Fee

An additional charge. Nested inside [Order](#order). The parent `fees` field is not currently sent.

| Field | JSON Key | Type    | Presence | Description |
| ----- | -------- | ------- | -------- | ----------- |
| Name  | `name`   | string  | Always   | Fee name    |
| Value | `value`  | decimal | Always   | Fee amount  |

### ShipAddress

A destination address. Nested inside [Order](#order).

| Field         | JSON Key          | Type   | Presence       | Description        |
| ------------- | ----------------- | ------ | -------------- | ------------------ |
| ShipAddressId | `ship_address_id` | long   | When available | Address identifier |
| AttentionTo   | `attention_to`    | string | When available | Attention line     |
| EdiSenderCode | `edi_sender_code` | string | When available | EDI sender code    |
| Address1      | `address_1`       | string | When available | Address line 1     |
| Address2      | `address_2`       | string | When available | Address line 2     |
| Address3      | `address_3`       | string | When available | Address line 3     |
| City          | `city`            | string | When available | City               |
| State         | `state`           | string | When available | State or province  |
| ZipCode       | `zip_code`        | string | When available | Postal code        |
| Country       | `country`         | string | When available | Country            |

### Notes

A note attached to a line item. Nested inside [Order](#order).

| Field     | JSON Key      | Type           | Presence           | Description                            |
| --------- | ------------- | -------------- | ------------------ | -------------------------------------- |
| NoteId    | `note_id`     | long           | Always             | Note identifier                        |
| Note      | `note`        | string         | Always             | Note text                              |
| AddedAt   | `added_at`    | DateTimeOffset | Always             | When the note was added                |
| AddedBy   | `added_by`    | string         | Not currently sent | Who added the note — use `added_by_id` |
| AddedById | `added_by_id` | long           | When available     | Author identifier                      |

### FieldValue

A custom field value. Nested inside [Order](#order). The parent `field_values` field is not currently sent.

| Field    | JSON Key    | Type   | Presence       | Description             |
| -------- | ----------- | ------ | -------------- | ----------------------- |
| FieldUid | `field_uid` | string | When available | Field unique identifier |
| Name     | `name`      | string | When available | Field name              |
| Value    | `value`     | string | When available | Field value             |

***

## Enumerations

### Shipment types

Used by the `shipment_type` field on all shipment payload objects.

| Value                  | Description                                       |
| ---------------------- | ------------------------------------------------- |
| `order_fulfillment`    | Standard outbound fulfillment                     |
| `depot_repair_return`  | Item returning to the customer after depot repair |
| `depot_repair_intake`  | Item being sent in for depot repair               |
| `exchange_core_return` | Core being returned under an exchange             |
| `customer_return`      | Customer-initiated return                         |
| `loaner_outbound`      | Loaner unit sent to the customer                  |

### Line item types

Used by the `line_item_type` envelope field.

| Value             | Description                 |
| ----------------- | --------------------------- |
| `part`            | Physical part               |
| `depot_flat_rate` | Depot repair at a flat rate |
| `depot_quoted`    | Depot repair, quoted        |
| `service`         | On-site or remote service   |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.partssource.com/webhooks-customer/payload-reference.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
