Statistic

We are now adding statistic to see your usage at fonnte both outgoing and incoming messages. these statistic works as data to see periodic data so you can see your usage behaviour better.

Screenshot 2026 01 12 at 13.41.53

Retry webhook

Previously we are automatically resend webhook after failed immediately at 3 times. but this might cause unintended issue that the client network issue might still persist during retry. so we are changing the behaviour to 15 times every minute instead of immediately. this might solve temporary DNS issue, network issue, rate limit issue, etc. webhook also mandatory to return status of 200 to be considered success

Webhook timestamp

Timestamp of the message is now added to the webhook. so you can log better when the message is received by whatsapp.

Inboxid

We are adding capabilities to add message refering to send API. this empower send API to be able to behave like replying message. previously webhook message cannot be replied using message reference, but now, using inboxid it's possible!

Webhook verification

Webhook no longer need to have GET and POST method. fonnte will now do POST only.

Api reschedule

we are adding reschedule api for rescheduling the message when you are having to change the schedule time or change delay

Enhance pending message

when the plan is expired, the device is updated to free plan.

if there are pending or scheduled messages that should be sent during the device expired, the messages are sent with branding "sent via fonnte" due to current device plan is free even though it's generated when the plan is non-free.

we are updating the workflow to keep the message to be sent with same plan when the message are requested.

so now even though your device is expired and on free plan, the message should still sent using plan when the message is requested.

this update add fairness to the user's plan.

example : request are created yesterday with regular plan, but planned to be sent tomorrow. today is expired and the device become free plan. tomorrow, the message is sent without sent via fonnte branding even though current plan is free

Typing & duration

By default, fonnte automatically set typing indicator to mimic real human behavour 1 second before actually the message. but some users need more flexibility. so, we are adding "duration" as parameter in integer. you can now use 'duration'=>10 for example to set typing indicator 10 seconds before actually send message

Typing API

we are now adding typing API so you can freely generate typing simulation for long webhook process or when waiting response for AI. this is beneficial to add presence to your user so you don't just hanging and waiting for response which now lead to better UX

Silent autoread

many of our users ask for this feature. silent autoread enable fonnte to reading the message without actually mark it as read. so you can still get the notification theoritically while enable fonnte's autoread power.

Screenshot 2026 01 12 at 13.42.34

Google drive link support

you can now send file directly using google drive link. previously to send attachment, fonnte need actual url like : https://domain.com/image.png.

but now you can use google drive link like https://drive.google.com/file/d/1bqn_S9lmHVNaKjwq7LSpjeUAsFVrRVQR/view?usp=drive_link

Aksita AI integration

Fonnte AI service is quite basic and often meet challenge & inaccurate when used on more data. this can cause halucination which is undesired. that's why we now integrate with Aksita AI for providing AI service come to fonnte. you can see the tutorial here

Currently fonnte has AI feature to integrate AI with fonnte. but this AI are intended to do basic response. like we just have the AI to response. we got some users report that our AI is answering using wrong data or even hallucination. that's why now we will integrate with aksita ai for more focused AI service.

Precondition

to use aksita integration, you need to :

  1. create account first on aksita ai
  2. create agent
  3. make resources
  4. generate api key

you can get the tutorial for it in the aksita tutorial page.

only after you have the api key, you can continue to integrate to aksita AI

Flow

Screenshot 2026 01 10 at 18.35.00

We will use flow to integrate aksita with fonnte by creating aksita nodes below :

First we create session for each conversation.

then we store the variable using store node.

after that, we need to immediately respond via aksita chat node.

for maintaining history chat, we will need to make a loop for it by adding more response->chat node->response

then connect it back to first chat node.

Filling data

Now we have api key from aksita.

first we copy it and paste on session node and both chat node.

Screenshot 2026 01 10 at 18.36.13

then we go to store node and make variable for session data.

Screenshot 2026 01 10 at 18.36.25

last thing is we set session id with sessios variable.

Screenshot 2026 01 10 at 18.36.34

do the same for the rest of aksita chat node.

that's it.

Double Check

when done, you need to check on device->edit that we need

Typing api enable you to simulate typing and creating typing indicator on whatsapp.

this is beneficial for adding presence that you are being thinking/answering the message or just simulate typing, especially on long awaited answer like waiting AI to response or your webhook need to process something and take a bit longer than a second.

you can see it on postman.

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.fonnte.com/typing',
  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' => '08123456789','countryCode'=>'62','duration' => 10,'stop'=>false),
  CURLOPT_HTTPHEADER => array(
    'Authorization: TOKEN'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Available parameter

What's Happening?

WhatsApp has been updating its core messaging infrastructure over the past several months. These updates are being rolled out gradually across different regions worldwide. Indonesia was not among the first locations to receive these changes, which is why our messaging system has remained stable and unaffected until now.

However, we have recently started receiving these system updates, and they may impact how messages are sent and received through fonnte.

The "@lid" System Explained

One of the key changes WhatsApp is introducing is something called "@lid". Think of this as a unique identifier that WhatsApp assigns to each account. Based on what we're observing, this "@lid" appears to be the foundation for a future "@username" system—similar to how Telegram or Instagram works.

What this likely means: WhatsApp plans to eventually allow users to communicate using usernames instead of exposing actual phone numbers. This would provide better privacy and security for users.

How This Affects Our Service

Since WhatsApp is implementing "@lid" gradually, we need to prepare our systems to work with this new identifier. This means:

  1. API Changes: Our production API may need adjustments to handle both phone numbers and "@lid" identifiers
  2. Webhook Updates: How we receive and process incoming messages might change
  3. Message Routing: Messages may be sent and received using "@lid" instead of traditional phone numbers

What We're Doing About It

We are actively working to integrate these changes into fonnte. However, since WhatsApp itself is still migrating gradually, we're monitoring the situation closely to understand the full scope of required changes before implementing them.

Important note: We don't have a specific timeline yet because WhatsApp's internal migration is ongoing and unpredictable. Rest assured, we are prioritizing this work and will implement updates as quickly as possible while ensuring stability.

What You Need to Know

We will keep you updated with regular progress reports and provide advance notice before any changes go into effect.

This API is used to reschedule message that have been wrongly scheduled.

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.fonnte.com/reset-message',
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(
'id' => 1, //message id
'delay' => '5-10', //optional
'schedule' => 1758606641, //unix timestamp
'byschedule' => false, //optional
),
CURLOPT_HTTPHEADER => array(
'Authorization: TOKEN'
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

TOKEN must be filled by your own token. See how to get token.

Available parameter :

We are making small changes and updates in the middle of the year due to urgency that needs to be adjusted.

Register info

We are adding more information in the register page for better register instruction.

Screenshot 919

Free plan additional limitation

Free plan will no longer receive notification on disconnect/connected device.

Notification on disconnect/connected device will be sent only on non free plan device.

this action must be taken due to fonnte currently has many active free devices and as intended, they are testing and developing.

therefore, disconnect/connect devices is expected to be often happened.

this action raise concern about volume and risk to our whatsapp notification system.

we are also prevent message with certain content as a preventive measurement from abusing free plan.

Whitelist IP

We found a case where the token got exposed, either the attacker can access the enviroment or get in the code, that causing unauthorized usage.

therefore we are adding whitelist IP to ensure the request coming form allowed IP.

this is just one of security feature from fonnte.

but the ultimate security should come from the client side to take care of the token.

Group verification

We are getting report that a device got banned due to send message to unknown grup or a group that the whatsapp is not joined yet.

therefore, we are adding verification for group id that ensure the whatsapp had joined the group.

if you got failed response "id group invalid", please do update your whatsapp group list at phonebook->wagroup->update list.

Notification on login

Kamu akan menerima notifikasi setiap kali login.

Jadi kamu tahu jika ada yang berhasil login ke akun kamu.

Kami menambah fitur ini utamanya untuk alasan keamanan data karena di menu message history dan inbox menampilkan riwayat pesan yang dikirim/diterima.

pesan ini bisa bersifat rahasia seperti OTP/password atau hal pribadi lainnya.

Jika yang login bukan kamu, segera hubungi kami.

Otp on login

Kami menambah opsi untuk login dengan OTP.

fitur ini menambah keamanan dashboard fonnte.

tanpa OTP, kamu tidak bisa login.

Jadi pastikan whatsapp kamu selalu aktif untuk menerima OTP.

kamu bisa mengubah nomor whatsapp di menu setting->whatsapp

Quota on response

Kami mengerti bahwa beberapa developer membuat dashboard sendiri untuk manage fonnte dari dashboard mereka.

beberapa developer mengalami kendala dimana mereka perlu beulang2 mengecek sisa kuota sebelum melakukan aksi.

Karena API device profile ini terbatas, kami menambahkan informasi kuota di setiap pengiriman pesan.

Memang penambahan kecil, tapi akan berguna untuk yang memerlukannya.

Enhance flow

Flow mendapatkan fitur lagi yang berfokus di fitur global.

Global ini dijalankan setiap ada pesan masuk.

Ini sangat berguna untuk membuat rules tersendiri, seperti menambah delay sebelum merespon.

Tentu hal ini bisa dilakukan dengan menambah satu per satu. tapi akan lebih mudah dengan fitur global karena hanya sekali setting.

Fix : autoreply inboxid

Ada bug yang membuat autoreply tidak bekerja karena kesalahan di kode terkait inboxid.

bug ini sudah di fix

Notification on login

Everytime you login, you'll receive a notification.

you can know if someone successfully login to your account.

if it's not you, you must reach us immediately.

we are adding this feature for more security mainly due to message history and inbox is displayed in the dashboard.

some have credentials like OTP or password or else which no one should look onto it but you.

Otp on login

We are adding option to use OTP to login.

this feature adding another layer for fonnte's security.

without OTP, you cannot login.

please make sure your whatsapp number is always active.

you can change your whatsapp number on setting->whatsapp.

Quota on response

We are aware that some developers create their own dashboard to manage fonnte.

some face challenges that they need to repeatedly check the quota before proceeding some action.

while API device profile is limited, we are adding quota on every usage.

this is a little addition, but should helpful for those who need it.

Enhance flow

Flow gaining more feature that focused on global feature.

global feature will be fired everytime the bot got a response.

this is beneficial for making set of rules, like adding delay before responding.

it is indeed can be done by adding one by one, but having global setting is very handy.

Fix : autoreply inboxid

There is a bug that autoreply won't reply due to faulty in our code regarding inboxid. this bug has been fixed

We are adding more features in this early february 2025.

the focus of this update is to add more features and more optimization.

TL;DR

more features and optimization :

  1. secret key webhook : enable secret key in webhook data
  2. search message history by id : add search filter in message history
  3. Delete processing message : delete history now also delete processing message
  4. Additional response API send : additional requestid on response
  5. inbox : inbox feature on demand
  6. quote message on webhook : add ability to quote message when replying using webhook
  7. Optimize incoming message : disable read message on demand
  8. Deposit : deposit system is available
  9. Autoconfirm : order using deposit allow to autoconfirm
  10. API order : allow order to do using API
  11. Fix : corrupted file on download

Secret key webhook

Webhook are now can use secret key for additional data to verify it's coming from fonnte

Screenshot 573

search by id message history

you can now search message by it's id.

it's useful when looking for specific message data.

this is developed for inbox support.

Screenshot 574

Delete processing history

When deleting message that is already on process, the processed message cannot be cancelled.

now you can cancel it by deleting it from message history.

for example : you are sending 5 messages with delay 10 seconds. then you realize there is an error in the message. previously, you cannot cancel it. but now, by deleting it from message history, it will not processed anymore.

requestid on response

As fonnte's user growing, There are a more users who use API send complaining about their request is invalid/not exactly as their requested.

but when fonnte ask what is their request, they are not storing their request so it can easily be one side blame "it's fonnte's fault" instead of figuring out together which request data should be adjusted.

so we are taking initiative to help logging the request, so we can both examine the request and response together to create more win win solution environment and ultmately can assist user better.

the request id is exist in every API send response whether it fail or success.

Optimize Incoming

Previously, we are processing all incoming message for user who activate autoread to on.

this task, can take many spaces and computational power as whatsapp grow with many new data.

we are now limiting what to process and not, so we can reduce our server usage and lead to better performance.

Inbox

fonnte will store incoming message on demand.

you can enable it by activating autoread and inbox in the device->edit menu.

Screenshot 575

Webhook quote

When using webhook, we cannot quote the chat we are replying to.

now there is additional data named inboxid.

when activate inbox, webhook will also have inboxid to be used as quote data.

so on reply, you just need to add inboxid in the API send.

Deposit system

Fonnte use BCA scrapper to autoconfirm payment.

but lately, the scrapper got more and more not reliable.

some order have been paid but not processed until it changed to failed.

so we take another approach (since we still not deciding to use payment gateway yet), we add deposit.

this is more likely not to be used by most of users, because the nature of deposit : you are paying upfront to be used later, while fonnte also having custom duration order.

so most of users are not expected to use deposit.

then, who are using deposit?

we are introducing API order together with this deposit system and autoconfirm system.

this is more likely to be used as autoconfirm payment for business to integrate seamless and easily with fonnte, together with device management API.

Autoconfirm

Autoconfirm is used to autoconfirm the order when you make an order to fonnte and choose to use deposit.

this way, you can right away activate your order without waiting for BCA scrapper or manual process.

this is most beneficial for business.

API order

API order is now available to be used to make an order right from your own system.

to use API order, you need to have deposit in your account.

without it, your order will always failed as order through API order will be autoconfirmed.

see API order documentation or go to postman.

Fix download attachment

When downloading an attachment, sometime the file is corrupted.

especially if the file is large enough.

we fix this and the attachment should now correctly downloaded.

You can now order fonnte's package right from your application.

this way, device API is now fully usage in your own application.

see it on postman.

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
 CURLOPT_URL => 'https://api.fonnte.com/order',
 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('plan' => 1,'duration' => 1,'duration-value' => 1,'ai-quota' => 500,'ai-data' => 0),
 CURLOPT_HTTPHEADER => array(
 'Authorization: TOKEN'
 ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Available parameter

note :

Ask Fai
Made with in Indonesia