Create Vendor Deposit
POST/api/vendor-deposits
Create a new vendor deposit. Validated by CreateVendorDepositRequest. Returns 201 with the created deposit.
accounting:writeGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Proforma invoice / payment request fields:
payee_bank_details(string, nullable, max 2000) — payee bank block captured from the supplier's proforma invoice. If it matches the supplier profile'swire_instructions(case/whitespace-insensitive) it is normalized tonull("per supplier profile").bank_details_verified(boolean, default false) — acknowledgment that details differing from the supplier profile were verified out-of-band. When true (and a differing snapshot is present),bank_details_verified_at/bank_details_verified_byare stamped. A deposit with an UNVERIFIED differing snapshot saves as draft but cannot be submitted for approval (422).
Supplier deposit invoice: vendor_invoice_number and vendor_invoice_date record the supplier's invoice for this deposit or stage payment — the deposit is that invoice's record (a down-payment invoice). Do not create a goods invoice for a deposit. vendor_invoice_date must have a year between 1990 and 2100 (422 otherwise). Both fields remain editable after approval.
Optional related_purchase_order_id (integer) records a third-party purchase order reference: a PO owned by a DIFFERENT supplier that this deposit economically belongs to (e.g. DDP freight prepaid to a forwarder against the goods supplier's PO). It is mutually exclusive with purchase_order_id, must not belong to the deposit's own supplier, and never affects the referenced PO's expected-deposit milestones or deposit capacity. purchase_order_id must belong to the deposit's own supplier.
Request
Responses
- 200
- 401
- 403
- 422
- 429
Successful response
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.