Order Payload Reference: Channel-Specific Fields and Shared Object Schemas
This article extends the Webhooks documentation with a detailed reference to channel-specific order fields and the shared sub-object schemas used across Neuro order payloads.
Last updated About 8 hours ago

Data Structures Inside the Webhooks Payloads
When you have finished wiring up webhooks, the natural next question is, “what exactly is in the order payload I’m receiving?” This article picks up where the Webhook guide ends and serves as a field‑level reference for the data structures inside those payloads.
It starts with Channel-Specific Order Fields (Section 1), showing how each sales channel contributes additional metadata to an order via the `channel_specific` object and a small set of merged top‑level fields (such as `order_access_url` and `ioss_number`). You can see, per channel, which fields are available, when they are present, and how values like `shipping_method` are derived.
From there, Section 2 covers the Shared Sub-Object Schemas that appear consistently across payloads, including customers, addresses, payment details, order line items, fulfilments, returns, and more. Together, these sections give you a precise, implementation-ready map of the order JSON your integrations will consume.
This article is the second part of a two‑part guide. In the first instalment we covered how to configure and consume Neuro webhooks; here, we focus entirely on the shape of the data they deliver. If you need a refresher on setting up endpoints, event types, or retry behaviour, refer back to the Webhooks: Complete Field Reference (Practical Guide), then return here for a detailed, field‑by‑field tour of the order payload.
1. Channel-Specific Order Fields
In addition to the standard order fields, each channel merges additional fields into the order payload. These appear in two places:
channel_specific- an object containing channel meta data. Built from the order'smeta_fieldsandorderMetarecords.Top-level merged fields - fields like
order_access_urlandioss_numberthat are merged directly into the root of the order JSON.

1.1 Merged Top-Level Fields by Channel
These fields appear at the root level of the order JSON (not inside channel_specific):

2. Shipping Method by Channel

3. Specific Fields - Per Channel Detail
Below is every field that can appear inside channel_specific for each channel, with conditions for when each field is included.
Shopify
Example{
"channel_specific": {
"order_number": "1042",
"tags": ["VIP", "wholesale", "gift_message:Happy Birthday!"],
"shipping_code": "shopify-Standard Shipping-4.99",
"total_weight": 500,
"is_pos_order": false,
"ioss_number": "IM1234567890",
"pudo_id": "PUDO-12345",
"what3words_address": {
"shipping_words": "filled.count.soap",
"billing_words": "index.home.raft",
"shipping_lat": "51.520847",
"shipping_long": "-0.195521",
"billing_lat": "51.520847",
"billing_long": "-0.195521",
"shipping_nearest_place": "London",
"billing_nearest_place": "London"
}
}
}

Amazon SP
Example{
"channel_specific": {
"is_prime": false,
"fulfillment_channel": "MFN",
"ship_service_level": "Std UK Dom_2",
"shipment_service_level_category": "Standard",
"earliest_ship_date": "2026-01-15T00:00:00Z",
"latest_ship_date": "2026-01-17T23:59:59Z",
"earliest_delivery_date": "2026-01-18T00:00:00Z",
"latest_delivery_date": "2026-01-22T23:59:59Z",
"ioss": "ioss",
"is_bopis": false,
"bopis_store": "Amazon Fresh London"
}
}

WooCommerce
Example{
"channel_specific": {
"what3words_address": {
"shipping_words": "filled.count.soap",
"billing_words": "index.home.raft",
"shipping_lat": "51.520847",
"shipping_long": "-0.195521",
"billing_lat": "51.520847",
"billing_long": "-0.195521",
"shipping_nearest_place": "London",
"billing_nearest_place": "London"
}
}
}
When no What3Words data is present, channel_specific may be null or an empty object.

Magento
Example{
"channel_specific": {
"increment_id": "000000045",
"gift_message": "Happy Birthday!",
"customer_group_id": "1",
"what3words_address": {
"shipping_words": "filled.count.soap",
"billing_words": null,
"shipping_lat": "51.520847",
"shipping_long": "-0.195521",
"billing_lat": null,
"billing_long": null,
"shipping_nearest_place": "London",
"billing_nearest_place": null
},
"invoice_created": true
}
}

eBay
Example{
"channel_specific": {
"buyer_user_id": "john_doe_123",
"selling_manager_sales_record_number": "5678",
"ioss_number": "IM1234567890"
}
}

Etsy
Example{
"channel_specific":
{ "tags": ["gift", "custom-engraving"]
}
}

BigCommerce
Example{
"channel_specific": {
"what3words_address": {
"shipping_words": "filled.count.soap",
"billing_words": null,
"shipping_lat": "51.520847",
"shipping_long": "-0.195521",
"billing_lat": null,
"billing_long": null,
"shipping_nearest_place": "London",
"billing_nearest_place": null
}
}
}
When no What3Words data is present, channel_specific will be null.

OpenCart
Example{
"channel_specific": {
"what3words_address": {
"shipping_words": "filled.count.soap",
"billing_words": null,
"shipping_lat": "51.520847",
"shipping_long": "-0.195521",
"billing_lat": null,
"billing_long": null,
"shipping_nearest_place": "London",
"billing_nearest_place": null
}
}
}
When no What3Words data is present, channel_specific will be null.

PrestaShop
PrestaShop does not populate channel_specific. The field will be null.

VisualSoft
Example{
"channel_specific": {
"tags": ["express", "gift-wrap"],
"eori_number": "GB123456789000",
"ioss_number": "IM1234567890"
}
}

BtoB Wave
Example{
"channel_specific": {
"custom_field_1": "value_1",
"custom_field_2": "value_2"
}
}

TikTok Shop
Example{
"channel_specific": {
"package_ids": ["PKG-001", "PKG-002"],
"tags": ["Late shipment"]
}
}

OnBuy
Example{
"channel_specific":
{
"site_id": "2000",
"site_name": "OnBuy UK"
}
}
When neither field is present, channel_specific will be null.

ReCharge
Example{
"channel_specific": {
"shopify_id": "5001234567890",
"shopify_cart_token": "abc123def456",
"shopify_customer_id": "cust_789",
"shopify_order_id": "ord_456",
"shopify_order_number": "1042",
"order_number": "RC-10234",
"shipping_code": "standard",
"tags": ["subscription", "recurring"]
}
}
Note: Empty values for shopify_* fields are filtered out — only non-empty values are included.

Linnworks
Example{
"channel_specific":
{ "tags": ["Priority", "Express"]
}
}
When tags are not enabled, channel_specific will be null.

DC Ecommerce
Example{
"channel_specific": {
"shopify_order_id": "5001234567890",
"tags": ["wholesale", "attr_key: attr_value"]
}
}

What3Words Object
When a channel has What3Words integration enabled, the what3words_address object contains:
Example{
"shipping_words": "filled.count.soap",
"billing_words": "index.home.raft",
"shipping_lat": "51.520847",
"shipping_long": "-0.195521",
"billing_lat": "51.520847",
"billing_long": "-0.195521",
"shipping_nearest_place": "London",
"billing_nearest_place": "London"
}
Supported on:
Shopify, WooCommerce, Magento, BigCommerce, OpenCart

2. Shared Sub-Object Schemas
Customer Object
Example{
"id": 12345,
"customer_uuid": "cust-uuid-0001",
"company_id": 1,
"name": "Jane Smith",
"email": "jane.smith@example.com",
"created_at": "2025-06-10T08:00:00.000000Z",
"updated_at": "2026-01-15T14:32:00.000000Z"
}
Address Object
Example{
"id": "addr-uuid-001",
"name": "Jane Smith",
"company_name": "Acme Ltd",
"address_line_one": "123 High Street",
"address_line_two": "Floor 2",
"address_line_three": "",
"long_address": "123 High Street, Floor 2",
"county": "Greater London",
"city": "London",
"country_iso_code": "GB",
"zip": "EC1A 1BB",
"phone": "+441234567890"
}
Payment Details Object
Example{
"vat_id": "",
"vat_type": "",
"tax_rate": "20.00",
"tax_total": "8.33",
"shipping_total": "4.99",
"discount_total": "0.00",
"discount_total_exc_tax": "0.00",
"order_subtotal": "41.65",
"order_subtotal_exc_tax": "33.32",
"order_total": "46.64",
"payment_method": "shopify_payments",
"payment_ref": "ch_3ABC123",
"payment_currency": "GBP",
"coupon_code": "",
"coupon_total": "0.00",
"coupon_total_exc_tax": "0.00"
}
Order Line Item Object
Example{
"id": "item-uuid-0001",
"remote_id": "li_123456",
"sku": "WIDGET-BLU-M",
"channel_product_id": "cp-uuid-0001",
"master_product_id": "mp-uuid-0001",
"matched_sku": "WIDGET-BLU-M",
"quantity": 1,
"refunded_quantity": 0,
"name": "Blue Widget (Medium)",
"unit_price": "20.83",
"unit_price_exc_tax": "16.66",
"unit_discount": "0.00",
"total_discount": "0.00",
"unit_tax_rate": "20.02",
"unit_tax_value": "4.17",
"total_tax_value": "4.17",
"total_price": "20.83",
"is_tax_included": true,
"options": null,
"image_url": "https://cdn.example.com/widget-blue.jpg",
"file_url": null,
"notes": null,
"kit": [
{ "quantity": 1, "sku": "WIDGET-RED-S", "name": "Red Widget (Small)" }
]
}
Fulfilment Object
When an order has a fulfilment, the fulfillment field in order payloads contains:
Example{
"id": "ff-uuid-0001",
"order_id": "f7e6d5c4-1111-2222-3333-444444444444",
"order_primary_reference_id": null,
"order_remote_id": "5678901234",
"order_remote_alt_id": "ALT-12345",
"courier": {
"id": "cc-uuid-0001",
"name": "Royal Mail",
"custom_name": "RM Tracked 24"
},
"shipping_method": "Royal Mail Tracked 24",
"shipping_tracking_code": "JD012345678GB",
"tracking_url": "https://www.royalmail.com/track-your-item#/tracking-results/JD012345678GB",
"fulfillment_date": "2026-01-16T10:00:00.000000Z",
"sync_status": 2,
"items": [
{
"sku": "WIDGET-BLU-M",
"quantity": 1
}
],
"order_items": [
{
"remote_id": "li_123456",
"sku": "WIDGET-BLU-M",
"quantity": 1
}
]
}
Return Object
Example{
"id": "ret-uuid-0001",
"return_date": "2026-01-20T12:00:00.000000Z",
"sync_status": 2,
"items": [
{
"sku": "WIDGET-BLU-M",
"quantity": 1,
"reason": "Defective"
}
]
}
Courier Object
Example{
"id": "cc-uuid-0001",
"name": "Royal Mail",
"custom_name": "RM Tracked 24"
}
Dimensions Object
Example{
"weight": 0.35,
"weight_unit": "kg",
"length": 30,
"length_unit": "cm",
"width": 25,
"width_unit": "cm",
"height": 2,
"height_unit": "cm"
}
Export (Customs) Object
Example{
"hs_code": "6109.10.00",
"country_of_origin": "GB",
"customs_description": "Cotton T-Shirt"
}
Kit Item Object
{
"id": "mp-uuid-3001",
"sku": "WIDGET-RED-S",
"quantity": 1,
"name": "Red Widget (Small)"
}
Channel Product Object
See Section 13 for the full field reference.
Plugin Product Object
See Section 15 for the full field reference.
Plugin Object
Example{
"id": "plg-uuid-0001",
"name": "Whistl 3PL",
"provider_type": "whistl",
"push_orders": true,
"use_max_order_limit": false,
"max_order_limit": 0,
"max_order_sent_days": 30,
"max_order_status": 0,
"is_active": true,
"is_connected": true,
"push_order_cancellation_data": false,
"last_push_order_cancellation_data_at": null
}
Order Fulfilment Item Object
Example{
"remote_id": "li_123456",
"sku": "WIDGET-BLU-M",
"quantity": 1
}
Invoice Line Item Object
Example{
"id": "invl-uuid-0001",
"product_nominal_code": "4000",
"product": {},
"sku": "WIDGET-BLU-M",
"description": "Blue Widget (Medium) x1",
"tax_type": "standard",
"quantity": 1,
"unit_price": "16.66",
"price": "20.83",
"discount_total": "0.00",
"tax_total": "4.17"
}

All data in this document is fictitious. No real customer, order, address, or product data is used.
