Step by step
What you do in the dashboard, then the few lines of code your developer adds: one-time codes, updates about a person's order or booking, and replies.
Do the first four steps yourself in the dashboard. Then give your developer the key, the number's id and this page.
Set two settings on your server: IDENTIFYORG_KEY (the live key) and IDENTIFYORG_CHANNEL (the number's id, from GET https://api.identifyorg.com/v1/wa/channels, where the status says connected). Then:
const BASE = "https://api.identifyorg.com";
const CH = `/v1/wa/channels/${process.env.IDENTIFYORG_CHANNEL}`;
async function call(path, body) {
const res = await fetch(BASE + CH + path, {
method: "POST",
headers: { "X-IdentifyOrg-Key": process.env.IDENTIFYORG_KEY, "Content-Type": "application/json" },
body: JSON.stringify(body),
});
const data = await res.json();
if (!res.ok) throw new Error(data.error?.message || "Request failed");
return data;
}
// numbers: digits with the country code, like 2348031234567
export const sendOtp = (to) => call("/otp", { to, brand: "Your Business" });
export const checkOtp = async (to, code) => (await call("/otp/verify", { to, code })).valid === true;
export const notify = (to, text, reference) => call("/notify", { to, text, reference, opted_in: true });
export const reply = (to, text) => call("/send", { to, text });Test with your own phone first: send yourself a code, read it on WhatsApp, and check it. Developers can see every call and error in API Logs.
Still stuck?
Tell us what you tried and what you saw, and we will help.