Para agentes de IA

Que tu agente facture por ti

Notsy expone facturación CFDI 4.0 y claves del SAT como un servidor MCP remoto y una API REST. Conecta Claude, ChatGPT o tu agente con una API key — con permisos y límites que tú defines.

Conecta por MCP

Endpoint (Streamable HTTP): https://mcp.notsy.com.mx/mcp. Autentica con tu API key como Authorization: Bearer ntsy_…. Pega esto en la config de tu cliente MCP:

{
  "mcpServers": {
    "notsy-facturacion": {
      "url": "https://mcp.notsy.com.mx/mcp",
      "headers": { "Authorization": "Bearer ntsy_TU_LLAVE" }
    }
  }
}

¿Prefieres REST? Usa la especificación OpenAPI — los endpoints de agente viven bajo /agent/* y usan la misma API key como Bearer.

Herramientas

Flujo recomendado: resolver claves → preview → emitir.

resolver_claves_sat

Descripción en lenguaje natural → claves del SAT (prod/serv, unidad, objeto de impuesto, uso de CFDI).

preview_factura

Dry-run: valida y calcula totales (subtotal, IVA, retenciones, total) sin timbrar ni costo.

emitir_cfdi

Emite y timbra un CFDI 4.0 oficial ante el SAT. Aplica límites e idempotencia.

whoami

Identidad del agente: permisos (scopes), límites y uso del día.

Idempotencia — obligatoria en producción

Un timbre es una acción real, con costo y difícil de revertir. Sin clave de idempotencia, un reintento por timeout o corte de red duplica el CFDI ante el SAT. Por eso toda emisión en producción debe llevar una:

Emitir usa la misma bolsa de créditos y la suscripción de la cuenta dueña de la API key. El servidor cotiza, reserva y confirma el consumo; el agente no manda precios ni puede cargarle créditos a otra identidad.

  • • REST: header Idempotency-Key en POST /agent/facturas.
  • • MCP: argumento idempotency_key del tool emitir_cfdi.

Con la misma clave, el motor devuelve el resultado original sin timbrar de nuevo; si una solicitud idéntica sigue en proceso responde 409 — reintenta con backoff. La clave es única por operación de negocio (un UUID por factura, no por request):

# Genera UNA clave por operación de negocio (no por request)
# y reúsala en TODOS los reintentos de ESA factura.
IDEM_KEY="$(uuidgen)"          # o un id natural: "pedido-1234"

curl -X POST https://api.notsy.com.mx/agent/facturas \
  -H "Authorization: Bearer ntsy_..." \
  -H "Idempotency-Key: $IDEM_KEY" \
  -H "Content-Type: application/json" \
  -d @factura.json

# Timeout o error de red → reintenta con la MISMA clave:
# el motor devuelve el CFDI original sin timbrar de nuevo.

Si el motor rechaza los datos antes de timbrar (error 4xx de validación), la clave se libera sola: corrige el payload y reintenta con la misma clave sin problema.

Seguridad por diseño

  • API keys por negocio, con permisos (scopes) y revocación instantánea.
  • La e.firma y el CSD nunca se exponen al agente — solo operaciones de alto nivel.
  • Límites de emisión por llave (CFDIs/día, monto) y umbral de aprobación humana.
  • Idempotencia obligatoria en producción para evitar timbrados duplicados; cada acción queda en bitácora.

Genera tu API key y conecta tu agente

Desde tu panel, en la sección “Conecta tu agente de IA”. Defines permisos y límites; la revocas cuando quieras.

Entrar y crear mi llave