Skip to main content

My-Scan

Introduction

My-Scan is Extenda Retail's self-scanning / self-service platform. It supports the complete shopping trip - starting on a mobile or handheld scanning device, scanning and managing a basket, checking out, paying, and verifying the basket through a post-checkout rescan performed by a store employee.

API Groups

My-Scan's public and internal capabilities are organized into three API groups, each independently versioned and documented (OpenAPI/Swagger):

GroupConsumed byPurpose
Shopper APIMobile / handheld scanning appsDrives the basket flow: create/continue a basket, add/remove/update items, price checks, promotions, finish (checkout) a basket, retrieve parameters.
POS APIPOS / SCO systemsDownload the finalized ticket for payment, and upload the payment result back to the backend for reporting/analytics.
Administration APIBack-office / support toolingLook up ongoing baskets for a customer or store, and force-cancel a stuck or abandoned basket — without needing device access.

Core Services

My-Scan is implemented as a set of cooperating backend services. Three have primary developer-facing documentation:

ServiceResponsibility
My-Scan Core ServiceThe central logic and API layer. Owns the basket/ticket lifecycle and exposes the Shopper, POS, Administration, and Internal APIs described above. Orchestrates checkout via configurable checkout engines (Hii Retail Checkout Engine or legacy SelfScan backends).
My-Scan Rescan ServiceAn on-premise service used after checkout: a store employee re-scans some or all of the shopper's items (full or partial rescan) to catch discrepancies before the transaction is finalized.
My-Scan ItemData ServiceProvides item, pricing, and promotion lookups (by barcode or item number), supporting both on-premise and multi-tenant cloud deployments.

Wider Ecosystem

Beyond the Core Service, Rescan Service, and ItemData Service, My-Scan is supported by a broader set of internal services and tooling maintained by Extenda Retail, covering areas such as:

  • Device & terminal management — registering, managing, and monitoring handheld scanners and scanner walls (docking/release stations).
  • Rescan support — persisting rescan data and determining when a rescan should be triggered for a given shopping trip.
  • Shopper & customer data — managing shopper profiles and customer records used during a shopping trip.
  • Platform services — centralized parameter/configuration management, request routing/authentication, and logging.
  • Analytics & loss prevention — reporting, self-service analytics, and fraud/impact-control integrations.
  • Messaging — asynchronous notifications for scenarios such as abandoned terminals.
  • Tooling & infrastructure — internal admin tools, hosting/deployment automation, shared libraries, and integration test suites.

All of these are internal (private) repositories maintained by the My-Scan team. This documentation currently focuses on the Core Service, Rescan Service, and ItemData Service, since these expose the primary developer-facing APIs; the remaining services provide supporting infrastructure, tooling, and internal integrations and are not separately documented here.

For the external systems My-Scan integrates with (identity, configuration, catalog/pricing, payments, and loss prevention), see Integrations.

Typical Shopping Trip Flow

  1. A shopper starts a session on a mobile or handheld device, creating a basket via the Core Service (Shopper API).
  2. As items are scanned, the Core Service validates each action, applies pricing/business rules, and resolves item/price/promotion data via the ItemData Service.
  3. When the shopper finishes, the Core Service starts checkout — which may include a rescan step, where the Rescan Service guides a store employee through re-verifying some or all scanned items.
  4. Once validated, the basket/ticket is finalized. Payment can happen directly on the shopper's device (e.g. via Softpay) or via download to a POS/SCO (POS API).
  5. Support staff can use the Administration API at any point to inspect or cancel ongoing baskets if something goes wrong.