Reservation Data Model

Download the Reservation swagger file

Table of Contents

Reservation

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).

FieldTypeDescription
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)

SeatingOption

An area of the floor plan (also known as seating area)

FieldTypeDescription
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.

PurchasedExperience

The name and details of the one experience that was booked for this reservation.

FieldTypeDescription
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.

PurchasedOption

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.

FieldTypeDescription
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.

PurchasedFee

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.

FieldTypeDescription
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.

PurchasedCustomCharge

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.

FieldTypeDescription
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.

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.

FieldTypeDescription
attribute string

The name of the metadata attribute.

attributeValue string

The value of the metadata attribute.

TockPayment

A form of payment that was used to secure the reservation.

FieldTypeDescription
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.

Refund

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.

FieldTypeDescription
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.

Payout

For businesses that are issued bank payouts from Tock, this object contains some very basic information about the payout.

FieldTypeDescription
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.

VisitTag

A tag assigned to the reservation from the Tock Dashboard.

FieldTypeDescription
tag string

The name of the tag assigned to the reservation.

Note

A textual note assigned to the reservation from the Tock Dashboard, or given by the guest if presented with questions after checkout.

FieldTypeDescription
noteType NoteType

The type of note being described by this object.

text string

The full text of the note.

Question

If the guest has answered any questions after checkout, this object will contain the response.

FieldTypeDescription
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.

Discount

A discount applied to the total price of the reservation.

FieldTypeDescription
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.

GiftCard

A non-Tock gift card used to reduce the total price of payment for the reservation.

FieldTypeDescription
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.

LoyaltyProgram

Information about the loyalty program provider for point redemption and accruals.

FieldTypeDescription
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.

VisitFeedback

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.

FieldTypeDescription
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.

Table

The table that is assigned to a reservation

FieldTypeDescription
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

DiscountType

Indicates the classification of discount applied to the total price of the reservation.

NameDescription
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.

ExperienceVariety

The variety type of experience provided. Each variety type has its own feature in the Tock Dashboard.

NameDescription
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.

GiftCard.ProviderType

The provider of the gift card service for the business.

NameDescription
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.

LoyaltyProgram.ProviderType

The name of the loyalty program provider.

NameDescription
PAYTRONIX

Loyalty program is provided by https://www.paytronix.com/

ANNEXCLOUD

Loyatly program is provided by https://www.annexcloud.com/

NoteType

The classification of note assigned to the reservation.

NameDescription
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.

PartyState

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.

NameDescription
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.

PaymentType

Indicates how payment for some or all of the reservation was made.

NameDescription
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.

Rating

All feedback requests offer the user three choices when rating their experience.

NameDescription
BAD

NEUTRAL

GOOD

RatingType

Rating scale of visit feedback requests

NameDescription
THREE_POINT_EMOTICON

FIVE_POINT_STAR

RefundStatus

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.

NameDescription
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.

Business

A business encapsulates a small subset of information about a particular business that has their own Tock Dashboard.

FieldTypeDescription
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").

Patron

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.

FieldTypeDescription
id uint64

A unique identifier assigned to the patron. Used internally by Tock.

email 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.

Scalar Value Types

.proto TypeNotesJSONC++JavaPythonGoC#PHPRuby
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)