Skip to main content
Nerve Centre KPIs · Audit Profile · Sentiment Settings Square-specific health audit for unified-commerce merchants. Answers six questions: (1) is the OAuth token healthy and are required read scopes granted; (2) is the unified Catalog clean and inventory accurate across POS and Square Online; (3) are orders flowing to completion and fulfilment keeping pace; (4) is the Customer Directory unified and retention holding; (5) are payments landing and refunds bounded; (6) where is cross-channel revenue at risk when Square inventory, marketplace listings, and email attribution disagree. The defining Square signal is in-store to online parity: a POS sale not reflected in Square Online inventory is oversell risk.

What this audit checks

Authentication & access

  • Access token present and not within 7 days of its 30-day expiry
  • Refresh-token rotation succeeding; no refresh failure in the last 24h
  • Required read scopes granted: MERCHANT_PROFILE_READ, ITEMS_READ, ORDERS_READ, CUSTOMERS_READ, INVENTORY_READ
  • Default location_id resolved; multi-location merchants have a rollup or fan-out strategy set
  • Production base URL in use (connect.squareup.com, not the sandbox host) for live integrations

Catalogue & inventory health

  • Items missing a SKU below threshold (SKU-less items break inventory and cross-channel parity)
  • POS-sellable items not visible online (ecom_visibility in HIDDEN, UNINDEXED, UNAVAILABLE) flagged as underused online channel
  • Out-of-stock variations still ecom_visibility VISIBLE on Square Online
  • Negative or implausible on-hand counts in the Inventory API
  • POS to Online inventory drift: variation on-hand differs between channels (root oversell risk)
  • Zero-priced visible items (price_money.amount of 0 with ecom_visibility VISIBLE)

Order & fulfilment health

  • Order completion rate at or above 95% (COMPLETED over OPEN plus COMPLETED plus CANCELED)
  • Cancellation rate within expected band; no spike vs prior period
  • Open orders not piling up beyond 2x the 30-day average (fulfilment backlog)
  • Canceled orders in the last 24h below threshold
  • Fulfilment state progressing; no orders stuck in PROPOSED or RESERVED beyond SLA

Customer & retention

  • Repeat customer rate at or above 25% on a 30-day window
  • Customer Directory fragmentation: same email_address across creation_source TERMINAL (POS) and ONLINE_STORE not unified into one profile
  • Email-opted-in share of the Directory healthy and not eroding (preferences_email_unsubscribed trend)
  • New-customer capture by source (POS vs online) tracked for channel-of-first-touch attribution

Payments & refunds

  • Refund rate below baseline; no refund spike signalling a quality or fulfilment regression
  • Refund amount reconciles against originating order total_money (no orphan refunds)
  • Payment success rate healthy; declines and failures within expected band
  • Net revenue after refunds reconciles against gross order revenue for the window

Cross-channel revenue at risk

  • POS vs Online inventory parity: SKUs with a POS-to-online on-hand mismatch sized as oversell exposure
  • Square inventory vs marketplace listings: SKUs out of stock on Square but still active on Amazon / eBay / Walmart
  • Square online orders unattributed despite an active email-marketing sibling (Mailchimp / Klaviyo)
  • High-value Square customers (spend above P90) unengaged on email (last_open_at older than 90 days)

Severity thresholds

SignalWarnCritical
refund_rate25
cancellation_rate510
conversion_rate1.5-
out_of_stock_count310
fulfillment_rate95-

Data sources

  • GET https://connect.squareup.com/v2/locations - Active locations, capabilities, POS-only vs online-enabled classification
  • GET https://connect.squareup.com/v2/catalog/list - Unified Catalog items, ecom_visibility, sku, price_money, present_at_all_locations
  • POST https://connect.squareup.com/v2/orders/search - Orders by location with state, source_name (channel), total_money, customer_id
  • POST https://connect.squareup.com/v2/inventory/counts/batch-retrieve - On-hand counts per variation per location for POS-to-online drift detection
  • GET https://connect.squareup.com/v2/customers - Customer Directory, email_address, creation_source for fragmentation diagnostic
  • GET https://connect.squareup.com/v2/payments - Payment outcomes for success rate and net-revenue reconciliation
  • GET https://connect.squareup.com/v2/refunds - Refund objects for refund rate and order reconciliation
  • POST https://connect.squareup.com/oauth2/token - Refresh-token rotation health (30-day token lifetime)