
API reference standard-order.schema.json
StandardOrder
One restaurant order in Blizzfull's interchange format. The API returns orders in this shape, the point of sale saves them in it, and marketplace orders arrive in it.
JSON Schema apiv2.blizzfull.com/schema/standard-order.schema.json Copy on this site
About
Conventions:
- Money is integer cents (USD) unless a field says otherwise.
coupons[]is the one exception: it is internal engine state, in dollars. - Tax rates are percentages:
8.25means 8.25%. - Times are ISO 8601 strings. Blizzfull's own orders use UTC with a
+00:00offset; some marketplace orders omit the offset (UTC is implied). An unset time is0000-00-00T00:00:00+00:00. - Identifiers are pairs:
internalis Blizzfull's,externalis the point of sale's or marketplace's. - New fields may be added at any time. Ignore fields you don't recognise.
Used by POST /orders (response), GET /orders/{orderId}/getWithRestaurantStd (response)
StandardOrder
The document object
The order.
internalis the Blizzfull order number as a numeric string ("2303306"), or"ex-<n>"for a marketplace order Blizzfull relayed.externalis the marketplace's order ID, if any.Where the order is.
OPEN: being built, not yet sent to the kitchen.SUBMITTED: placed, waiting for the restaurant.ACCEPTED: the restaurant confirmed it.FULFILLED: closed out.CANCELED: voided.providerStatusstringThe marketplace's own status word, unchanged (for example
in_progress). Empty for Blizzfull orders.providerOutcomestringA marketplace order's reporting outcome, kept apart from
status(a marketplace failure still closes asFULFILLED).UNKNOWNfor Blizzfull orders.currencyCodestringAlways
USD.notestringThe customer's instructions for the whole order. Empty when there are none.
When the order was started.
When the order was placed.
When the restaurant accepted it. Unset until then.
When the order last changed.
When the order will be ready. For Blizzfull orders this equals
deliveryTimeand the estimated ready time.When a delivery order is due. Equals
pickupTimefor Blizzfull orders.The time the customer asked for when
isFutureis true; otherwise the estimated ready time.How the order is fulfilled.
PICKUPcovers take-out and curbside.sourceTypestringThe marketplace's own fulfilment type. A marketplace courier delivery arrives as
type: PICKUP(the courier picks it up) withsourceType: DELIVERY.UNKNOWNfor Blizzfull orders.isExternalbooleanTrue for a marketplace order Blizzfull relayed rather than took.
isTestbooleanTrue for a test order. Test orders never move real money.
taxRatestring | numberThe order's tax rate as a percentage. Blizzfull orders send a decimal string with four places (
"8.2500"is 8.25%); marketplace orders send a number. Older marketplace orders may hold a fraction (0.1076).isFuturebooleanTrue when the customer scheduled the order for a later time (see
fulfillmentTime). Stays true after that time passes.tablestringThe dine-in table. Empty for other orders.
guestCountintegerThe number of people in a dine-in party. 0 means not recorded.
dineinInitTimestampintegerWhen a dine-in party was seated, in Unix seconds (not ISO 8601). 0 means not recorded.
curbsidebooleanTrue when the customer asked to be served at the curb.
curbsideDetailsstringThe curbside vehicle, as "color make type". Empty otherwise.
contactFreebooleanTrue when a delivery should be left at the door.
hasAlcoholbooleanTrue when the order contains alcohol, so ID must be checked on hand-off.
sourcePlatformstringWhere the order was placed. For Blizzfull orders:
web,app,kiosk,posorphone(a phone-ordering partner). For marketplace orders: the marketplace's name.The self-order kiosk is a paid add-on.
pointsProviderstringThe loyalty program the points belong to. Currently always
blizzfull.processingViastring | nullHow the order's payments are processed.
manual: recorded, not processed (unpaid, cash at the register, pay later).cash: cash ordered online.aggregation/blizzfull-pay: cards processed by Blizzfull.restaurant-gateway: the restaurant's own card processor.restaurant-gateway-cp: a card reader at the counter. Empty on a few older orders; null for marketplace orders.dailyOrderNumberinteger | nullThe short number called out at the counter, restarting daily. Null when the restaurant doesn't use daily numbers.
The restaurant location the order belongs to.
The person the order is for.
The order lines, in the order they were added.
Order-level coupons and discounts. Their sum need not equal
totals.discount: a manual discount from the register has no entry here, and an applied coupon worth $0 still does.Item-level discounts, one per discounted line (also listed on the line itself under
items[].discounts).couponsobject[]Internal state of Blizzfull's coupon engine, in dollars. Not a stable contract: use
discounts,itemDiscountsandtotalsinstead.Restaurant fees on the order (a service or bag fee), and fees that are themselves taxes. A fee attached to one payment (a card fee) is listed on that payment instead, under
transactions[].extraCharges.Where and how a delivery order goes. Null for other orders.
The order's money, in cents.
total = subtotal - discount + deliveryFee + tax + tip + extraCharge.aggregatorAggregator | nullThe service that relayed a marketplace order. Null for Blizzfull orders.
Every payment on the order, whatever its status: approved, authorized (held), voided and refunded ones included. Empty when nothing has been paid.
{
"id": {
"internal": "2303306",
"external": null
},
"status": "SUBMITTED",
"type": "PICKUP",
"sourcePlatform": "phone",
"isFuture": true,
"pickupTime": "2026-10-29T02:30:00+00:00",
"fulfillmentTime": "2026-10-29T02:30:00+00:00",
"taxRate": "8.2500",
"processingVia": "manual",
"merchant": {
"name": "Example Wings",
"id": {
"internal": "1234",
"external": null
},
"timezone": "America/Los_Angeles"
},
"customer": {
"id": "776304",
"name": "Dana Rivera",
"phone": "+16615550177",
"phoneExt": ""
},
"items": [
{
"quantity": 1,
"orderItemID": 1,
"id": {
"internal": 166519,
"external": null
},
"name": "Hungry Combo",
"note": "Sauce on the side",
"unitPrice": 1650,
"totalPrice": 1650,
"taxRate": 8.25,
"optionSelections": [
{
"optionGroupId": "216385",
"selections": [
{
"optionItemId": "441415",
"selected": 1
}
]
},
{
"optionGroupId": "216386",
"selections": [
{
"optionItemId": "441417",
"selected": 1
}
]
}
]
}
],
"totals": {
"subtotal": 1650,
"tip": 0,
"extraCharge": 0,
"deliveryFee": 0,
"tax": 136,
"dspWithheldTax": 0,
"total": 1786,
"discount": 0,
"paid": 0,
"balanceOwed": 1786
},
"transactions": []
}Timestamp
string
ISO 8601 date and time. Blizzfull orders use UTC with a +00:00 offset; some marketplace orders omit the offset (UTC implied). 0000-00-00T00:00:00+00:00 means not set: treat it as null.
Used by StandardOrder.createdTime, StandardOrder.orderedTime, StandardOrder.acceptedTime, StandardOrder.modifiedTime, StandardOrder.pickupTime, StandardOrder.deliveryTime, StandardOrder.fulfillmentTime
Identifier
object
The same thing's ID in two systems. internal is Blizzfull's; external is the point of sale's or marketplace's.
Used by StandardOrder.id, Merchant.id, Item.id, Modifier.id, ModifierGroup.id, Category.id, Size.id, Discount.id, ExtraCharge.id, Aggregator.id, Transaction.id
Merchant
object
The restaurant location the order belongs to.
Used by StandardOrder.merchant
The restaurant's name.
internalis the Blizzfull restaurant ID, a numeric string.The restaurant's IANA time zone.
ghostLocationIDstring | nullThe virtual brand (ghost kitchen) a marketplace order was placed with. Null otherwise.
ghostLocationNamestring | nullThat virtual brand's name. Null otherwise.
Customer
object
The person the order is for.
Used by StandardOrder.customer
idstringThe customer's Blizzfull account, as a numeric string.
"5"is the shared guest account (no account). Empty when the order has no customer.namestringThe name to call out: the name given on the order, else the account's name, email or phone, else
Customer.phonestring | booleanThe order's callback number in E.164 form (
+16615550177), orfalsewhen there is no usable number. Marketplace orders pass the marketplace's number through unchanged.phoneExtstringA phone extension. Usually empty.
phoneOptInbooleanReserved. Currently always false.
emailstringThe account's email. Accounts created from a phone number carry a placeholder (
6615550177@#), and guest orders show the guest account's address, so don't treat this as a deliverable address.emailOptInbooleanReserved. Currently always false.
Item
object
One order line: a menu item at a quantity, with its size and options.
Used by StandardOrder.items
How many.
orderItemIDinteger | nullThe line's number within this order (1, 2, 3…), not a global ID. Null on marketplace orders.
checkNamestringThe guest's check the line belongs to, as
Guest N. Empty for the shared check.checkNumberintegerThe guest or seat number. 0 is the shared check.
internalis the menu item ID (an integer). 0 is a custom item not on the menu; 1 is a reward with no menu item behind it. Marketplace orders send strings.The line's display name, with the size name already prefixed when there is one.
translatedNamestringThe name in a second language, on receipts that ask for one. Otherwise empty or absent.
notestringSpecial instructions for this line.
The line's menu category. Filled on receipts and point-of-sale tickets; empty in API order responses.
tagsstring[]Kitchen routing tags (and
cat-<shortName>). Filled on receipts and point-of-sale tickets; empty in API order responses.unitPriceintegertotalPricedivided byquantity, rounded to the cent, so it may not multiply back exactly.totalPriceis authoritative.The line total in cents: the item with its size and options, times quantity, before item discounts.
customPriceinteger | nullA line total the cashier typed over the menu price, in cents. Null when the menu price stands.
taxRatenumberThe line's tax rate as a percentage. 0 for tax-exempt lines.
discountintegerThe line's item-level discount in cents.
The size chosen. An empty array (
[]) when the item has no sizes. Marketplace orders may carry a Size object with null IDs instead.The line's item-level discounts.
The options on the line, ready to print. For the exact choices (with IDs), use
optionSelections.optionSelectionsOptionGroupSelection[] | nullExactly which options were chosen, by ID. This is the authoritative record of a line's customization, and the shape you send when you create an order. Null when nothing was chosen beyond the defaults, and on receipts.
pointsUsedintegerLoyalty points spent on this line.
loyaltyItemIDintegerThe loyalty reward this line redeems. 0 when it isn't a reward.
giftCardbooleanTrue when the line sells gift-card value.
A signed reference used to activate a physical gift card, never the card number. Empty otherwise.
OptionGroupSelection
object
The choices made in one option group of an item.
Used by Item.optionSelections, POST /orders (request)
The option group's
linkageIDon this item, from the menu feed (fooditems[].options[].linkageID).
OptionItemSelection
object
One option's state. List only what differs from the menu's defaults: an option that is on by default stays on unless you send selected: 0.
Used by OptionGroupSelection.selections
The option's
id, from the menu feed (options[].items[].id).0 turns the option off. 1 or more turns it on: the count for a stepper group, or the level for a variable-amount group (1 light, 2 regular, 3 extra). Usually an integer; a few older orders hold a numeric string.
includedbooleanTrue when the option is one of the group's free (included) choices. Present only when true.
Choices inside the nested groups this option opens (choosing Burger opens Cooking temperature). Options nest two levels at most.
SubOptionGroupSelection
object
The choices made in a nested group.
Used by OptionItemSelection.subOptionSelections
The nested group's
id, from the menu feed (subOptions[].id). Nested groups have nolinkageID.
SubOptionItemSelection
object
One option's state in a nested group. It cannot open further groups.
Used by SubOptionGroupSelection.selections
The option's
idin the nested group.0 off; 1 or more on (see
OptionItemSelection.selected).includedbooleanTrue when the option is one of the group's free choices.
Modifier
object
One option on a line, as it prints.
Used by Item.modifiers, Modifier.modifiers
quantityinteger | stringThe selection value per unit of the item (see
OptionItemSelection.selected).The option's ID when known. Matched to the option by position, so it can be wrong for items with default options; rely on
optionSelectionsfor IDs.namestringReady to print, prefixes included (
No Onions,Extra Ranch,2x Ranch). Don't add the quantity again.translatedNamestringThe name in a second language, on receipts that ask for one.
notestringReserved. Currently always empty.
The option group the choice belongs to.
The part of a multi-part item the option belongs to, such as
1st Halfof a pizza. Its name is the item's name when the item has one part.unitPriceintegerThe option's price in cents. 0 on Blizzfull orders, whose option prices are inside the line's
totalPrice; marketplace orders fill it.totalPriceintegerunitPricetimesquantity, in cents. 0 on Blizzfull orders.taxRatenumberThe option's tax rate as a percentage.
Options chosen inside a nested group. One level deep.
ModifierGroup
object
A named group with an ID.
Used by Modifier.group, Modifier.food_group
namestringThe group's name, when known. Empty in API order responses.
translatedNamestringinternalis the group'slinkageIDon the item (a string), or null when unknown.
Category
object
The line's menu category. Filled on receipts and point-of-sale tickets; empty in API order responses.
Used by Item.category
namestringtranslatedNamestringshortNamestringThe category's short name, used to route tickets to printers.
The same thing's ID in two systems.
internalis Blizzfull's;externalis the point of sale's or marketplace's.
Size
object
The size variant chosen.
Used by Item.size
namestringtranslatedNamestringinternalis the size ID, a numeric string, or null.priceintegerReserved. Currently always 0: the size's price is inside the line's
totalPrice.
Discount
object
A coupon or discount and what it took off, in cents.
Used by StandardOrder.discounts, StandardOrder.itemDiscounts, Item.discounts
namestringamountintegerWhat it took off, in cents. Positive.
internalis the coupon ID (a numeric string) when it is a Blizzfull coupon.descriptionstring | nullitemIDinteger | nullReserved. Currently always null.
pointsUsedinteger | stringLoyalty points spent on the discount. Usually an integer.
ExtraCharge
object
A restaurant fee, or a fee that is itself a tax.
Used by StandardOrder.extraCharges
namestringinternalis the fee's name.amountintegerThe fee in cents.
isTaxbooleanTrue when the fee is a tax (and counts as tax on receipts).
taxRatenumberThe percentage the fee is taxed at; 0 when it isn't taxed.
isPercentageintegerReserved. Currently always 0;
amountis already in cents.taxedbooleanTrue when tax is charged on the fee.
Totals
object
The order's money, in cents. total = subtotal - discount + deliveryFee + tax + tip + extraCharge.
Used by StandardOrder.totals, Transaction.totals
The lines' total after item-level discounts.
tipintegerTips, including tips added after payment.
extraChargeintegerAll fees, including those attached to a payment.
deliveryFeeintegerdspWithheldTaxintegerThe part of
taxa delivery marketplace collected and remits itself. Already included intax. 0 for Blizzfull orders.What the order costs.
discountinteger | nullOrder-level discounts only (item-level ones are already out of
subtotal). Some marketplace orders send null for none.What has been paid. 0 for cash ordered online, which is collected on hand-off.
What is still owed. 0 when paid in full or canceled; negative when overpaid.
Delivery
object
Where a delivery order goes, and who is taking it.
Used by StandardOrder.delivery
addressstringStreet address.
unitstringApartment, suite or unit. Empty when none.
citystringstatestringTwo-letter state code.
zipstringfullstringThe whole address on one line, as "address unit city, state zip".
countrystringTwo-letter country code.
USfor Blizzfull orders.The delivery service taking the order, or null when the restaurant delivers it.
A point, in decimal degrees.
notesstringDelivery instructions. Usually empty here: instructions are in the order's
note.distancestring | numberDistance from the restaurant, as a decimal string (
"4.9").
Courier
object
The delivery service or driver.
Used by Delivery.courier
namestringOften the service's name (
Doordash,Uber) rather than a person's.phonestring | booleanThe courier's phone in E.164 form, or
falsewhen there is none.phoneExtstringemailstringReserved. Currently always empty.
statusstringWhere the courier is. Empty when unknown.
Reserved. Currently always null.
trackingUrlstringA live tracking page, when the service provides one.
Geocode
object
A point, in decimal degrees.
Used by Delivery.geo, Courier.geo
Aggregator
object
The service that relayed a marketplace order.
Used by StandardOrder.aggregator
namestringinternalidentifies the integration;externalis the source order's ID.
Transaction
object
One payment. Amounts are cents and stay positive for refunds: action and status say what happened.
Used by StandardOrder.transactions
typestringThe tender.
CARDis any card payment;MANUALis one recorded without a processor.amountintegerThe amount, in cents, tip included.
taxintegerThe tax this payment covered.
tipintegerThe tip in this payment.
cashTipbooleanTrue when the tip was paid in cash.
deliveryintegerThe delivery fee this payment covered.
discountsintegerThe discounts applied to this payment.
processedBystringThe processor, lowercased (
finix,braintree,paypal,cash,manual…).externalPaymentServicestringThe wallet the card came through.
canChargeAgainbooleanTrue when the card can be charged again for what the order still owes.
cardBrandstring | nullThe card network, or null.
last4string | nullThe card's last four digits, or null.
internalis the payment ID, a numeric string.statusstring | nullAUTHORIZED: held on the card, not yet captured.APPROVED: taken.VOIDED/REFUNDED: reversed.actionstringWhether the payment took money or returned it.
descriptionstring | nullA note from the source, such as
Stream transaction.itemsobject[]When a payment covers particular lines (a split check), which lines.
orderItemIDintegerThe line's
orderItemID.amountinteger | nullThe part of the line paid, in cents; null means all of it.
itemSplitDataobject | nullFor an item or guest split,
{version: 1, allocations: [{orderItemID, amount}]}. Null otherwise.pointsEarnedstring | integerLoyalty points the payment earned. A numeric string on Blizzfull orders.
receiptDataobject | array | nullLines printed on the card receipt. Keys starting with
_are not for the customer.This payment's money broken down like the order's. Null on marketplace orders.
extraChargesobject[]

A mom-and-pop should never lose to a chain on anything.
With Blizzfull, it doesn’t have to.
2,500+ restaurants served24/7 support(213) 529-3956