Skip to main content

Submit PO to Supplier

PUT 

/api/purchase-orders/:purchase_order/submit

Submit a purchase order to the supplier and record it as submitted.

Required scope: purchase-orders:write

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

Whether an email is actually sent depends on the order's submission format. Every email format sends the purchase order to the supplier's purchase order email. The manual format deliberately sends nothing — the order is recorded as submitted and finalized, and contacting the supplier is left to you. The response reports which happened via emailed_to_supplier and last_emailed_to_supplier_at; last_submitted_at records the submission either way and must not be read as proof an email went out.

Authentication: Requires Bearer token.

Requires permission: purchase_orders.approve

Body fields

  • supplier_message (string, optional, max 5000) - vendor-facing note saved to the order before it is sent. Omit to keep the saved message; send an empty string to clear it.
  • reason (string, optional, max 255) - recorded against the submission snapshot.
  • notify_supplier (boolean, optional, default true) - send false to record the order as submitted without emailing the supplier. This is the only way to submit an order whose supplier has no purchase order email on file; with true (the default) such an order is rejected with 422.
  • submission_format (string, optional) - send this one order in a different format than the supplier's default, and persist that format on the order. Use it to email an order whose supplier is set to manual without changing the supplier record. Accepted values: email_pdf_attachment, email_xlsx_attachment, email_pdf_xlsx_attachments, email_csv_attachment, email_pdf_csv_attachments. manual is rejected with 422 — this field can only turn a send on, never off; use notify_supplier: false for that. Ignored when notify_supplier is false.

Approval policy: While the purchase-order approval policy is enabled, a draft order is approved and sent in this call only when you can approve it directly (403 approval_limit_exceeded when its amount is over your limit; 422 approval_pending while a request is waiting on someone else). An open order whose changes await re-approval cannot be re-sent (422 approval_pending, or approval_required after the change was rejected). Under a policy the purchase_orders.approve permission alone no longer lets anyone exceed their limit.

Request​

Responses​

OK

Response Headers
    Content-Type