Usuarios
Endpoints de sesión para perfil del usuario autenticado y gestión de miembros del equipo por contribuyente.
Esta API utiliza autenticación Keycloak. Ver Autenticación para obtener un token JWT.
Estos endpoints exponen el perfil del usuario autenticado y permiten administrar los miembros del equipo asociados a cada contribuyente.
Perfil del usuario actual
| Método | Path | Descripción |
|---|---|---|
GET | /api/v1/usuarios/me | Perfil del usuario autenticado |
PATCH | /api/v1/usuarios/me | Actualizar nombre y apellido |
UpdateUsuarioRequest
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
nombre | string (≤255) | ✅ | Nombre del usuario |
apellido | string (≤255) | ✅ | Apellido del usuario |
username y correoElectronico son administrados por Keycloak y no se editan desde este endpoint. Para cambiar el email o la contraseña, usá la cuenta de Keycloak (/auth/realms/sifende/account).
UsuarioDTO
| Campo | Tipo | Descripción |
|---|---|---|
usuarioId | long | ID interno |
keycloakSub | string | Sub claim del JWT |
username | string | Username Keycloak |
correoElectronico | string | Email Keycloak |
nombre | string | Nombre |
apellido | string | Apellido |
estaActivo | boolean | Si la cuenta está activa |
ultimoLogin | datetime? | Último login registrado |
fechaCreacion | datetime | Alta en Sifende |
fechaEdicion | datetime | Última modificación |
contribuyentes | ContribuyenteDTO[] | Contribuyentes asociados al usuario |
Ejemplo
curl https://api.sifende.com.py/api/v1/usuarios/me \
-H "Authorization: Bearer $KEYCLOAK_JWT"Respuesta:
{
"status": "success",
"payload": {
"usuarioId": 4,
"keycloakSub": "f8c4a2d1-9b3e-4f7a-b6d2-1c8e5f0a3d7b",
"username": "sebastian@guarani.com.py",
"correoElectronico": "sebastian@guarani.com.py",
"nombre": "Sebastián",
"apellido": "Álvarez",
"estaActivo": true,
"ultimoLogin": "2026-04-27T08:14:33",
"fechaCreacion": "2026-01-15T09:00:00",
"fechaEdicion": "2026-04-02T11:20:00",
"contribuyentes": [
{
"contribuyenteId": 12,
"ruc": "80012345",
"dv": "1",
"razonSocial": "Comercial Guaraní S.A.",
"tieneCertificado": true
}
]
}
}Miembros del equipo
Cada contribuyente puede tener múltiples usuarios miembros (operadores) además del propietario.
| Método | Path | Descripción |
|---|---|---|
GET | /api/v1/contribuyentes/:id/miembros | Lista miembros del contribuyente |
POST | /api/v1/contribuyentes/:id/miembros/invitar | Envía una invitación por email |
DELETE | /api/v1/contribuyentes/:id/miembros/:usuarioId | Quita un miembro |
MiembroDTO
| Campo | Tipo | Descripción |
|---|---|---|
usuarioId | long | ID del usuario |
nombre | string | Nombre |
apellido | string | Apellido |
correoElectronico | string | |
esPropietario | boolean | true si es el creador del contribuyente |
fechaCreacion | datetime | Alta como miembro |
ultimoLogin | datetime? | Último login |
Invitar a un miembro
curl -X POST https://api.sifende.com.py/api/v1/contribuyentes/12/miembros/invitar \
-H "Authorization: Bearer $KEYCLOAK_JWT" \
-H "Content-Type: application/json" \
-d '{ "email": "operador@guarani.com.py" }'Respuesta 202 Accepted: la invitación se envía por email. Si el destinatario no tiene cuenta, recibe un link para registrarse y aceptar.
Quitar un miembro
curl -X DELETE https://api.sifende.com.py/api/v1/contribuyentes/12/miembros/27 \
-H "Authorization: Bearer $KEYCLOAK_JWT"Respuesta 204 No Content. Solo el propietario puede quitar miembros.
No podés quitar al propietario del contribuyente. Para transferir la propiedad contactá a soporte.