Import AWD ledger CSV
POST/api/amazon/unified/awd/ledgers/import
Import an AWD inventory ledger export.
This endpoint currently requires session authentication; Personal Access Token scope support is in progress.
The import is QUEUED, not performed during this request — a full-year ledger is thousands of rows plus stock reconciliation. The response therefore carries ids to follow it rather than the totals:
tracked_job_log_id— the background job.import_run_id— the import's record, readable immediately from/api/amazon/{integrationInstance}/awd/ledgers/import-runs/{importRun}withstatus: processing, and filled in with the totals and the per-row outcomes as it completes.import_run_instance_idis the instance to address it on.
Two pre-flight checks run BEFORE anything is queued, and each returns 200 with no ids:
needs_integration_selection— the integration could not be determined from the file's FNSKUs. Resend withintegration_instance_id.needs_mapping—unmapped_fnskusmust be mapped to products first. Nothing was imported.
Re-importing a file you have already imported is safe: rows are recognised by a checksum and skipped, so only genuinely new ones are created.
Import every event type the report contains — RECEIVED, DEPARTED, LOST, FOUND, OTHER and UNKNOWN. Filtering rows out of the file makes AWD stock disagree with Amazon.
Authentication: requires a 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.
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.