Validate SPEI payments from a bot

A bot that only receives a receipt isn't validating anything: it moves the same problem from one chat to another. This guide explains how to connect a bot to a source that actually confirms the payment, and what to answer while there's no verdict yet.

What a bot can do alone

A bot can receive a photo or a PDF, read the data it carries, and show it to whoever manages it. That's already useful: it saves transcribing the amount and date by hand.

What a bot can't do alone is confirm the receipt is real. Reading the data off an image doesn't prove the payment existed: an edited capture carries the same data as a genuine one, until someone cross-checks it with the official source.

How it connects to the CEP

The pattern that actually validates has three steps: the bot receives the receipt, calls a validation API with the data it read or the user typed, and answers with the verdict the API returns — not with what the user said.

The difference shows in the answer: a bot with no validation says "got your receipt"; one that validates says "confirmed, $1,500.00 MXN on September 17" or "not found yet".

With VerikoVeriko's Telegram bot does exactly those three steps: it receives the receipt, looks up the CEP and answers with the verdict in the same chat.

What to answer without a verdict

The CEP isn't always published the moment someone sends the receipt: it can take a while to appear. A "not found" doesn't mean "fake"; it means Banxico hasn't published it yet.

The bot should say exactly that, without jumping ahead: "Banxico hasn't published it yet, try again in a few minutes" is honest; "this receipt is fake" over a plain "not found" is not.

ImportantIf the bot is going to retry on its own, give it a reasonable time limit before giving up: checking every few minutes for half an hour covers most cases without overloading the API.

Bank of Mexico

How Veriko does it

Veriko's Telegram bot looks up the CEP with Banxico and answers in the same chat: it receives the photo or PDF of the receipt and delivers the verdict in about 10 seconds.

If you build your own bot — on Telegram, WhatsApp or another platform —, you can call the same API our bot uses and build the validation into yours.

What you needA bot that only forwardsWith Veriko
DataWhat someone reads and transcribes by handPhoto, PDF or captured data, read by the system
HoursWhoever is checking the chatAny time, without depending on a person
VolumeOne at a time, as fast as someone can readHundreds of receipts per hour
ResultAn opinion, not a confirmationVerdict confirmed by Banxico, with date, amount and banks
LogThe chat history, if no one deletes itHistory of every validation, with its CEP

If your bot receives payments every day, every unvalidated receipt is a chance for fraud. There's a free plan that never expires to try it, and the pricing page compares the plans.

Bank receipt capture from the demo, with personal data masked
Figure The demo capture What Veriko receives: amount, destination account, date and tracking key. The Telegram bot answers with the same verdict you see here. See the validation in the demo

Frequently asked questions

Can a WhatsApp bot validate a receipt on its own?

No. It can read the data off the image, but confirming the payment existed requires looking up the CEP with Banxico.

What do I need to connect my bot to a validation API?

An API key and the payment's minimum data: date, tracking key or reference, and the sending and receiving banks.

What do I answer the user if the CEP doesn't exist yet?

That Banxico hasn't published it yet and that you'll try again in a few minutes. It's not the same as a fake receipt.

Can the bot mistake an edited receipt for a real one?

If it only reads the image, yes: edited data reads the same as real data. Cross-checking it with the CEP is what rules out an edit.

Does Veriko have its own bot?

Yes, on Telegram. It receives the receipt and answers with the verdict in the same chat.

Can I validate before the bot answers the user?

Yes, and it's the recommended order: validate first, and let the answer to the user already carry the verdict instead of a generic "received".

Start validating your payments

Create a free account and we confirm your first payment with Banxico.

Start free