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.
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.
Flujo recomendado: resolver claves → preview → emitir.
resolver_claves_satDescripción en lenguaje natural → claves del SAT (prod/serv, unidad, objeto de impuesto, uso de CFDI).
preview_facturaDry-run: valida y calcula totales (subtotal, IVA, retenciones, total) sin timbrar ni costo.
emitir_cfdiEmite y timbra un CFDI 4.0 oficial ante el SAT. Aplica límites e idempotencia.
whoamiIdentidad del agente: permisos (scopes), límites y uso del día.
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.
Idempotency-Key en POST /agent/facturas.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.
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