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 llave | Modo | Efecto |
|---|---|---|
sk_test_ | Prueba | Usa el sandbox del PAC. Sin facturas reales. Sin impacto fiscal. |
sk_live_ | En vivo | Timbrado 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 ask_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.