Skip to main content

Receipts

Beta

Receipt targets are part of the POS UI extensions feature preview. This feature preview is available on an invite-only basis and requires POS UI extensions version 2025-04 or higher and POS app version 9.31.0 or later.

The receipt appears as the printed or digital output that customers receive after completing a transaction. This receipt displays transaction details, payment information, and store branding, providing the last touchpoint in the customer experience.

  • Custom branding: Add logos, promotional messages, and store-specific information.
  • Transaction details: Display order details, loyalty program details, and return policies.
  • Compliance information: Include terms of service, regulatory disclosures, and store policies.
  • Customer engagement: Integrate survey links, social media, and marketing campaigns.

Use these targets for receipt customization, branding, or integration with external systems for customer engagement and compliance.

pos.receipt-header.block.render

Renders a custom section in the header of printed receipts. Use this target for adding custom branding, logos, promotional messages, or store-specific information at the top of receipts.

Extensions at this target appear in the receipt header area and support limited components optimized for print formatting, including text content for information display.

Anchor to transactioncompletewithreprintdataTransactionCompleteWithReprintData

The data object provided to this extension target.

Anchor to connectivity
connectivity
required

The current Internet connectivity state of the POS device. Indicates whether the device is connected to or disconnected from the Internet. This state updates in real-time as connectivity changes, allowing extensions to adapt behavior for offline scenarios, show connectivity warnings, or queue operations for when connectivity is restored.

Anchor to device
device
required

Comprehensive information about the physical POS device where the extension is currently running. Includes the device name, unique device ID, and form factor information (tablet vs other). This data is static for the session and helps extensions adapt to different device types, log device-specific information, or implement device-based configurations.

Anchor to locale
locale
string
required

The IETF BCP 47 locale string for the current POS session (for example, "en-US", "fr-CA", "de-DE"). This indicates the merchant's language and regional preferences. Commonly used for internationalization (i18n), locale-specific date/time/number formatting, translating UI text, and providing localized content. The locale remains constant for the session and reflects the language selected in POS settings.

Anchor to session
session
required

Comprehensive information about the current POS session including shop ID and domain, authenticated user, pinned staff member, active location, currency settings, and POS version. This session data remains constant for the session duration and provides critical context for business logic, permissions, API authentication, and transaction processing. Session data updates when users switch locations or change pinned staff members.

Anchor to storage
storage
<Record<string, unknown>>
required

Provides access to persistent local storage methods for your POS UI extension. Use this to store, retrieve, and manage data that persists across sessions.

Anchor to transaction
transaction
| | | |
required

The transaction data, which can be one of the following types:

  • SaleTransactionData: Defines the data structure for completed sale transactions.
  • ReturnTransactionData: Defines the data structure for completed return transactions.
  • ExchangeTransactionData: Defines the data structure for completed exchange transactions.
  • ReprintReceiptData: Defines the data structure for receipt reprint requests.
Support
Components (2)
APIs (1)

Supported components

Available APIs

pos.receipt-footer.block.render

Renders a custom section in the footer of printed receipts. Use this target for adding contact details, return policies, social media links, or customer engagement elements like survey links or marketing campaigns at the bottom of receipts.

Extensions at this target appear in the receipt footer area and support limited components optimized for print formatting, including text content for information display.

Anchor to transactioncompletewithreprintdataTransactionCompleteWithReprintData

The data object provided to this extension target.

Anchor to connectivity
connectivity
required

The current Internet connectivity state of the POS device. Indicates whether the device is connected to or disconnected from the Internet. This state updates in real-time as connectivity changes, allowing extensions to adapt behavior for offline scenarios, show connectivity warnings, or queue operations for when connectivity is restored.

Anchor to device
device
required

Comprehensive information about the physical POS device where the extension is currently running. Includes the device name, unique device ID, and form factor information (tablet vs other). This data is static for the session and helps extensions adapt to different device types, log device-specific information, or implement device-based configurations.

Anchor to locale
locale
string
required

The IETF BCP 47 locale string for the current POS session (for example, "en-US", "fr-CA", "de-DE"). This indicates the merchant's language and regional preferences. Commonly used for internationalization (i18n), locale-specific date/time/number formatting, translating UI text, and providing localized content. The locale remains constant for the session and reflects the language selected in POS settings.

Anchor to session
session
required

Comprehensive information about the current POS session including shop ID and domain, authenticated user, pinned staff member, active location, currency settings, and POS version. This session data remains constant for the session duration and provides critical context for business logic, permissions, API authentication, and transaction processing. Session data updates when users switch locations or change pinned staff members.

Anchor to storage
storage
<Record<string, unknown>>
required

Provides access to persistent local storage methods for your POS UI extension. Use this to store, retrieve, and manage data that persists across sessions.

Anchor to transaction
transaction
| | | |
required

The transaction data, which can be one of the following types:

  • SaleTransactionData: Defines the data structure for completed sale transactions.
  • ReturnTransactionData: Defines the data structure for completed return transactions.
  • ExchangeTransactionData: Defines the data structure for completed exchange transactions.
  • ReprintReceiptData: Defines the data structure for receipt reprint requests.
Support
Components (2)
APIs (1)

Supported components

Available APIs


  • Include relevant content that adds value: Include information that adds value to the customer's receipt and supports post-transaction engagement, like store contact information, return policy details, and loyalty program status.
  • Use clear and concise formatting: Use concise, well-formatted text that prints clearly and is easy to read on receipt paper, like "Visit us: store.example.com," "Returns: 30-day policy," and "Follow us @storename."
  • Provide useful contact information: Include useful contact and engagement information that helps customers connect with your store after their purchase, like store website and hours, customer service contact, and social media handles.
  • Optimize for print format: Design receipt content that works well with printers and receipt paper limitations. Receipt extensions are specifically designed for print output and have different constraints than screen-based extensions. Ensure your content is concise, uses appropriate formatting, and provides value to customers who will interact with the printed receipt.
  • Keep messaging brief and focused: Keep text brief and focused, as receipt space is limited and content should be easily scannable. Use "Returns within 30 days" or "Scan for rewards" instead of lengthy text like "Please visit our website to learn more about our comprehensive return policy" or "Download our mobile app for exclusive offers and rewards."
  • Use transaction data for context: Use transaction data to provide relevant, personalized information when appropriate, like transaction type-specific messaging, "Exchange ID: #1001," and tax information display.

  • Receipt extensions support only a limited set of components optimized for print formatting: POS block and text.

  • Receipt extensions have access to transaction data through TransactionCompleteWithReprintData and the Storage API, but can't access other POS UI extensions APIs or perform interactive operations.


Was this page helpful?