Update Bill
PATCH/api/inbound-shipments/:inbound_shipment/bills/:bill
Updates a bill attached to this inbound shipment. Cannot modify bills on a cancelled shipment. Omit currency_id/currency_rate to keep the bill's current currency; send them to change it.
purchase-orders:writeGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Authentication: Requires Bearer token.
Fields:
- vendor_id (required): Vendor ID
- invoice_number (required): Invoice number
- invoice_date (required): Invoice date
- currency_id (optional): Currency ID
- currency_rate (optional): Exchange rate
- proration_strategy (optional): One of: cost_based, quantity_based, weight_based, manual
- allocations (optional): Updated allocations — replaces existing allocations
Allowed proration_strategy values: cost_based, quantity_based, weight_based, volume_based, specific_line, revenue_based, manual, duty_estimate_based. duty_estimate_based ("By estimated duty") splits the bill across purchase order lines in proportion to each line's estimated customs duty — the duty frozen at receipt, or the shipment-stage estimate for units not yet received. If every covered line's estimated duty is zero it falls back to cost_based and the bill response carries an allocation_warnings entry with code duty_estimates_zero_fallback. A weight_based, volume_based or cost_based bill whose basis is zero on every line it covers (no weights, no dimensions, no cost) is split by cost (or by quantity when cost is zero too); each allocation's proration_strategy records the basis actually used, and the bill carries an allocation_warnings entry with code proration_basis_fallback.
Requires permission: purchase_orders.update
Request
Responses
- 200
- 401
- 403
- 404
- 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
Response Headers
Not found — no record with the given identifier (or the route does not exist). Verify the ID before retrying.
Unprocessable Content
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.