Skip to main content

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).

Required scope: accounting:write

Grant 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​

Created

Response Headers
    Content-Type