Supergood | Shopify POS API
Programmatically access Shopify POS orders, inventory, customers, registers/shifts, and omnichannel workflows with a stable REST API. Supergood builds and operates production-grade, unofficial Shopify POS integrations so your team can automate retail processes without heavy custom engineering.
Plain English: Shopify POS is the in‑store point‑of‑sale experience that connects to your Shopify store, letting retailers sell in person while syncing inventory, customers, orders, discounts, and payments across locations. An unofficial API lets you programmatically pull POS orders with tender breakdowns (cash, card, gift card, store credit), inventory and stock movements per location, shift/register data for cash reconciliation, customers and loyalty artifacts, and receipts—and push updates like inventory adjustments, returns/exchanges, gift card issuance, and customer notes back into Shopify.
For a tech company integrating with Shopify POS, this means you can ingest real‑time store sales and foot‑traffic trends to power dashboards, reconcile cash drawers and card batches to accounting (e.g., QuickBooks, Xero), automate BOPIS/ship‑to‑customer workflows, enrich your platform with customer profiles and purchase history, trigger receipts and notifications, and keep ERP/analytics/CRM systems in lockstep. You can also standardize multi‑location stock accuracy, spin up return/exchange flows from your app, and capture staff/shift metrics for labor and compliance reporting.
What is Shopify POS?
Shopify POS (https://www.shopify.com/pos) is a point‑of‑sale solution built for retail merchants using Shopify. It centralizes product catalogs, pricing/discounts, inventory across locations, customer profiles, in‑person checkout, receipts, returns/exchanges, and payment processing—while staying in sync with the online store for omnichannel operations like BOPIS, local delivery, and ship‑to‑customer.
Core product areas include:
- Sales & Checkout (POS Orders, Line Items, Discounts, Taxes, Receipts)
- Inventory & Locations (Products/Variants, Stock Levels, Transfers, Stocktakes)
- Customers & Loyalty (Profiles, Tags, Gift Cards, Store Credit)
- Staff & Registers (Roles/Permissions, Devices, Shifts, Cash Drawer)
- Omnichannel (BOPIS, Local Delivery, Returns/Exchanges, Pickup/Delivery Status)
Common data entities:
- Stores, Locations, Registers/Devices
- Staff (users, roles, permissions)
- Products/Variants (SKUs, barcodes, pricing)
- Inventory Levels (per location), Stock Movements (sales, returns, adjustments)
- POS Orders (line items, discounts, taxes, tenders, receipts)
- Customers (profiles, tags, purchase history)
- Gift Cards and Store Credit (issuance, balances, redemptions)
- Shifts (open/close, cash counts, discrepancies)
The Shopify POS Integration Challenge
Retail teams rely on Shopify POS daily, but turning POS‑first workflows into API‑driven automation has known friction:
- POS‑specific data gaps: Tender breakdowns (cash vs card vs gift card), shift/register cash counts, and device metadata aren’t fully exposed via official APIs
- Gift cards & store credit: Gift card API access historically requires certain plans (e.g., Plus), and store credit/exchange flows are not straightforward to model
- Offline mode: POS can operate offline; reconciling cached sales with online data requires careful change detection
- Multi‑location complexity: Inventory accuracy depends on location‑aware adjustments, transfers, and returns; naive updates cause stock drift
- Receipts & exchanges: Receipt artifacts and exchange line items are optimized for front‑end flows, complicating headless automation
- Rate limits & cost: Admin API limits and plan restrictions can hinder high‑volume exports, real‑time dashboards, and automation at scale
How Supergood Creates Shopify POS APIs
Supergood reverse‑engineers authenticated browser flows and network interactions to deliver a resilient API endpoint layer for your Shopify POS tenant.
- Handles username/password, SSO/OAuth where applicable, and MFA (SMS, email, TOTP) securely
- Maintains session continuity with automated refresh and change detection—even when POS devices operate offline and later sync
- Normalizes responses so you integrate once and rely on consistent, location‑aware objects across orders, inventory, customers, and shifts
- Respects staff roles and store entitlements to ensure compliant access across locations and registers
Use Cases
Order & Customer Data Sync
- Mirror POS orders and customers into your internal systems
- Keep tip/discount/tender breakdowns available for analytics and reconciliation
- Normalize receipts and timestamps for multi‑store reporting
Inventory Accuracy Across Locations
- Sync stock levels by location with reasoned adjustments (sale, return, stocktake)
- Trigger transfers and reconcile discrepancies after nightly counts
- Prevent overselling across online and in‑store channels
Omnichannel Fulfillment & Returns
- Automate BOPIS readiness checks and notifications
- Create exchanges and returns programmatically, including restocking logic and refund methods
- Attach notes and documents for compliance/audit trails
Financials & Accounting Reconciliation
- Export cash/card/gift‑card/store‑credit totals for register‑level reconciliation
- Push summarized batches to accounting (e.g., QuickBooks, Xero)
- Track discrepancies and payouts/drops for cash management
Staff & Shift Governance
- Pull shift open/close events, cash counts, and discrepancies per register
- Measure staff performance (orders handled, refund activity)
- Enforce role‑based actions across stores and devices
Available Endpoints
Authentication
POST /sessions: Establish a session using credentials. Supergood manages MFA (SMS, email, TOTP) and SSO/OAuth when enabled. Returns a short‑lived auth token maintained by the platform.
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/sessions \
--header 'Authorization: Basic <Base64 encoded token>' \
--header 'Content-Type: application/json' \
--data '{
"username": "[email protected]",
"password": "<password>",
"mfa": { "type": "totp", "code": "123456" }
}'
Example response
{
"authToken": "eyJhbGciOi...",
"expiresIn": 3600,
"user": {
"id": "u_shop_84c991",
"name": "Store Manager",
"entitlements": ["orders", "inventory", "customers", "registers"]
}
}
POST /sessions/refresh: Refresh an existing token to keep sessions uninterrupted.
POS Orders
GET /pos/orders: List POS orders with filters and full tender breakdown.
Query parameters
- locationId: string
- registerId: string
- tenderType: cash | card | gift_card | store_credit
- status: open | paid | refunded | voided
- updatedFrom, updatedTo: ISO 8601 timestamps
- page, pageSize: integers for pagination
Example response
{
"items": [
{
"orderId": "ord_pos_102938",
"orderNumber": 2145,
"source": "pos",
"status": "paid",
"locationId": "loc_01",
"locationName": "Downtown",
"registerId": "reg_7a",
"staffId": "stf_223",
"customerId": "cust_5571",
"customerName": "Ava Patel",
"lineItems": [
{"lineItemId": "li_9001", "productId": "prod_1002", "variantId": "var_1002_8", "sku": "TSHIRT-BLK-M", "title": "Black T-Shirt (M)", "quantity": 2, "unitPrice": 24.00, "discountAllocations": [{"type": "percentage", "value": 10}]}
],
"totals": {"subtotal": 43.20, "taxTotal": 3.46, "total": 46.66, "currency": "USD"},
"tenders": [
{"type": "card", "amount": 40.00, "card": {"brand": "Visa", "last4": "4242"}, "deviceId": "dev_ch_01"},
{"type": "cash", "amount": 6.66}
],
"discounts": [{"code": "WEEKEND10", "amount": 4.80}],
"receipt": {"receiptNumber": "R-000842", "receiptUrl": "https://cdn.supergood.ai/receipts/r-000842.pdf"},
"createdAt": "2026-01-20T16:22:11Z",
"updatedAt": "2026-01-20T16:22:15Z"
}
],
"page": 1,
"pageSize": 50,
"total": 1
}
Inventory Adjustments
POST /inventory/adjustments: Create a location‑aware inventory adjustment with a reason code.
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/inventory/adjustments \
--header 'Authorization: Bearer <authToken>' \
--header 'Content-Type: application/json' \
--data '{
"variantId": "var_1002_8",
"locationId": "loc_01",
"quantityDelta": -2,
"reason": "sale",
"referenceId": "ord_pos_102938",
"notes": "Sold via POS; subtract from Downtown"
}'
Example response
{
"adjustmentId": "adj_77b4c2",
"variantId": "var_1002_8",
"locationId": "loc_01",
"previousQuantity": 18,
"newQuantity": 16,
"reason": "sale",
"committedAt": "2026-01-20T16:22:16Z"
}
Returns & Exchanges
POST /orders/{orderId}/returns-exchanges: Create a return and optional exchange against a POS order, with refund method and restocking rules.
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/orders/ord_pos_102938/returns-exchanges \
--header 'Authorization: Bearer <authToken>' \
--header 'Content-Type: application/json' \
--data '{
"returns": [
{"lineItemId": "li_9001", "quantity": 1, "condition": "resalable"}
],
"restockLocationId": "loc_01",
"refund": {"method": "store_credit", "amount": 23.33},
"exchange": {
"lineItems": [
{"productId": "prod_1002", "variantId": "var_1002_9", "sku": "TSHIRT-BLK-L", "title": "Black T-Shirt (L)", "quantity": 1, "unitPrice": 24.00}
]
},
"paymentsDelta": {"collect": 0.67, "tenderType": "cash"},
"notes": "Customer swapped size; partial store credit issued."
}'
Example response
{
"returnId": "ret_5c1b21",
"exchangeOrderId": "ord_pos_102944",
"status": "completed",
"refund": {"method": "store_credit", "amount": 23.33, "creditId": "cred_1120"},
"restocked": true,
"totals": {"returnedSubtotal": 24.00, "taxAdjusted": -0.67},
"createdAt": "2026-01-21T11:05:02Z"
}
Registers & Shifts
GET /registers/shifts: Retrieve register shift sessions including cash drawer open/close, counts, and discrepancies for reconciliation.
Query parameters
- locationId: string
- deviceId: string
- openedFrom, openedTo: ISO 8601 timestamps
- page, pageSize: integers for pagination
Example response
{
"items": [
{
"shiftId": "shf_8201",
"locationId": "loc_01",
"registerId": "reg_7a",
"deviceId": "dev_pos_ipad_03",
"staffId": "stf_223",
"openedAt": "2026-01-20T09:00:00Z",
"closedAt": "2026-01-20T17:00:00Z",
"openingFloat": 200.00,
"closingCount": 378.00,
"cashSalesTotal": 186.66,
"cashRefundsTotal": 8.66,
"cashDrops": 0.00,
"payouts": 0.00,
"tenderBreakdown": {"card": 1250.34, "gift_card": 120.00, "store_credit": 46.66, "cash": 186.66},
"discrepancy": -8.66,
"notes": "Refund mistake identified and corrected."
}
],
"page": 1,
"pageSize": 50,
"total": 1
}
Technical Specifications
- Authentication: Username/password with MFA (SMS, email, TOTP) and SSO/OAuth where enabled; supports service accounts or customer‑managed credentials
- Response format: JSON with consistent resource schemas and pagination across orders, inventory, customers, and registers
- Rate limits: Tuned for enterprise throughput while honoring store entitlements and usage controls
- Session management: Automatic reauth and cookie/session rotation with health checks; resilient to POS offline/online transitions
- Data freshness: Near real‑time retrieval of POS orders, inventory movements, customer updates, and shift sessions
- Security: Encrypted transport, scoped tokens, and audit logging; respects Shopify roles, location permissions, and staff scopes
- Webhooks: Optional asynchronous delivery for long‑running workflows (e.g., offline recon, returns/exchanges)
Performance Characteristics
- Latency: Sub‑second responses for list/detail queries under normal load
- Throughput: Designed for high‑volume order export, inventory adjustments, and shift reconciliation
- Reliability: Retry logic, backoff, and idempotency keys minimize duplicate actions
- Adaptation: Continuous monitoring for UI/API changes with rapid adapter updates
Getting Started
- Schedule Integration Assessment
Book a 30‑minute session to confirm your modules, licensing, and authentication model.
- Supergood Builds and Validates Your API
We deliver a hardened Shopify POS adapter tailored to your workflows and entitlements.
- Deploy with Monitoring
Go live with continuous monitoring and automatic adjustments as Shopify evolves.
Frequently Asked Questions
Q: Which Shopify POS modules can this integration cover?
Supergood supports workflows across commonly used modules such as POS Orders (tenders, receipts), Inventory & Locations (levels, adjustments), Customers (profiles, tags), Gift Cards/Store Credit (issuance, balances), and Registers/Shifts (cash reconciliation), subject to your licensing and entitlements. We scope coverage during integration assessment.
Q: How are MFA and SSO handled for automation?
We support username/password + MFA (SMS, email, TOTP) and can operate behind SSO/OAuth when enabled. Sessions are refreshed automatically with secure challenge handling and store selection.
Q: Can you sync tender breakdowns and batches to our accounting system?
Yes. We normalize cash, card, gift card, and store credit tenders at the order and shift levels and can deliver summarized batches to ERP/accounting (e.g., QuickBooks, Xero) while complying with rate and permission constraints.
Q: Do you support gift cards and store credit?
We can retrieve balances, redemptions, and issuance workflows where your plan permits and model store credit for exchanges. Some official gift card endpoints are plan‑restricted; we handle these constraints case‑by‑case.
Related Integrations
Intralinks API - Programmatically access the Intralinks VDR with Supergood
Ready to automate your Shopify POS workflows?
Supergood can have your Shopify POS integration live in days with no ongoing engineering maintenance.