Saltar al contenido
Autenticación

Autenticación

La API de Facturación usa llaves de API para la autenticación, similar a Stripe.

Llaves de API

Cada solicitud debe incluir tu llave de API mediante HTTP Basic Auth:

curl https://api.facturacion.srs-ngr.com/v1/facturas \
  -u sk_test_4eC39HqLyjWDarjtT1zdp7dc:

La llave de API es el nombre de usuario. La contraseña está vacía (nota los dos puntos al final).

Modo de prueba vs. Modo en vivo

Tu cuenta tiene dos tipos de llaves:

Prefijo de llaveModoEfecto
sk_test_PruebaUsa el sandbox del PAC. Sin facturas reales. Sin impacto fiscal.
sk_live_En vivoTimbrado real. CFDIs legalmente vinculantes.

El prefijo de la llave determina el modo automáticamente. Mismos endpoints, misma API — solo una llave diferente.

Las cuentas nuevas comienzan solo con llaves de prueba. Sube un CSD válido y completa el proceso de incorporación para desbloquear las llaves en vivo.

Creación de llaves de API

curl https://api.facturacion.srs-ngr.com/v1/llaves_api \
  -u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \
  -H "Content-Type: application/json" \
  -d '{"nombre": "Backend production", "modo": "live"}'
{
  "id": "...",
  "prefijo": "sk_live_xY9k...",
  "secreto": "sk_live_xY9kA3bC7dE8fG1hI2jK4lM5nO6pQ7rS8tU9v0",
  "nombre": "Backend production",
  "modo": "live"
}
El campo secreto solo se devuelve una vez, al momento de la creación. Guárdalo de forma segura. No se mostrará de nuevo.

Revocación de llaves

curl -X DELETE https://api.facturacion.srs-ngr.com/v1/llaves_api/{id} \
  -u sk_test_4eC39HqLyjWDarjtT1zdp7dc:

Las llaves revocadas dejan de funcionar inmediatamente.

Mejores prácticas de seguridad

  • Nunca expongas llaves de API en código del lado del cliente o en repositorios de Git.
  • Usa llaves sk_test_ durante el desarrollo. Cambia a sk_live_ solo en producción.
  • Rota las llaves periódicamente y revoca las que no estén en uso.
  • Cada llave está asociada a una sola cuenta. Usa llaves separadas para entornos separados.