Start Customer Match Run
POST/api/qbo/customers/match-runs
Start a new customer match run. The run scores every active, unlinked QuickBooks Online customer (or only the customers listed in qbo_customer_ids) against the SKU.io customer pool using the current matching configuration, and stores up to five scored proposals per QuickBooks customer.
Any valid API token can call this endpoint — no specific scope required. Manage tokens.
This endpoint queues a background job to do the scoring and returns immediately. The response contains the new run ID and a background job log ID that can be used to track progress. Poll GET /api/qbo/customers/match-runs/{id} until the run status changes from running to awaiting_review before fetching proposals.
Scoring reads only locally synced data and creates proposal records in SKU.io; it does not modify anything in QuickBooks. Any pending proposals from earlier runs for the same QuickBooks customers are marked superseded.
Run statuses: running, awaiting_review, committing, completed, cancelled, failed.
Authentication: Requires Bearer token.
Request
Responses
- 200
- 401
- 403
- 422
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Unprocessable Entity
Response Headers
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.