Create Purchase Order Communication
POST/api/purchase-orders/:purchase_order/communications
Post a message onto the purchase order's communication thread.
Fields:
- channel (required): one of email, internal_note, whatsapp, sms. WhatsApp/SMS are only accepted when a messaging provider is configured for the workspace and the supplier has a messaging phone number; otherwise a 422 is returned.
- subject (required for email, ignored for notes): the email subject line.
- body (required): the message text.
When channel is email the message is sent to the supplier's purchase-order email address and logged as an outbound entry; the supplier's reply threads back onto this order automatically. An internal_note is only visible to your team and is never sent externally.
Authentication: Requires Bearer token.
File attachments: send the request as multipart/form-data with one or more attachments[] file parts (max 10 files, 20 MB each; pdf/office/image/csv/text). Attached files are stored on the thread and, for emails, attached to the outbound message.
Set thread_id to post into a specific thread; omit it to post into the purchase order's default "General" thread.
Request
Responses
- 201
- 401
- 403
- 404
- 422
- 429
Created
Response Headers
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.
Not found — no record with the given identifier (or the route does not exist). Verify the ID before retrying.
Unprocessable Entity
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.