Empezar
Autenticación
Usuario y contraseña en cada petición, con autenticación básica de HTTP. Sin tokens que caduquen ni pasos extra.
Cómo va
Cada petición lleva la cabecera Authorization: Basic con usuario:contraseña en base64. Todos los clientes HTTP la arman solos: en cURL es -u, en Python auth=.
HTTP
POST /api/TimbrarCfdiObj HTTP/1.1
Host: pruebas.timbrado.idea15.com
Authorization: Basic dHUtdXN1YXJpbzp0dS1jb250cmFzZcOxYQ==
Content-Type: application/jsonPor compatibilidad con el servicio anterior también se aceptan user y password dentro del cuerpo. No hacen falta; si mandas user, tiene que ser el mismo de la cabecera.
Si algo no cuadra
| Código | HTTP | Qué significa |
|---|---|---|
| 102 | 401 | Usuario o contraseña inválidos, o la cuenta está desactivada. |
| 102 | 429 | Diez intentos fallidos en cinco minutos para ese usuario desde tu IP (o cien de cualquier usuario). Espera los segundos de Retry-After. |
Tu cuenta no paga los errores de otros
Una cuenta que ya entró bien nunca se frena, aunque otro sistema se equivoque de contraseña desde la misma IP.
Buenas prácticas
- Guárdalas como secreto de tu servidor (variables de entorno, un gestor de secretos), nunca en el código ni en el repositorio.
- Nunca en el navegador ni en una app de teléfono: el servicio no acepta llamadas desde páginas web, a propósito.
- Una cuenta por sistema (tu ERP, tu tienda, cada sucursal): así cambias la contraseña de uno sin tocar a los demás.
- Sólo por HTTPS. El host de pruebas es
https://pruebas.timbrado.idea15.comy el de producciónhttps://timbrado.idea15.com.
