The full table
The number next to a fact links to the exact source. "Not applicable" is a different kind of product (a library, an API that doesn't validate a CEP). "No data" is something that couldn't be verified.
| Criterion | Veriko | apicep.cloud | tlaloc.sh | Prometeo | Wire4 | cep-python |
|---|---|---|---|---|---|---|
| Endpoints | 460+ documented operations | 1, with two modes (receipt photo or direct data) 1 | 3 CEP-specific endpoints 4 | no data | not applicable (doesn't validate third-party CEPs) | 1 method, validar() 8 |
| Webhooks | yes, signed | not documented 1 | not documented 4 | no data | no data | not applicable (it's a library) |
| Retries | yes, configurable policy | no — the client sets its own interval 1 | not documented 4 | no data | no data | no — the caller catches the exception 8 |
| Idempotency | yes, Idempotency-Key header | not documented 1 | not documented 4 | no data | no data | not applicable |
| Batches | yes, bulk import | no — one request at a time 1 | no — one query per call 4 | no data | no data | no — one transfer per call 8 |
| Test environment | no | not documented 1 | no — just a $10 MXN coupon 5 | yes, at the platform level, not CEP-specific 6 | yes, documented in their developer hub 7 | yes, Banxico's test environment 8 |
| SPID | no | yes 1 | not mentioned 3 | no data | no data | no — SPEI only |
| Price per validation | $0.26–$0.30 MXN, plan-dependent | $0.25–$0.50 MXN, plan-dependent 2 | $0.10 MXN, flat 5 | no data | no data, they don't publish the amount 7 | $0, uses Banxico's free service |
| Billing | Stripe, monthly subscription | prepaid package, valid 30 days 2 | balance funded by SPEI, no subscription, valid 12 months 5 | no data | per transaction plus a monthly fee, charged to a Monex Digital Account 7 | not applicable |
| Documentation | full portal, ES/EN, OpenAPI reference | one reference page, in Spanish 1 | full Swagger/OpenAPI reference 4 | password-protected 6 | own developer portal 7 | the repository's README 8 |
| Status page | own, plus external monitoring | yes, Better Uptime 1 | not found | not found | not found | not applicable |
| SDK | in development, Python and JavaScript | none found | none found | no data | yes, its own section 7 | it is the SDK, cepmex on PyPI 8 |
Current limitations
Three things Veriko doesn't offer yet: SPID (apicep.cloud has it), a test environment with its own keys (no provider focused on CEP offers that either), and a price built for integrators who process few receipts a month. These are product and pricing decisions, not something this comparison settles.
Frequently asked questions
What is the cheapest option?
tlaloc.sh, at $0.10 MXN per query, with no webhooks or SDK.
Does any API support SPID?
Only apicep.cloud.
Does any of them offer a test environment?
Wire4 and cep-python do. None of the three focused on CEP validation (Veriko, apicep.cloud, tlaloc.sh) offers one.
Do they have an official SDK?
Veriko is building one for Python and one for JavaScript. Wire4 already publishes its own. apicep.cloud and tlaloc.sh have none; cep-python is, itself, a Python client.
Why is Wire4 here if it doesn't validate CEPs?
It competes for the same search: SPEI in Mexico. But it's a different product: it sends and receives payments from a Monex account you own, it doesn't validate receipts from other banks.
Why does Prometeo have so many "no data" cells?
Their documentation requires a password, and pricing is only available by contacting sales. It's not a proven shortfall: it's closed access.
How is this table kept up to date?
It's re-read every monthly cycle. If a provider changes something, the cell updates with the date of that reading.
What do I do if a fact is wrong?
Write to us from the contact page with the correct source. We fix it.