Skip to main content

Technical Specification

Technical overview of the Pickpad integration with Toast POS platform.

Authentication

Pickpad authenticates as a Toast Partner application using machine client credentials (clientId / clientSecret) via the Toast Authentication API. Access tokens are cached and refreshed automatically before expiry.

DetailValue
Auth typeMachine client (TOAST_MACHINE_CLIENT)
Endpoint/authentication/v1/authentication/login
Token cachingUntil expiry (minus 30 s buffer)

Webhook Events

Pickpad subscribes to order_updated webhook events. Toast sends the full order snapshot with every update, so any mid-process modifications (added items, voided selections, price changes) are automatically reflected without differential state tracking.

DetailValue
Eventorder_updated
PayloadFull order state
DeduplicationContent-hash based (30 s window)

API Endpoints Used

APIEndpointPurpose
AuthenticationPOST /authentication/v1/authentication/loginObtain access token
OrdersGET /orders/v2/orders/{guid}Retrieve order details and customer info
OrdersPATCH /orders/v2/orders/{guid}/deliveryInfoUpdate delivery state on fulfillment
ConfigGET /config/v2/diningOptionsResolve dining behavior (dine-in, takeout, delivery)
PartnersGET /partners/v1/restaurantsList partner restaurants and locations

Entity Mapping

All Toast entities are mapped using GUID.

EntityFieldUsage
Orderorder.guidOrder identifier
Menu itemitem.guidDish ID and external ID
Menu groupitemGroup.guidCategory mapping
Modifieritem.guid (on modifier selection)Modifier external ID
Dining optiondiningOption.guidResolve order type
RestaurantrestaurantGuidLocation mapping
Customercustomer.guidCustomer identification

Order Lifecycle

Order status is derived from two fields in the webhook payload:

  • fulfillmentStatus on selections — tracks kitchen preparation (NEWSENTREADY)
  • paymentStatus on checks — tracks payment state (OPENCLOSED)
Webhook StatePickpad Status
Items sent to KDS (fulfillmentStatus: SENT)In Progress
All items prepared (fulfillmentStatus: READY)Ready
Paid and closed (paymentStatus: CLOSED + closedDate set)Finished
Order voided (voided: true)Canceled

For restaurants without Toast KDS, order status falls back to payment and approval status to determine the lifecycle stage.

Error Handling

  • API calls use exponential-backoff retry (3 attempts on 5xx responses)
  • API request timeout: 20 seconds
  • Dining options are cached for 10 minutes
  • Restaurant list is cached for 1 minute