A reservation encapsulates information about a booking or a walk-in recorded within Tock. All fields that represent prices are provided in the base non-fractional unit of the currency of the business (e.g. for US Dollar, all prices are provided in cents).
Field | Type | Description |
id | uint64 | A unique identifier for the reservation. This identifier will not change no matter what edits have been made to the reservation. Transferred reservations will get new unique identifiers and are considered new reservations. |
business | Business | Details about the business this reservation is for; useful for business groups that have multiple businesses supported by Tock. |
dateTime | string | The start time of the reservation in the business time zone of the form HH:MM using the 24 hour clock and excluding seconds (e.g. 4:15pm would have a dateTime of "16:15"). |
partySize | int32 | The size of the party on the reservation. |
experience | PurchasedExperience | The experience assigned to the reservation in Tock. This is present even if no money is attached to the reservation and will not be present for walk-ins. |
option | PurchasedOption[] | Any add-on(s) or menu item(s) that has been booked along with this reservation. This is present even if no money is attached to this option and will not be present for walk-ins. |
fee | PurchasedFee[] | Any fee(s) charged automatically to the party as part of the reservation. This does not include any custom fees applied to the reservation from the Tock Dashboard. |
customCharge | PurchasedCustomCharge[] | Any custom charges charged to the party as part of the reservation through the Tock Dashboard. |
keyValue | KeyValue[] | Any metadata associated with this reservation collected during the checkout process. Examples of potential metadata are UTM tracking parameters indicating how the guest originally came to make the reservation. |
compAmountCents | int32 | The total amount of all complimentary discounts applied through the Tock Dashboard to a paid reservation. |
subtotalCents | int32 | The subtotal given on the receipt for the reservation. |
taxRate | float | If tax has been applied to the subtotal and not for individual purchased items, this is the tax rate applied to the subtotal. If using multiple tax rates for individual items, this field will not be present. |
taxCents | int32 | The total amount of tax collected for the reservation. |
serviceChargeRate | float | If a service charge has been applied to the reservation, this field is the rate applied to the subtotal. |
serviceChargeCents | int32 | If a service charge has been applied to the reservation, this field is the amount of service charge added to the total price. |
selectedGratuityRate | float | If gratuity has been added to the reservation by the party through choosing a fixed percentage, this field is the gratuity rate selected and applied to the subtotal. If a custom gratuity was chosen manually, this field will be zero. |
gratuityCents | int32 | The gratuity applied by the party to the reservation and added to the total price. |
eventFeeRate | float | For reservations to events where a fee is applied, the event fee rate applied to the subtotal. |
eventFeeCents | int32 | For reservations to events where a fee is applied, the total amount of that fee added to the total price. |
customFeeRate | float | If applied to the reservation from the Tock Dashboard, this field contains the custom fee rate applied to the subtotal and added to the total price. |
customFeeCents | int32 | If applied to the reservation from the Tock Dashboard, this field contains the custom fee amount applied to the subtotal and added to the total price. |
customFeeName | string | If applied to the reservation from the Tock Dashboard, this field contains the name of the custom fee applied to the total price. |
totalPriceCents | int32 | The total price of the reservation including all fees, charges, taxes. |
discount | Discount[] | Any discounts applied to the total price of the reservation, either automatically during checkout or through application in the Tock Dashboard. This does not include complimentary discounts applied to the reservation (see compAmountCents for that value). |
netAmountPaidCents | int32 | The amount that has been charged to the party for this reservation. Does not need to be the same as the total price of the reservation. |
amountDueCents | int32 | The amount that is still due to cover the total price of the reservation. This will be the totalPriceCents field less the netAmountPaidCents field. |
createdTimestamp | uint64 | The timestamp for when this reservation was first created, in milliseconds since the Unix Epoch. |
lastUpdatedTimestamp | uint64 | The timestamp for the last modification to this reservation, in milliseconds since the Unix Epoch. |
serviceDateTimestamp | uint64 | The timestamp for the start time of the reservation, in milliseconds since the Unix Epoch. This is a convenience field as it does not require the business timezone. |
transferredOut | bool | Whether the reservation has been transferred to a different party. |
transferredOutAmountCents | uint32 | If this reservation has been transferred to a different party, the amount the original owner charged the transferee for the reservation. |
isCancelled | bool | Whether this reservation has been marked as cancelled, either by the user or through the Tock Dashboard. No modifications can happen to a reservation after it is cancelled. |
ownerPatron | Patron | The "owner" patron is the one who initiated payment for the reservation. It is most commonly the same as the "diner" patron unless it booked through a concierge or altered directly from the Tock Dashboard. |
dinerPatron | Patron | The patron whose name will appear on the reservation in the Tock Dashboard. Is is most commonly the same as the ownerPatron unless booked through a concierge or altered directly from the Tock Dashboard. |
versionId | uint64 | A version identifier used by Tock to indicate how many edits have been made to the original reservation. This is for Tock internal use only and a better indication of the number of edits is in the sequenceId field. |
loyaltyProgramCardNumberUsed | string | If the reservation was made by a patron that has linked their loyalty program account, this field contains the unique number used to identify the loyalty card used. |
visitFeedback | VisitFeedback[] | The results of answering any questions about the reservation after the party has visited. |
visitTag | VisitTag[] | Any tags applied to the reservation in the Tock Dashboard specific to this reservation and not to the guest as a whole. |
payment | TockPayment[] | All payments made to secure this reservation. Payments take many forms (credit cards, gift cards, reward points, etc.) and the type of payment used is indicated inside the nested objects. |
refund | Refund[] | Any refunds applied to any payments made on this reservation. Refunds are applied in the Tock Dashboard through edits to the reservation or applying any form of discount. These refunds are applied to the original form(s) of payment to secure the reservation. |
partyState | PartyState | The current state of the party within the Tock Dashboard. |
sequenceId | uint32 | An identifier that starts at zero and increases by one for each edit to the reservation. Use this field to denote that the reservation has changed since the previous sequenceId. |
confirmationCode | string | The reservation confirmation code given to the party. Currently always eight characters. This field is not set for walk-ins. |
serverName | string | The employees names used to serve the party for the reservation. If multiple employees were assigned, they will be delimited with the word "and" (e.g. Luci and Dezi). |
walkinId | int64 | Used only for encoding walk-in data, maps to the visit id |
note | Note[] | A note that has been attached to this reservation or guest through actions in the Tock Dashboard. Imported reservations may also have notes. |
question | Question[] | Any questions answered by the party about this reservation prior to the service date. |
table | Table[] | Table(s) assigned to the reservation sorted alphabetically by ascending order. |
seatingOption | SeatingOption | An area of the floor plan (also known as seating area) |
An area of the floor plan (also known as seating area)
Field | Type | Description |
id | int64 | A unique identifier for the seating option. Used internally by Tock. |
name | string | The name given to the seating option which is displayed within the Tock Dashboard. |
isOutdoors | bool | This field indicates whether or not the seating option is outdoors. |
The name and details of the one experience that was booked for this reservation.
Field | Type | Description |
id | uint64 | A unique identifier for the experience. Used internally by Tock. |
name | string | The name given to the experience which is displayed prominently when booking or within the Tock Dashboard. |
amountCents | uint64 | The amount added to the total price for the experience and does not contain any values associated with add-on(s) or menu item(s). |
posSku | string | If assigned by the business from the Tock Dashboard, this field will be the SKU denoting the experience. |
variety | ExperienceVariety | The type of experience being offered by the business. |
An option is any add-on or menu item that is supplemental to the main experience. The quantity of the option is one, meaning that if the guest buys two of the same option, there will be two of these objects attached to the reservation.
Field | Type | Description |
id | uint64 | A unique identifier for the option. Used internally by Tock. |
name | string | The name assigned in the Tock Dashboard to this optional item. |
amountCents | uint64 | The amount added to the total price for just this one option purchased along with the experience. |
posSku | string | If assigned by the business from the Tock Dashboard, this field will be the SKU denoting the option. |
A fee that has been added along with the reservation (e.g. a large party fee for 10 or more guests). A fee always has a positive amount value and will be applied toward the total price of the reservation.
Field | Type | Description |
id | uint64 | A unique identifier for the fee. Used internally by Tock. |
name | string | The name assigned in the Tock Dashboard to this additional fee. |
amountCents | uint64 | The amount added to the total price for this additional fee. |
posSku | string | If assigned by the business from the Tock Dashboard, this field will be the SKU denoting the fee. |
A custom charge is one that is manually assigned to a reservation from the Tock Dashboard and is not a standard or automatic fee. It can be any arbitrary name and amount.
Field | Type | Description |
name | string | The name given to the custom charge when created on the reservation in the Tock Dashboard. |
amountCents | uint64 | The amount added to the total price for this custom charge. |
Any metadata associated with this reservation collected during the checkout process. Examples of potential metadata are UTM tracking parameters indicating how the guest originally came to make the reservation.
Field | Type | Description |
attribute | string | The name of the metadata attribute. |
attributeValue | string | The value of the metadata attribute. |
A form of payment that was used to secure the reservation.
Field | Type | Description |
id | int64 | A unique identifier assigned to the payment. Used internally by Tock. |
amount | int32 | The amount of the reservation that was paid using the paymentType. |
payout | Payout | The Tock-generated payout that includes this payment as a credit to the business bank account. If the business connects to Tock for payment processing using Stripe this field will not be present. |
paymentType | PaymentType | The form of payment used for this portion of total price on the reservation. |
processorId | string | A unique identifier assigned to the payment by the payment processor indicated by the paymentType. |
processorFeeCents | uint32 | The amount the payment processor kept from the payment to perform the service. |
tockFeeCents | uint32 | The fee that Tock kept from the payment to perform the service. |
A form of refund to an existing payment that was issued by the business or received through the transfer of a reservation to another guest.
Field | Type | Description |
id | int64 | A unique identifier assigned to the refund. Used internally by Tock. |
amount | int32 | The amount of the original payment that was refunded. This value will always be a positive number. |
isDispute | bool | This field indicates whether this refund was issued because of a lost chargeback dispute. |
status | RefundStatus | The current status of the refund within the payment processor that serviced the original payment. |
payout | Payout | The Tock-generated payout that includes this refund as a debit to the business bank account. If the business connects to Tock for payment processing using Stripe this field will not be present. |
processorId | string | A unique identifier assigned to the refund by the payment processor indicated by the paymentType. |
processorFeeRefundedCents | uint32 | The amount the of the payment processor fee that was returned as a result of the refund. |
tockFeeRefundedCents | uint32 | The amount of the Tock fee that was returned as a result of the refund. |
For businesses that are issued bank payouts from Tock, this object contains some very basic information about the payout.
Field | Type | Description |
id | int64 | A unique identifier assigned to the payout. Used internally by Tock. |
arrivalDate | string | The date that this payout is expected to arrive in the business bank account pending any potential rejections by the bank. |
A tag assigned to the reservation from the Tock Dashboard.
Field | Type | Description |
tag | string | The name of the tag assigned to the reservation. |
A textual note assigned to the reservation from the Tock Dashboard, or given by the guest if presented with questions after checkout.
Field | Type | Description |
noteType | NoteType | The type of note being described by this object. |
text | string | The full text of the note. |
If the guest has answered any questions after checkout, this object will contain the response.
Field | Type | Description |
name | string | The short name of this question assigned in the Tock Dashboard. |
response | string[] | All responses to the question. If the guest was presented with checkboxes to answer the question there may be multiple responses listed through this field. |
A discount applied to the total price of the reservation.
Field | Type | Description |
description | string | A textual description of the discount. |
amountCents | int32 | The amount of the discount applied in some manner to the total price. This value will always be a positive number. |
discountType | DiscountType | Where and how the discount is applied to the total price. |
giftCard | GiftCard | If a gift card was used to apply the discount to the total price, this field will contain extra information about the gift card used. |
confirmationNumber | string | If a gift card was used to apply the discount to the total price, this field will contain a confirmation number from the gift card provider that can be used to reconcile between Tock and the provider. |
promoCode | string | If the discount is applied through a promotional code, this field will be the short name of promo code as configured in the Tock Dashboard. |
ticketTypePromoCodeId | uint64 | If the discount is applied through a promotional code, this field is a unique identifier assigned to promotional code. Used internally by Tock. |
loyaltyProgram | LoyaltyProgram | If the discount is for redeeming loyalty rewards program points, this field will contain extra information about the loyalty program used. |
A non-Tock gift card used to reduce the total price of payment for the reservation.
Field | Type | Description |
giftCardProvider | ProviderType | The provider of the gift card service for the business. |
externalIdentifier | string | The identifier of the card used for reconciliation with the gift card provider. |
externalPin | string | If provided, the security pin used to authenticate the owner of the gift card. |
Information about the loyalty program provider for point redemption and accruals.
Field | Type | Description |
providerType | ProviderType | The loyalty program provider used when securing the reservation. |
accountId | string | If known, the account identifier for the owner patron within the loyalty program. |
If the guest was provided the ability to offer feedback about their experience at the business after the reservation and the guest answered, this object will contain the comments.
Field | Type | Description |
id | uint64 | A unique identifier for this feedback. Used internally by Tock. |
rating | Rating | Deprecated. The rating supplied by the guest indicating their opinion about the experience. |
message | string | A custom message included with the feedback from the guest. |
isLocked | bool | Feedback can be altered until a message is given along with the rating. This indicates whether the feedback has been locked with a message and is unable to be altered again. |
createdAtEpochSec | int64 | The timestamp for when the feedback was submitted by the guest, in seconds from the Unix Epoch. |
ratingType | RatingType | The rating scale of feedback request |
ratingScore | uint32 | The rating supplied by the guest indicating their opinion about the experience. |
The table that is assigned to a reservation
Field | Type | Description |
id | uint64 | A unique identifier. Used internally by Tock. |
name | string | The name of the table. |
room | string | The room the table resides in. |
externalId | string | ID used by external integrations |
Indicates the classification of discount applied to the total price of the reservation.
Name | Description |
CREDIT | A credit does not affect the money received by the business, such as when a gift card is used or a reservation is transferred from one patron to another for less than the total price. Credits are applied to the total amount after taxes and charges. |
SUBTOTAL_COMP | A complimentary discount that the business does not receive that was applied from the Tock Dashboard. This type of discount affects the subtotal amount before taxes and charges. |
POST_TOTAL_ADMIN_COMP | A discount applied from the Tock Dashboard that is subtracted from the total price after taxes and charges. |
POST_TOTAL_REFUND | A refund applied to the purchase that was not manually issued through the Tock Dashboard. An example of this type of discount is when a third party delivery service issues a refund to the guest for poor service. |
The variety type of experience provided. Each variety type has its own feature in the Tock Dashboard.
Name | Description |
RESERVATION | A free reservation with no money attached. |
PREPAID | A reservation that is fully paid by the guest prior to servicing by the business. |
DEPOSIT | A reservation with some money to be paid ahead of the reservation date which is then subtracted from any additional money paid when serviced by the business. |
TABLESIDE | A booking made while the guest is at the business through the Tock Tableside booking feature. |
PICKUP | An experience provided by the business for pickup by the guest at the business. |
DELIVERY | An experience provided by the business that will be delivered to the guest either by the business or one of Tock's 3rd party delivery providers. |
EVENT | An event is typically a special one-time or N-time experience that is tangential to the normal business experience offerings. Businesses that use just Tock's events feature will only be able to make experinces of this type. |
The provider of the gift card service for the business.
Name | Description |
TCC | The Customer Connection provided the gift card service. |
STUB | An unknown business provided the gift card service. |
PAYTRONIX | Paytronix provided the gift card service. |
The name of the loyalty program provider.
Name | Description |
PAYTRONIX | Loyalty program is provided by https://www.paytronix.com/ |
ANNEXCLOUD | Loyatly program is provided by https://www.annexcloud.com/ |
The classification of note assigned to the reservation.
Name | Description |
BOOKING_GENERAL_NOTE | A note about the reservation that is not related to any dietary restrictions of the party. |
BOOKING_DIETARY_NOTE | A note about the reservation that is related to dietary restrictions of the party. |
GUEST_PROVIDED_NOTE | A note provided by the guest to the business after checkout. |
The current state representing the last action provided by the party that is associated with this reservation. Some of these states are provided by the party itself, such as confirming the reservation, or by a Tock Dashboard user when interacting with or editing the party.
Name | Description |
EXPECTED | The default state of a reservation after it is booked. |
ARRIVED | Indicates that the party has been acknowledged as having arrived in the Tock Dashboard. |
SEATED | Indicates that the party has been seated at a table in the Tock Dashboard. |
LEFT | The final state of a table. Indicates that the party has finished their reservation. |
NO_SHOW | Indicates that the party has been marked as not showing up for their reservation within the Tock Dashboard. |
CANCELLED | Indicates that the party has cancelled this reservation or has been marked as cancelled in the Tock Dashboard. |
AWAITING_RESPONSE | Deprecated. |
CONFIRMED_VIA_TEXT | Deprecated. |
CONFIRMED_VIA_EMAIL | Deprecated. |
PARTIALLY_ARRIVED | Indicates that the party has been marked as only partially arrived in the Tock Dashboard. |
PARTIALLY_SEATED | Indicates that the party has been marked as only partially seated in the Tock Dashboard. |
FINISHED | Deprecated. |
Indicates how payment for some or all of the reservation was made.
Name | Description |
NONE | The payment type is unknown. This value should never appear and indicates a failure within Tock. |
CREDIT_CARD | The guest paid this amount using a credit card. |
CHASE_PAY | |
CHASE_ULTIMATE_REWARDS | The guest paid this amount using their Chase Ultimate Rewards points. |
TOCK_GIFT_CARD | The guest paid this amount using a Tock gift card. |
PAY_ON_SITE | In the case that some or all of the payment for the reservation was deferred from the Tock Dashboard as a "Pay Later", meaning that the business will collect payment from the guest when they are at the business this will be the PaymentType value. |
All feedback requests offer the user three choices when rating their experience.
Name | Description |
BAD | |
NEUTRAL | |
GOOD |
Rating scale of visit feedback requests
Name | Description |
THREE_POINT_EMOTICON | |
FIVE_POINT_STAR |
The lifecycle of a refund may include a period of time where it is still being settled by the payment processor, or it may be completely rejected by the bank that supplied the initial payment that is being refunded.
Name | Description |
COMPLETE | The refund has completed processing and should be available on the guest's payment statement, if using a credit card. |
DEFERRED | The refund is still being settled by the payment processor or the bank from which the initial payment was made. |
ERROR | In some rare occasions, the bank may reject the refund outright. Tock will mark the refund in error in those cases. |
A business encapsulates a small subset of information about a particular business that has their own Tock Dashboard.
Field | Type | Description |
id | uint64 | A unique identifier for the business. Used internally by Tock. |
name | string | The name given to the business in the Tock Dashboard. |
domainName | string | The unique section of exploretock.com that is devoted to showing inventory and allowing guests to book reservations. The top-level URL will be of the form https://exploretock.com/{domainName}/. |
locale | string | The locale that the business presents in using the ISO-3166 country code and ISO-639 language code (e.g. en-us for US English, es-es for Spain Spanish). |
currencyCode | string | The ISO 4217 three letter currency code that the business presents on exploretock.coms (e.g. "USD" for US Dollar, "GBP" for Great Britain Pound). |
timeZone | string | The time zone in which the business operates in the IANA named format (e.g. "America/Chicago"). |
A patron represents a user within Tock. These users can be guests that have previously visited the business, or concierges allowed to book on behalf of other patrons, or imported guests from other reservation systems. No two patrons can have the same email address. A patron does not necessarily have to have an email address if they are created in the Tock Dashboard or imported from another reservation system.
Field | Type | Description |
id | uint64 | A unique identifier assigned to the patron. Used internally by Tock. |
string | The email address of the patron. No two patrons can have the same email address, but an email address is not required of all patrons. |
|
firstName | string | If known, the first name of the patron. |
lastName | string | If known, the last name of the patron. |
phone | string | If known, the phone number of the patron without the country code. |
phoneCountryCode | string | If known, the country code for the patron using the prefix code and the ISO 3166-1 alpha-2 country code (e.g. "+1 US"). |
zipCode | string | If known, the zip code given by the patron in their Tock profile. |
imageUrl | string | If known, a URL to a public image of the patron. |
isoCountryCode | string | If known, the ISO 3166-1 alpha-2 country code where the patron lives. |
loyaltyProgramCardNumber | string | If known and if the business participates in an integrated loyalty program, this field contains the card number given to the patron by the business. |
loyaltyProgramAccountId | string | If known and if the business participates in an integrated loyalty program, this field contains the account identifier given to the patron by the business. |
.proto Type | Notes | JSON | C++ | Java | Python | Go | C# | PHP | Ruby |
double | number | double | double | float | float64 | double | float | Float | |
float | number | float | float | float | float32 | float | float | Float | |
int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | number | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | number | int64 | long | int/long | int64 | long | integer/string | Bignum |
uint32 | Uses variable-length encoding. | number | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) |
uint64 | Uses variable-length encoding. | number | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) |
sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | number | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | number | int64 | long | int/long | int64 | long | integer/string | Bignum |
fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | number | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) |
fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | number | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum |
sfixed32 | Always four bytes. | number | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
sfixed64 | Always eight bytes. | number | int64 | long | int/long | int64 | long | integer/string | Bignum |
bool | boolean | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass | |
string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | string | String | str/unicode | string | string | string | String (UTF-8) |
bytes | May contain any arbitrary sequence of bytes. | string | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) |