Import Vendor Credits
POST/api/vendor-credits/import
Execute the import — upsert vendor credits from validated data (typically the output of the Validate Import endpoint).
accounting:writeGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Authentication: Requires Bearer token.
Upsert behavior:
- Rows with no matched existing credit are CREATED in DRAFT status so you can review and authorize them.
- Rows matching an existing DRAFT credit are UPDATED.
- Rows with action=blocked are rejected (archived / voided / closed / refunded / allocated / already-authorized credits cannot be updated via import).
continue_on_error (default false): when true, each credit is imported in its own transaction and failures are collected into 'skipped' instead of aborting the whole import. When false, the entire import runs in one transaction and any failure rolls everything back.
A per-user lock serializes concurrent imports.
Returns 201 when any credit was created, otherwise 200.
cost_impact (optional, per line) — what the line does to stock and its cost: return_goods, write_off_goods, reduce_cost or financial_only. Leave blank to infer it from is_product / restock_inventory as before; an unrecognised value fails that row. reduce_cost requires a purchase order line.
Lines can only be imported onto a draft credit — an authorized credit must be unauthorized first, so a behaviour change never bypasses the cost reversal.
Requires permission: purchase_orders.update
Request
Responses
- 201
- 401
- 403
- 422
- 429
Created
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden
Response Headers
Unprocessable Entity
Response Headers
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.