Skip to main content
Migrate to Polaris

Version 2025-07 is the last API version to support React-based UI components. Later versions use web components, native UI elements with built-in accessibility, better performance, and consistent styling with Shopify's design system. Check out the migration guide to upgrade your extension.

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 higherand 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 QR codes for tracking, loyalty 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 receipt targets containing transaction details and reprint information.

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 (3)
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 and QR codes for digital engagement.

Anchor to transactioncompletewithreprintdataTransactionCompleteWithReprintData

The data object provided to receipt targets containing transaction details and reprint information.

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 (3)
APIs (1)

Supported components

Available APIs


  • Use clear and concise formatting: Use concise, well-formatted text that prints clearly and is easy to read on receipt paper, such as "Visit us: store.example.com," "Returns: 30-day policy," and "Follow us @storename."
  • Include QR codes that provide genuine value: Include QR codes that provide genuine value like order tracking, feedback collection, or digital receipts, such as order tracking links, customer survey access, and digital receipt downloads.
  • 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.
  • 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, such as transaction type-specific messaging, "Exchange ID: #1001," and tax information display.

  • Receipt extensions support only a limited set of components optimized for print formatting: POSReceiptBlock, Text, and QRCode.

  • 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?