Online Ordering Order

Methods

Create Order

This endpoint is used to place/update an order and be sure that the POS is Online.

This endpoint accepts these statuses: "ANTICIPATED", "READY_FOR_CONFIRMATION"

POST /online-ordering/v2/{locationId}/orders

Request Body (required)

Content-Type: application/json

Shift4 creates an unique order identifier by locationId and appRef.

{
  <Order>
}

Response 204 - POS is online and are ready to consume orders.

Response 504 - POS is offline and 3rd-party should do a retry action or contact a Restaurant to know the "offline" reason.

Update Order

This endpoint is used to update an order status.

This endpoint accepts these statuses: "ANTICIPATED", "READY_FOR_CONFIRMATION", "CONFIRMED", "CANCELLED", "REJECTED", "READY_FOR_PICKUP", "OUT_FOR_DELIVERY", "FULFILLED"

PUT /online-ordering/v2/{locationId}/orders

Request Body (required)

Content-Type: application/json

Shift4 identify Order by locationId and appRef.

{
  <Order>
}

Response 204 - POS is online and are ready to consume orders.

Response 202 - POS is offline and Order request has been registered in queue. POS will receive those updates when POS become online, no need to retry.

Response 504 - POS is offline and 3rd-party should do a retry action or contact a Restaurant to know the "offline" reason.

Definitions

Online Order

The order model is the basis for all POS orders. This contains all necessary information for fulfilling and processing orders.

Name Type Description
appRef* string The 3rd-party globally unique identity of the order. This is the primary and only guaranteed unique identity.
orderNumber* string A more human-readable order number to show to the customer, restaurant and drivers. This is not guaranteed to be unique forever and is thus not used as a true identifier from an API perspective.
isTest boolean If true, this is a test order and should not actually be prepared.
status* string The current state of the order:
  • UNKNOWN
  • ANTICIPATED
  • READY_FOR_CONFIRMATION
  • CONFIRMED
  • REJECTED
  • CANCELLED
  • READY_FOR_PICKUP
  • OUT_FOR_DELIVERY
  • FULFILLED
  • FULFILLMENT_FAILED
  • VOIDED
  • REFUNDED
statusHistory* array A status update reflects each successive change in the status of an order.
placedAt* string The time that the diner placed the order. Only UTC is accepted.
expectedAt* string The time that the food should be delivered or in the case of a pickup order, ready for pickup. Only UTC is accepted.
fulfillmentType* string
  • UNKNOWN
  • DELIVERY
  • PICKUP
  • DINE_IN - Experimental feature - will be replaced with a separate order flow
  • CURBSIDE - Supported only by a specific POS version.
deliveryInfo object Information on how to deliver the order to the diner.
pickupInfo object Information about the pickup of the order including basic diner information.
payments* array Individual payments for the order, this will also include adjustments.
paymentTotal* integer Initial total for an order in US Cents.
surcharges* array Individual charges in US Cents.
surchargeTotal* integer Total surcharges of all line items in US Cents.
taxes* array Any taxes applied to the order.
taxTotal* integer Total tax paid.
tips* array Tip for the order.
tipTotal* integer The sum total of all the tips on the order.
grandTotal* integer The total fees for the order in US Cents.
lineGroups* array List of grouped items ordered by the diner.
coupons* array List of Coupons applied to the order. Note this is reserved for the future and currently not supported at order placement.
metadata* array List of additional information related to Order.
universalToken string -
isDeferred boolean Indicates whether the order is deferred or not
deferredUntil string The time until which the order is deferred. Only UTC is accepted and the value is required if isDeferred is true.

Order Status History

A status update reflects each successive change in the status of an order. And are managed by the 3rd-party.

Name Type Description
status* string The status of order during that change. Values:
  • UNKNOWN
  • ANTICIPATED
  • READY_FOR_CONFIRMATION
  • CONFIRMED
  • REJECTED
  • CANCELLED
  • READY_FOR_PICKUP
  • OUT_FOR_DELIVERY
  • FULFILLED
  • FULFILLMENT_FAILED
  • VOIDED
  • REFUNDED
source* string The source of the update:
  • DINER
  • RESTAURANT
  • APP
  • POS
createdAt* string The time that the status changed. Only UTC is accepted.
reason string Free type of human friendly description why this change was made.

Order Delivery Info

Information on how to deliver the order to the diner.

Name Type Description
address* object The address to deliver to.
estimatedAt* string The time that the delivery is estimated by restaurant to occur. Only UTC is accepted.
instructions string Special instructions for delivery.
contactInfo* object Contact information for the diner.

Order Delivery Address

The address to deliver to.

Name Type Description
line1* string First address line.
line2 string Optional second address line.
city* string The city.
state* string The state as a two letter abbreviation.
country string The country as a two letter abbreviation.
crossStreet string -
postalCode* string The zip code. This is a string because it may in certain cases contain a +4 zip.
latitude number The geolocated addresses latitude.
longitude number The geolocated addresses longitude.
instructions string Any special instructions having to do with the delivery address. This might include the closests major cross streets as entered by the diner, etc.

Order Contact Info

Contact information for the diner.

Name Type Description
name* string Name of the diner.
phone* string Phone number of the diner.

Order Pickup Info

Information about the pickup of the order including basic diner information.

Name Type Description
estimatedAt* string The time that the diner was told that their food would be available for pickup. Only UTC is accepted.
instructions string Special instructions for pickup.
contactInfo* object Contact information for the diner.

Order Payment

Payments on the order.

Name Type Description
paymentType* string The payment type. Note all non-CASH payment types should be treated as pre-paid tender or house account in the POS. Values:
  • UNKNOWN - Unknown payment type
  • CASH - Cash payment
  • NON_CASH - Non cash payment
amount* integer The payment amount in US Cents.
paymentSubType string Additional information to describe how payment was made on aggregator side:
  • FACEBOOK_PAY
  • CORPORATE_LINE_OF_CREDIT
  • CREDIT_CARD
  • ANDROID_PAY
  • PAYPAL_EXPRESS
  • AMEX_EXPRESS
  • APPLE_PAY
  • GATEWAY

Order Surcharge

Base fees paid by the diner for the line items and delivery charges.

Name Type Description
name* string Surcharge Name like: Delivery, etc.
amount* integer The surcharge amount in US Cents.

Order Tax

Taxes paid by the diner.

Name Type Description
name* string Tax Name, like: Sales, Delivery, Restaurant.
amount* integer The tax amount in US Cents.

Order Tip

Information about tip. Note that tip may not be included in bill.

Name Type Description
type* string The payment method for tip. Values:
  • INCLUDE_IN_BILL - Order tip would be displayed in UI and included in Ticket
amount* integer The tax amount in US Cents.

Order Line Group

The grouped items ordered by the diner.

Name Type Description
name string A label for the group of line items.
lineItems* array The lines items for this portion of the order.

Order Line Item

The lines items for this portion of the order.

Name Type Description
name* string The name of the line item.
description string A description of the line item.
instructions string Free form text special instructions added by the diner.
price* integer The unit base price in US Cents of an item without adding in the price of any modifiers.
total* integer The unit total cost in US Cents of this item base price and modifiers.
quantity* integer The quantity ordered of this item.
lineModifiers array The options selected.

Order Line Modifier

The options selected for the specific item.

Name Type Description
price* integer The unit price of this line modifier in US Cents without adding in the price of any sub-modifiers.
name* string A name of this option
total* integer The unit price of this line option including modifier sub-modifiers, currently nested modifiers are not supported so it is same as price.
quantity* integer The quantity ordered of this option.
guid* string The guid of Online Store Modifier.

Order Coupon

Coupons applied to the order. Note this is reserved for the future and currently not supported at order placement.

Name Type Description
description* string Text identifying the coupon
amount* integer The amount of the coupon in US Cents

Order Metadata

Name Type Description
name* string A name of the specific Metadata item
type* string ENUM of supported types:
  • STRING
  • BOOLEAN
value* string A value of the specific Metadata item

results matching ""

    No results matching ""