Messaging

SMS under your own name, from the API you already use

Transactional messages, managed OTP and replies from the recipient at R$ 0,29 per message. No monthly fee, no minimum, no contract — the same key and the same invoice as your data queries.

Create the account, set up your sender name and send. You pay per message.

YOURBRAND SMS
now

Your access code is 482913. Valid for 5 minutes. Do not share it.

Your delivery arrives tomorrow between 9am and 12pm. Confirm? Reply YES.

YES

delivered to your webhook

An SMS thread: two messages go out under your company name and the recipient reply lands on your webhook.

R$ 0,29
per message sent or received
Your name
white-label sender on the handset
OTP
generated, sent and verified by us
Two-way
replies on your webhook
R$ 0
monthly fee and minimum
How it works

Four steps to your first SMS

It is the same API as the data queries: the key you already have sends messages, and those messages land on the same invoice.

  1. 1

    Create the account and grab the key

    Self-service signup, no contract and no sales call. The key that queries a CPF is the same one that sends SMS.

  2. 2

    Set up the sender name

    You choose the name that shows up on the handset. Once approved, it signs every message you send.

  3. 3

    Call the endpoint

    Number, message and your reference. Delivery typically takes seconds, and sms-status tells you where each message stands.

  4. 4

    Receive the reply

    If the recipient replies, the text reaches your webhook signed. Anyone who replies SAIR is suppressed automatically.

sms-enviar · otp-send · otp-verify
// 1. Transactional send — goes out under your sender name
$ curl -X POST -H "X-API-Key: SUA_CHAVE" \
  "app.fontedata.com/api/v1/consulta/sms-enviar?numero=5511999999999&mensagem=Seu+pedido+1234+saiu+para+entrega&reference=pedido-1234"
{ "status": "enviado", "creditos": 1, "request_id": "sms_7b3e91" }

// 2. Managed OTP — we generate, send and hold the code
$ curl -X POST -H "X-API-Key: SUA_CHAVE" \
  "app.fontedata.com/api/v1/consulta/otp-send?numero=5511999999999&code_length=6&ttl_seconds=300"
{ "status": "enviado", "expira_em": 300, "request_id": "otp_5c1d0e" }

// 3. Verification is a single call
$ curl -X POST -H "X-API-Key: SUA_CHAVE" \
  "app.fontedata.com/api/v1/consulta/otp-verify?request_id=otp_5c1d0e&codigo=482913"
{ "verificado": true }
verificado: true R$ 0,29 per credit · verification at no cost
Use cases

What customers send over SMS

Every scenario below runs on the same five endpoints — only the text and the timing of the call change.

Phone verification at signup

Before you accept the signup, confirm the phone belongs to whoever is signing up. Two calls: otp-send and otp-verify.

2FA for login and transactions

Second factor at login, on a password change, when registering a Pix key or approving a transfer. You set how many digits the code has and how long it lasts.

Transactional notifications

Order confirmed, out for delivery, payment due, password changed. The reference makes sure a queue retry never sends the same message twice.

Reminders with confirmation

"Reply YES to confirm." The answer lands on your webhook in real time, already tied to the number that received the message.

Account recovery

An SMS code for users who lost access to their email or changed handsets and no longer have the authenticator app — nothing to install.

Operational alerts

Stalled queue, declined payment, blown limit. The on-call engineer gets it on the phone and can reply to log that they picked it up.

Endpoints

Five endpoints, one price

Sending consumes credit. Status checks and verification consume nothing.

Every 160 characters count as one credit. Longer messages consume proportionally more, rounded up, and the send response tells you exactly how many.

See the full price list →

Trust

What is already switched on, without asking

Automatic opt-out

Anyone who replies SAIR is suppressed immediately and gets a confirmation. Every future message to that number is blocked before it goes out — you keep no list of your own.

Permanent idempotency

Repeated the call with the same reference? It does not send again and it does not charge again. A queue retry stops being a duplicate-message risk.

Signed webhook

Replies arrive at the address you register in the portal, with an HMAC signature in the X-FonteData-Signature header. You verify the origin before processing.

Throughput and abuse protection

500 messages per minute per account, plus protection against repeated sends to the same destination number. If your volume needs more, we adjust it.

Delivery in seconds, with no magic promise

In practice the message usually arrives within seconds, but final delivery depends on the recipient carrier. That is why sms-status exists: you check instead of hoping.

LGPD: a phone number is personal data

Only message people you have a legal basis to contact, for a specific purpose. Every send returns a request_id, which is your record of what went to whom and when.

Same key, same invoice

OTP proves the phone. Data queries prove the owner.

Confirming the person is holding the handset is only half the problem.

An SMS code tells you that someone has access to that number. It does not tell you whose line it is, or whether the CPF they typed matches the account holder. At FonteData both halves live behind the same key: the OTP validates the handset, the query validates the person — and both land on the same invoice, drawn from the same prepaid balance.

Per-query pricing, no bundles and no minimum.

The next rung: Facial Verification

When a code is not enough — account opening, a high-value contract, an out-of-pattern withdrawal — the same signup can ask for liveness and a face match against the ID document.

Explore Facial Verification
FAQ

Questions before your first send

See the full documentation →

Create the account and send your first SMS today

No contract, no monthly fee, no minimum. R$ 0,29 per message, debited from the same balance as your data queries.

Already a FonteData customer? SMS runs on the key you already have.