Commit Approved Match Proposals
POST/api/qbo/customers/match-runs/:matchRun/commit
Apply every proposal in the run that is still in approved status: each one writes the SKU.io customer ID onto the locally synced QuickBooks customer record and moves the proposal to committed. The run transitions through committing and finishes as completed.
Any valid API token can call this endpoint — no specific scope required. Manage tokens.
This commits only the local synced copies in SKU.io; it does not modify anything in QuickBooks itself.
Note that the decisions and approve-all endpoints already link approved proposals immediately, so this endpoint typically finds nothing left to commit unless proposals were approved through another flow. Proposals whose QuickBooks customer or SKU.io customer is already linked elsewhere are marked rejected with a rejection_reason instead of being committed; per-proposal failures are reported in errors.
Returns 404 if the run does not exist.
Authentication: Requires Bearer token.
Request
Responses
- 200
- 401
- 403
- 404
- 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.
Not Found
Response Headers
Validation failed — the body is a field → messages map (Laravel shape) or the platform envelope with a stable machine-readable code. Fix the payload and resubmit.
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.