WhatsApp API for billing and ERP software: send the invoice in one call
Connect your billing, accounting or order software to JS1 Talkback and your clients send invoices with the PDF, payment reminders and dispatch updates on WhatsApp, from their own number. One HTTPS call per message, a free test key to build with, and no monthly fee: each client pays only for the messages they send, from ₹0.70 a message.
WhatsApp chat for sales enquiries only. No calls, please.
Everything a billing software needs to send on WhatsApp
One call a message
POST the number, the template and its values. Send it again after a timeout and the customer still gets it once.
Invoice PDFs
Attach the invoice PDF (up to 5 MB) to the same call. The customer sees the file's own name.
Status and replies
A signed webhook tells your server when a message is delivered, read or failed, and when the customer replies.
Free test key
Build and test with a test key: nothing is sent and nothing is charged, up to 500 test sends a day.
Send an invoice PDF in C# or PHP
Every request carries the key and an Idempotency-Key. The answer is 202 with the
message id; the webhook tells you the rest. Node and curl examples, error codes and webhooks are in the
API guide.
C# (.NET 6 or later)
using System.Text.Json;
var http = new HttpClient { BaseAddress = new Uri("https://talkback.js1software.net/") };
http.DefaultRequestHeaders.Authorization = new("Bearer", apiKey);
using var form = new MultipartFormDataContent();
form.Add(new StringContent(JsonSerializer.Serialize(new
{
to = "919876543210", template = "invoice_pdf",
@params = new[] { "Ramesh Textiles", "INV-1043" }, reference = "INV-1043"
})), "message");
var pdf = new ByteArrayContent(await File.ReadAllBytesAsync("INV-1043.pdf"));
pdf.Headers.ContentType = new("application/pdf");
form.Add(pdf, "document", "INV-1043.pdf");
var req = new HttpRequestMessage(HttpMethod.Post, "v1/messages") { Content = form };
req.Headers.Add("Idempotency-Key", "INV-1043-send-1"); // reuse it on every retry
var res = await http.SendAsync(req); // 202 = accepted: save the id
PHP (curl)
$ch = curl_init('https://talkback.js1software.net/v1/messages');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey,
'Idempotency-Key: INV-1043-send-1'],
CURLOPT_POSTFIELDS => [
'message' => json_encode(['to' => '919876543210',
'template' => 'invoice_pdf',
'params' => ['Ramesh Textiles', 'INV-1043'],
'reference' => 'INV-1043']),
'document' => new CURLFile('INV-1043.pdf', 'application/pdf', 'INV-1043.pdf'),
],
]);
$body = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE); // 202 = accepted
Full walk-throughs with retries that never send twice and a signed status webhook: C# and VB.NET · PHP and Laravel.
Your clients send from your software, on their own account
Your client signs up
Each client signs up for JS1 Talkback with their own business details, buys their own pack and connects their own number through Meta's page. You do not buy or resell messages.
They add you as a Developer
The client adds you on their Team page. You make a test key and build the connection: nothing reaches a real customer while you test.
Switch to the live key
When it works, the client makes a live key and your software sends their invoices and reminders. Their replies come into their Talkback inbox.
Questions from developers
Connect your software and test it free
Read the guide, build with a free test key, and switch to a live key when it works. Questions? Chat with us on WhatsApp.
WhatsApp chat for sales enquiries only. No calls, please.