Autenticación
El API REST requiere autenticación mediante un encabezado Bearer. Para autenticarte, debes incluir un token de API válido que te proporcionaremos al crear una cuenta en nuestra plataforma. A continuación, se describe cómo debes configurar la autenticación en tus solicitudes.
Obtener un Token de API
Para obtener un token de API, primero debes registrarte en nuestra plataforma tandiashop.com y crear una cuenta. Una vez que tu cuenta sea creada, recibirás un token de API único. Asegúrate de mantener este token seguro, ya que te permitirá acceder a recursos protegidos en el API.
Autenticación en las Solicitudes
Para autenticarte en las solicitudes al API, debes incluir el token de API en el encabezado Bearer de la siguiente manera:
GET /api/invoice
Host: invoice.test.tandia.io
Content-Type: application/json
Authorization: Bearer tu-token-de-api
Asegúrate de reemplazar tu-token-de-api con el token de API que se te proporcionó al crear tu cuenta.
Respuestas de Autenticación
Si la autenticación es exitosa, recibirás una respuesta con el código de estado HTTP 200 (OK) y podrás acceder a los recursos protegidos por el API.
En caso de una autenticación incorrecta o falta de token, recibirás una respuesta con un código de estado HTTP 401 (No autorizado) y un mensaje de error indicando la falta de autenticación.
Validaciones de seguridad y control de acceso
Los endpoints protegidos de Tandia API aplican autenticación Bearer mediante auth:api. El token enviado permite identificar la cuenta (accountId) y limitar las operaciones a los recursos asociados a esa cuenta.
| Control | Comportamiento |
|---|---|
| Bearer obligatorio | Los endpoints protegidos requieren Authorization: Bearer .... Si falta, es inválido o no corresponde a una cuenta válida, la solicitud se rechaza. |
| Alcance por cuenta | Las operaciones de compañías, documentos, certificados y credenciales se resuelven usando la cuenta identificada por el Bearer. |
api_key | Se usa para integraciones backend a backend. Debe guardarse como secreto de servidor y no exponerse en frontend público. |
secret_key | No autentica solicitudes Bearer. Se usa para verificar firmas, por ejemplo Tandia-Signature en webhooks. |
| Rate limit | Las rutas API pasan por el grupo api de Laravel, que incluye throttling del framework. |
Recomendaciones de integración
- Usa HTTPS en todas las llamadas y webhooks.
- Guarda
api_keyysecret_keysolo en backend o almacenes seguros. - Rota credenciales si se sospecha exposición.
- Valida siempre la firma de webhook antes de procesar eventos entrantes.
- No compartas tokens en aplicaciones frontend públicas ni en logs operativos.
Credenciales disponibles
Tandia API utiliza api_key como credencial Bearer:
El secret_key no se envía como Authorization en las solicitudes normales. Es una credencial sensible asociada a la cuenta y se usa para procesos de firma, por ejemplo firmas de URLs o datos relacionados con webhooks/documentos. Debe almacenarse de forma segura y no exponerse en clientes públicos.
Casuísticas de uso
| Caso | Credencial recomendada | Qué enviar | Resultado esperado |
|---|---|---|---|
| Integración backend a backend estable | api_key | Authorization: Bearer tu-token-de-api | La API identifica la cuenta asociada sin requerir login previo. |
| Validación de firmas, webhooks o datos firmados | secret_key | No se envía como Bearer | Se usa como secreto de firma/verificación cuando aplique. |
Uso con api_key
Si Tandia entrega directamente el api_key de la cuenta, puedes usarlo como token Bearer sin hacer login previo. Es la misma credencial que recibiste al crear tu cuenta en tandiashop.com.
GET /api/account/companies
Host: invoice.test.tandia.io
Content-Type: application/json
Authorization: Bearer tu-token-de-api
El backend valida el Bearer, identifica la cuenta asociada y verifica que la cuenta esté activa.
Ejemplos de Solicitudes
A continuación, se presentan ejemplos de solicitudes utilizando la autenticación Bearer con el token de API.
GET /api/document/doc_10987654321
Host: invoice.test.tandia.io
Content-Type: application/json
Authorization: Bearer tu-token-de-api