---
title: Toast API Integration on Truto
slug: toast
category: E-Commerce
canonical: "https://truto.one/integrations/detail/toast/"
---

# Toast API Integration on Truto



**Category:** E-Commerce  
**Status:** Beta

## MCP-ready AI tools

Truto exposes 117 tools for Toast that AI agents can call directly.

- **create_a_toast_metric** — Create a Toast aggregated sales reporting data request for a custom business-date range. Returns the reportRequestGuid used to retrieve the data with the metrics list method. Requires a body with startBusinessDate and endBusinessDate.
- **list_all_toast_metrics** — Get the aggregated sales reporting data for a Toast analytics report request. Returns an id and an attributes object whose fields depend on the aggregation options used when the data request was created. Required: report_request_guid. Data is gathered asynchronously; retry until Toast finishes preparing the report.
- **list_all_toast_restaurants_informations** — List the Toast restaurants in the management group associated with the API client. Returns, for each restaurant, its guid, name, and activated, test_mode, and archived status flags.
- **create_a_toast_check** — Create a check reporting data request in Toast for a specific time range. Returns: reportRequestGuid, the identifier used to retrieve the data. Required: time_range, startBusinessDate, endBusinessDate. Currently day is the only valid time_range value.
- **list_all_toast_checks** — Get the check reporting data for a Toast report request. Returns the CheckReportingData object with per-check reporting fields (schema-specific shape); a 202 response is returned while Toast is still gathering the data. Required: report_request_guid.
- **create_a_toast_labor** — Create a labor reporting data request in Toast for a specific time range. Returns: id. Required: time_range, startBusinessDate, endBusinessDate. The data is gathered asynchronously.
- **list_all_toast_labors** — Get the labor reporting data in Toast for a report request. Returns: id. Required: report_request_guid. If the data is still being gathered, retry the request later.
- **list_all_toast_menus** — List all menus configured for a Toast restaurant, such as drinks, dinner, and dessert menus. Returns each menu's guid and its menu attributes. Max 300 per page.
- **get_single_toast_menu_by_id** — Get a single menu configured for a Toast restaurant by id (the menu's Toast POS guid). Returns the menu's guid and its menu attributes. Required: id.
- **create_a_toast_payout** — Create a Toast payout reporting data request organized by settled date for a specific time range (the 'payout by settled date' report). Set time_range to day, week or month, and provide startDate and endDate (YYYYMMDD) in the body, optionally limiting to restaurantIds or excluding excludedRestaurantIds. Returns the reportRequestGuid string used to retrieve the data with payouts.list. Required: time_range, startDate, endDate.
- **list_all_toast_payouts** — Retrieve the Toast payout reporting data organized by settled date for a previously created report request. Returns one row per restaurant and settled date with restaurantGuid, restaurantName, restaurantLocationName, restaurantLocationCode, settledDate, salesPeriodStartDateTime, salesPeriodEndDateTime, transactionCount, paymentAmount, refundAmount, totalFeeAmount, withholdingAmount, payoutAmount and payoutStatus. A 202 means Toast is still gathering the data; retry later. Required: report_request_guid.
- **create_a_toast_payout_payment** — Create a Toast payout reporting data request organized by payment for a specific time range. Returns the reportRequestGuid used to retrieve the reporting data. Requires time_range (only 'day' is currently a valid value), plus startDate and endDate in the body.
- **list_all_toast_payout_payments** — Get Toast payout reporting data organized by payment for a specific report request. Returns the reporting data payload (attributes) whose payment-organized fields are defined by the upstream PayoutPaymentsReportingData schema. Required: report_request_guid. While the platform is still gathering the data the request returns 202 and must be retried later.
- **create_a_toast_payout_sales_date** — Create a Toast payout reporting data request organized by sales date for a specific time range. Returns: reportRequestGuid, the identifier used to retrieve the data. Requires time_range (day, week, or month), startDate, and endDate. week covers seven days or fewer and month covers 31 days or fewer.
- **list_all_toast_payout_sales_dates** — Get the Toast payout reporting data organized by sales date for a reporting data request. Returns the payout reporting data organized by sales date, with fields defined by the Toast Analytics API `PayoutSalesDateReportingData` schema. Required: report_request_guid. Returns 202 with an in-progress marker while the platform is still gathering the data; retry later.
- **create_a_toast_guest_payment** — Create a Toast guest reporting data request organized by payment for a specific time range. Returns the reportRequestGuid used to retrieve the reporting data via the list method. Required: time_range, startDate, endDate. time_range must be day (one day) or week (seven days or fewer).
- **list_all_toast_guest_payments** — Get the Toast guest reporting data organized by payment for a reporting data request. Returns: data, the guest payment-card reporting data for the request. Required: report_request_guid. While the platform is still gathering the data the call returns an in-progress response - retry the request at a later time.
- **get_single_toast_restaurant_by_id** — Get detailed configuration information for a specific Toast restaurant by id (the restaurant's Toast GUID). Returns: id. Required: id. Pass includeArchived=true to also retrieve archived restaurants, which otherwise return a 404 (defaults to false).
- **list_all_toast_restaurants** — List the Toast restaurants that your partner API client can access. Returns: id.
- **list_all_toast_group_restaurants** — List the Toast restaurants that belong to a restaurant management group. Returns an array of Restaurant objects, each containing the restaurant's unique Toast platform identifier in its guid. Required: management_group_guid.
- **list_all_toast_payments** — List Toast payment identifiers for one restaurant business day. Returns an array of payment GUID strings. Requires one of paidBusinessDate, refundBusinessDate, or voidBusinessDate, each in yyyyMMdd format (e.g. 20170101).
- **get_single_toast_payment_by_id** — Get a single Toast payment by its GUID. Returns the full Payment object including guid, amount, tipAmount, paymentStatus, paidDate, and cardType. Required: guid.
- **create_a_toast_price** — Calculate check prices, taxes and service charges for a Toast Order object without creating the order. Validates that all referenced items, modifiers and dining options exist. The order GUID is not set in the response because nothing is persisted; prices can change over time as restaurant configuration and schedules change. Requires the Toast-Restaurant-External-ID header (set from the connection). Required: diningOption, checks (with selections).
- **list_all_toast_orders** — Retrieve a Toast order by its GUID. Returns the full Order object including guid, entityType, businessDate, diningOption, openedDate, and nested checks with payments and item selections. Required: guid.
- **create_a_toast_order** — Create a new guest order in Toast. Returns the persisted Order object including generated guid, businessDate, approvalStatus, diningOption, openedDate, and nested checks with payments and item selections. Requires an Order object body describing the order's checks and item selections. Credit card payment types are not supported.
- **get_single_toast_order_by_id** — Get a single Toast order by its GUID. Returns the full Order object including guid, entityType, businessDate, diningOption, openedDate, and nested checks with payments and item selections. Required: guid.
- **list_all_toast_orders_bulks** — List Toast orders opened or modified during a period, returning full Order objects with their checks, selections, payments and discounts. Provide either businessDate (yyyyMMdd, orders promised that business day) or both startDate and endDate (ISO-8601 with fractional seconds, exclusive end, filtered on modified date). Paginated with page and pageSize (max 100). Returns: guid, externalId, openedDate, modifiedDate, promisedDate, businessDate, diningOption, checks, approvalStatus, source, voided, deleted, deliveryInfo, curbsidePickupInfo, server, table, revenueCenter, numberOfGuests.
- **create_a_toast_check_payment** — Add one or more payments to a check on an existing Toast order. The body is a JSON array of Payment objects (type, amount, tipAmount, amountTendered, otherPayment for OTHER types). Returns the created Payment objects with guid, type, amount, tipAmount, paymentStatus, cardType, last4Digits, paidDate and refund details. Required: order_guid, check_guid, and a body array with at least one payment having type and amount.
- **update_a_toast_check_payment_by_id** — Update the tip amount of an existing payment on a Toast check. The body may contain only tipAmount; any other Payment field is rejected. Returns the full Order object including the updated payment. Required: order_guid, check_guid, id (payment GUID), tipAmount.
- **create_a_toast_check_selection** — Add one or more menu items to an existing check in a Toast order. Returns the full order object including guid, entityType, openedDate, and its checks with the selections (item, quantity, price, displayName), payments, and applied discounts from both the original check and the newly added items. Required: order_guid and check_guid.
- **create_a_toast_check_applied_discount** — Add one or more check-level discounts to a check in an existing Toast order by posting an array of Discount objects. Returns the updated Order object including its guid and the checks that now carry the applied discount. Required: order_guid, check_guid.
- **create_a_toast_selection_applied_discount** — Add one or more item-level discounts to a menu item selection in a check of an existing Toast order. Returns the updated order object that includes the discount you added. Requires order_guid, check_guid, selection_guid, and a request body containing an array of Discount objects.
- **toast_order_delivery_infos_bulk_update** — Update the delivery information of a Toast order using the DELIVERY dining option. Returns the full order JSON, including updated deliveryInfo, with fields such as guid, businessDate, openedDate, and checks. Required: order_guid plus any combination of deliveredDate, dispatchedDate, deliveryState, deliveryEmployee, notes. Once deliveryState is DELIVERED, no further updates are accepted.
- **create_a_toast_order_void** — Void a Toast order, including its selections and payments. Returns the modified order object including its guid, checks, and payments. Only orders with OTHER payment types can be voided. Required: order_guid and a body with selections and payments each setting voidAll to true.
- **create_a_toast_applicable_discount** — Get the discounts that apply to the checks and menu item selections in a Toast order. Returns an array of ApplicableDiscount objects, each describing one discount and which checks and menu item selections are eligible for it; when a promoCode is included in the request body, only the discounts associated with that promotional code are returned. Requires an ApplicableDiscountsRequest body with the…
- **toast_check_applied_loyalty_infos_bulk_update** — Update the applied loyalty information for a specific Toast check. Returns the updated Check object, including guid, displayNumber, amount, totalAmount, paymentStatus, and appliedLoyaltyInfo. Required: check_guid.
- **list_all_toast_metadata** — Get the menu last-modified timestamp for a Toast restaurant, a lightweight check to determine whether menu data has been updated before fetching the full menus payload. Returns: lastUpdated. Call the menus endpoint only when lastUpdated is more recent than your stored value, which is especially important for limited-bandwidth clients.
- **list_all_toast_entries** — List cash entries in Toast for a single business date: cash added to or removed from cash drawers and other cash storage devices. Returns CashEntry records with their id and attributes (CashEntry-specific fields). Required: businessDate (yyyymmdd).
- **list_all_toast_deposits** — List Toast deposits for a business date — cash removed from a restaurant to be deposited in a bank or other financial institution during that business day. Returns an array of Deposit records, each with its id. Required: businessDate (yyyymmdd format).
- **list_all_toast_connected_restaurants** — List Toast restaurants that have connected to your integrated partner service. Returns a paginated page of PartnerAccessExternalRep restaurant records; the PaginatedResponse includes nextPageToken for fetching the next page. Use lastModified (UTC ISO 8601 timestamp) to find restaurants that granted or changed access after a given date and time. Max page size 200 (default 100).
- **list_all_toast_inventories** — List menu item inventory for a Toast restaurant. Returns inventory records for menu items at risk of going out of stock, each with guid, multiLocationId, status, and quantity (present when status is QUANTITY). Only items with OUT_OF_STOCK or QUANTITY status are returned; use status to restrict to one of those two.
- **list_all_toast_search_inventories** — Search Toast inventory information for specific menu items by identifier. Returns an array of inventory records including guid, multiLocationId, status (IN_STOCK, OUT_OF_STOCK, or QUANTITY), and quantity. Requires a request body with one or both of multiLocationIds and guids.
- **toast_inventory_updates_bulk_update** — Update inventory information for a list of Toast menu items. Returns each item's updated inventory record including multiLocationId, guid, status, and quantity. Required: an array of MenuItemInventory objects, each identifying the menu item by multiLocationId or guid and carrying a status of IN_STOCK, OUT_OF_STOCK, or QUANTITY; items with status QUANTITY also require a quantity greater than 0.
- **list_all_toast_published_packaging_configs** — Get a Toast restaurant's published packaging configuration. Returns the PackagingConfig object as `attributes`, covering the restaurant's overall packaging preferences and the packaging item identifiers that can be included in takeout or delivery orders. A 200 is returned even when no configuration is published, in which case an empty, disabled configuration is returned.
- **list_all_toast_export_item_fulfillments** — Export item fulfillments from Toast for a single, specified business date. Returns an array of ItemFulfillment records including their id; returns no data when the restaurant lacks an active Toast Restaurant Management Suite Pro (or higher) subscription. Required: businessDate (YYYYMMDD format).
- **list_all_toast_published_prep_stations** — List all prep stations configured for a Toast restaurant — the locations of kitchen printers or KDS devices that receive orders for fulfillment. Returns prep station records with their id (Toast GUID). Optional lastModified filter returns only stations created or modified after that date-time; up to 1000 stations per response.
- **get_single_toast_published_prep_station_by_id** — Get a single Toast prep station by id — a prep station is the location of a kitchen printer or KDS device that receives orders for fulfillment. Returns the prep station record with its id (Toast GUID). Required: id (the prep station GUID).
- **list_all_toast_device_infos** — List device details for a Toast restaurant location, including POS terminals, handheld devices, and printers. Returns Device records with an id and an attributes object containing the device fields defined by the Toast Device schema.
- **create_a_toast_authentication_login** — Request a Toast authentication token by exchanging your Toast API client credentials. Returns: status. Required: clientId, clientSecret, and userAccessType (must be TOAST_MACHINE_CLIENT).
- **list_all_toast_employees** — List all employees for a Toast restaurant. Returns an array of employee objects including id, email, firstName, lastName, jobReferences, wageOverrides, and deleted status. Optionally filter by employeeIds (repeatable, maximum 100).
- **create_a_toast_employee** — Create a new restaurant employee record in Toast. Returns the created employee including id, guid, email, firstName, lastName, and wageOverrides. Send an Employee object containing the employee's name and email address, with optional external identifiers and per-job wage overrides.
- **get_single_toast_employee_by_id** — Get information about one Toast restaurant employee by id. Returns the employee object including id, email, firstName, lastName, jobReferences, wageOverrides, and deleted status. Required: id (a Toast platform GUID or external identifier).
- **update_a_toast_employee_by_id** — Update a Toast restaurant employee's firstName, chosenName, lastName, externalEmployeeId, and/or Toast POS passcode; no other employee information can be patched. Returns the updated employee record including id, email, firstName, lastName, and jobReferences. Required: id. At least one body value must be included, and passcode changes must also include currentPasscode.
- **delete_a_toast_employee_by_id** — Delete a Toast restaurant employee by marking the record as deleted; deleted employees cannot sign in at the restaurant or open new time entries. Returns the deleted employee object including id, email, firstName, lastName, deleted, and deletedDate. Required: id. Employees with open time entries cannot be deleted.
- **create_a_toast_employee_external_id** — Add an external identifier to an existing Toast employee. Returns the updated employee record including id, externalId, firstName, lastName, and email. Required: employee_id and the string value of the external identifier in the body. Cannot change an existing external identifier with this method — use update instead.
- **toast_employee_external_ids_bulk_update** — Add or replace the external identifier for an existing Toast employee. Returns the updated employee record including id, externalId, firstName, lastName, and email. Required: employee_id and the string value of the external identifier in the body. Changing an existing external identifier may affect Toast reporting and functions that select employees by externalId.
- **toast_employee_unarchives_bulk_update** — Unarchive a previously archived Toast employee, restoring Toast POS and Toast Web sign-in and all previously assigned jobs. Returns the updated employee record with guid, email, firstName, lastName, jobReferences, and wageOverrides. Required: employee_id. The employee must be currently archived; swipe cards are not re-associated.
- **toast_employee_jobs_bulk_update** — Replace the list of jobs assigned to a toast employee. Sends a bare JSON array of job identifiers (each a guid or externalId) and returns the updated employee record with the new jobReferences, entityType, externalId, names, email, and wageOverrides. Note: a job defined at the restaurant group or subgroup level is added or removed for the employee at all restaurant locations in the group or…
- **toast_employee_wage_overrides_bulk_update** — Replace the wage overrides for the jobs assigned to an employee in Toast. Returns the updated employee record including entityType, firstName, lastName, email, jobReferences, and wageOverrides. Required: employee_id plus a body array of wage overrides (jobReference.guid, wage). The wage is specified in U.S. dollars, and any existing override omitted from the array is removed from the employee…
- **list_all_toast_shifts** — List Toast schedule shifts for restaurant employees. Returns an array of Shift objects including externalId, entityType, jobReference, employeeReference, inDate, and outDate. Filters by shiftIds and/or a startDate/endDate window (required if shiftIds is omitted, max one month).
- **create_a_toast_shift** — Create a Toast schedule shift for a restaurant employee. Returns the created Shift object including externalId, entityType, jobReference, employeeReference, inDate, and outDate. Requires jobReference, employeeReference, inDate, and outDate.
- **get_single_toast_shift_by_id** — Get a single Toast schedule shift by id. Returns the Shift object including externalId, entityType, jobReference, employeeReference, inDate, and outDate. Required: id (the Toast platform GUID or an external identifier for the shift).
- **update_a_toast_shift_by_id** — Fully replace an existing Toast schedule shift by id (a PUT overwrites the record's information). Returns the updated Shift object including externalId, entityType, jobReference, employeeReference, inDate, and outDate. Requires id plus jobReference, employeeReference, inDate, and outDate; externalId is not allowed on updates.
- **delete_a_toast_shift_by_id** — Delete a Toast schedule shift by id (marks the record as deleted; deleting an already-deleted shift still succeeds with no change). Returns the shift with the deleted flag set to true, including externalId, entityType, jobReference, employeeReference, inDate, and outDate. Required: id (the Toast platform GUID or an external identifier for the shift).
- **list_all_toast_jobs** — List the employee jobs configured at a Toast restaurant. Returns the matching job records including their guid and externalId identifiers. By default, deleted jobs are excluded from the array.
- **get_single_toast_job_by_id** — Get a single Toast job by id, where id may be the Toast platform GUID or an external identifier assigned by the client. Returns the Job object for one employee job at a restaurant, including its guid, name, wage information, and externalId.
- **create_a_toast_job_external_id** — Add an external identifier to an existing job in Toast. Returns the updated job record including its guid, entityType, and externalId. An existing external identifier cannot be changed with another POST. Requires job_id and the external identifier string value in the request body.
- **toast_job_external_ids_bulk_update** — Add or replace the external identifier of a Toast job. The new external identifier string is sent as the raw request body; changing it may affect reporting and other Toast platform functions that select jobs by externalId. Returns the updated job record including its guid and externalId. Required: job_id.
- **list_all_toast_time_entries** — List Toast time entries for a restaurant. Returns an array of TimeEntry objects with guid, externalId, breaks, and shift/break timing attributes. Requires one of: one or more timeEntryIds, both startDate and endDate, both modifiedStartDate and modifiedEndDate, or businessDate. Date-range periods cannot span more than one month.
- **get_single_toast_time_entry_by_id** — Get a single Toast time entry by id. Returns a TimeEntry object describing one employee shift, including its id, clock-in inDate, and breaks with the start and end times of each break period. Required: id (a Toast platform GUID or an external identifier for the time entry).
- **list_all_toast_alternate_payment_types** — List alternative payment types configured for a Toast restaurant — non-standard forms of payment such as third-party payment services. Returns an array of AlternatePaymentType objects with fields as defined in the Toast API reference. Up to 300 objects per page.
- **get_single_toast_alternate_payment_type_by_id** — Get a single alternative payment type configured for a Toast restaurant — a non-standard form of payment such as a third-party payment service. Returns the AlternatePaymentType object with fields as defined in the Toast API reference. Required: id.
- **list_all_toast_break_types** — List the Toast break types configured for a restaurant. Returns an array of BreakType objects, each including its guid, up to 300 objects per page. Pass lastModified to return only break types created or modified after a given date-time.
- **get_single_toast_break_type_by_id** — Get a single Toast break type by id. Returns the BreakType object containing information about the break type configured for a restaurant, including its guid. Required: id.
- **list_all_toast_cash_drawers** — List Toast cash drawer devices for a restaurant. Returns an array of CashDrawer objects, up to 300 per response, each containing information about a cash drawer device configured for the restaurant. Use last_modified to limit results to drawers created or modified after a given date-time.
- **get_single_toast_cash_drawer_by_id** — Get a single Toast cash drawer device by id (the Toast POS GUID). Returns the CashDrawer object including its guid and device attributes. Required: id.
- **list_all_toast_dining_options** — List dining options for a Toast restaurant — the types of service the restaurant offers, such as dine in, take out, and delivery. Returns DiningOption objects with guid, entityType, and externalId. Up to 300 objects per page.
- **get_single_toast_dining_option_by_id** — Get a single Toast dining option by id — a type of service offered by the restaurant (e.g. dine in, take out, delivery). Returns a DiningOption object with guid, entityType, and externalId. Required: id.
- **list_all_toast_discounts** — List discount configurations for a Toast restaurant. Returns an array of Discount records, each including its guid. Max 300 records per page.
- **get_single_toast_discount_by_id** — Get a single Toast discount configuration by id. Returns the Discount object including the discount's Toast POS guid. Required: id.
- **list_all_toast_menu_groups** — List the Toast menu groups configured for a restaurant. Returns an array of MenuGroup objects, each with its guid and menu-section attributes. Up to 300 groups per page.
- **get_single_toast_menu_group_by_id** — Get a single Toast menu group by id. Returns the MenuGroup object with its guid and menu-section attributes. Required: id.
- **list_all_toast_menu_items** — List Toast menu items and modifiers available from a restaurant. Returns MenuItem records including guid, entityType, and externalId. Up to 300 items per response.
- **get_single_toast_menu_item_by_id** — Get a single Toast menu item or modifier by id. Returns the MenuItem record including its guid, entityType, and externalId. Required: id.
- **list_all_toast_menu_option_groups** — List Toast modifier groups (menu option groups) — for example, a salad dressings group for a salad menu item. Returns an array of MenuOptionGroup records, each with its id and modifier-group attributes defined by the Toast Configuration API data definition. Up to 300 objects per page.
- **get_single_toast_menu_option_group_by_id** — Get a single Toast modifier group (menu option group) by id — for example, the salad dressings group for a salad menu item. Returns the MenuOptionGroup record with its id and modifier-group attributes defined by the Toast Configuration API data definition. Required: id.
- **list_all_toast_pre_modifiers** — List the pre-modifiers configured for a Toast restaurant. Returns an array of PreModifier objects with guid, entityType, and externalId. Optionally filter with lastModified to only objects created or modified after that timestamp. Max 300 per page.
- **get_single_toast_pre_modifier_by_id** — Get a single pre-modifier from Toast by id. Returns the PreModifier object with guid, entityType, and externalId. Required: id.
- **list_all_toast_pre_modifier_groups** — List Toast pre-modifier groups configured for a restaurant. Returns an array of PreModifierGroup objects (up to 300 per response) whose fields are defined upstream and not enumerated in the available documentation. Optional: lastModified limits results to objects created or modified after a given date-time.
- **get_single_toast_pre_modifier_group_by_id** — Get a single Toast pre-modifier group by id. Returns the PreModifierGroup object containing information about the pre-modifier group; its fields are defined upstream and not enumerated in the available documentation. Required: id.
- **list_all_toast_no_sale_reasons** — List the no sale reasons configured for a Toast restaurant. Returns an array of NoSaleReason objects, each including its name. Max 300 objects per page.
- **get_single_toast_no_sale_reason_by_id** — Get a single no sale reason in Toast by id. Returns the NoSaleReason object identified by its guid (the Toast POS GUID of the no sale reason). Required: id.
- **list_all_toast_payout_reasons** — List the payout reasons pre-configured for a restaurant in Toast — recurring restaurant expenses that are paid in cash (e.g. window-washing services). Returns an array of PayoutReason objects, each including its guid. Up to 300 payout reasons per page.
- **get_single_toast_payout_reason_by_id** — Get a Toast payout reason by id. Returns a PayoutReason object describing a recurring restaurant expense that is paid in cash, identified by its guid. Payout reasons are pre-configured for a restaurant, so this only reads existing records. Required: id.
- **list_all_toast_price_groups** — List Toast price groups (variable price levels configured for menu items) at a restaurant. Returns: guid, name. Supports a lastModified filter for objects created or modified after a given date-time; up to 300 price groups per page.
- **get_single_toast_price_group_by_id** — Get a single Toast price group (a variable price level for menu items) by id. Returns the PriceGroup object including its guid, entityType, and externalId. Required: id.
- **list_all_toast_printers** — List the printers configured for a Toast restaurant. Returns Printer records, each with its id (the printer's Toast POS GUID) plus the remaining fields of the upstream Printer schema as attributes. Supports a lastModified date-time filter and returns up to 300 printers per page.
- **get_single_toast_printer_by_id** — Get a single printer configured for a Toast restaurant by id (the printer's Toast POS GUID). Returns the Printer record with its id plus the remaining fields of the upstream Printer schema as attributes. Required: id.
- **list_all_toast_sales_categories** — List the menu item sales categories (for example food or alcohol) used to analyze purchases at a Toast restaurant. Returns the SalesCategory record including its id and guid. Up to 300 per page.
- **get_single_toast_sales_category_by_id** — Get a single menu item sales category in Toast by id. Returns the SalesCategory record including its id and guid. Required: id.
- **list_all_toast_service_areas** — List the service areas configured in Toast — the physical settings a restaurant serves customers in, such as a dining room or patio. Returns an array of ServiceArea records, each with its id and upstream-defined attributes. Up to 300 per page.
- **get_single_toast_service_area_by_id** — Get a single service area in Toast by id — a physical setting the restaurant serves customers in, such as a dining room or patio. Returns the ServiceArea record with its id and upstream-defined attributes. Required: id.
- **list_all_toast_service_charges** — List Toast service charge types — the fees a restaurant applies to sales, such as an automatic gratuity for large parties. Returns each ServiceCharge's guid plus its fee attributes, up to 300 per page. Optionally limits results to objects created or modified after a given date-time via lastModified.
- **get_single_toast_service_charge_by_id** — Get a single Toast service charge type by id — a fee a restaurant applies to sales, such as an automatic gratuity for large parties. Returns the ServiceCharge's guid plus its fee attributes. Required: id.
- **list_all_toast_revenue_centers** — List Toast revenue centers, the segments used to divide restaurant income for reporting. Returns an array of records with id and attributes (upstream RevenueCenter fields). Maximum 300 items per page.
- **get_single_toast_revenue_center_by_id** — Get a single Toast revenue center by id. Returns a RevenueCenter object with information about a segment of restaurant income for reporting, including its id and attributes. Required: id.
- **list_all_toast_restaurant_services** — List Toast restaurant service periods, the types of menu and dining a restaurant offers (e.g. lunch and dinner services). Returns: guid, entityType, name, id, attributes. Optionally filter by lastModified. Max 300 per page.
- **get_single_toast_restaurant_service_by_id** — Get a single Toast restaurant service period by id. Returns the RestaurantService object with its id, guid, and content-specific attributes. Required: id.
- **list_all_toast_tables** — List the dining tables configured for a Toast restaurant, optionally limited to those created or modified after a lastModified timestamp. Returns: guid, name. Max 300 tables per page.
- **get_single_toast_table_by_id** — Get a single dining table configured for a Toast restaurant by id. Returns the Table object for that guid: guid plus the Table attributes defined in the Configuration API data definitions. Required: id.
- **list_all_toast_tax_rates** — List Toast tax rates, the forms of taxation applied to sales at a restaurant. Returns TaxRate objects identified by their guid. Supports a lastModified filter. Max 300 per page.
- **get_single_toast_tax_rate_by_id** — Get a single Toast tax rate by id. Returns the tax rate's guid and configuration attributes. Required: id.
- **list_all_toast_tip_withholdings** — Get the tip withholding configuration for a Toast restaurant — the percentage of employees' credit card tips the restaurant keeps to cover credit card processing fees. Returns a TipWithholding configuration object (the upstream reference documents this response by schema reference without enumerating its fields).
- **list_all_toast_void_reasons** — List Toast void sale reasons configured for a restaurant — the causes for making a sale invalid. Returns: guid, entityType, name. Optional: lastModified filter. Up to 300 per page.
- **get_single_toast_void_reason_by_id** — Get a single Toast void sale reason by id (Toast GUID). Returns: guid, entityType, name. Required: id.
- **create_a_toast_menu_reporting** — Create a Toast menu reporting data request for a custom time range. Returns the reportRequestGuid used to retrieve the data via the list method. Required: startBusinessDate, endBusinessDate.
- **list_all_toast_menu_reporting** — Get the menu reporting data for a report request in Toast. Returns the menu reporting data object with fields that depend on the requested time range and aggregation; generation is asynchronous, so poll with the same report_request_guid until the data is ready. Required: report_request_guid.

## How it works

1. **Link your customer's Toast account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Toast.** The Proxy API is a 1-to-1 mapping of the Toast API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Automate restaurant accounting and daily reconciliation** — Give your accounting or ERP users a nightly feed of Toast payouts, deposits, cash drawer entries, and sales categories so they can auto-generate journal entries into QuickBooks, NetSuite, or Xero without manual export.
- **Sync workforce schedules with actual labor hours** — Let scheduling and payroll platforms push employees, jobs, wage overrides, and shifts into Toast while pulling back real clock-in/out time entries to calculate labor variance, overtime risk, and payroll runs.
- **Inject third-party delivery orders directly into the POS** — Delivery aggregators and virtual brand platforms can push standardized orders, checks, and payments into Toast and update delivery states in bulk, eliminating tablet hell and manual re-keying in the kitchen.
- **Keep menus and 86-lists in sync across channels** — Menu management and inventory tools can read Toast menus with lightweight metadata polling and push bulk inventory status updates (IN_STOCK, OUT_OF_STOCK, QUANTITY) across many restaurant locations at once.
- **Apply loyalty rewards and discounts to live checks** — Loyalty and CRM platforms can read checks, apply item-level or check-level discounts, and write back applied loyalty info so guests see rewards reflected on the POS in real time.

## What you can build

- **Daily sales and payout reconciliation feed** — Pull payouts, payout payments, sales dates, deposits, and cash drawer entries per business date to generate reconciled journal entries mapped to Toast revenue centers and sales categories.
- **Two-way employee and shift sync** — Create, update, archive, and unarchive employees in Toast, push shifts and wage overrides in bulk, and pull back time entries and break data for payroll processing.
- **Order injection with price validation** — Create orders, check selections, and payments in Toast, and use the price endpoint to validate taxes, service charges, and totals against live menu config before persisting the order.
- **Delivery dispatch and status updates** — Bulk-update delivery info on existing Toast orders to reflect dispatch, en-route, and delivered states from your logistics or aggregator platform.
- **Bulk 86-list and inventory controller** — Expose a single toggle in your app that updates item stock status across many Toast locations simultaneously via the bulk inventory update endpoint.
- **Loyalty, discounts, and guest payment workflows** — Apply check-level and selection-level discounts, write back applied loyalty info in bulk, and record guest payments against checks for integrated CRM and rewards flows.

## FAQs

### How does authentication work for Toast through Truto?

Truto handles the Toast authentication login flow and token lifecycle for you. Your end users connect their Toast account via Truto's connected account UI or API, and Truto manages access tokens, refresh, and per-restaurant scoping so your app only works with authorized restaurant GUIDs.

### Can we work with multi-location restaurant groups?

Yes. Toast exposes group and connected restaurant endpoints, and Truto surfaces restaurants, group restaurants, and connected restaurants so you can enumerate every location under a management group and run operations (like bulk inventory updates) across them.

### How fresh is the data — is it polling or push?

Toast's APIs are primarily request/response, so Truto fetches on demand or on a schedule you define. For menus you can use the metadata endpoint's last-modified timestamps to skip unchanged payloads, and for reporting data like payouts and labor you request a report for a business date range and retrieve results once ready.

### What operations are supported — read-only or full read/write?

Both. You can read menus, orders, payments, time entries, employees, shifts, inventory, and reporting objects, and write orders, checks, payments, discounts, employees, shifts, wage overrides, external IDs, inventory updates, and delivery info updates (including bulk variants where Toast supports them).

### Does Truto support bulk operations that Toast exposes?

Yes. Toast-specific bulk endpoints are available through Truto, including bulk order delivery info updates, bulk inventory updates, bulk employee external IDs, employee unarchives, employee jobs, employee wage overrides, job external IDs, and check applied loyalty info updates.

### How are pagination and rate limits handled?

Truto normalizes Toast's pagination so you can iterate list endpoints (orders, checks, time entries, shifts, employees, etc.) without handling cursors or page tokens yourself, and transparently manages retries and backoff when Toast rate limits are hit.
