Observatorio CFDIbeta
Para máquinas

API y agentes de IA

Todo el portal existe también como JSON con fecha de verificación y fuente en cada respuesta. Lo básico es gratis y sin llave; lo detallado se paga por consulta con el protocolo x402 (HTTP 402) o con una llave Pro. Los rastreadores y asistentes que citan la fuente son bienvenidos.

1. Descubrir

/llms.txt describe el sitio para modelos de lenguaje. /api/v1 es el índice con precios y /api/v1/openapi.json la especificación.

2. Leer gratis

Sin llave ni cabeceras especiales. Identifica a tu agente en el User-Agent y cita "Observatorio CFDI, verificado el <fecha de la respuesta>".

3. Pagar por consulta

Los endpoints /premium responden 402 con los datos de pago; el cliente x402 lo resuelve solo. Con llave Pro, pasan sin pagar.

Endpoints gratuitos

EndpointQué regresa
GET /api/v1Índice del API: endpoints, precios y cómo pagar.
GET /api/v1/pacsLos 49 PAC de la lista oficial del SAT y el facturador del SAT: segmento, API conocida, participación de mercado, autorización vigente o revocada y estado actual del servicio gratuito.
GET /api/v1/pacs/{slug}Ficha de un proveedor: perfil verificado, fuentes, participación de mercado y estado actual.
GET /api/v1/estadoEstado actual del servicio gratuito de todos los proveedores (última corrida).
GET /api/v1/mercadoEl mercado en cifras oficiales del SAT: totales, los 10 primeros por facturas y por contribuyentes, bajas recientes y fecha de corte.
GET /api/v1/costosPrecios públicos del timbrado en México (PAC, revendedores y SAT), cada uno con fuente y fecha.
curl -s https://observatorio.app.corderoai.com/api/v1/mercado | jq '.top.facturas[0:3]'
curl -s https://observatorio.app.corderoai.com/api/v1/pacs/sw-sapien-smartweb | jq '.mercado'

Endpoints de paga (x402)

x402 todavía no está activado en este despliegue: los endpoints de paga responden 503 con instrucciones. Se activa en cuanto exista la wallet de la empresa (primero en la red de pruebas Base Sepolia, después en Base).
EndpointQué regresaUSD / consulta
GET /api/v1/premium/mercado/seriesSeries completas 2011–hoy de facturas y contribuyentes de los 50 PAC, con participación, posición y crecimiento por año.$0.02
GET /api/v1/premium/pacs/{slug}/historialHistorial completo de verificaciones de un proveedor: fecha, código, detalle y latencia.$0.01
GET /api/v1/premium/benchmarkBenchmark completo: disponibilidad, latencia mediana, rachas, participación de mercado y ranking de todos los proveedores.$0.05

Cómo funciona el pago

  1. Pides el endpoint sin pagar. Recibes 402 Payment Required con la cabecera PAYMENT-REQUIRED: monto, red, activo (USDC) y dirección de cobro.
  2. Tu cliente firma el pago con su wallet y repite la petición con la cabecera PAYMENT-SIGNATURE.
  3. Verificamos con el facilitador y respondemos. Solo se liquida el pago si la respuesta fue exitosa.

Con el cliente oficial en TypeScript el flujo es automático:

import { wrapFetchWithPayment } from "@x402/fetch";
// tu firmante (viem/ethers) con USDC en la red indicada
const fetchConPago = wrapFetchWithPayment(fetch, cliente);
const r = await fetchConPago("https://observatorio.app.corderoai.com/api/v1/premium/mercado/series");
const series = await r.json();

Con llave Pro (sin pagar por consulta)

curl -H "Authorization: Bearer <tu-llave>" \
  https://observatorio.app.corderoai.com/api/v1/premium/pacs/prodigia-pade/historial

Reglas de la casa