> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.coi.co.il/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.coi.co.il/_mcp/server.

# Order Placed Payload

POST 

Reference example only — Coi is the caller here, your endpoint is the receiver. Fired once, as a POST with a JSON body, right after an order completes.

Configure the target URL at: Store > Store Settings > "Purchase" tab > "Webhook להזמנות".

IMPORTANT — Cart is not only real products. Alongside actual purchased items, Cart carries pseudo-line-items using negative ProductID as a type tag, so every discount/fee affecting the order total is visible in one array instead of requiring separate fields:

-1 Delivery

-2 Coupon

-3 PayPal commission

-4 Payment/installment fee

-5 VAT

-6 Promotion (store discount rule)

Any consumer that looks up "ProductID" against your own catalog MUST first filter out ProductID \<= 0, or it will crash or silently mis-book a discount as a purchased product. A negative-ID line has Sku: null and an empty Options array.

Cart\[].Options is a real JSON array (not a double-encoded string) — each entry is \{"Name": ..., "Price": ...}.

No authentication header — treat the URL itself as the secret and keep it out of client-side code.

Reference: https://docs.coi.co.il/webhooks/order-placed-payload

## Request

### Payload

- `FullName` (string, required) — Customer's full name, as entered at checkout.
- `Email` (string, required) — Customer's email address.
- `Phone` (string, required) — Customer's phone number, as entered (no fixed format — matches the input mask configured in Store Settings).
- `OrderNumber` (string, required) — Coi's own order number/identifier. Use this as your idempotency key — the same order is never re-sent with a different number.
- `Cart` (list of object, required) — Every line in the order — both real purchased products and pseudo-lines (delivery, coupon, promotion, VAT, payment fee). Always check ProductID before treating a line as a purchased product.
  - `ProductID` (integer, required) — Positive = a real catalog product (same ID the Product API's `id` param takes). Zero or negative = a pseudo-line, not a product: -1 Delivery, -2 Coupon, -3 PayPal commission, -4 Payment/installment fee, -5 VAT, -6 Promotion. Always filter ProductID \<= 0 before treating a line as a purchased product.
  - `Name` (string, required) — Line description — product name for a real product, or a label like "משלוח" / "קופון WELCOME10" for a pseudo-line.
  - `Price` (double, required) — Unit price for a product line; the (possibly negative) amount for a pseudo-line, e.g. a coupon or promotion discount.
  - `Quantity` (double, required) — Quantity purchased. Fractional for weight-sold products.
  - `Sku` (string, optional, nullable) — Product SKU. Always null on pseudo-lines (ProductID \<= 0).
  - `Options` (list of object, optional) — Selected product options (e.g. color/size), each with its own price delta. Empty on pseudo-lines.
    - `Name` (string, optional)
    - `Price` (double, optional) — Price delta this option adds, in the store's currency.
  - `OptionsPrice` (double, optional) — Sum of the selected options' price deltas, already reflected separately from Price.
  - `IsVatFree` (boolean, optional) — Whether this line is exempt from VAT.
- `Form` (list of object, required) — The customer's entire submitted checkout form, as name/value pairs — one entry per field the merchant's form actually collects. Field names are whatever the merchant configured (typically Hebrew labels), not a fixed set, so read this array rather than assuming specific keys.
  - `Name` (string, required) — The form field's label, as configured on the merchant's checkout form (not a fixed key — read it, don't assume it).
  - `Value` (string, required) — The value the customer submitted for this field.
- `Address` (string, optional, nullable) — Shipping/billing address as free text, if the checkout form collected one.
- `UserNotes` (string, optional, nullable) — Free-text order note from the customer, if the checkout form has a notes field.
- `Newsletter` (boolean, optional) — Whether the customer opted in to marketing emails at checkout.