Kiosk loyalty workflow

This section describes the loyalty transaction workflow on a Toast kiosk device. The kiosk allows POS location guests to place orders and interact with loyalty features on their own, without location employee assistance.

The kiosk supports two workflows: creating new loyalty accounts for guests who are not yet members, and looking up existing accounts for returning guests.

Kiosk workflow for new loyalty member sign-up

When a guest enters their contact information on the kiosk, the Toast platform first searches for an existing account. If no account is found, the Toast platform sends a LOYALTY_SIGNUP request to create a new account.

  1. A guest selects the START button and adds items to their order on the kiosk.

  2. On the bottom right of the screen, the guest selects the + Add rewards button.

  3. On the Loyalty + Rewards screen, the guest selects a contact method. Available options depend on your loyalty program configuration. For example, the options for a location might include Phone and Email, as well as SCAN CODE for scanning a QR code or swiping a loyalty card.

    A kiosk screen, showing the loyalty program sign-in.
  4. The guest submits contact information using one of the methods available (for example, telephone number, email, or QR code). The Toast platform sends a LOYALTY_SEARCH request to your loyalty program integration.

  5. Your loyalty program integration searches for accounts matching the contact information and responds.

    • If your integration returns an HTTP 404 response code with a transactionStatus of ERROR_ACCOUNT_INVALID, indicating no accounts were found, the Toast platform proceeds to the next step.

    • If your integration finds one or more accounts, the workflow continues as described in the existing guest sign-in workflow.

  6. The Toast platform sends a LOYALTY_SIGNUP request to your loyalty program integration. The request body includes a TransactionInformationSignup object with either a phone or email value.

  7. Your loyalty program integration creates a new account and returns a success response containing a loyaltyIdentifier for the newly created account. The kiosk displays a confirmation message.

    A kiosk screen, showing the loyalty program sign-up confirmation.

    If your integration returns an error response such as ERROR_ALREADY_REGISTERED, the kiosk displays an error message and the guest cannot proceed with sign-up. For more information about error responses, see Error handling.

  8. The workflow continues with the Toast platform sending a LOYALTY_INQUIRE request using the loyaltyIdentifier from the sign-up response. From this point forward, the workflow is the same as for existing guests. For more information about inquire, redeem, and accrue transactions, see Kiosk workflow for existing loyalty member sign-in.

Important

You are solely responsible for implementing business logic, validation, and compliance in your loyalty program integration, including but not limited to: marketing consent requirements, communication practices, privacy regulations, account creation policies, and handling incomplete signups. The Toast platform does not manage these aspects of your loyalty program.

Kiosk workflow for existing loyalty member sign-in

When a returning guest enters their contact information on the kiosk, the Toast platform searches for their existing account and displays available rewards.

  1. A guest selects the START button and adds items to their order on the kiosk.

  2. On the bottom right of the screen, the guest selects the + Add rewards button.

    A kiosk screen, showing the loyalty program email address sign-in.
  3. The guest selects a contact method and enters their phone number, email address, or scans a QR code.

  4. The guest submits their contact information. The Toast platform sends a LOYALTY_SEARCH request to your loyalty program integration.

  5. Your loyalty program integration searches for accounts and responds with one or more matching accounts. If a single account is found, the Toast platform uses that account. If multiple accounts are found, the kiosk displays a list for the guest to select from.

  6. The guest selects their account from the list.

  7. The Toast platform sends a LOYALTY_INQUIRE request using the identified loyalty account. Your integration responds with the guest's available rewards and account information. Optionally, you can include a redemptionLimit object to control the maximum number of rewards the guest can select. For more information, see LOYALTY_INQUIRE.

  8. The guest adds items to the order and selects Checkout.

    A kiosk screen, showing the checkout button.
  9. On the checkout screen, the guest sees available rewards. The guest selects Redeem next to rewards they want to apply. Offers that are not eligible for redemption on the current check are marked as unavailable. If you included a redemptionLimit in your response, the kiosk enforces the limit by disabling additional reward selections once the guest reaches the maximum. Guests can always deselect rewards to choose different ones.

    Important

    You are responsible for determining which offers are eligible for redemption, using the applicable boolean in the Offer object.

    The reward is added to the check as a discount.

  10. When the payment process starts, the Toast platform sends a LOYALTY_REDEEM request to confirm the redemption. Your integration should validate and confirm the redemption.

  11. After payment is completed, the Toast platform sends a LOYALTY_ACCRUE request. Your integration should credit the guest's account with points or rewards earned from this transaction.

For information about the LOYALTY_SEARCH, LOYALTY_INQUIRE, LOYALTY_REDEEM, and LOYALTY_ACCRUE transaction types, see Transaction types.