IoneShop Developers

Events

Event names are stable strings. Payloads evolve additively.

Products

EventWhen
product.createdProduct created
product.updatedProduct or variant material fields changed
product.deletedProduct soft/hard deleted

Orders

EventWhen
order.createdOrder placed
order.paidPayment captured / marked paid
order.fulfillment_startedFulfillment begun
order.fulfilledFully fulfilled
order.cancelledCancelled
order.refundedRefund issued (partial/full reflected in payload)
order.return_requestedReturn initiated

Customers

EventWhen
customer.createdCustomer registered / created
customer.updatedProfile updated

Inventory

EventWhen
inventory.changedStock level changed at a location

Other (expanding)

EventWhen
checkout.completedCheckout finished (may precede order.paid depending on PSP)
media.uploadedMedia asset ready
webhook.testManual test ping

Payload conventions

{
  "event": "inventory.changed",
  "timestamp": "2026-08-01T12:00:00Z",
  "api_version": "v1",
  "payload": {
    "sku": "SKU-1",
    "location_id": "sloc_...",
    "quantity": 42,
    "updated_at": "2026-08-01T12:00:00Z"
  }
}
  • Unknown fields must be ignored by consumers
  • IDs are opaque strings with resource prefixes (prod_, ord_, cus_, …)
  • PII in payloads follows merchant privacy settings; never log full payloads in shared systems without controls

Ordering guarantees

  • Per resource: best-effort increasing updated_at; not a global total order
  • Duplicates possible after retries — use delivery_id / idempotent upserts
  • Out-of-order rare under load — compare versions before overwrite