Send Document Message
Send a document (PDF, DOCX, etc.). Provide a publicly accessible URL and optionally a display file name.
Authorization
ApiKeyAuth API key from your dashboard (Settings > API Keys)
In: header
Header Parameters
Optional. Attribute this send to a specific agent, overriding the agent bound to the API key. The agent must belong to your account and be active (role AGENT, parent = your account) — otherwise the request returns 400. Drives customer assignment, agent allotment limits, and the wallet ledger entry.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://loading/api/v1/messages/send#document" \ -H "X-AGENT-ID: agt_abc123" \ -H "Content-Type: application/json" \ -d '{ "to": "919876543210", "message": { "message_type": "document", "attachments": { "type": "document", "attachment": "https://example.com/invoice.pdf", "file_name": "Invoice-2026-001.pdf" }, "text": "Here is your invoice" } }'{
"success": true,
"data": {
"id": "clx9abc123def456"
}
}{
"success": false,
"message": "to field is required"
}{
"success": false,
"message": "user not authenticated"
}{
"success": false,
"message": "insufficient balance to send message"
}{
"success": false,
"message": "internal server error"
}Send Contact Message POST
Send a contact card with name, phone number, and optional organization.
Send Flow Message POST
Send a WhatsApp Flow as a session message. Tapping the CTA opens the Flow inside WhatsApp. The Flow itself is authored and published in Meta Business Manager — this API only sends it. Pass either `flow_id` or `flow_name`, never both. `flow_token` is pass-through: whatever you set is echoed back verbatim when the customer submits, so use it to correlate the submission with your own records. The submission arrives as an inbound message with `message_type: flow_response` and is delivered to your webhook through the `message.incoming` event. Being a session message, this only reaches customers inside the 24-hour window. To open a Flow from a business-initiated message, send a template with a FLOW button instead.


