Download OpenAPI specification:Download
Overview
Bite exposes online ordering functionality through a REST API which third party developers can use to create applications on top of the Bite platform.
A Bite "Customer" represents a full end-user account created on Bite's platform. Customers can be created with a Bite password or can be authenticated against a Single Sign-On provider such as Paytronix or Punchh. Bite Customers have the following features:
After creating or authenticating a Bite Customer through the API, a unique authentication token will be returned which can be used to refer to that user from that moment on without the need to store their password in your application.
A dedicated sandbox environment will be provisioned for each new third-party developer. All development and testing must be carried out through that environment. It will include both an API sandbox as well as Admin Portal sandbox so that test locations could be modified by the developers for the purposes of testing their integration with Bite. The Sandbox environment runs the same code as production. https://YOUR_SANDBOX_SUB_DOMAIN.getbite.com/api
The production environment endpoint is: [REDACTED]
All communication must be encrypted over TLS 1.2
https://<environment_domain>/<API_version>/<resource>?[params]
Header |
Description | Example |
---|---|---|
x-md-api-version | Must be set to 4 | x-md-api-version: 4 |
x-bite-org-id | Must be set to the brand id that you are working with. This value will be provided along with the sandbox environment. | x-bite-org-id: 5fa31dc97acd2f0031e023eb |
x-customer-app-scope | Must be set to the brand's account scope. This value will be provided along with the sandbox environment. | x-customer-app-scope: my-brand-scope |
Authorization | Must be set to Bearer: API_TOKEN. The API_TOKEN will be provided along with the sandbox environment. | Authorization: Bearer 2979c798-c901-4ceb-8478-3b26c24a998d |
User-Agent | Unique user agent value that identifies the app. Please send this formatted as application_name/version. | User-Agent: SomeApp/v1.2.3 |
X-Device-Id | Unique hardware identifier for the device. | X-Device-Id: 993e0082-5bfd-4bbc-98ec-d13b50bbd54a |
A success response structure will look as follows:
{
success: true;
data?: {...};
}
An error response structure will look as follows:
{
success: false;
code: number;
message?: string;
data?: {...};
}
Any error response will contain an error code:
Code | Meaning | Suggested Action |
---|---|---|
60 | Customer Password Already Used: The customer is trying to use a password they have previously used. | |
61 | Customer Token Invalid: The token has been malformed or has expired. | Maybe the customer needs to log out and log in again because they've changed their password. |
62 | Customer Account Not Verified: The customer resource being accessed requires a verified customer account. | |
63 | Customer Account Disabled: The specified customer account has been disabled by one of the brand admins. | |
64 | Customer Account Deleted: The specified customer account has been deleted by one of the brand admins. |
Please treat all IDs in the API as strings.
We will not remove properties from the current API version, but we do add new properties to return objects from time to time.
There is no guaranteed ordering of properties. We request that properties are accessed by name and not by index.
Please do not rely on error messages for logic. Error text may change periodically. Rather rely on error codes, which are guaranteed to not change.
Some API endpoints are protected through the use of rate limiting. The base rate limit can be found in the description of the API endpoint.
Information about the current usage can be found in the headers of the response:
The rate limit maximum is adjusted by the number of locations associated with the token. For example, if an API has a base rate limit of 50 requests per minute, then an organization with 10 locations may use the API endpoint 500 times per minute.
2024-08-29
Added consentedToMarketing
field to order
2024-01-22
2024-01-03
2023-11-07
POST /api/v2/reporting/orders/day
GET /api/v2/reporting/orders/day/:date
2022-12-19
2022-10-25
2021-10-19
Creates a new customer account that can be used for storing payment methods, delivery addresses and past orders.
Success!
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "email": "user@example.com",
- "password": "pa$$word",
- "firstName": "string",
- "lastName": "string",
- "phoneNumber": "string",
- "orderId": "string"
}
{- "message": "string"
}
Logs into an existing customer account.
Success!
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "email": "string",
- "password": "pa$$word"
}
{- "token": "string",
- "customer": {
- "_id": "string",
- "state": 0,
- "email": "user@example.com",
- "scope": "my-brand-scope",
- "firstName": "string",
- "lastName": "string",
- "phoneNumber": "string"
}
}
Reset password for an existing customer account identified by the email address. If the customer account is found, an reset password email will be sent so that the user can finish the password reset process. The response from the API is the same regardless of whether the account was found.
Success!
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "email": "user@example.com"
}
{- "message": "string"
}
Change the password for the specified customer account using one of two ways. Either the resetToken
is provided from a password reset email, or the logged in customer provides their current password.
Success!
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "resetToken": "string",
- "currentPassword": "pa$$word",
- "newPassword": "pa$$word",
- "newPasswordRepeat": "pa$$word"
}
{- "token": "string"
}
Verify the email associated with the specified customer account.
Success!
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "verifyToken": "string"
}
{- "message": "string"
}
Returns the latest copy of the customer account.
Success!
required | object (Customer) |
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "customer": {
- "_id": "string",
- "state": 0,
- "email": "user@example.com",
- "scope": "my-brand-scope",
- "firstName": "string",
- "lastName": "string",
- "phoneNumber": "string"
}
}
Update some simple fields on the customer account such as name and phone number.
Success!
required | object (Customer) |
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "firstName": "string",
- "lastName": "string",
- "phoneNumber": "string"
}
{- "customer": {
- "_id": "string",
- "state": 0,
- "email": "user@example.com",
- "scope": "my-brand-scope",
- "firstName": "string",
- "lastName": "string",
- "phoneNumber": "string"
}
}
Deletes the customer account and all associated payment methods, delivery addresses, push tokens, etc.
Success!
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
An unexpected error occurred. Please verify that your request is correctly formatted.
Returns the latest copy of all the saved delivery addresses associated with the customer's account.
Success!
required | Array of objects (CustomerDeliveryAddress) |
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "deliveryAddresses": [
- {
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string",
- "phoneNumber": "string",
- "deliveryInstructions": "string",
- "nickname": "string",
- "isDefault": true
}
]
}
Creates a new delivery address saved to the customer's account.
Success!
required | object (CustomerDeliveryAddress) |
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string",
- "phoneNumber": "string",
- "deliveryInstructions": "string",
- "nickname": "string",
- "isDefault": true
}
{- "deliveryAddress": {
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string",
- "phoneNumber": "string",
- "deliveryInstructions": "string",
- "nickname": "string",
- "isDefault": true
}
}
Update some simple fields on the specified delivery address.
Success!
required | object (CustomerDeliveryAddress) |
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string",
- "phoneNumber": "string",
- "deliveryInstructions": "string",
- "nickname": "string",
- "isDefault": true
}
{- "deliveryAddress": {
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string",
- "phoneNumber": "string",
- "deliveryInstructions": "string",
- "nickname": "string",
- "isDefault": true
}
}
Deletes the specified delivery address from the customer's account.
Success!
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
An unexpected error occurred. Please verify that your request is correctly formatted.
Returns the most recent 20 orders that the customer has placed through the bite platform.
Success!
required | Array of objects |
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "orders": [
- {
- "_id": "string",
- "clientId": "string",
- "orgId": "string",
- "locationId": "string",
- "startedAt": 0,
- "sessionDuration": 0,
- "menuStructureId": "string",
- "selectedLanguage": "en-us",
- "customerId": "string",
- "guestId": "string",
- "userDidRejectConsent": true,
- "channel": "catering",
- "fulfillmentMethod": 0,
- "pickupAt": 0,
- "deliveryAddress": {
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string"
}, - "deliveryInstructions": "string",
- "guestName": "string",
- "guestPhoneNumber": "string",
- "guestEmail": "user@example.com",
- "guestConsentedToMarketing": true,
- "guestVehicle": {
- "make": "string",
- "model": "string",
- "color": "string"
}, - "tableNumber": "string",
- "outpost": {
- "_id": "string",
- "name": "string",
- "pickupInstructions": "string",
- "instructionalImageUrl": [
- {
- "url": "string",
- "width": 0,
- "height": 0
}
]
}, - "includeUtensils": true,
- "paymentDestination": 0,
- "orderedItems": [
- {
- "_id": "string",
- "name": "string",
- "vendor": {
- "_id": "string",
- "name": "string"
}, - "scannedBarcode": "string",
- "section": {
- "_id": "string",
- "name": "string"
}, - "specialRequest": "string",
- "upsellScreen": "string",
- "priceOption": {
- "_id": "string",
- "name": "string",
- "quantity": 1,
- "weight": 0,
- "saleUnit": 0,
- "unitPrice": 0,
- "price": 0,
- "barcode": "string",
- "modGroups": [
- {
- "_id": null,
- "name": null,
- "parentModGroupId": null,
- "items": [ ],
- "deselectedItems": [ ]
}
]
}
}
], - "subTotal": 0,
- "discountTotal": 0,
- "taxTotal": 0,
- "serviceChargeTotal": 0,
- "serviceCharges": [
- {
- "name": "string",
- "amount": 0
}
], - "tipTotal": 0,
- "total": 0,
- "location": {
- "_id": "0123456789abcdef01234567",
- "name": "string",
- "shortCode": "stri",
- "urlSlug": "string",
- "thirdPartyId": "string",
- "phoneNumber": "stringstri",
- "coordinates": [
- 0,
- 0
], - "fullAddress": {
- "line1": "string",
- "line2": "string",
- "crossStreet": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string",
- "country": "string"
}, - "url": "string",
- "availableDiningOptions": [
- {
- "fulfillmentMethod": 0,
- "asapOrdersEnabled": true,
- "futureOrdersEnabled": true,
- "openingHours": {
- "mon": {
- "from": null,
- "to": null,
- "openingHoursString": null
}, - "tue": {
- "from": null,
- "to": null,
- "openingHoursString": null
}, - "wed": {
- "from": null,
- "to": null,
- "openingHoursString": null
}, - "thu": {
- "from": null,
- "to": null,
- "openingHoursString": null
}, - "fri": {
- "from": null,
- "to": null,
- "openingHoursString": null
}, - "sat": {
- "from": null,
- "to": null,
- "openingHoursString": null
}, - "sun": {
- "from": null,
- "to": null,
- "openingHoursString": null
}
}
}
]
}
}
]
}
Returns the latest copy of all the saved payment methods associated with the customer's account.
Success!
required | Array of objects (CustomerPaymentMethod) |
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "paymentMethods": [
- {
- "_id": "string",
- "last4": "string",
- "expirationMonth": 12,
- "expirationYear": 20,
- "postalCode": "string",
- "cardSchemeId": 0,
- "nickname": "string",
- "isDefault": true
}
]
}
Update some simple fields on the specified payment method.
Success!
required | object (CustomerPaymentMethod) |
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "nickname": "string",
- "isDefault": true
}
{- "paymentMethod": {
- "_id": "string",
- "last4": "string",
- "expirationMonth": 12,
- "expirationYear": 20,
- "postalCode": "string",
- "cardSchemeId": 0,
- "nickname": "string",
- "isDefault": true
}
}
Deletes the specified payment method from the customer's account.
Success!
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
An unexpected error occurred. Please verify that your request is correctly formatted.
Saves a new mobile app push notification token to the customer's account.
Success!
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "token": "string",
- "notificationService": "Android",
- "urlScheme": "string"
}
Returns all the locations that are available to the bearer token. Requires an API token with the "Locations" or "Reporting" scope. The base rate limit of an organization with one location is 75 requests per 10 minutes.
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
Too many requests within too short of a time frame. Refer to response headers.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "success": true,
- "data": [
- {
- "_id": "0123456789abcdef01234567",
- "name": "string",
- "shortCode": "stri",
- "urlSlug": "string",
- "thirdPartyId": "string",
- "phoneNumber": "stringstri",
- "coordinates": [
- 0,
- 0
], - "fullAddress": {
- "line1": "string",
- "line2": "string",
- "crossStreet": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string",
- "country": "string"
}, - "url": "string",
- "availableDiningOptions": [
- {
- "fulfillmentMethod": 0,
- "asapOrdersEnabled": true,
- "futureOrdersEnabled": true,
- "openingHours": {
- "mon": {
- "from": {
- "hours": null,
- "minutes": null
}, - "to": {
- "hours": null,
- "minutes": null
}, - "openingHoursString": "string"
}, - "tue": {
- "from": {
- "hours": null,
- "minutes": null
}, - "to": {
- "hours": null,
- "minutes": null
}, - "openingHoursString": "string"
}, - "wed": {
- "from": {
- "hours": null,
- "minutes": null
}, - "to": {
- "hours": null,
- "minutes": null
}, - "openingHoursString": "string"
}, - "thu": {
- "from": {
- "hours": null,
- "minutes": null
}, - "to": {
- "hours": null,
- "minutes": null
}, - "openingHoursString": "string"
}, - "fri": {
- "from": {
- "hours": null,
- "minutes": null
}, - "to": {
- "hours": null,
- "minutes": null
}, - "openingHoursString": "string"
}, - "sat": {
- "from": {
- "hours": null,
- "minutes": null
}, - "to": {
- "hours": null,
- "minutes": null
}, - "openingHoursString": "string"
}, - "sun": {
- "from": {
- "hours": null,
- "minutes": null
}, - "to": {
- "hours": null,
- "minutes": null
}, - "openingHoursString": "string"
}
}
}
], - "siteId": "string",
- "orgId": "string",
- "orgName": "string",
- "orderChannel": "catering",
- "state": 1,
- "timezone": "string"
}
]
}
Returns all the locations that match the search query. If one of the fulfillment methods is delivery, then locations that won't deliver to the specified address will be filtered out of the search results. You must provide either the address or the lat/long parameters.
Success!
required | Array of objects |
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "locations": [
- {
- "_id": "0123456789abcdef01234567",
- "name": "string",
- "shortCode": "stri",
- "urlSlug": "string",
- "thirdPartyId": "string",
- "phoneNumber": "stringstri",
- "coordinates": [
- 0,
- 0
], - "fullAddress": {
- "line1": "string",
- "line2": "string",
- "crossStreet": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string",
- "country": "string"
}, - "url": "string",
- "availableDiningOptions": [
- {
- "fulfillmentMethod": 0,
- "asapOrdersEnabled": true,
- "futureOrdersEnabled": true,
- "openingHours": {
- "mon": {
- "from": {
- "hours": null,
- "minutes": null
}, - "to": {
- "hours": null,
- "minutes": null
}, - "openingHoursString": "string"
}, - "tue": {
- "from": {
- "hours": null,
- "minutes": null
}, - "to": {
- "hours": null,
- "minutes": null
}, - "openingHoursString": "string"
}, - "wed": {
- "from": {
- "hours": null,
- "minutes": null
}, - "to": {
- "hours": null,
- "minutes": null
}, - "openingHoursString": "string"
}, - "thu": {
- "from": {
- "hours": null,
- "minutes": null
}, - "to": {
- "hours": null,
- "minutes": null
}, - "openingHoursString": "string"
}, - "fri": {
- "from": {
- "hours": null,
- "minutes": null
}, - "to": {
- "hours": null,
- "minutes": null
}, - "openingHoursString": "string"
}, - "sat": {
- "from": {
- "hours": null,
- "minutes": null
}, - "to": {
- "hours": null,
- "minutes": null
}, - "openingHoursString": "string"
}, - "sun": {
- "from": {
- "hours": null,
- "minutes": null
}, - "to": {
- "hours": null,
- "minutes": null
}, - "openingHoursString": "string"
}
}
}
], - "distanceFromGuest": 0
}
]
}
Returns all the future order slots for which a guest could place an order at this location.
Success!
required | Array of objects A list of both available and unavailable future order slots grouped by day. |
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "futureOrderSlots": [
- {
- "calendarDay": "string",
- "slots": [
- {
- "timestamp": "string",
- "available": true
}
]
}
]
}
Checks whether the specified address is within the delivery range of the location.
Success!
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "fulfillmentMethod": 0,
- "address": {
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string"
}
}
{- "canDeliver": true
}
Returns the latest menu for the specified channel, time, fulfillment method, etc.
Success!
required | object (Location) |
required | object (Appearance) |
required | object (MenuStructure) |
required | Array of objects (MenuSection) non-empty |
required | Array of objects (MenuItem) non-empty |
required | Array of objects (ModGroup) non-empty |
Array of objects (Mod) non-empty |
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
Too many requests within too short of a time frame. Refer to response headers.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "location": {
- "_id": "0123456789abcdef01234567",
- "name": "string",
- "orgName": "string",
- "siteId": "string",
- "orderChannel": "catering",
- "orgId": "string",
- "state": 1,
- "shortCode": "stri",
- "phoneNumber": "stringstri",
- "coordinates": [
- 0,
- 0
], - "fullAddress": {
- "line1": "string",
- "line2": "string",
- "crossStreet": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string",
- "country": "string"
}, - "timezone": "string",
- "currencyCode": "USD",
- "supportedLanguages": [
- "en-us"
], - "activeFulfillmentMethods": [
- 0
], - "allowPayAtCashier": true,
- "tipsLevel": 0,
- "defaultTip?": {
- "amount": 0,
- "type": "percentage"
}, - "presetTips": [
- { }
], - "diningOptions": [
- {
- "fulfillmentMethod": 0,
- "asapOrdersEnabled": true,
- "futureOrdersEnabled": true
}
]
}, - "appearance": {
- "menuPageBackgroundImage": [
- {
- "url": "string",
- "width": 0,
- "height": 0
}
], - "titleBarImage": [
- {
- "url": "string",
- "width": 0,
- "height": 0
}
], - "rewardsProgramLogo": [
- {
- "url": "string",
- "width": 0,
- "height": 0
}
], - "priceStyle": 0,
- "showCurrencySymbol": true
}, - "menuStructure": {
- "_id": "string",
- "pages": [
- {
- "_id": "string",
- "name": "string",
- "pages": [
- { }
], - "sectionIds": [
- "string"
]
}
]
}, - "menuSections": [
- {
- "_id": "string",
- "name": "string",
- "description": "string",
- "hideFromMenu": true,
- "items": [
- {
- "_id": "string"
}
]
}
], - "menuItems": [
- {
- "_id": "string",
- "name": "string",
- "description": "string",
- "priceOptions": [
- {
- "_id": "string",
- "name": "string",
- "price": 0,
- "barcode": "string",
- "saleUnit": 0,
- "modGroupIds": [
- "string"
]
}
]
}
], - "modGroups": [
- {
- "_id": "string",
- "name": "string",
- "description": "string",
- "minSelectable": 0,
- "maxSelectable": 0,
- "allowMultipleOfSameMod": true,
- "minAggregateQuantity": 0,
- "maxAggregateQuantity": 0,
- "minChoiceQuantity": 0,
- "maxChoiceQuantity": 0,
- "choiceQuantityIncrement": 0,
- "parentModGroupId": "string",
- "items": [
- {
- "_id": "string",
- "name": "string",
- "selectedByDefaultQuantity": true,
- "price": true
}
]
}
], - "mods": [
- {
- "_id": "string",
- "name": "string",
- "description": "string",
- "priceOptions": [
- {
- "_id": "string",
- "name": "string",
- "price": 0,
- "barcode": "string",
- "saleUnit": 0,
- "modGroupIds": [
- "string"
]
}
]
}
]
}
Creates a new order on Bite.
Idempotency can be achieved by providing a clientId
property. If an order with the specified clientId
already exists at this location on Bite, then the existing order will be returned and no new order will be created.
required | object |
object (LoyaltyAuthData) Each of the properties below is required by different loyalty integrations that Bite has. The exact value of this object will be provided in the response from the /v2/orders/loyalty/auth endpoint. |
Success!
required | object (Order) |
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
Too many requests within too short of a time frame. Refer to response headers.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "order": {
- "clientId": "string",
- "startedAt": 0,
- "sessionDuration": 0,
- "menuStructureId": "string",
- "selectedLanguage": "en-us",
- "customerId": "string",
- "guestId": "string",
- "userDidRejectConsent": true,
- "fulfillmentMethod": 0,
- "pickupAt": 0,
- "deliveryAddress": {
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string"
}, - "deliveryInstructions": "string",
- "guestName": "string",
- "guestPhoneNumber": "string",
- "guestEmail": "user@example.com",
- "guestConsentedToMarketing": true,
- "guestVehicle": {
- "make": "string",
- "model": "string",
- "color": "string"
}, - "tableNumber": "string",
- "outpostId": "string",
- "includeUtensils": true,
- "paymentDestination": 0,
- "orderedItems": [
- {
- "_id": "string",
- "name": "string",
- "vendor": {
- "_id": "string",
- "name": "string"
}, - "scannedBarcode": "string",
- "section": {
- "_id": "string",
- "name": "string"
}, - "specialRequest": "string",
- "upsellScreen": "string",
- "priceOption": {
- "_id": "string",
- "name": "string",
- "quantity": 1,
- "weight": 0,
- "modGroups": [
- {
- "_id": "string",
- "name": "string",
- "parentModGroupId": "string",
- "items": [
- null
], - "deselectedItems": [
- null
]
}
]
}
}
]
}, - "loyaltyAuthData": {
- "authToken": "string",
- "authEntryMethod": "barcode-scanned",
- "tokenData": "string",
- "tokenDataEntryMethod": "barcode-scanned",
- "redemptionCode": "string",
- "redemptionCodeEntryMethod": "barcode-scanned",
- "customerId": "string",
- "firstName": "string",
- "lastName": "string"
}
}
{- "order": {
- "_id": "string",
- "clientId": "string",
- "orgId": "string",
- "locationId": "string",
- "startedAt": 0,
- "sessionDuration": 0,
- "menuStructureId": "string",
- "selectedLanguage": "en-us",
- "customerId": "string",
- "guestId": "string",
- "userDidRejectConsent": true,
- "channel": "catering",
- "fulfillmentMethod": 0,
- "pickupAt": 0,
- "deliveryAddress": {
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string"
}, - "deliveryInstructions": "string",
- "guestName": "string",
- "guestPhoneNumber": "string",
- "guestEmail": "user@example.com",
- "guestConsentedToMarketing": true,
- "guestVehicle": {
- "make": "string",
- "model": "string",
- "color": "string"
}, - "tableNumber": "string",
- "outpost": {
- "_id": "string",
- "name": "string",
- "pickupInstructions": "string",
- "instructionalImageUrl": [
- {
- "url": "string",
- "width": 0,
- "height": 0
}
]
}, - "includeUtensils": true,
- "paymentDestination": 0,
- "orderedItems": [
- {
- "_id": "string",
- "name": "string",
- "vendor": {
- "_id": "string",
- "name": "string"
}, - "scannedBarcode": "string",
- "section": {
- "_id": "string",
- "name": "string"
}, - "specialRequest": "string",
- "upsellScreen": "string",
- "priceOption": {
- "_id": "string",
- "name": "string",
- "quantity": 1,
- "weight": 0,
- "saleUnit": 0,
- "unitPrice": 0,
- "price": 0,
- "barcode": "string",
- "modGroups": [
- {
- "_id": "string",
- "name": "string",
- "parentModGroupId": "string",
- "items": [
- null
], - "deselectedItems": [
- null
]
}
]
}
}
], - "subTotal": 0,
- "discountTotal": 0,
- "taxTotal": 0,
- "serviceChargeTotal": 0,
- "serviceCharges": [
- {
- "name": "string",
- "amount": 0
}
], - "tipTotal": 0,
- "total": 0
}
}
Returns the latest order data along with its status
Success!
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
Too many requests within too short of a time frame. Refer to response headers.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "order": {
- "_id": "string",
- "clientId": "string",
- "orgId": "string",
- "locationId": "string",
- "startedAt": 0,
- "sessionDuration": 0,
- "menuStructureId": "string",
- "selectedLanguage": "en-us",
- "customerId": "string",
- "guestId": "string",
- "userDidRejectConsent": true,
- "channel": "catering",
- "fulfillmentMethod": 0,
- "pickupAt": 0,
- "deliveryAddress": {
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string"
}, - "deliveryInstructions": "string",
- "guestName": "string",
- "guestPhoneNumber": "string",
- "guestEmail": "user@example.com",
- "guestConsentedToMarketing": true,
- "guestVehicle": {
- "make": "string",
- "model": "string",
- "color": "string"
}, - "tableNumber": "string",
- "outpost": {
- "_id": "string",
- "name": "string",
- "pickupInstructions": "string",
- "instructionalImageUrl": [
- {
- "url": "string",
- "width": 0,
- "height": 0
}
]
}, - "includeUtensils": true,
- "paymentDestination": 0,
- "orderedItems": [
- {
- "_id": "string",
- "name": "string",
- "vendor": {
- "_id": "string",
- "name": "string"
}, - "scannedBarcode": "string",
- "section": {
- "_id": "string",
- "name": "string"
}, - "specialRequest": "string",
- "upsellScreen": "string",
- "priceOption": {
- "_id": "string",
- "name": "string",
- "quantity": 1,
- "weight": 0,
- "saleUnit": 0,
- "unitPrice": 0,
- "price": 0,
- "barcode": "string",
- "modGroups": [
- {
- "_id": "string",
- "name": "string",
- "parentModGroupId": "string",
- "items": [
- null
], - "deselectedItems": [
- null
]
}
]
}
}
], - "subTotal": 0,
- "discountTotal": 0,
- "taxTotal": 0,
- "serviceChargeTotal": 0,
- "serviceCharges": [
- {
- "name": "string",
- "amount": 0
}
], - "tipTotal": 0,
- "total": 0
}, - "orderState": "unsent",
- "possibleSuccessfulOrderStates": [
- "sending-to-pos"
], - "location": {
- "_id": "0123456789abcdef01234567",
- "name": "string",
- "shortCode": "stri",
- "urlSlug": "string",
- "thirdPartyId": "string",
- "phoneNumber": "stringstri",
- "coordinates": [
- 0,
- 0
], - "fullAddress": {
- "line1": "string",
- "line2": "string",
- "crossStreet": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string",
- "country": "string"
}, - "url": "string",
- "availableDiningOptions": [
- {
- "fulfillmentMethod": 0,
- "asapOrdersEnabled": true,
- "futureOrdersEnabled": true,
- "openingHours": {
- "mon": {
- "from": {
- "hours": 23,
- "minutes": 59
}, - "to": {
- "hours": 23,
- "minutes": 59
}, - "openingHoursString": "string"
}, - "tue": {
- "from": {
- "hours": 23,
- "minutes": 59
}, - "to": {
- "hours": 23,
- "minutes": 59
}, - "openingHoursString": "string"
}, - "wed": {
- "from": {
- "hours": 23,
- "minutes": 59
}, - "to": {
- "hours": 23,
- "minutes": 59
}, - "openingHoursString": "string"
}, - "thu": {
- "from": {
- "hours": 23,
- "minutes": 59
}, - "to": {
- "hours": 23,
- "minutes": 59
}, - "openingHoursString": "string"
}, - "fri": {
- "from": {
- "hours": 23,
- "minutes": 59
}, - "to": {
- "hours": 23,
- "minutes": 59
}, - "openingHoursString": "string"
}, - "sat": {
- "from": {
- "hours": 23,
- "minutes": 59
}, - "to": {
- "hours": 23,
- "minutes": 59
}, - "openingHoursString": "string"
}, - "sun": {
- "from": {
- "hours": 23,
- "minutes": 59
}, - "to": {
- "hours": 23,
- "minutes": 59
}, - "openingHoursString": "string"
}
}
}
]
}, - "transactions": [
- {
- "_id": "string",
- "clientId": "string",
- "orgId": "string",
- "locationId": "string",
- "createdAt": 0,
- "orderId": "string",
- "clientOrderId": "string",
- "amount": 0
}
], - "successfulTransactions": [
- {
- "_id": "string",
- "clientId": "string",
- "orgId": "string",
- "locationId": "string",
- "createdAt": 0,
- "orderId": "string",
- "clientOrderId": "string",
- "amount": 0
}
]
}
Updates the current order.
If the order is closed then only the guestSurvey
property can be updated.
Returns the updated order.
required | object A list of fields that can be updated on the order after it's been created. |
Success!
required | object (Order) |
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
Too many requests within too short of a time frame. Refer to response headers.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "order": {
- "guestName": "string",
- "guestPhoneNumber": "string",
- "guestEmail": "user@example.com",
- "guestConsentedToMarketing": true,
- "deliveryInstructions": "string",
- "guestVehicle": {
- "make": "string",
- "model": "string",
- "color": "string"
}
}
}
{- "order": {
- "_id": "string",
- "clientId": "string",
- "orgId": "string",
- "locationId": "string",
- "startedAt": 0,
- "sessionDuration": 0,
- "menuStructureId": "string",
- "selectedLanguage": "en-us",
- "customerId": "string",
- "guestId": "string",
- "userDidRejectConsent": true,
- "channel": "catering",
- "fulfillmentMethod": 0,
- "pickupAt": 0,
- "deliveryAddress": {
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string"
}, - "deliveryInstructions": "string",
- "guestName": "string",
- "guestPhoneNumber": "string",
- "guestEmail": "user@example.com",
- "guestConsentedToMarketing": true,
- "guestVehicle": {
- "make": "string",
- "model": "string",
- "color": "string"
}, - "tableNumber": "string",
- "outpost": {
- "_id": "string",
- "name": "string",
- "pickupInstructions": "string",
- "instructionalImageUrl": [
- {
- "url": "string",
- "width": 0,
- "height": 0
}
]
}, - "includeUtensils": true,
- "paymentDestination": 0,
- "orderedItems": [
- {
- "_id": "string",
- "name": "string",
- "vendor": {
- "_id": "string",
- "name": "string"
}, - "scannedBarcode": "string",
- "section": {
- "_id": "string",
- "name": "string"
}, - "specialRequest": "string",
- "upsellScreen": "string",
- "priceOption": {
- "_id": "string",
- "name": "string",
- "quantity": 1,
- "weight": 0,
- "saleUnit": 0,
- "unitPrice": 0,
- "price": 0,
- "barcode": "string",
- "modGroups": [
- {
- "_id": "string",
- "name": "string",
- "parentModGroupId": "string",
- "items": [
- null
], - "deselectedItems": [
- null
]
}
]
}
}
], - "subTotal": 0,
- "discountTotal": 0,
- "taxTotal": 0,
- "serviceChargeTotal": 0,
- "serviceCharges": [
- {
- "name": "string",
- "amount": 0
}
], - "tipTotal": 0,
- "total": 0
}
}
Validates the order on the POS, checks if any items are 86d, and calculates order totals. The order must be unclosed, and must not have had any payments applied to it.
Success!
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
Too many requests within too short of a time frame. Refer to response headers.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "queuePath": "string"
}
Add a coupon to the current order. The order must be validated, unclosed, and must not have had any payments applied to it. Returns the updated order with the new totals that reflect the applied coupon.
Success!
required | object (Order) |
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
Too many requests within too short of a time frame. Refer to response headers.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "couponCode": "string"
}
{- "order": {
- "_id": "string",
- "clientId": "string",
- "orgId": "string",
- "locationId": "string",
- "startedAt": 0,
- "sessionDuration": 0,
- "menuStructureId": "string",
- "selectedLanguage": "en-us",
- "customerId": "string",
- "guestId": "string",
- "userDidRejectConsent": true,
- "channel": "catering",
- "fulfillmentMethod": 0,
- "pickupAt": 0,
- "deliveryAddress": {
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string"
}, - "deliveryInstructions": "string",
- "guestName": "string",
- "guestPhoneNumber": "string",
- "guestEmail": "user@example.com",
- "guestConsentedToMarketing": true,
- "guestVehicle": {
- "make": "string",
- "model": "string",
- "color": "string"
}, - "tableNumber": "string",
- "outpost": {
- "_id": "string",
- "name": "string",
- "pickupInstructions": "string",
- "instructionalImageUrl": [
- {
- "url": "string",
- "width": 0,
- "height": 0
}
]
}, - "includeUtensils": true,
- "paymentDestination": 0,
- "orderedItems": [
- {
- "_id": "string",
- "name": "string",
- "vendor": {
- "_id": "string",
- "name": "string"
}, - "scannedBarcode": "string",
- "section": {
- "_id": "string",
- "name": "string"
}, - "specialRequest": "string",
- "upsellScreen": "string",
- "priceOption": {
- "_id": "string",
- "name": "string",
- "quantity": 1,
- "weight": 0,
- "saleUnit": 0,
- "unitPrice": 0,
- "price": 0,
- "barcode": "string",
- "modGroups": [
- {
- "_id": "string",
- "name": "string",
- "parentModGroupId": "string",
- "items": [
- null
], - "deselectedItems": [
- null
]
}
]
}
}
], - "subTotal": 0,
- "discountTotal": 0,
- "taxTotal": 0,
- "serviceChargeTotal": 0,
- "serviceCharges": [
- {
- "name": "string",
- "amount": 0
}
], - "tipTotal": 0,
- "total": 0
}
}
Removes the applied coupon from the current order. The order must be validated, unclosed, and must not have had any payments applied to it. Returns the updated order with the new totals that reflect the removed coupon.
Success!
required | object (Order) |
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
Too many requests within too short of a time frame. Refer to response headers.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "order": {
- "_id": "string",
- "clientId": "string",
- "orgId": "string",
- "locationId": "string",
- "startedAt": 0,
- "sessionDuration": 0,
- "menuStructureId": "string",
- "selectedLanguage": "en-us",
- "customerId": "string",
- "guestId": "string",
- "userDidRejectConsent": true,
- "channel": "catering",
- "fulfillmentMethod": 0,
- "pickupAt": 0,
- "deliveryAddress": {
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string"
}, - "deliveryInstructions": "string",
- "guestName": "string",
- "guestPhoneNumber": "string",
- "guestEmail": "user@example.com",
- "guestConsentedToMarketing": true,
- "guestVehicle": {
- "make": "string",
- "model": "string",
- "color": "string"
}, - "tableNumber": "string",
- "outpost": {
- "_id": "string",
- "name": "string",
- "pickupInstructions": "string",
- "instructionalImageUrl": [
- {
- "url": "string",
- "width": 0,
- "height": 0
}
]
}, - "includeUtensils": true,
- "paymentDestination": 0,
- "orderedItems": [
- {
- "_id": "string",
- "name": "string",
- "vendor": {
- "_id": "string",
- "name": "string"
}, - "scannedBarcode": "string",
- "section": {
- "_id": "string",
- "name": "string"
}, - "specialRequest": "string",
- "upsellScreen": "string",
- "priceOption": {
- "_id": "string",
- "name": "string",
- "quantity": 1,
- "weight": 0,
- "saleUnit": 0,
- "unitPrice": 0,
- "price": 0,
- "barcode": "string",
- "modGroups": [
- {
- "_id": "string",
- "name": "string",
- "parentModGroupId": "string",
- "items": [
- null
], - "deselectedItems": [
- null
]
}
]
}
}
], - "subTotal": 0,
- "discountTotal": 0,
- "taxTotal": 0,
- "serviceChargeTotal": 0,
- "serviceCharges": [
- {
- "name": "string",
- "amount": 0
}
], - "tipTotal": 0,
- "total": 0
}
}
Set a tip amount on the current order.
If tipTotal
is zeo, then this call will remove any existing tip from the order.
After the tip is applied or removed, the order might be revalidated based on the POS configuration.
The order must be validated, unclosed, and must not have had any payments applied to it.
Returns the updated order with the new totals that reflect the new tip amount.
Success!
required | object (Order) |
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
Too many requests within too short of a time frame. Refer to response headers.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "order": {
- "tipTotal": 0
}
}
{- "order": {
- "_id": "string",
- "clientId": "string",
- "orgId": "string",
- "locationId": "string",
- "startedAt": 0,
- "sessionDuration": 0,
- "menuStructureId": "string",
- "selectedLanguage": "en-us",
- "customerId": "string",
- "guestId": "string",
- "userDidRejectConsent": true,
- "channel": "catering",
- "fulfillmentMethod": 0,
- "pickupAt": 0,
- "deliveryAddress": {
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string"
}, - "deliveryInstructions": "string",
- "guestName": "string",
- "guestPhoneNumber": "string",
- "guestEmail": "user@example.com",
- "guestConsentedToMarketing": true,
- "guestVehicle": {
- "make": "string",
- "model": "string",
- "color": "string"
}, - "tableNumber": "string",
- "outpost": {
- "_id": "string",
- "name": "string",
- "pickupInstructions": "string",
- "instructionalImageUrl": [
- {
- "url": "string",
- "width": 0,
- "height": 0
}
]
}, - "includeUtensils": true,
- "paymentDestination": 0,
- "orderedItems": [
- {
- "_id": "string",
- "name": "string",
- "vendor": {
- "_id": "string",
- "name": "string"
}, - "scannedBarcode": "string",
- "section": {
- "_id": "string",
- "name": "string"
}, - "specialRequest": "string",
- "upsellScreen": "string",
- "priceOption": {
- "_id": "string",
- "name": "string",
- "quantity": 1,
- "weight": 0,
- "saleUnit": 0,
- "unitPrice": 0,
- "price": 0,
- "barcode": "string",
- "modGroups": [
- {
- "_id": "string",
- "name": "string",
- "parentModGroupId": "string",
- "items": [
- null
], - "deselectedItems": [
- null
]
}
]
}
}
], - "subTotal": 0,
- "discountTotal": 0,
- "taxTotal": 0,
- "serviceChargeTotal": 0,
- "serviceCharges": [
- {
- "name": "string",
- "amount": 0
}
], - "tipTotal": 0,
- "total": 0
}
}
Closes a fully paid order so that it can be sent to the kitchen for fulfillment.
object (LoyaltyAuthData) Each of the properties below is required by different loyalty integrations that Bite has. The exact value of this object will be provided in the response from the /v2/orders/loyalty/auth endpoint. |
Success!
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
Too many requests within too short of a time frame. Refer to response headers.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "loyaltyAuthData": {
- "authToken": "string",
- "authEntryMethod": "barcode-scanned",
- "tokenData": "string",
- "tokenDataEntryMethod": "barcode-scanned",
- "redemptionCode": "string",
- "redemptionCodeEntryMethod": "barcode-scanned",
- "customerId": "string",
- "firstName": "string",
- "lastName": "string"
}
}
{- "order": {
- "_id": "string",
- "clientId": "string",
- "orgId": "string",
- "locationId": "string",
- "startedAt": 0,
- "sessionDuration": 0,
- "menuStructureId": "string",
- "selectedLanguage": "en-us",
- "customerId": "string",
- "guestId": "string",
- "userDidRejectConsent": true,
- "channel": "catering",
- "fulfillmentMethod": 0,
- "pickupAt": 0,
- "deliveryAddress": {
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string"
}, - "deliveryInstructions": "string",
- "guestName": "string",
- "guestPhoneNumber": "string",
- "guestEmail": "user@example.com",
- "guestConsentedToMarketing": true,
- "guestVehicle": {
- "make": "string",
- "model": "string",
- "color": "string"
}, - "tableNumber": "string",
- "outpost": {
- "_id": "string",
- "name": "string",
- "pickupInstructions": "string",
- "instructionalImageUrl": [
- {
- "url": "string",
- "width": 0,
- "height": 0
}
]
}, - "includeUtensils": true,
- "paymentDestination": 0,
- "orderedItems": [
- {
- "_id": "string",
- "name": "string",
- "vendor": {
- "_id": "string",
- "name": "string"
}, - "scannedBarcode": "string",
- "section": {
- "_id": "string",
- "name": "string"
}, - "specialRequest": "string",
- "upsellScreen": "string",
- "priceOption": {
- "_id": "string",
- "name": "string",
- "quantity": 1,
- "weight": 0,
- "saleUnit": 0,
- "unitPrice": 0,
- "price": 0,
- "barcode": "string",
- "modGroups": [
- {
- "_id": "string",
- "name": "string",
- "parentModGroupId": "string",
- "items": [
- null
], - "deselectedItems": [
- null
]
}
]
}
}
], - "subTotal": 0,
- "discountTotal": 0,
- "taxTotal": 0,
- "serviceChargeTotal": 0,
- "serviceCharges": [
- {
- "name": "string",
- "amount": 0
}
], - "tipTotal": 0,
- "total": 0
}, - "successfulTransactions": [
- {
- "_id": "string",
- "clientId": "string",
- "orgId": "string",
- "locationId": "string",
- "createdAt": 0,
- "orderId": "string",
- "clientOrderId": "string",
- "amount": 0
}
], - "queuePath": "string"
}
Returns success when it succeeds.
Success!
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
Too many requests within too short of a time frame. Refer to response headers.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "email": "user@example.com"
}
Returns all the settings necessary for a mobile app to run. Requires an API token with the "Mobile App" scope. The base rate limit of an organization with one location is 75 requests per 10 minutes.
Success!
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
Too many requests within too short of a time frame. Refer to response headers.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "orgId": "string",
- "orderChannels": [
- "catering"
], - "fulfillmentMethods": [
- 0
], - "homeScreenImages": [
- {
- "image": [
- {
- "url": "string",
- "width": 0,
- "height": 0
}
], - "availability": {
- "dateRanges": [
- {
- "from": 0,
- "to": 0
}
], - "daySchedules": [
- {
- "weekday": "mon",
- "schedules": [
- {
- "from": null,
- "to": null
}
]
}
]
}
}
], - "contactUsInfo": {
- "email": "string",
- "phoneNumber": "string"
}, - "sidebarLinks": [
- {
- "title": "string",
- "url": "string",
- "target": "external-browser"
}
], - "policyLinks": [
- {
- "title": "string",
- "url": "string",
- "target": "external-browser"
}
], - "socialMediaLinks": [
- {
- "title": "string",
- "icon": [
- {
- "url": "string",
- "width": 0,
- "height": 0
}
], - "url": "string"
}
]
}
Returns a report with detailed information about the orders of a given day at a specified location. Requires an API token with the "Reporting" scope. The base rate limit of an organization with one location is 75 requests per 10 minutes.
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
Too many requests within too short of a time frame. Refer to response headers.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "success": true,
- "data": {
- "orders": [
- {
- "createTime": "string",
- "orgName": "string",
- "orgId": "string",
- "siteName": "string",
- "siteId": "string",
- "locationId": "string",
- "orderChannel": "catering",
- "diningOption": "string",
- "source": "string",
- "orderId": "string",
- "checkIds": [
- {
- "value": "string",
- "name": "string",
- "vendorName": "string"
}
], - "isCancelled": true,
- "orderNumber": "string",
- "items": [
- {
- "specialRequest": "string",
- "vendorName": "string",
- "scannedBarcode": "string",
- "posId": "string",
- "name": "string",
- "price": 0,
- "quantity": 1,
- "unitPrice": 0,
- "saleUnit": 0,
- "addToCartSource": "string",
- "weight": 0,
- "section": {
- "name": "string",
- "posId": "string"
}, - "modGroups": [
- {
- "posId": null,
- "name": null,
- "mods": [ ]
}
]
}
], - "subTotal": 0,
- "taxTotal": 0,
- "tipTotal": 0,
- "discountNames": [
- "string"
], - "discountTotal": 0,
- "total": 0,
- "refundedAmount": 0,
- "transactions": [
- {
- "cardType": "string",
- "transactionType": "sale",
- "amount": 0,
- "lastFour": "string",
- "gateway": "string",
- "cardEntryMethod": "string"
}
], - "orderUrl": "string",
- "futureOrderTime": "string",
- "outpostDeliveryLocation": "string",
- "deliveryAddress": {
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string"
}, - "tableNumber": "string",
- "isTaxExempt": true,
- "serviceChargeTotal": 0,
- "serviceCharges": [
- {
- "name": "string",
- "amount": 0
}
], - "redeemedLoyaltyReward": true,
- "guest": {
- "guestId": "string",
- "name": "string",
- "email": "user@example.com",
- "phoneNumber": "string",
- "vehicle": {
- "make": "string",
- "model": "string",
- "color": "string"
}, - "satisfactionScore": 1,
- "ageRange": "string",
- "gender": "M",
- "consentedToMarketing": true
}, - "selectedLanguage": "string",
- "loyaltyIds": [
- {
- "value": "string",
- "entryMethod": "barcode-scanned"
}
]
}
], - "next": "/api/v2/reporting/orders/day/2023-07-21?newerThan=654b3c2d537fd6b2dab2a2cc"
}
}
This API endpoint is deprecated and will be removed in a future release. Returns a report with detailed information about the orders of a given day at a specified location. Requires an API token with the "Reporting" scope. The base rate limit of an organization with one location is 75 requests per 10 minutes.
Success!
A Bite error occurred. Please reference the response body's "code" value in the Bite Error Codes documentation.
Invalid API credentials.
API credentials don't have sufficient access to operation.
Too many requests within too short of a time frame. Refer to response headers.
An unexpected error occurred. Please verify that your request is correctly formatted.
{- "locationId": "0123456789abcdef01234567",
- "date": "2023-07-21",
- "page": 1,
- "limit": 25
}
{- "success": true,
- "data": [
- {
- "createTime": "string",
- "orgName": "string",
- "orgId": "string",
- "siteName": "string",
- "siteId": "string",
- "locationId": "string",
- "orderChannel": "catering",
- "diningOption": "string",
- "source": "string",
- "orderId": "string",
- "checkIds": [
- {
- "value": "string",
- "name": "string",
- "vendorName": "string"
}
], - "isCancelled": true,
- "orderNumber": "string",
- "items": [
- {
- "specialRequest": "string",
- "vendorName": "string",
- "scannedBarcode": "string",
- "posId": "string",
- "name": "string",
- "price": 0,
- "quantity": 1,
- "unitPrice": 0,
- "saleUnit": 0,
- "addToCartSource": "string",
- "weight": 0,
- "section": {
- "name": "string",
- "posId": "string"
}, - "modGroups": [
- {
- "posId": "string",
- "name": "string",
- "mods": [
- null
]
}
]
}
], - "subTotal": 0,
- "taxTotal": 0,
- "tipTotal": 0,
- "discountNames": [
- "string"
], - "discountTotal": 0,
- "total": 0,
- "refundedAmount": 0,
- "transactions": [
- {
- "cardType": "string",
- "transactionType": "sale",
- "amount": 0,
- "lastFour": "string",
- "gateway": "string",
- "cardEntryMethod": "string"
}
], - "orderUrl": "string",
- "futureOrderTime": "string",
- "outpostDeliveryLocation": "string",
- "deliveryAddress": {
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string"
}, - "tableNumber": "string",
- "isTaxExempt": true,
- "serviceChargeTotal": 0,
- "serviceCharges": [
- {
- "name": "string",
- "amount": 0
}
], - "redeemedLoyaltyReward": true,
- "guest": {
- "guestId": "string",
- "name": "string",
- "email": "user@example.com",
- "phoneNumber": "string",
- "vehicle": {
- "make": "string",
- "model": "string",
- "color": "string"
}, - "satisfactionScore": 1,
- "ageRange": "string",
- "gender": "M",
- "consentedToMarketing": true
}, - "selectedLanguage": "string",
- "loyaltyIds": [
- {
- "value": "string",
- "entryMethod": "barcode-scanned"
}
]
}
]
}
Webhooks can be used to notify non-Bite systems of events happening at Bite. They can be configured by Bite employees at the organization level. They use pre-defined location groups to determine which locations the webhooks are active at.
The webhook request body is composed of these top-level properties:
Bite Webhooks are sent with a signature in the x-bite-signature
header that allow you to verify
that the request was sent by Bite.
The x-bite-signature
header is composed of two parts, the timestamp and the signature.
The timestamp (prefixed by t=
) is the epoch time when the webhook was sent from the Bite server.
The signature (prefixed by v=
) is the hex encoded HMAC SHA256 hash of the webhook.
Here is an example of a x-bite-signature
header:
t=1650064620000,v=cbb9af052e4e9bfe061e3fa76aadf047b022e6d189a73f047181ea7d0c40f51b
The timestamp value can be used to determine when the request was sent and ignore any old requests which may be part of a replay attack.
To verify the signature, you will need the private key associated with the webhook. This will be provided by a Bite employee after the webhook is configured.
Extract the timestamp and signature values from the header. Do not include the prefix.
Construct the payload to sign following this schematic:
{{timestamp}}.{{request_body}}
ex:
Consider a webhook with a x-bite-signature
header of t=1650064620000,v=...
and the following
request body:
{ event: 'order-sent', data: { someKey: 'Some Value' } }
The resulting payload will be:
1650064620000.{ event: 'order-sent', data: { someKey: 'Some Value' } }
Calculate the HMAC of the payload with the SHA256 hash function using the private key of the webhook.
Compare the HMAC you calculated with the signature extracted from the x-bite-signature
header.
Ensure that the values are identical to verify that the request was generated by a Bite server.
Returns details of an order immediately after the order has closed and been sent to the POS integrations. If the location does not have any POS integrations, the webhooks will still send a response after the order is closed. At the discretion of the organization, this webhook can be configured to include item and transaction data.
Indicate that the webhook was received successfully.
{- "event": "order-sent",
- "data": {
- "createTime": "string",
- "orgName": "string",
- "orgId": "string",
- "siteName": "string",
- "siteId": "string",
- "locationId": "string",
- "orderChannel": "catering",
- "diningOption": "string",
- "source": "string",
- "orderId": "string",
- "checkIds": [
- {
- "value": "string",
- "name": "string",
- "vendorName": "string"
}
], - "isCancelled": true,
- "orderNumber": "string",
- "items": [
- {
- "specialRequest": "string",
- "vendorName": "string",
- "scannedBarcode": "string",
- "posId": "string",
- "name": "string",
- "price": 0,
- "quantity": 1,
- "unitPrice": 0,
- "saleUnit": 0,
- "addToCartSource": "string",
- "weight": 0,
- "section": {
- "name": "string",
- "posId": "string"
}, - "modGroups": [
- {
- "posId": "string",
- "name": "string",
- "mods": [
- {
- "posId": null,
- "name": null,
- "price": null,
- "quantity": null,
- "unitPrice": null,
- "saleUnit": null,
- "weight": null,
- "addToCartSource": null,
- "modGroups": [ ]
}
]
}
]
}
], - "subTotal": 0,
- "taxTotal": 0,
- "tipTotal": 0,
- "discountNames": [
- "string"
], - "discountTotal": 0,
- "total": 0,
- "refundedAmount": 0,
- "transactions": [
- {
- "cardType": "string",
- "transactionType": "sale",
- "amount": 0,
- "lastFour": "string",
- "gateway": "string",
- "cardEntryMethod": "string"
}
], - "orderUrl": "string",
- "futureOrderTime": "string",
- "outpostDeliveryLocation": "string",
- "deliveryAddress": {
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string"
}, - "tableNumber": "string",
- "isTaxExempt": true,
- "serviceChargeTotal": 0,
- "serviceCharges": [
- {
- "name": "string",
- "amount": 0
}
], - "redeemedLoyaltyReward": true,
- "guest": {
- "guestId": "string",
- "name": "string",
- "email": "user@example.com",
- "phoneNumber": "string",
- "vehicle": {
- "make": "string",
- "model": "string",
- "color": "string"
}, - "satisfactionScore": 1,
- "ageRange": "string",
- "gender": "M",
- "consentedToMarketing": true
}, - "selectedLanguage": "string",
- "loyaltyIds": [
- {
- "value": "string",
- "entryMethod": "barcode-scanned"
}
]
}
}
Returns details of an existing order immediately after they have been modified. This webhook is not sent on creation of the order. At the discretion of the organization, this webhook can be configured to include item and transaction data.
Indicate that the webhook was received successfully.
{- "event": "order-updated",
- "data": {
- "createTime": "string",
- "orgName": "string",
- "orgId": "string",
- "siteName": "string",
- "siteId": "string",
- "locationId": "string",
- "orderChannel": "catering",
- "diningOption": "string",
- "source": "string",
- "orderId": "string",
- "checkIds": [
- {
- "value": "string",
- "name": "string",
- "vendorName": "string"
}
], - "isCancelled": true,
- "orderNumber": "string",
- "items": [
- {
- "specialRequest": "string",
- "vendorName": "string",
- "scannedBarcode": "string",
- "posId": "string",
- "name": "string",
- "price": 0,
- "quantity": 1,
- "unitPrice": 0,
- "saleUnit": 0,
- "addToCartSource": "string",
- "weight": 0,
- "section": {
- "name": "string",
- "posId": "string"
}, - "modGroups": [
- {
- "posId": "string",
- "name": "string",
- "mods": [
- {
- "posId": null,
- "name": null,
- "price": null,
- "quantity": null,
- "unitPrice": null,
- "saleUnit": null,
- "weight": null,
- "addToCartSource": null,
- "modGroups": [ ]
}
]
}
]
}
], - "subTotal": 0,
- "taxTotal": 0,
- "tipTotal": 0,
- "discountNames": [
- "string"
], - "discountTotal": 0,
- "total": 0,
- "refundedAmount": 0,
- "transactions": [
- {
- "cardType": "string",
- "transactionType": "sale",
- "amount": 0,
- "lastFour": "string",
- "gateway": "string",
- "cardEntryMethod": "string"
}
], - "orderUrl": "string",
- "futureOrderTime": "string",
- "outpostDeliveryLocation": "string",
- "deliveryAddress": {
- "line1": "string",
- "line2": "string",
- "city": "string",
- "state": "string",
- "postalCode": "string"
}, - "tableNumber": "string",
- "isTaxExempt": true,
- "serviceChargeTotal": 0,
- "serviceCharges": [
- {
- "name": "string",
- "amount": 0
}
], - "redeemedLoyaltyReward": true,
- "guest": {
- "guestId": "string",
- "name": "string",
- "email": "user@example.com",
- "phoneNumber": "string",
- "vehicle": {
- "make": "string",
- "model": "string",
- "color": "string"
}, - "satisfactionScore": 1,
- "ageRange": "string",
- "gender": "M",
- "consentedToMarketing": true
}, - "selectedLanguage": "string",
- "loyaltyIds": [
- {
- "value": "string",
- "entryMethod": "barcode-scanned"
}
]
}
}
It's possible for customers to embed the Bite ordering experience in their own proprietary mobile app. The intended use-case is to offer a seamless food ordering experience as part of a bigger application that does not require the user to leave the mobile app to go to a browser on their phone.
One critical integration that makes this feature attractive is the ability to preload a Bite website with the user information that is already available to the mobile app. This can be some information about the user such as their name or loyalty card number. Alternatively, this could be a set of methods of payment. Bite will make use of that information and the ordering experience will appear as if the guest has logged in on Bite.
version
must be always set to 2
loyaltyAuthValues
are used to authenticate the guest into the loyalty program
cards
are used to pass in any possible saved payment methods
validAt
is a unix timestamp (in ms) that represents the time at which the token was generated by the mobile app
{
version: 2,
loyaltyAuthValues: {
method: 'auth-token' | 'card-number';
value: string;
}[];
cards: {
cardNumber: string;
cardName: string;
}[];
validAt: number
}
The session token is an encrypted representation of the session info that can be safely passed in a query string parameter of a Bite web ordering url. Generation steps:
validAt
to be the current time (as a unix timestamp in milliseconds). For security purposes, the sessionToken
must include the timestamp at which it was generated so Bite could verify that it was generated within 15 seconds of receiving the request. The purpose of this measure is to avoid replay attacks.AES-256-ECB
algorithm.sessionToken
query string parameter when loading the Bite ordering website (e.g. https://order.yourdomain.com/location123?sessionToken=XXX).