Authenticate to the Square API using a valid OAuth token for the merchant and confirm the token has Orders:Read permission
POST to /v2/orders/search with a query object containing a filter that specifies the location_id, a date_time_filter with the created_at range for your target period, and a state_filter set to COMPLETED (or CANCELED if reconciling voids)
Parse the response array of order objects, extracting total_money, tax_money, tip_money, and the fulfillments array for each order to build your reconciliation dataset
Handle pagination by checking for a cursor field in the response and re-issuing the search request with the cursor value in the next request body until no cursor is returned
Cross-reference the order total_money values against the corresponding payment records by querying /v2/payments with the same date range and matching on order_id to verify tender amounts and tip allocations
Export the reconciled dataset to your reporting system, flagging any discrepancies between order totals and payment totals for manual review
Known gotchas
The /v2/orders/search endpoint uses POST with a JSON body, not GET with query parameters; passing filters as query parameters will not work
Orders are scoped to a single location_id per search request; multi-location reporting requires issuing separate search requests per location and aggregating results
Tip amounts on orders are reflected in the payment record, not always directly on the order object; payment-level reconciliation is required to confirm final tip amounts collected
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp