Skip to main content

Validate Vendor Credit Import

POST 

/api/vendor-credits/import/validate

Validate and preview mapped import rows BEFORE importing. No database writes occur — safe to call repeatedly.

Required scope: accounting:write

Grant this scope to your token under Settings → Developer → Personal Access Tokens.

Authentication: Requires Bearer token.

Resolves supplier / purchase order / store / currency / warehouse / SKU / nominal code / tax rate names to IDs, groups flat rows into credits (by id, then vendor_credit_number, then purchase_order_number), and computes an upsert action per credit:

  • create: no existing credit matched
  • update: matched an existing DRAFT credit
  • blocked: matched a credit that cannot be updated (archived, voided, closed, refunded, allocated, or already authorized/open). The block_reason is returned for display.

Each row accepts all template columns: id, vendor_credit_number, credit_date, purchase_order_number, supplier_name, supplier_email, supplier_id, warehouse_name, currency_code, store_name, supplier_reference, vendor_credit_note, sku, purchase_order_line_id, description, quantity, amount, unit_cost, nominal_code, tax_rate, is_product, restock_inventory.

Max 50000 rows per call.

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​

OK

Response Headers
    Content-Type