Adopt Xero Chart of Accounts (hard-replace)
POST/api/xero/accounts/adopt-chart
Onboarding: hard-replace SKU's chart of accounts with Xero's. Imports every mapped Xero account as a nominal code, re-points every reference (sales order lines, settings roles, product/channel/warehouse overrides, …) onto the replacements, then deletes the old chart. EVERY existing nominal code must appear in mappings (a complete old→new map is what makes the delete safe) — otherwise 422-equivalent failure listing the unmapped ids. Runs as a tracked job; returns its log id so the UI can follow progress via the tracked job log endpoints. Pass repost: true to also repost every current ledger entry after the replace (chained inside the job) so posted GL lines pick up the new accounts.
This endpoint currently requires session authentication; Personal Access Token scope support is in progress.
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.