Use the instructions below to build cash transaction reports using information from the Toast platform. This information helps when validating cash drawer values, spotting large cash transactions, reviewing payout activity, and more.
The integration allows you to provide customers with detailed information about cash transactions, providing restaurants with useful information to understand their daily cash flow.
To follow these instructions, you must have the following scopes:
-
cashmgmt:read -
config:read -
labor.employees:read -
restaurants:read
Review and implement the instructions in How to build a Toast integration.
Before you begin development, decide what reports you will build.
This guide describes how to report on the following cash transaction information:
-
Addition and removal of miscellaneous cash from cash drawer
-
Addition and removal of cash tips from cash drawer
-
"No sale" transactions
-
Cash payments for goods and services
-
Delivery driver reimbursement
-
Closeouts
-
Deposits
-
Expected value in cash drawer
-
Anomalous cash transactions
To display additional information associated with cash transactions, query the following configuration API endpoints at least once per day:
-
/cashDrawers -
/noSaleReasons -
/payoutReasons
In addition, query the /employees endpoint of the
labor API at least once per day to retrieve information about the
employees associated with cash transactions.
To report on cash transactions, you need to retrieve cash entries and deposits once per day.
-
For cash entries, use the
businessDateparameter of the/entriesendpoint of the cash management API.Toast support recommends that you retrieve cash entries for the previous business day every day.
-
For deposits, use the
businessDateparameter of the/depositsendpoint of the cash management API.Toast support recommends retrieving deposits for the previous business day every day.
When a restaurant first connects to your integration, they may expect to see some historical information already displayed in your system.
Define how many days of historical cash transactions you retrieve when a restaurant first connects to your integration.
Toast support recommends that you retrieve twelve weeks of historical cash transactions when a restaurant first connects to your integration.
The closeoutHour value in the General
object returned by the restaurants API contains
the restaurant's closeout hour.
The default closeout hour is 4:00 a.m. local time unless a Toast
employee changes this setting. The businessDate value on
cash transactions changes after the closeoutHour.
Consider daylight savings time when interacting with the closeout hour.
To display the cash drawer associated with the cash entry,
identify the cashDrawer value of the CashEntry
object returned by the /entries endpoint of the cash
management API.
Then display the name of the associated
CashDrawer object returned by the /cashDrawers
endpoint of the configuration API.
To report on the addition and removal of miscellaneous cash from
the cash drawer, your reports should display cash entries whose
type values are CASH_IN and
CASH_OUT. Cash entries with type of
CASH_IN or CASH_OUT indicate that employees
added cash to a cash drawer or removed cash from a cash drawer outside
of a transaction.
-
Cash entries with a
typeofCASH_INrepresent employees adding cash into a cash drawer. -
Cash entries with a
typeofCASH_OUTrepresent employees removing cash from a cash drawer.
To display the name of the employee who
initiated the addition or removal of cash from the
cash drawer, match the GUID of the employee1 value on the
CashEntry object with that of the corresponding employee
from the /employees endpoint of the labor API and display
the employee name.
To display the name of the employee who
approved the addition or removal of cash from the
cash drawer, match the GUID of the employee2 value on the
CashEntry object with that of the corresponding employee
from the /employees endpoint of the labor API and display
the employee name.
When a restaurant employee undoes a CASH_IN entry,
there is a corresponding CASH_OUT entry. In that
CASH_OUT entry, the undoes value contains the
GUID of the original CASH_IN transaction. Similarly, when a
restaurant employee undoes a CASH_OUT entry, there is a
corresponding CASH_IN entry. In that CASH_IN
entry, the undoes value contains the GUID of the original
CASH_OUT transaction. If the undoes value on a
cash entry contains information, your reports should match this cash
entry with the original entry it undoes. The CASH_IN and
corresponding CASH_OUT entries may occur on different
business days.
To report on the addition and removal of miscellaneous cash from
the cash drawer, your reports should display cash entries whose
type values are CASH_COLLECTED and
TIP_OUT.
-
Cash entries whose
typeisCASH_COLLECTEDrepresent employees adding cash tips into a cash drawer. This does not include cash transactions that are paid into a cash drawer at the time that the guest pays for a check. -
Cash entries whose
typeisTIP_OUTrepresent employees removing cash from a cash drawer to pay non-cash tips or gratuities to restaurant employees. For example, a tip out entry might pay tips that were entered in credit card payments.
To display the name of the employee who
performed the shift review that created the cash
entry, match the GUID of the employee1 value on the
CashEntry object with that of the corresponding employee
from the /employees endpoint of the labor API and display
the employee name.
To display the name of the employee who is the subject
of the shift review that created the cash entry, match the
GUID of the employee2 value on the CashEntry
object with that of the corresponding employee from the
/employees endpoint of the labor API and display the
employee name.
When a restaurant employee undoes a CASH_COLLECTED
entry, there is a corresponding TIP_OUT entry. In that
TIP_OUT entry, the undoes value contains the
GUID of the original CASH_COLLECTED transaction. Similarly,
when a restaurant employee undoes a TIP_OUT entry, there is
a corresponding CASH_COLLECTED entry. In that
CASH_COLLECTED entry, the undoes value
contains the GUID of the original TIP_OUT transaction. If
the undoes value on a cash entry contains information, your
reports should match this cash entry with the original entry it undoes.
The CASH_COLLECTED and corresponding TIP_OUT
entries may occur on different business days.
To report on the addition and removal of miscellaneous cash from
the cash drawer, your reports should display cash entries whose
type value is NO_SALE.
A restaurant employee opens a cash drawer and does not make a change to the cash balance. For example, a restaurant employee might perform a "no sale" transaction to make change for a guest. The restaurant employee can select a pre-configured reason to explain the nature of the no sale transaction.
To display the reason the employee performed the "no sale"
transaction, display the name of the
NoSaleReason object associated with the
noSaleReason value on the cash entry. The
/noSaleReasons endpoint of the configuration API returns
no-sale reasons.
To display the name of the employee who initiated the cash
transaction, match the GUID of the employee1 value on the
CashEntry object with that of the corresponding employee
from the /employees endpoint of the labor API and display
the employee name.
To report on cash payments for goods and services, your reports
should display cash entries whose type values are
PAY_OUT and UNDO_PAY_OUT.
Cash entries whose type is PAY_OUT
represent employees removing cash from a cash drawer to pay for goods or
services. For example, an employee might pay cash for a window washing
service.
To display the reason the employee performed the payout
transaction, display the name of the
PayoutReason object associated with the
payoutReason value on the cash entry. The
/payoutReasons endpoint of the configuration API returns
payout reasons.
To display the name of the employee who
initiated the payout transaction, match the GUID of
the employee1 value on the CashEntry object
with that of the corresponding employee from the /employees
endpoint of the labor API and display the employee name.
To display the name of the employee who
approved the payout transaction, match the GUID of
the employee2 value on the CashEntry object
with that of the corresponding employee from the /employees
endpoint of the labor API and display the employee name.
When a restaurant employee undoes a PAY_OUT entry,
there is a corresponding UNDO_PAY_OUT entry. In that
UNDO_PAY_OUT transaction, the undoes value
contains the GUID of the original PAY_OUT transaction. If
the undoes value on a cash entry contains information, your
reports should match this cash entry with the original entry it undoes.
The PAY_OUT and corresponding UNDO_PAY_OUT
entries may occur on different business days.
To report on cash reimbursement of delivery drivers, your reports
should display cash entries whose type value is
DRIVER_REIMBURSEMENT.
Cash entries whose type is
DRIVER_REIMBURSEMENT represent employees removing cash from
a cash drawer to pay a delivery driver for delivery driving
expenses.
To display the name of the employee who
performed the shift review that created the driver
reimbursement transaction, match the GUID of the employee1
value on the CashEntry object with that of the
corresponding employee from the /employees endpoint of the
labor API and display the employee name.
To display the name of the employee who is the subject
of the shift review that created the driver reimbursement
transaction, match the GUID of the employee2 value on the
CashEntry object with that of the corresponding employee
from the /employees endpoint of the labor API and display
the employee name.
To report on when employees close a cash drawer, your reports
should display cash entries whose type value is
CLOSE_OUT_EXACT, CLOSE_OUT_OVERAGE, and
CLOSE_OUT_SHORTAGE.
-
If the cash drawer's close out balance is equal to the expected balance, the
typeof the cash entry isCLOSE_OUT_EXACT. -
If the cash drawer's close out balance is greater than the expected balance, the
typeof the cash entry isCLOSE_OUT_OVERAGE. -
If the cash drawer's close out balance is less than the expected balance, the
typeof the cash entry isCLOSE_OUT_SHORTAGE.
To display the name of the employee who initiated the cash
transaction, match the GUID of the employee1 value on the
CashEntry object with that of the corresponding employee
from the /employees endpoint of the labor API and display
the employee name.
To report on cash deposits from the previous business day, display
the deposits you retrieved from the /deposits endpoint of
the cash management API. The amount value indicates the
amount of cash deposited in the cash drawer.
To display the name of the employee who deposited the cash, match
the GUID of the employee value on the Deposit
object with that of the corresponding employee from the
/employees endpoint of the labor API and display the
employee name.
Follow these instructions to report on the expected cash balance in a cash drawer at the end of a business day.
Consider flagging cash transactions that restaurants may consider noteworthy.
For example, your service may allow restaurants to configure a dollar threshold that they consider to be a high-dollar cash transaction. Consider highlighting cash transactions whose value is greater than this threshold.
You can use the Schedules object in the restaurants
API to determine a restaurant's hours. Consider highlighting
cash transactions that occur after hours.