Order Fields
A template prints whatever data it is sent, placed by {{fieldName}} placeholders. For orders, ReceiptKit uses one set of field names everywhere: the WooCommerce plugin sends them with every order, and the starter templates read them. Send the same names from your own system through the API and the Order Receipt, Store Receipt and Kitchen Ticket starters print your orders without changes.
How the data looks
- Money is text in your store's own format ("$12.00", "1.206,00 kr."), printed exactly as sent. Where a rule has to compare an amount, a plain-number twin ends in
Amount(totalAmount: 28.06). - Amounts are without tax; the
InclTaxtwin is the same amount with tax, so a template can print either. - Leave a field blank when there is nothing to print. Starter rows such as Discount, Shipping, Tip and Change hide themselves when their field is empty.
- Lists (
items,taxLines,payments…) are arrays. In a template a list field is written with a dot:{{items.name}}. - Your own fields are welcome. Any other key you send can be placed in a template the same way.
{
"storeName": "Bean & Brew",
"orderNumber": "1042",
"orderDateTime": "January 15, 2026 2:30 pm",
"items": [
{ "name": "Ceramic Mug", "sku": "MUG-114", "qty": "2", "price": "$12.99",
"total": "$25.98", "meta": "Color: Blue" }
],
"subtotal": "$25.98",
"tax": "$2.08",
"taxLines": [{ "label": "Sales Tax", "amount": "$2.08" }],
"total": "$28.06",
"payments": [{ "label": "Visa ****4242", "amount": "$28.06" }],
"customerName": "Jane Smith"
}Order fields
Sent with every order (blank when there is no value).
| Field | Type | Meaning |
|---|---|---|
| storeName | string | The store's name |
| storeAddress | string | The store's address, one line per row |
| storePhone | string | The store's phone |
| orderNumber | string | The order number as the store shows it, without a leading # |
| orderDate | string | Order date in the store's date format |
| orderTime | string | Order time in the store's time format |
| orderDateTime | string | Order date and time |
| orderStatus | string | The order's status, in the store's words |
| shippingMethod | string | The shipping or pickup method's title |
| items | list | The line items (ITEM_FIELDS) |
| subtotal | string | The items before any discount |
| subtotalInclTax | string | subtotal with tax |
| discount | string | Every discount on the order (blank when none) |
| discountInclTax | string | discount with tax |
| coupons | string | The discount codes, comma-separated |
| couponLines | list | One {label, amount} per discount |
| shipping | string | Shipping after its discounts (blank when nothing ships) |
| shippingInclTax | string | shipping with tax |
| fees | string | Fees added up (blank when none) |
| feesInclTax | string | fees with tax |
| feeLines | list | One {label, amount} per fee |
| tax | string | All tax |
| taxLines | list | One {label, amount} per tax rate |
| total | string | What the customer pays |
| pricesIncludeTax | boolean | The store shows prices with tax |
| subtotalAmount | number | subtotal as a plain number |
| discountAmount | number | discount as a plain number |
| shippingAmount | number | shipping as a plain number |
| feesAmount | number | fees as a plain number |
| taxAmount | number | tax as a plain number |
| totalAmount | number | total as a plain number |
| paymentMethod | string | The payment method(s), in words |
| payments | list | One {label, amount} per payment (cash as handed over) |
| customerName | string | The customer's name (blank for a walk-in sale) |
| customerEmail | string | The customer's email |
| customerPhone | string | The customer's phone |
| shippingAddress | string | Ship-to address, one line per row |
| billingAddress | string | Billing address, one line per row |
| customerNote | string | The customer's note on the order |
Item fields
Each entry in items. The unit price is before discounts and the line total is after them, so the item lines add up to subtotal less discount.
| Field | Type | Meaning |
|---|---|---|
| items.name | string | The product's name |
| items.sku | string | The SKU |
| items.qty | string | Quantity |
| items.price | string | Unit price before discounts |
| items.total | string | Line total after every discount on it |
| items.priceInclTax | string | price with tax |
| items.totalInclTax | string | total with tax |
| items.meta | string | Options, variations and add-ons, one per line ("Size: Large") |
Optional fields
Standard names for what not every system knows: in-store sales (tip, cash rounding, change, the register), item counts, and line discounts. Send them when you have them; the Store Receipt starter prints each one and hides it when it is missing.
| Field | Type | Meaning |
|---|---|---|
| metaFields | list | The store's own extra fields the merchant chose to send |
| itemCount | string | Quantities added up |
| lineCount | string | Number of item lines |
| itemCountText | string | itemCount with its word ("4 items") |
| lineCountText | string | lineCount with its word ("3 lines") |
| itemSummary | string | Both counts ("4 items and 3 lines") |
| tip | string | The tip (blank when none) |
| tipAmount | number | tip as a plain number |
| rounding | string | Cash rounding (blank when none) |
| roundingAmount | number | rounding as a plain number |
| totalBeforeRounding | string | total before cash rounding |
| adjustedTotal | string | The rounded amount due (blank without rounding) |
| change | string | Change given after a cash payment (blank when none) |
| changeAmount | number | change as a plain number |
| staffName | string | Who served the customer |
| locationName | string | The store location or till |
| deviceNumber | string | The register |
| receiptNumber | string | The register's receipt number |
| receiptDateTime | string | When the receipt was printed, in the register's time zone |
| deliveryMethod | string | shipping, pickup, local_delivery or none |
| pickupLocation | string | Where a pickup order is collected |
| netSubtotal | string | The items after their own line discounts |
| netSubtotalInclTax | string | netSubtotal with tax |
| orderDiscount | string | Discounts on the whole order only (blank when none) |
| orderDiscountInclTax | string | orderDiscount with tax |
| orderDiscountAmount | number | orderDiscount as a plain number |
| orderDiscountLines | list | One {label, amount} per order discount |
| Field | Type | Meaning |
|---|---|---|
| items.details | list | The same lines as {key, label, value}, to place or style one |
| items.originalTotal | string | Line total before its line discounts, shown struck through (blank when none) |
| items.netPrice | string | Unit price after its line discounts |
| items.netTotal | string | Line total after its line discounts (order discounts not taken off) |
| items.netPriceInclTax | string | netPrice with tax |
| items.netTotalInclTax | string | netTotal with tax |
| items.variant | string | The variant's options on their own line ("Large / Blue"; WooCommerce plugin 1.9.0+) |
Refund fields
A refund sends the order fields above for what it gives back (as negative amounts), plus these.
| Field | Type | Meaning |
|---|---|---|
| context | string | "refund" on a refund |
| refundNumber | string | The refund's number |
| refundDate | string | Refund date |
| refundTime | string | Refund time |
| refundDateTime | string | Refund date and time |
| refundReason | string | The reason given |
| refundedVia | string | How the money went back |
| orderTotal | string | The original order's total |
| totalRefunded | string | Refunded on the order so far |
| remainingTotal | string | The order's total less refunds |