Skip to content

Query Reconciliation

GET /daily-close/{store_id}/{business_date}

Returns the reconciliation result for one store and business date. HQ compares your daily close control totals with the transactions it received.

Authentication: API key (x-functions-key)

Request

Path parameters

Parameter Type Description
store_id string Must be registered for your account
business_date date YYYY-MM-DD
GET /pos/v1/daily-close/US001/2026-10-14
x-functions-key: {api_key}

Response

200 OK

Field Type Description
store_id string Store code
business_date date Business date
status enum See below
checked_at timestamp | null When reconciliation ran (UTC); null if not yet run
expected object | null Control totals from your daily close; null when NOT_RECEIVED
actual object | null Values HQ calculated from received transactions; null if not yet run
differences array of string Names of fields that do not match; [] when everything matches

Status values

status Meaning What to do
NOT_RECEIVED No daily close received Check that you sent it
RECEIVED Daily close received, reconciliation not finished Query again later
MATCHED Everything matches Nothing
MISMATCHED Totals differ Send missing transactions (or corrections with version + 1), then resend the daily close

Matching rules

  • Counts must match exactly.
  • Amounts may differ by at most the currency's smallest unit (USD 0.01, JPY 1).

Example

{
  "store_id": "US001",
  "business_date": "2026-10-14",
  "status": "MISMATCHED",
  "checked_at": "2026-10-15T09:30:00Z",
  "expected": { "trade_record_count": 312, "net_sales_amount": "9821.40" },
  "actual":   { "trade_record_count": 310, "net_sales_amount": "9790.10" },
  "differences": ["trade_record_count", "net_sales_amount"]
}

Errors

HTTP code When
401 UNAUTHORIZED Missing or invalid API key
403 STORE_NOT_ALLOWED Store not registered for your account

Notes

Tip

Query about 30 minutes after sending the daily close. If the status is still RECEIVED, poll every 10–15 minutes rather than continuously.