Webhooks - Complete Field Reference

A comprehensive reference of every outbound webhook Neuro can fire, listing every field in every payload.

Last updated 6 days ago


1. Webhook Events Overview

#

Event

Name

TriggerPayload

TypeStatus

1

orders.received

New order imported into Neuro

Order

Live

2

orders.updated

Existing order is updated (status change, fulfillment, etc.)

Order

Live

3

orders.on_hold

Order placed on hold

Order

Live

4

orders.excluded

Order excluded from processing

Order

Live

5

orders.route_to_webhook

Order routed to a specific webhook via rules

Order

Live

6

confirmation.orders.received

Order receipt confirmed

Order

Live

7

fulfillments.created

New fulfillment created for an order

Fulfillment

Live

8

fulfillments.updated

Fulfillment record updated (tracking, status)

Fulfillment

Live

9

products.created

New main product created

Product

Coming Soon

10

products.updated

Main product record updated (stock, title, etc.)

Product

Live

11

channels.products.created

New channel product created (imported from channel)

Channel Product

Coming Soon

12

channels.products.updated

Channel product updated (stock sync, price, etc.)

Channel Product

Live

13

plugins.products.created

New plugin product created

Plugin Product

Coming Soon

14

plugins.products.updated

Plugin product updated

Plugin Product

Live

15

invoices.received

New invoice received

Invoice

Live

16

invoices.updated

Invoice updated

Invoice

Live

Item limits per event: Order events send up to 150 items per payload. Product events send up to 250 items per payload. If more items exist, multiple webhook calls are made.


2. orders.received

Fired when a new order is imported from a channel into Neuro.

Payload: Order

{
  "webhook_id": "a1b2c3d4-0000-0000-0000-000000000001",
  "order_id": "f7e6d5c4-1111-2222-3333-444444444444",
  "channel_id": "c1d2e3f4-aaaa-bbbb-cccc-dddddddddddd",
  "channel_alt_id": "ALT-12345",
  "channel_name": "My Shopify Store",
  "channel_type": "shopify",
  "store_id": "s1t2o3r4-eeee-ffff-0000-111111111111",
  "remote_id": "5678901234",
  "remote_status": "Unshipped",
  "status": "Unshipped",
  "customer": {
    "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"
  },
  "shipping_method": "Standard Shipping",
  "shipping_address": {
    "id": "addr-uuid-ship-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"
  },
  "invoice_address": {
    "id": "addr-uuid-inv-001",
    "name": "Jane Smith",
    "company_name": "Acme Ltd",
    "address_line_one": "123 High Street",
    "address_line_two": "",
    "address_line_three": "",
    "long_address": "123 High Street",
    "county": "Greater London",
    "city": "London",
    "country_iso_code": "GB",
    "zip": "EC1A 1BB",
    "phone": "+441234567890"
  },
  "fulfillment": null,
  "return": null,
  "payment_method": "shopify_payments",
  "send_via_webhook": true,
  "payment_status": "paid",
  "payment_details": {
    "vat_id": "",
    "vat_type": null,
    "tax_rate": "20",
    "tax_total": "8.33",
    "shipping_total": "4.99",
    "discount_total": "0",
    "discount_total_exc_tax": "0",
    "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",
    "coupon_total_exc_tax": "0"
  },
  "system_notes": "",
  "delivery_notes": "Please leave at the door",
  "customer_comments": "",
  "gift_note": "",
  "channel_specific": {
    "shipping_code": "shopify-Standard Shipping-4.99",
    "tags": ["VIP", "wholesale"],
    "note_attributes": [
      { "name": "gift_message", "value": "Happy Birthday!" }
    ]
  },
  "order_access_url": "https://myshop.myshopify.com/admin/orders/5678901234",
  "order_date": "2026-01-15T14:32:00.000000Z",
  "order_import_date": "2026-01-15T14:33:12.000000Z",
  "total_order_item_quantity": 2,
  "total_order_item_quantity_inc_kits": 4,
  "primary_reference_id": null,
  "order_lines": [
    {
      "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
    },
    {
      "id": "item-uuid-0002",
      "remote_id": "li_123457",
      "sku": "KIT-STARTER",
      "channel_product_id": "cp-uuid-0002",
      "master_product_id": "mp-uuid-0002",
      "matched_sku": "KIT-STARTER",
      "quantity": 1,
      "refunded_quantity": 0,
      "name": "Starter Kit",
      "unit_price": "20.82",
      "unit_price_exc_tax": "16.66",
      "unit_discount": "0.00",
      "total_discount": "0.00",
      "unit_tax_rate": "19.93",
      "unit_tax_value": "4.16",
      "total_tax_value": "4.16",
      "total_price": "20.82",
      "is_tax_included": true,
      "options": null,
      "image_url": "https://cdn.example.com/kit-starter.jpg",
      "file_url": null,
      "notes": null,
      "kit": [
        { "quantity": 1, "sku": "WIDGET-RED-S", "name": "Red Widget (Small)" },
        { "quantity": 2, "sku": "WIDGET-GRN-S", "name": "Green Widget (Small)" }
      ]
    }
  ],
  "md5_hash": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"
}

Order Field Reference

FieldTypeDescription

webhook_id

string (UUID)

Unique ID for this webhook delivery

order_id

string (UUID)

Neuro order UUID

channel_id

string (UUID)

Neuro channel UUID

channel_alt_id

string / null

Alternative channel identifier

channel_name

string

Display name of the channel

channel_type

string

Channel provider type (shopify, amazonsp, woocommerce, magento, ebay, etsy, bigcommerce, opencart, prestashop, btobwave, visualsoft , etc.)

store_id

string (UUID)

Neuro store UUID

remote_id

string

Order ID on the channel platform. Prefixed with order_prefix if configured.

remote_status

string

Order status as reported by the channel

status

string

Neuro-normalised order status

customer

object

See Customer Object

shipping_method

string

Human-readable shipping service name (channel-dependent β€” see Section 18)

shipping_address

object

See Address Object

invoice_address

object

See Address Object

fulfillment

object / null

See Fulfillment Object. Null if unfulfilled.

return

object / null

See Return Object. Null if no return.

payment_method

string

Payment method name

send_via_webhook

boolean

Whether this order is flagged to send via webhook

payment_status

string

Payment status

payment_details

object

See Payment Details Object

system_notes

string

Internal system notes

delivery_notes

string

Customer delivery instructions

customer_comments

string

Customer comments on the order

gift_note

string

Gift message if applicable

channel_specific

object / null

Raw channel meta data. Structure varies by channel (see Section 15).

order_access_url

string

Direct link to the order on the channel admin panel (most channels)

ioss_number

string / null

IOSS number for EU shipments (Amazon SP, eBay, Shopify, VisualSoft)

order_date

datetime

When the order was placed on the channel

order_import_date

datetime

When Neuro imported the order

total_order_item_quantity

integer

Sum of all line item quantities

total_order_item_quantity_inc_kits

integer

Sum including expanded kit item quantities

primary_reference_id

string / null

Primary reference ID if set

order_lines

array

Array of Order Line Item Objects

md5_hash

string

Hash for change detection / deduplication


3. orders.updated

Fired when an existing order is updated (status change, fulfillment added, etc.).

Payload: Identical structure to orders.received.

The payload always sends the full current state of the order, not a diff. The webhook_id will be different from the original received webhook.


4. orders.on_hold

Fired when an order is placed on hold.

Payload: Identical structure to orders.received.


5. orders.excluded

Fired when an order is excluded from processing (e.g. via order rules).

Payload: Identical structure to orders.received.

Note: For orders.received, orders.route_to_webhook, and orders.excluded, fully refunded line items are excluded from order_lines.


6. orders.route_to_webhook

Fired when an order is routed to a specific webhook endpoint via order routing rules.

Payload: Identical structure to orders.received.


7. confirmation.orders.received

Fired as a confirmation that an order has been received. Used for acknowledgement workflows.

Payload: Identical structure to orders.received.


8. fulfillments.created

Fired when a new fulfillment is created for an order.

Payload: Fulfillment

{
  "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-02-18 00:05:16",
  "sync_status": 2,
  "items": [
    { "sku": "WIDGET-BLU-M", "quantity": 1, "sales_channel_item_id": "5468632165489" }
  ],
  "order_items": [
    {
      "remote_id": "li_123456",
      "sku": "WIDGET-BLU-M",
      "quantity": 1
    }
  ],
  "order": {
    "order_id": "f7e6d5c4-1111-2222-3333-444444444444",
    "channel_id": "c1d2e3f4-aaaa-bbbb-cccc-dddddddddddd",
    "channel_alt_id": "ALT-12345",
    "channel_name": "My Shopify Store",
    "channel_type": "shopify",
    "store_id": "s1t2o3r4-eeee-ffff-0000-111111111111",
    "remote_id": "5678901234",
    "remote_status": "fulfilled",
    "status": "fulfilled",
    "customer": {
      "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"
    },
    "shipping_method": "Standard Shipping",
    "shipping_address": {
      "id": "addr-uuid-ship-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"
    },
    "invoice_address": {
      "id": "addr-uuid-inv-001",
      "name": "Jane Smith",
      "company_name": "Acme Ltd",
      "address_line_one": "123 High Street",
      "address_line_two": "",
      "address_line_three": "",
      "long_address": "123 High Street",
      "county": "Greater London",
      "city": "London",
      "country_iso_code": "GB",
      "zip": "EC1A 1BB",
      "phone": "+441234567890"
    },
    "return": null,
    "payment_method": "shopify_payments",
    "send_via_webhook": true,
    "payment_status": "paid",
    "payment_details": {
      "vat_id": "",
      "vat_type": "",
      "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"
    },
    "system_notes": "",
    "delivery_notes": "Please leave at the door",
    "customer_comments": "",
    "gift_note": "",
    "channel_specific": {
      "shipping_code": "shopify-Standard Shipping-4.99",
      "tags": ["VIP"],
      "is_pos_order": false,
      "order_number": 458754,
      "total_weight": 421,
      "shipping_code": "Free Express Tracked: 1-2 Days"
    },
    "order_access_url": "https://myshop.myshopify.com/admin/orders/5678901234",
    "order_date": "2026-01-15T14:32:00.000000Z",
    "order_import_date": "2026-01-15T14:33:12.000000Z",
    "total_order_item_quantity": 1,
    "total_order_item_quantity_inc_kits": 1,
    "primary_reference_id": null,
    "order_lines": [
      {
        "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": [
                {
                  "option_name": "__kaching_bundles",
                  "option_value": {
                    "deal": "7tD45m",
                    "main": true,
                    "market": 5455,
                    "id": "ANtp"
                  }
                }
              ],
        "image_url": "https://cdn.example.com/widget-blue.jpg",
        "file_url": null,
        "notes": null
      }
    ],
    "md5_hash": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"
  },
  "plugin": {
    "id": "plg-uuid-0001",
    "name": "Whistl 3PL"
  },
  "channel": {
    "id": "c1d2e3f4-aaaa-bbbb-cccc-dddddddddddd",
    "name": "My Shopify Store"
  },
  "fulfillment_plugin": {
    "id": "plg-uuid-0001",
    "name": "Whistl 3PL"
  }
}

Fulfillment Field Reference

FieldTypeDescription

id

string (UUID)

Neuro fulfillment UUID

order_id

string (UUID)

Neuro order UUID

order_primary_reference_id

string / null

Order's primary reference ID

order_remote_id

string

Order ID on the channel

order_remote_alt_id

string / null

Alternative order ID on the channel

courier

object / null

See Courier Object

shipping_method

string

Shipping method used for fulfillment

shipping_tracking_code

string

Tracking number

tracking_url

string

Tracking URL

fulfillment_date

datetime

When the fulfillment was created

sync_status

integer

Sync status code

items

array

Array of { sku, quantity } objects

order_items

array

Array of Order Fulfillment Item Objects

order

object

Full Order Object (the parent order)

plugin

object / null

{ id, name } β€” the order's current plugin

channel

object

{ id, name } β€” the order's channel

fulfillment_plugin

object / null

{ id, name } β€” the plugin that created this fulfillment (null if not plugin-created)


9. fulfillments.updated

Fired when an existing fulfillment is updated (tracking code changed, status updated, etc.).

Payload: Identical structure to fulfillments.created.


10. products.created

Coming Soon β€” This event will be available in an upcoming release.

Fired when a new main (master) product is created in Neuro.

Payload: Identical structure to products.updated.


11. products.updated

Fired when a main (master) product is updated (stock quantity change, title change, etc.).

Payload: Product

{
  "id": "mp-uuid-1001",
  "sku": "TSHIRT-BLK-L",
  "title": "Classic T-Shirt Black (Large)",
  "product_nominal_code": "4000",
  "tax_type": "standard",
  "quantity": 150,
  "price": "24.99",
  "plugin_quantity": 150,
  "plugin_quantity_synced_at": "2026-01-15T08:00:00.000000Z",
  "plugin_sync_status": 2,
  "plugin_synced_at": "2026-01-15T08:00:00.000000Z",
  "api_quantity": 0,
  "type": "product",
  "auto_sync_stock": true,
  "product_kit_items": [],
  "channels": [
    {
      "id": "cp-uuid-1001",
      "type": "product",
      "store_id": "store-uuid-001",
      "store_name": "My Store",
      "channel_id": "ch-uuid-shopify",
      "channel_name": "My Shopify Store",
      "remote_id": "7654321098765",
      "remote_sku": "TSHIRT-BLK-L",
      "sku": "TSHIRT-BLK-L",
      "matched_sku": "TSHIRT-BLK-L",
      "title": "Classic T-Shirt Black (Large)",
      "description": "A classic black t-shirt in size large.",
      "image_url": "https://cdn.shopify.com/s/files/tshirt-black.jpg",
      "pending_quantity": 148,
      "synced_quantity": 148,
      "quantity": 150,
      "price": "24.99",
      "currency": "GBP",
      "product_nominal_code": "4000",
      "dimensions": {
        "weight": 0.35,
        "weight_unit": "kg",
        "length": 30.0,
        "length_unit": "cm",
        "width": 25.0,
        "width_unit": "cm",
        "height": 2.0,
        "height_unit": "cm"
      },
      "export": {
        "hs_code": "6109.10.00",
        "country_of_origin": "GB",
        "customs_description": "Cotton T-Shirt"
      },
      "barcodes": [
        {
          "id": 1,
          "barcode": "5060000000001"
        }
      ],
      "use_low_stock_buffer": false,
      "low_stock_buffer": 0,
      "channel_product_url": "https://myshop.myshopify.com/admin/products/7654321098765"
    }
  ],
  "plugin_products": [
    {
      "id": "pp-uuid-0001",
      "store_id": "store-uuid-001",
      "store_name": "My Store",
      "remote_id": "IP-98765",
      "sku": "TSHIRT-BLK-L",
      "product_id": 101,
      "quantity": 150,
      "plugin_sync_status": 2,
      "plugin_synced_at": "2026-01-15T08:00:00.000000Z",
      "title": "Classic T-Shirt Black (Large)",
      "image_url": "",
      "created_at": "2025-06-01T10:00:00.000000Z",
      "updated_at": "2026-01-15T08:00:00.000000Z",
      "plugin": {
        "id": "a0c745fd-d344-48ab-b520-54985314654",
        "name": "my amazon plugin",
        "provider_type": "amazon_mcf",
        "push_orders": true,
        "use_max_order_limit": false,
        "max_order_limit": 0,
        "max_order_sent_days": 0,
        "max_order_status": 0,
        "is_active": true,
        "is_connected": true,
        "allow_order_split": false,
        "is_default": false,
        "push_order_cancellation_data": false,
        "last_push_order_cancellation_data_at": null,
        "refetch_fulfillment": false,
        "channels": [
          {
            "id": "f38f9610-8d5b-1232-a19f-6f610289af4c",
            "name": "My Shopify Store"
          }
        ]
      }
    }
  ]
}

Product Field Reference

FieldTypeDescription

id

string (UUID)

Neuro product UUID

sku

string

Product SKU

title

string

Product title

product_nominal_code

string

Nominal / accounting code for customers using our Billing tool

tax_type

string

Tax type (e.g. standard, reduced, zero)

quantity

integer

Current stock quantity

price

string (decimal)

Product price

plugin_quantity

integer

Quantity as reported by plugin

plugin_quantity_synced_at

datetime / null

When plugin quantity was last synced

plugin_sync_status

integer

Plugin sync status code

plugin_synced_at

datetime / null

When the product was last synced with plugin

api_quantity

integer

Quantity set via API

type

string

product or kit

auto_sync_stock

boolean

Whether stock auto-syncs to channels

product_kit_items

array

Array of Kit Item Objects. Empty if type is product.

channels

array

Array of Channel Product Objects. All channel products linked to this product.

plugin_products

array

Array of Plugin Product Objects. All plugin products linked to this product.

Product with Kit Items Example

When type is kit:

{
  "id": "mp-uuid-2001",
  "sku": "KIT-STARTER",
  "title": "Starter Kit",
  "product_nominal_code": "",
  "tax_type": "standard",
  "quantity": 50,
  "price": "39.99",
  "plugin_quantity": 0,
  "plugin_quantity_synced_at": null,
  "plugin_sync_status": 0,
  "plugin_synced_at": null,
  "api_quantity": 0,
  "type": "kit",
  "auto_sync_stock": true,
  "product_kit_items": [
    {
      "id": "mp-uuid-3001",
      "sku": "WIDGET-RED-S",
      "quantity": 1,
      "name": "Red Widget (Small)"
    },
    {
      "id": "mp-uuid-3002",
      "sku": "WIDGET-GRN-S",
      "quantity": 2,
      "name": "Green Widget (Small)"
    }
  ],
  "channels": [],
  "plugin_products": []
}

12. channels.products.created

Coming Soon β€” This event will be available in an upcoming release.

Fired when a new channel product is created (e.g. imported from a sales channel into Neuro).

Payload: Identical structure to channels.products.updated.


13. channels.products.updated

Fired when a channel product is updated (stock sync, quantity change, price update, etc.).

Payload: Channel Product

{
  "id": "cp-uuid-1001",
  "type": "product",
  "store_id": "store-uuid-001",
  "store_name": "My Store",
  "channel_id": "ch-uuid-shopify",
  "channel_name": "My Shopify Store",
  "remote_id": "7654321098765",
  "remote_sku": "TSHIRT-BLK-L",
  "sku": "TSHIRT-BLK-L",
  "matched_sku": "TSHIRT-BLK-L",
  "title": "Classic T-Shirt Black (Large)",
  "description": "A classic black t-shirt in size large.",
  "image_url": "https://cdn.shopify.com/s/files/tshirt-black.jpg",
  "pending_quantity": 148,
  "synced_quantity": 148,
  "quantity": 150,
  "price": "24.99",
  "currency": "GBP",
  "product_nominal_code": "4000",
  "dimensions": {
    "weight": 0.35,
    "weight_unit": "kg",
    "length": 30.0,
    "length_unit": "cm",
    "width": 25.0,
    "width_unit": "cm",
    "height": 2.0,
    "height_unit": "cm"
  },
  "export": {
    "hs_code": "6109.10.00",
    "country_of_origin": "GB",
    "customs_description": "Cotton T-Shirt"
  },
  "barcodes": [
    { "id": 1, "barcode": "5060000000001" }
  ],
  "meta_fields": null,
  "use_low_stock_buffer": false,
  "low_stock_buffer": 0,
  "channel_product_url": "https://myshop.myshopify.com/admin/products/7654321098765"
}

Channel Product Field Reference

FieldTypeDescription

id

string (UUID)

Neuro channel product UUID

type

string

product or variant

store_id

string (UUID)

Neuro store UUID

store_name

string

Store display name

channel_id

string (UUID)

Neuro channel UUID (null if channel deleted)

channel_name

string

Channel display name (null if channel deleted)

remote_id

string

Product ID on the channel platform

remote_sku

string

SKU as stored on the channel

sku

string

SKU in Neuro

matched_sku

string

Matched SKU linking to main product

title

string

Product title

description

string

Product description

image_url

string

Product image URL

pending_quantity

integer

Quantity pending sync to channel

synced_quantity

integer

Last quantity successfully synced to channel

quantity

integer

Current stock quantity

price

string (decimal)

Product price

currency

string

Three-letter currency code

product_nominal_code

string

Nominal / accounting code

dimensions

object

See Dimensions Object

export

object

See Export (Customs) Object

barcodes

array

Array of { id, barcode } objects

meta_fields

object / null

Channel-specific product metadata

use_low_stock_buffer

boolean

Whether low stock buffer is active

low_stock_buffer

integer

Low stock buffer threshold

channel_product_url

string

Direct link to the product on the channel admin


14. plugins.products.created

Coming Soon β€” This event will be available in an upcoming release.

Fired when a new plugin product is created in Neuro.

Payload: Identical structure to plugins.products.updated.


15. plugins.products.updated

Fired when a plugin product is updated.

Payload: Plugin Product

{
  "id": "pp-uuid-0001",
  "store_id": "store-uuid-001",
  "store_name": "My Store",
  "remote_id": "IP-98765",
  "sku": "TSHIRT-BLK-L",
  "product_id": 101,
  "quantity": 150,
  "plugin_sync_status": 2,
  "plugin_synced_at": "2026-01-15T08:00:00.000000Z",
  "title": "Classic T-Shirt Black (Large)",
  "image_url": "",
  "created_at": "2025-06-01T10:00:00.000000Z",
  "updated_at": "2026-01-15T08:00:00.000000Z",
  "product": {
    "id": "mp-uuid-1001",
    "sku": "TSHIRT-BLK-L",
    "title": "Classic T-Shirt Black (Large)",
    "product_nominal_code": "4000",
    "tax_type": "standard",
    "quantity": 150,
    "price": "24.99",
    "plugin_quantity": 150,
    "plugin_quantity_synced_at": "2026-01-15T08:00:00.000000Z",
    "plugin_sync_status": 2,
    "plugin_synced_at": "2026-01-15T08:00:00.000000Z",
    "api_quantity": 0,
    "type": "product",
    "auto_sync_stock": true,
    "product_kit_items": [],
    "channels": [],
    "plugin_products": []
  },
  "plugin": {
    "id": "plg-uuid-0001",
    "name": "Inventory Planner",
    "provider_type": "inventory_planner",
    "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
  }
}

Plugin Product Field Reference

FieldTypeDescription

id

string (UUID)

Neuro plugin product UUID

store_id

string (UUID)

Neuro store UUID

store_name

string

Store display name

remote_id

string

Product ID on the plugin platform

sku

string

Product SKU

product_id

integer

Internal product ID (FK to main product)

quantity

integer

Stock quantity on the plugin

plugin_sync_status

integer

Sync status code

plugin_synced_at

datetime / null

When last synced with plugin

title

string

Product title

image_url

string

Product image URL

created_at

datetime

Record creation timestamp

updated_at

datetime

Record last updated timestamp

product

object

The linked main Product Object (when loaded)

plugin

object

The Plugin Object this product belongs to (when loaded)


16. invoices.received

Fired when a new invoice is received / created.

Payload: Invoice

{
  "id": "inv-uuid-0001",
  "invoice_number": "INV-2026-0042",
  "order_id": 500,
  "currency": "GBP",
  "store_id": "store-uuid-001",
  "channel_id": "ch-uuid-shopify",
  "shipping_total": "4.99",
  "shipping_tax_type": "standard",
  "shipping_account_code": "4200",
  "notes": "Monthly recurring order",
  "total": "46.64",
  "invoice_date": "2026-01-15T00:00:00.000000Z",
  "due_date": "2026-02-14T00:00:00.000000Z",
  "notify_contact": true,
  "meta": null,
  "sync_status": 0,
  "status": "pending",
  "lines": [
    {
      "id": "invl-uuid-0001",
      "product_nominal_code": "4000",
      "product": {
        "id": "mp-uuid-1001",
        "sku": "WIDGET-BLU-M",
        "title": "Blue Widget (Medium)",
        "product_nominal_code": "4000",
        "tax_type": "standard",
        "quantity": 150,
        "price": "20.83",
        "plugin_quantity": 150,
        "plugin_quantity_synced_at": "2026-01-15T08:00:00.000000Z",
        "plugin_sync_status": 2,
        "plugin_synced_at": "2026-01-15T08:00:00.000000Z",
        "api_quantity": 0,
        "type": "product",
        "auto_sync_stock": true,
        "product_kit_items": [],
        "channels": [],
        "plugin_products": []
      },
      "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"
    }
  ],
  "customer": {
    "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"
  },
  "invoice_address": {
    "id": "addr-uuid-inv-001",
    "name": "Jane Smith",
    "company_name": "Acme Ltd",
    "address_line_one": "123 High Street",
    "address_line_two": "",
    "address_line_three": "",
    "long_address": "123 High Street",
    "county": "Greater London",
    "city": "London",
    "country_iso_code": "GB",
    "zip": "EC1A 1BB",
    "phone": "+441234567890"
  }
}

Invoice Field Reference

FieldTypeDescription

id

string (UUID)

Neuro invoice UUID

invoice_number

string

Invoice number

order_id

integer

Internal order ID

currency

string

Three-letter currency code

store_id

string (UUID)

Neuro store UUID

channel_id

string (UUID)

Neuro channel UUID

shipping_total

string (decimal)

Shipping total

shipping_tax_type

string

Tax type for shipping

shipping_account_code

string

Account code for shipping

notes

string

Invoice notes

total

string (decimal)

Invoice total

invoice_date

datetime

Invoice date

due_date

datetime

Payment due date

notify_contact

boolean

Whether to notify the contact

meta

object / null

Additional metadata

sync_status

integer

Sync status code

status

string

Invoice status

lines

array

Array of Invoice Line Item Objects

customer

object

See Customer Object

invoice_address

object

See Address Object


17. invoices.updated

Fired when an existing invoice is updated.

Payload: Identical structure to invoices.received.


18. 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:

  1. channel_specific β€” an object containing channel meta data. Built from the order's meta_fields and orderMeta records.

  2. Top-level merged fields β€” fields like order_access_url and ioss_number that are merged directly into the root of the order JSON.


Merged Top-Level Fields by Channel

These fields appear at the root level of the order JSON (not inside channel_specific):

Channel

Extra Top-Level Fields

Shopify

order_access_url

Amazon SP

ioss_number, order_access_url (conditional, based on marketplace)

WooCommerce

order_access_url

Magento

order_access_url

eBay

order_access_url, ioss_number

Etsy

order_access_url

BigCommerce

order_access_url

OpenCart

order_access_url

PrestaShop

order_access_url

BtoB Wave

order_access_url

VisualSoft

ioss_number

TikTok Shop

β€”

OnBuy

β€”

ReCharge

β€”

Linnworks

β€”

DC Ecommerce

β€”


Shipping Method by Channel

Channel

shipping_method value

Source

Shopify

Human-readable title (e.g. "Standard Shipping")

Comma-joined shipping_lines[].title

Amazon SP

Service level code (e.g. "Std UK Dom_2")

ShipServiceLevel. Category in channel_specific.shipment_service_level_category

WooCommerce

Method title (e.g. "Royal Mail Tracked 24")

shipping_lines[0].method_title

Magento

Description or method code

shipping_description if "Use Shipping Method Description" is ON; otherwise raw method code

eBay

Service identifier (e.g. "UK_RoyalMailSecondClassStandard")

ShippingServiceSelected.ShippingService

Etsy

As provided by Etsy

Etsy shipping data

BigCommerce

As provided by BigCommerce

BigCommerce shipping data

OpenCart

As provided by OpenCart

OpenCart shipping data

PrestaShop

As provided by PrestaShop

PrestaShop carrier name

VisualSoft

As provided by VisualSoft

VisualSoft shipping data


channel_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"
    }
  }
}

Field

Type

Always Sent?

Condition / Notes

order_number

string

Yes

Shopify's display order number (e.g. "#1042"). Always present.

tags

array of strings

Yes

Shopify order tags (comma-separated on Shopify) merged with note_attributes (formatted as "name:value"). The what3words address note attribute is excluded. Always present (may be empty array).

shipping_code

string

Yes

Code from the first shipping line (e.g. "shopify-Standard Shipping-4.99"). Always present (may be empty string).

total_weight

number

Yes

Total order weight in grams as reported by Shopify. Always present (defaults to 0).

is_pos_order

boolean

Yes

true if the order originated from Shopify POS (Point of Sale); false otherwise. Always present.

ioss_number

string

No

Only present when the Xendo plugin is active OR fetch_order_meta_fields is enabled on the channel, and the Shopify order has an ioss_number meta field.

pudo_id

string

No

Only present when fetch_pudo_id is enabled on the channel AND the Shopify order has a matching PUDO meta field (configured via pudo_id_mappings). Used for parcel pick-up/drop-off points.

what3words_address

object

No

Only present when use_what3words is enabled on the channel. Contains What3Words location data. See What3Words Object.

(additional meta fields)

varies

No

When fetch_order_meta_fields is enabled on the channel, all Shopify order meta fields (from the GraphQL API) are merged into channel_specific as key: value pairs. The exact fields depend on what Shopify apps/customisations the merchant has installed.


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"
  }
}

Field

Type

Always Sent

Condition / Notes

is_prime

boolean

Yes

true if the order is an Amazon Prime order. Always present.

fulfillment_channel

string

Yes

"MFN" (Merchant Fulfilled) or "AFN" (Amazon FBA). Always present.

ship_service_level

string

Yes

Amazon's ship service level code (e.g. "Std UK Dom_2", "Exp UK Dom_1"). Always present.

shipment_service_level_category

string

Yes

Broader category: "Standard", "Expedited", "FreeEconomy", "NextDay", "SameDay", etc. Always present.

earliest_ship_date

datetime / null

Yes

Earliest date the order should be shipped. Always present (may be null).

latest_ship_date

datetime / null

Yes

Latest date the order should be shipped. Always present (may be null).

earliest_delivery_date

datetime / null

Yes

Earliest expected delivery date. Always present (may be null).

latest_delivery_date

datetime / null

Yes

Latest expected delivery date. Always present (may be null).

ioss

string

Yes

IOSS identifier key. Always present.

is_bopis

boolean

Yes

true if the order is a Buy Online Pick-up In Store (BOPIS / ISPU) order. Always present.

bopis_store

string

No

Only present when is_bopis is true. Contains the pick-up store name (from the shipping address name).


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"
    }
  }
}

Field

Type

Always Sent?

Condition / Notes

what3words_address

object

No

Only present when the WooCommerce order contains What3Words data in meta_data (keys _shipping_w3w, _billing_w3w, etc.). Populated from the WooCommerce What3Words plugin fields. See What3Words Object.

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
  }
}

Field

Type

Always Sent?

Condition / Notes

increment_id

string

Yes

Magento's order increment ID. Always present (may be empty string).

gift_message

string

Yes

Gift message from extension_attributes.gift_message.message. Always present (empty string if no gift message).

customer_group_id

string

Yes

Magento customer group ID. Always present (may be empty string).

what3words_address

object

No

Only present when use_what3words is enabled on the channel. Populated from Magento's What3Words extension attributes. See What3Words Object.

invoice_created

boolean

No

Only present when auto_create_invoices is enabled on the channel AND Magento reports total_invoiced == grand_total. Indicates the order has been fully invoiced on Magento.


eBay

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

Field

Type

Always Sent?

Condition / Notes

buyer_user_id

string

Yes

eBay buyer's user ID. Always present (may be empty string).

selling_manager_sales_record_number

string / null

Yes

eBay Selling Manager sales record number. Always present (may be null if not using Selling Manager).

ioss_number

string

No

Only present when the eBay transaction contains an eBayCollectAndRemitTaxes.eBayReference value (for EU IOSS orders).


Etsy

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

Field

Type

Always Sent?

Condition / Notes

tags

array of strings

Yes

Etsy order tags. Always present (may be empty array). Trimmed and deduplicated.


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
    }
  }
}

Field

Type

Always Sent?

Condition / Notes

what3words_address

object

No

Only present when use_what3words is enabled on the channel. See What3Words Object.

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
    }
  }
}

Field

Type

Always Sent?

Condition / Notes

what3words_address

object

No

Only present when use_what3words is enabled on the channel. See What3Words Object.

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"
  }
}

Field

Type

Always Sent?

Condition / Notes

tags

array of strings

Yes

Order tags. Always present (may be empty array).

eori_number

string

No

Only present when the VisualSoft order contains a CUSTOMER.EORI_NUMBER value.

ioss_number

string

Yes

From TAX_COLLECTION_ID. Always present (may be empty string).


BtoB Wave

{
  "channel_specific": {
    "custom_field_1": "value_1",
    "custom_field_2": "value_2"
  }
}

Field

Type

Always Sent?

Condition / Notes

(extra_fields)

varies

No

All fields from the BtoB Wave order's extra_fields object are mapped directly into channel_specific. The exact fields depend on the merchant's BtoB Wave configuration. Will be null if no extra fields exist.


TikTok Shop

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

Field

Type

Always Sent?

Condition / Notes

package_ids

array of strings

Yes

TikTok Shop package IDs associated with the order. Always present.

tags

array of strings

No

Only present when one or more order items have a sku_cancel_reason of "Late shipment". Contains the cancellation reason tags.


OnBuy

{
  "channel_specific": {
    "site_id": "2000",
    "site_name": "OnBuy UK"
  }
}

Field

Type

Always Sent?

Condition / Notes

site_id

string

No

Only present when the OnBuy order data contains site_id. Identifies which OnBuy marketplace site the order came from.

site_name

string

No

Only present when the OnBuy order data contains site_name. Human-readable site name.

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"]
  }
}

Field

Type

Always Sent?

Condition / Notes

shopify_id

string

Yes

The linked Shopify order ID. Always present (empty if not available).

shopify_cart_token

string

Yes

Shopify cart token. Always present (empty if not available).

shopify_customer_id

string

Yes

Shopify customer ID. Always present (empty if not available).

shopify_order_id

string

Yes

Shopify order ID reference. Always present (empty if not available).

shopify_order_number

string

Yes

Shopify order number. Always present (empty if not available).

order_number

string

Yes

ReCharge order number. Always present.

shipping_code

string

Yes

Shipping code from the first shipping line. Always present (may be empty).

tags

array of strings

No

Only present when the ReCharge order has tags. Comma-separated tags are split into an array.

Note: Empty values for shopify_* fields are filtered out β€” only non-empty values are included.


Linnworks

{
  "channel_specific": {
    "tags": ["Priority", "Express"]
  }
}

Field

Type

Always Sent?

Condition / Notes

tags

array of strings

No

Only present when include_order_identifiers_as_tag is enabled on the channel. Contains Linnworks order identifier tags.

When tags are not enabled, channel_specific will be null.


DC Ecommerce

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

Field

Type

Always Sent?

Condition / Notes

shopify_order_id

string

Yes

The linked Shopify order ID. Always present (may be empty).

tags

array of strings

Yes

Order tags merged with custom_attributes (formatted as "key: value"). Always present (may be empty array).


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"
}

Field

Type

Desription

shipping_words

string / null

What3Words address for shipping location

billing_words

string / null

What3Words address for billing location

shipping_lat

string / null

Shipping latitude

shipping_long

string / null

Shipping longitude

billing_lat

string / null

Billing latitude

billing_long

string / null

Billing longitude

shipping_nearest_place

string / null

Nearest named place to shipping address

billing_nearest_place

string / null

Nearest named place to billing address

Supported on: Shopify, WooCommerce, Magento, BigCommerce, OpenCart


19. 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"
}

FieldTypeDescription

id

integer

Internal customer ID

customer_uuid

string (UUID)

Customer UUID

company_id

integer

Company / account ID

name

string

Customer full name

email

string

Customer email (empty if hidden by account settings)

created_at

datetime

Customer created

updated_at

datetime

Customer last updated

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"
}

FieldTypeDescription

id

string (UUID)

Address UUID

name

string

Recipient name

company_name

string

Company name

address_line_one

string

Address line 1

address_line_two

string

Address line 2

address_line_three

string

Address line 3

long_address

string

Concatenated full address (may be trimmed by character limit settings)

county

string

County / state / province

city

string

City

country_iso_code

string

ISO 3166-1 alpha-2 country code

zip

string

Postal / ZIP code

phone

string

Phone number

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"
}

FieldTypeDescription

vat_id

string

Customer VAT ID

vat_type

string

VAT type

tax_rate

string (decimal)

Tax rate percentage

tax_total

string (decimal)

Total tax amount

shipping_total

string (decimal)

Shipping cost

discount_total

string (decimal)

Total discount (inc tax)

discount_total_exc_tax

string (decimal)

Total discount (exc tax)

order_subtotal

string (decimal)

Order subtotal (inc tax)

order_subtotal_exc_tax

string (decimal)

Order subtotal (exc tax)

order_total

string (decimal)

Final order total

payment_method

string

Payment method

payment_ref

string

Payment reference / transaction ID

payment_currency

string

Three-letter currency code

coupon_code

string

Applied coupon code

coupon_total

string (decimal)

Coupon discount amount (inc tax)

coupon_total_exc_tax

string (decimal)

Coupon discount amount (exc tax)

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)" }
  ]
}

FieldTypeDescription

id

string (UUID)

Neuro order item UUID

remote_id

string

Line item ID on the channel

sku

string

Product SKU from the channel

channel_product_id

string (UUID)

Neuro channel product UUID

master_product_id

string (UUID)

Neuro main product UUID

matched_sku

string

Matched SKU in Neuro (used for product linking)

quantity

integer

Quantity ordered

refunded_quantity

integer

Quantity refunded

name

string

Product name (falls back to SKU if empty)

unit_price

string (decimal)

Unit price (inc or exc tax β€” see is_tax_included)

unit_price_exc_tax

string (decimal)

Unit price excluding tax

unit_discount

string (decimal)

Discount per unit

total_discount

string (decimal)

Total discount for line

unit_tax_rate

string (decimal)

Calculated tax rate percentage

unit_tax_value

string (decimal)

Tax amount per unit

total_tax_value

string (decimal)

Total tax for line

total_price

string (decimal)

Total line price

is_tax_included

boolean

Whether unit_price includes tax

options

object / null

Variant options (decoded JSON β€” e.g. { "Color": "Blue", "Size": "M" })

image_url

string

Product image URL

file_url

string / null

Digital file URL (if applicable)

notes

string / null

Line item notes

kit

array

Only present for kit products. Array of { quantity, sku, name } for component items.

Fulfillment Object

When an order has a fulfillment, 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" }
  ]
}

FieldTypeDescription

id

string (UUID)

Return UUID

return_date

datetime

When the return was created

sync_status

integer

Sync status code

items

array

Return items (present when items exist)

Courier Object

{
  "id": "cc-uuid-0001",
  "name": "Royal Mail",
  "custom_name": "RM Tracked 24"
}

FieldTypeDescription

id

string (UUID)

Channel courier UUID

name

string

Courier name

custom_name

string

Custom display name

Dimensions Object

{
  "weight": 0.35,
  "weight_unit": "kg",
  "length": 30.0,
  "length_unit": "cm",
  "width": 25.0,
  "width_unit": "cm",
  "height": 2.0,
  "height_unit": "cm"
}

FieldTypeDescription

weight

float

Item weight

weight_unit

string

Weight unit (kg, g, lb, oz)

length

float

Item length

length_unit

string

Length unit (cm, in)

width

float

Item width

width_unit

string

Width unit

height

float

Item height

height_unit

string

Height unit

Export (Customs) Object

{
  "hs_code": "6109.10.00",
  "country_of_origin": "GB",
  "customs_description": "Cotton T-Shirt"
}

FieldTypeDescription

hs_code

string

Harmonised System tariff code

country_of_origin

string

ISO country code of manufacture

customs_description

string

Short description for customs declaration

Kit Item Object

{
  "id": "mp-uuid-3001",
  "sku": "WIDGET-RED-S",
  "quantity": 1,
  "name": "Red Widget (Small)"
}

FieldTypeDescription

id

string (UUID)

Component product UUID

sku

string

Component SKU

quantity

integer

Quantity per kit

name

string

Component product title

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
}

FieldTypeDescription

id

string (UUID)

Plugin UUID

name

string

Plugin display name

provider_type

string

Plugin type identifier

push_orders

boolean

Whether the plugin pushes orders

use_max_order_limit

boolean

Whether a max order limit is enforced

max_order_limit

integer

Maximum orders per push

max_order_sent_days

integer

Max age of orders to push (days)

max_order_status

integer

Max order status code for pushing

is_active

boolean

Whether the plugin is active

is_connected

boolean

Whether the plugin is connected

push_order_cancellation_data

boolean

Whether cancellation data is pushed

last_push_order_cancellation_data_at

datetime / null

When cancellation data was last pushed

Order Fulfillment Item Object

{
  "remote_id": "li_123456",
  "sku": "WIDGET-BLU-M",
  "quantity": 1
}

FieldTypeDescription

remote_id

string

Line item remote ID

sku

string

Product SKU

quantity

integer

Fulfilled quantity

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"
}

FieldTypeDescription

id

string (UUID)

Invoice line UUID

product_nominal_code

string

Nominal / accounting code

product

object

Full Product Object (when loaded)

sku

string

Product SKU

description

string

Line description

tax_type

string

Tax type

quantity

integer

Quantity

unit_price

string (decimal)

Unit price (exc tax)

price

string (decimal)

Unit price (inc tax)

discount_total

string (decimal)

Discount on line

tax_total

string (decimal)

Tax on line


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