Square
Create instance
Create a new Square integration instance. For v1, provide a personal access token from the Square Developer Console; OAuth is pending business verification.
Delete instance
Delete an integration instance. Also removes all synced Square orders, catalog items, locations, and webhook events for this instance. Linked SKU sales orders themselves are preserved.
Test connection
Call `/v2/merchants/me` on Square using the stored access token. Latches the returned `merchant_id` onto the instance if it isn't already set.
Sync (locations + catalog + orders)
Dispatches a background sync job for the instance. Returns immediately with a tracked_job_log_id.
List locations
Paginated list of Square locations across all instances (or filter by `filter[integration_instance_id]`).
Update location mapping
Point a Square location at a SKU warehouse. Pass `warehouse_id: null` to unmap.
Sync locations
Synchronously call Square's `/v2/locations` and upsert `square_locations` rows.
List catalog items
Paginated list of Square catalog variations across all instances.
Update catalog mapping
Point a Square catalog variation at a SKU Product. Pass `product_id: null` to unmap.
Sync catalog
Synchronously call Square's `/v2/catalog/list` (cursor-paginated) and upsert `square_catalog_items` rows.
List orders
Paginated list of Square orders across all instances.
Receive webhook
**Public endpoint** — no bearer required. Square posts here for every subscribed event.
Sync payouts
Start a background sync of payouts (and their entries) from Square for this connection. Payouts download per location from the last sync watermark; entries are refetched only when a payout changed. Returns a tracked job id for monitoring progress.