Push Pending Tracking Numbers to 17TRACK
POST/api/integrations/17track/instances/:instance_id/push-pending
Push every pending or previously-failed tracking row to 17TRACK in one shot — manual recovery path for the Sync to 17TRACK button.
Any valid API token can call this endpoint — no specific scope required. Manage tokens.
Pending = registered_at IS NULL AND stopped_at IS NULL — covers (a) freshly-created rows the observer flow hasn't dispatched for yet, (b) rows whose previous register call failed with quota_exceeded, and (c) orphans from a transient API error.
Response branches:
tracked_job_log_idset when a fresh job is queuedtracked_job_log_id: nullwhen a push is already in flight (existing job will pick up the new rows)pending_count: 0early-exit when nothing is pending (no wasted queue slot)
Activity log: writes manual_push_triggered (with causer = acting user).
Request
Responses
- 200
- 401
- 403
- 404
- 422
- 429
OK
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 — no record with the given identifier (or the route does not exist). Verify the ID before retrying.
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.