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 7 months 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
{
"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
{
"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
{
"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
{
"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
{
"channel_specific": {
"buyer_user_id": "john_doe_123",
"selling_manager_sales_record_number": "5678",
"ioss_number": "IM1234567890"
}
}
Etsy
{
"channel_specific":
{ "tags": ["gift", "custom-engraving"]
}
}
BigCommerce
{
"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
{
"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
{
"channel_specific": {
"tags": ["express", "gift-wrap"],
"eori_number": "GB123456789000",
"ioss_number": "IM1234567890"
}
}
BtoB Wave
{
"channel_specific": {
"custom_field_1": "value_1",
"custom_field_2": "value_2"
}
}
TikTok Shop
{
"channel_specific": {
"package_ids": ["PKG-001", "PKG-002"],
"tags": ["Late shipment"]
}
}
OnBuy
{
"channel_specific":
{
"site_id": "2000",
"site_name": "OnBuy UK"
}
}
When neither field is present, channel_specific will be null.
ReCharge
{
"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
{
"channel_specific":
{ "tags": ["Priority", "Express"]
}
}
When tags are not enabled, channel_specific will be null.
DC Ecommerce
{
"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:
{
"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
{
"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
{
"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
{
"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
{
"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:
{
"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
{
"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
{
"id": "cc-uuid-0001",
"name": "Royal Mail",
"custom_name": "RM Tracked 24"
}
Dimensions Object
{
"weight": 0.35,
"weight_unit": "kg",
"length": 30,
"length_unit": "cm",
"width": 25,
"width_unit": "cm",
"height": 2,
"height_unit": "cm"
}
Export (Customs) Object
{
"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
{
"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
{
"remote_id": "li_123456",
"sku": "WIDGET-BLU-M",
"quantity": 1
}
Invoice Line Item Object
{
"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.

Was this helpful?
More in Stores
About StoresStill need help? Share an idea