Validate Import
POST/api/sales-credits/import/validate
Validate and preview mapped import rows BEFORE importing. No database writes occur — safe to call repeatedly.
orders:writeGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Authentication: Requires Bearer token (scope.rw:orders).
Resolves customer / sales order / store / currency / warehouse / SKU / nominal code / tax rate names to IDs, groups flat rows into credits (by id, then sales_credit_number, then sales_order_number), and computes an upsert action per credit (create / update / blocked). Customers that don't exist are auto-created on import.
Each row accepts all template columns: id, sales_credit_number, credit_date, sales_order_number, customer_email, customer_id, customer_name, customer_company, customer_phone, store_name, currency_code, to_warehouse_name, sales_credit_note, sku, sales_order_line_id, description, quantity, amount, unit_cost, nominal_code, tax_rate, is_product.
Max 50000 rows per call.
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.