Since the new rewrite also changes the API fields and url, you will need to migrate legacy API to new API.

Legacy API will be deprecated on 1 January 2023.

Send Message

Legacy APINew API
https://md.fonnte.com/api/send_message.phphttps://api.fonnte.com/send
field phone and textmoved to target and message
require several fields to runonly target field is required
require the right field typeno field type
type text using text field & tipe image/file/audio/video using captionall message will only use message field
not supporting variablesupport variable
delay_req is optionalremove delay_req
filename may different than expectedadd support for filename field
no country code support for replacing first zeroadd country code support for replacing first zero
small typo may lead to failed sending messagebetter typo handling for easier sending message
cannot send button, template and listsupport send button, template, list

read more : API send message

Device Profile

move url from https://md.fonnte.com/api/profile.php to https://api.fonnte.com/device

read more : API device profile

Get QR

move url from https://md.fonnte.com/api/connect.php to https://api.fonnte.com/qr

read more : API get QR

Validate

This API will validate whether the number is exist on whatsapp or not

read more : API validate

Message Status

move url form https://md.fonnte.com/api/status.php to https://api.fonnte.com/status

read more : API message status

Disconnect

move url from https://md.fonnte.com/api/disconnect.php to https://api.fonnte.com/disconnect

read more : API disconnect

Go to device menu and then click connect.

Wait until qr code show, then scan it like scanning qr code on whatsapp web.

Open whatsapp app on your phone->go to linked device->scan

This is a big change on fonnte's dashboard.

Many things have changed.

i'll describe what's new on this dashboard

The Dashboard

The dashboard itself got a new face after rewrite for fresher look.

You'll see the arrangement and placing of some menus and elements a bit off than before.

Dashboard

Dashboard will now show recent info and tutorials.

Device

Now you got 10k messages quota per month for every device free for development purpose.

Device is showing total device, connected device and total messages requested by all devices combined

Order menu is no longer exist, order will be available on each device.

One click token to easier copy token

Phonebook

Nothing much change except looks for this menu.

Variable {nama} now changed to {name}.

Now you can add unlimited variable

Message History

Message history is now filterable by status and time.

But search is only work for current page.

You can now delete message history if you want.

Resend message is available.

Send

All messaging now combined in this menu.

You can send immediate message/scheduled message/recurring message to manual input target/group of targets/contacts with message of manual input/template with or without file

Template

Nothing much changed.

Variable {nama} now changed to {name} with unlimited variable

Recurring

Recurring is now more flexible with timezone.

Sadly, this rewrite also require to rewrite the database relation.

So you have to recreate your recurring template.

Autoreply

Nothing much changed.

Default reply is easier accessible

Invoices

Invoice is now listed and easily downloadable.

Setting

Nothing much changed

Support

You can reach support easier

Documentation

You can reach documentation easier

API

There are many changes on our API

Reduce redundant field, changing some fields name and increase performance

You can check the detail on API section

First of all, thank you for your interest in using fonnte to support your business.

I'm not going to waste your time, so every docs will be straight forward.

1. Add device

This is the first thing you have to do : go to device menu then add device.

You'll get 1k messages quota per month for free device.

Then, you can connect your device to fonnte.

That's all for first step.

2. Send a message

Go to send menu.

You can send message by filling and match the form fields as you need.

Every message will take 1 message quota, so if you send to 5 targets, your quota will be reduced by 5.

3. Create an autoreply

Step 3 and 4 is optional. only needed if you are building chatbot

Go to autoreply.

Make autoreply template and save it.

You may want to create several template to test.

4. Make a chatbot

Go to device menu and go to edit device.

Set autoread to on.

I'll repeat, set autoread to on.

Choose personal or group or both to reply the incoming message

5. Testing chatbot

just chat your connected device with keyword you make on autoreply, it will reply

Recurring allow you to set period of time to be used when sending message

After creating the template, your template will be shown on template list

The list contain info for every template you've created.

Target button will show the list of target using this recurring template

To remove target from receiving recurring message, delete the target from the list.

But the last recurring message will still be sent later.

You can delete the last message on history message.

You can add template message to be used for sending message later.

This is a good way to send message to contacts with variable.

You can create template by filling name of the template and the message.

Using variable is recommended

You can download the attachment sent to your device using webhook.

This function will only working on device with all feature package.

Special note : any autoreply feature won't work if you are using webhook.

<?php
header('Content-Type: application/json; charset=utf-8');

$json = file_get_contents('php://input');
$data = json_decode($json, true);
$device = $data['device'];
$sender = $data['sender'];
$message = $data['message'];
$text= $data['text']; //button text
$member= $data['member']; //group member who send the message
$name = $data['name'];
$location = $data['location'];
//data below will only received by device with all feature package
//start
$url =  $data['url'];
$filename =  $data['filename'];
$extension=  $data['extension'];
//save the file
if($url){
file_put_contents("fonnte-file.$extension", file_get_contents($url));
}
//end

function sendFonnte($target, $data) {
	$curl = curl_init();

	curl_setopt_array($curl, array(
	  CURLOPT_URL => "https://api.fonnte.com/send",
	  CURLOPT_RETURNTRANSFER => true,
	  CURLOPT_ENCODING => "",
	  CURLOPT_MAXREDIRS => 10,
	  CURLOPT_TIMEOUT => 0,
	  CURLOPT_FOLLOWLOCATION => true,
	  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
	  CURLOPT_CUSTOMREQUEST => "POST",
	  CURLOPT_POSTFIELDS => array(
	    	'target' => $target,
	    	'message' => $data['message'],
	    	'url' => $data['url'],
	    	'filename' => $data['filename'],
	    ),
	  CURLOPT_HTTPHEADER => array(
	    "Authorization: TOKEN"
	  ),
	));

	$response = curl_exec($curl);

	curl_close($curl);

	return $response;
}

if ( $message == "test" ) {
	$reply = [
		"message" => "working great!",
	];
} elseif ( $message == "image" ) {
	$reply = [
		"message" => "image message",
		"url" => "https://filesamples.com/samples/image/jpg/sample_640%C3%97426.jpg",
	];
} elseif ( $message == "audio" ) {
	$reply = [
	        "message" => "audio message",
		"url" => "https://filesamples.com/samples/audio/mp3/sample3.mp3",
		"filename" => "music",
	];
} elseif ( $message == "video" ) {
	$reply = [
		"message" => "video message",
		"url" => "https://filesamples.com/samples/video/mp4/sample_640x360.mp4",
	];
} elseif ( $message == "file" ) {
	$reply = [
		"message" => "file message",
		"url" => "https://filesamples.com/samples/document/docx/sample3.docx",
		"filename" => "document",
	];
} else {
	$reply = [
		"message" => "Sorry, i don't understand. Please use one of the following keyword :
		    
Hello
Audio
Video
Image
File",
];
}

sendFonnte($sender, $reply);

If your attachment have message with it, you can find it in the $message.

The attachment will be downloaded and saved in the same path as your webhook url.

To save somewhere else, determine the path where the attachment should be saved.

Note: The attachment will follow file limitation rules. if you are receiving an attachment outside file limitation rules, you will not receive it on your webhook.

Send messages later according to schedule. here how to send messages.

The only difference with sending messages is that messages take a certain amount of time to execute.

You can only set future times.

time is set at GMT+7.

Is located in the top right and used to manage your name, WhatsApp number for notification (not necessarily to connect), and your password.

Every system notification (device disconnect, quota limit, any information about fonnte's services) will be sent to this number.

You can create a bot using this menu.

When a user texts your connected device, your connected device will reply as the rule you made.

Note: you have to set auto read to On on the device you wish on. (see menu device->edit)

There are several inputs to fill

After you create autoreply template, your template will be added to autoreply list.

You can edit or delete any of autoreply message template you've created.

Made with in Indonesia