Gestion de Credenciales
Los API Clients se administran desde el backoffice de Fidely. Cada comercio puede crear multiples credenciales para distintos integradores.
Crear API Client
POST /stores/{storeId}/api-clients
Authorization: Bearer {jwt-backoffice}
Request:
{
"name": "POS Externo",
"scopes": ["clients:read", "clients:write", "transactions:write", "swap:write"],
"rate_limit_per_min": 120
}
Response 201:
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"client_secret": "1a2b3c4d5e6f7890abcdef1234567890abcdef123456",
"store_id": 17,
"name": "POS Externo",
"scopes": ["clients:read", "clients:write", "transactions:write", "swap:write"],
"rate_limit_per_min": 120,
"enabled": true,
"created_at": "2026-03-16 01:00:00"
}
El client_secret solo se muestra una vez
Copia y guarda el client_secret en un lugar seguro. No se puede recuperar despues. Si lo perdes, usa el endpoint de regenerar secret.
Listar API Clients
GET /stores/{storeId}/api-clients
Authorization: Bearer {jwt-backoffice}
Response 200:
[
{
"id": "a1b2c3d4-...",
"store_id": 17,
"name": "POS Externo",
"scopes": ["clients:read", "transactions:write"],
"rate_limit_per_min": 120,
"enabled": true,
"last_used_at": "2026-03-16 10:30:00",
"created_at": "2026-03-16 01:00:00"
}
]
Actualizar API Client
POST /stores/{storeId}/api-clients/{clientId}/update
Authorization: Bearer {jwt-backoffice}
Request:
{
"name": "POS Externo v2",
"scopes": ["*"],
"rate_limit_per_min": 200,
"enabled": true
}
Deshabilitar API Client
Para revocar el acceso de un integrador sin eliminarlo:
POST /stores/{storeId}/api-clients/{clientId}/update
{ "enabled": false }
El integrador recibira 403 API client is disabled en cada request.
Regenerar Secret
Si el secret fue comprometido o perdido:
POST /stores/{storeId}/api-clients/{clientId}/regenerate-secret
Authorization: Bearer {jwt-backoffice}
Response 200:
{
"client_id": "a1b2c3d4-...",
"client_secret": "nuevo-secret-generado-aqui"
}
aviso
El secret anterior queda invalidado inmediatamente. El integrador debe actualizar su configuracion antes de hacer nuevos requests.
Eliminar API Client
POST /stores/{storeId}/api-clients/{clientId}/delete
Authorization: Bearer {jwt-backoffice}
Logs de acceso
Cada request realizado con un API Client queda registrado en la tabla api_access_log con:
| Campo | Descripcion |
|---|---|
client_id | UUID del API Client |
store_id | ID del comercio |
method | Metodo HTTP (GET, POST) |
path | Ruta del endpoint |
status_code | Codigo de respuesta |
ip_address | IP de origen |
duration_ms | Duracion en milisegundos |
created_at | Timestamp |