Tally WhatsApp Send
Use this API to send a PDF-backed WhatsApp template message from the Tally integration. The request can upload a PDF directly or send the PDF as Base64.
At A Glance
POST
/v2/tally/send-whatsapp| Area | Detail |
|---|---|
| Base URL | https://api.mulltiply.org |
| Authentication | Authorization: Bearer <token> |
| Recommended content type | multipart/form-data |
| Alternative content type | application/json with Base64 PDF |
| Document type | PDF only |
| Maximum file size | 10 MB |
warning
The request field is implemented as recievingPhoneNumber. Keep this spelling
for compatibility, even though the correct English spelling is receiving.
Request Modes
Mode 1: multipart/form-data
Use this mode when uploading a PDF file directly.
| Field | Required | Description |
|---|---|---|
document | Yes | PDF file, maximum 10 MB. |
workspaceId | Yes | Workspace that owns the WhatsApp configuration. |
templateName | Yes | Supported WhatsApp template name. |
recievingPhoneNumber | Yes | Recipient phone number with country code. |
| Template parameters | Yes | Fields required by the selected template. |
Mode 2: application/json
Use this mode when sending the PDF as Base64 bytes.
| Field | Required | Description |
|---|---|---|
documentBuffer | Yes | Base64 string of PDF bytes. |
workspaceId | Yes | Workspace that owns the WhatsApp configuration. |
templateName | Yes | Supported WhatsApp template name. |
recievingPhoneNumber | Yes | Recipient phone number with country code. |
| Template parameters | Yes | Fields required by the selected template. |
Supported Templates
| Template name | Required parameters |
|---|---|
mulltiply_order_invoice_tally | customerName, orderId, amount, date |
mulltiply_payment_ledger_tally | customerName, fromDate, toDate, partyName |
mulltiply_shipment_confirmation_tally | customerName, orderId, date |
The API validates missing, empty, and unexpected template fields.
Headers
Multipart Upload
Authorization: Bearer YOUR_TOKEN
Content-Type: multipart/form-data
JSON Base64 Upload
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
No additional WhatsApp API token is required from the client in this request.
Request Examples
- Multipart
- Base64 JSON
- JSON Body
Multipart order invoice
curl --location 'https://api.mulltiply.org/v2/tally/send-whatsapp' \
--header 'Authorization: Bearer YOUR_TOKEN' \
--form 'document=@"./invoice.pdf"' \
--form 'workspaceId="1001"' \
--form 'templateName="mulltiply_order_invoice_tally"' \
--form 'recievingPhoneNumber="+919999900001"' \
--form 'customerName="Demo Customer"' \
--form 'orderId="ORD-DEMO-1001"' \
--form 'amount="100.00"' \
--form 'date="2026-03-24"'
JSON payment ledger
curl --location 'https://api.mulltiply.org/v2/tally/send-whatsapp' \
--header 'Authorization: Bearer YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"workspaceId": 1001,
"templateName": "mulltiply_payment_ledger_tally",
"recievingPhoneNumber": "919999900001",
"customerName": "Demo Customer",
"fromDate": "2026-03-01",
"toDate": "2026-03-24",
"partyName": "Demo Party Main",
"documentBuffer": "JVBERi0xLjQKJ...<base64-pdf>..."
}'
Shipment confirmation body
{
"workspaceId": 1001,
"templateName": "mulltiply_shipment_confirmation_tally",
"recievingPhoneNumber": "+919999900002",
"customerName": "Demo Store",
"orderId": "SO-DEMO-1001",
"date": "2026-03-24",
"documentBuffer": "<base64-pdf>"
}
Validation Rules
| Area | Rule |
|---|---|
| File | document or documentBuffer is required. |
| File type | File must be a PDF. |
| File size | PDF must be 10 MB or smaller. |
| Template | templateName must match one supported template exactly. |
| Template fields | Required fields must be present and non-empty. Extra fields are rejected. |
| Workspace | workspaceId is required and must have WhatsApp sending configured. |
| Recipient | recievingPhoneNumber must include country code. |
Accepted phone examples include +919999900001, 919999900001, and
19999900001.
Success Response
Success response
{
"success": true,
"message": "WhatsApp message sent successfully"
}
Error Cases
| Case | Condition | Typical message |
|---|---|---|
| File missing | Neither document nor documentBuffer provided. | File is required |
| Invalid template | templateName is not supported. | Invalid template name provided |
| Missing template params | Required template fields are missing. | Missing required parameters for template <templateName> |
| Invalid recipient | Phone number cannot be normalized or lacks country code. | Invalid recipient phone number |
| Invalid file type | Buffer is not a PDF. | Invalid file buffer provided. Expected a PDF file. |
| File too large | PDF size is greater than 10 MB. | Document size exceeds the maximum allowed size of 10 MB |
| Workspace config missing | Workspace has no valid WhatsApp config. | No WhatsApp configuration found for this workspace |
| Media upload failed | WhatsApp media upload failed. | Failed to upload media to WhatsApp: <reason> |
Postman Setup
| Setting | Value |
|---|---|
| Method | POST |
| URL | https://api.mulltiply.org/v2/tally/send-whatsapp |
| Auth | Bearer Token |
| Body for direct upload | form-data with document and template fields |
| Body for Base64 | Raw JSON with documentBuffer |
Implementation Checklist
- Use multipart upload when the PDF file is available locally.
- Use JSON mode only when you already have PDF bytes as Base64.
- Keep the key name
recievingPhoneNumber. - Send only fields required by the selected template.
- Confirm the workspace has WhatsApp sending configured.
- Confirm the PDF is under 10 MB.