Skip to main content

Crear Licencia

Crear una nueva licencia para un usuario u organización.

Endpoint

POST /api/licenses

Descripción

Este endpoint permite a administradores o usuarios autorizados crear nuevas licencias para usuarios u organizaciones. Esto incluye configurar tipos de licencia, características, duración y dominios asociados. El endpoint soporta varios tipos de licencia incluyendo personal, empresarial y empresarial.

Autenticación

Este endpoint requiere autenticación mediante token JWT con privilegios administrativos. Primero debes crear una sesión usando el endpoint /api/sessions para obtener un token JWT.

Parámetros

ParámetroTipoRequeridoDescripción
userIdstringID del usuario al que asignar esta licencia
licenseTypestringTipo de licencia ("personal", "business", "enterprise")
domainstringDominio principal para esta licencia (ej., "zelf", "avax", "bdag")
durationnumberDuración de la licencia en años
featuresarrayArray de características a incluir en esta licencia
pricenumberNoPrecio de la licencia en USD (para propósitos de facturación)
notesstringNoNotas adicionales o comentarios sobre esta licencia
autoRenewbooleanNoSi la licencia debe renovarse automáticamente (por defecto: false)

Respuesta

{
"data": {
"license": {
"id": "new_license_id",
"userId": "user_id_example",
"licenseType": "personal",
"domain": "zelf",
"status": "active",
"expiresAt": "2026-01-01T00:00:00Z",
"createdAt": "2025-01-01T00:00:00Z",
"updatedAt": "2025-01-01T00:00:00Z",
"features": ["basic_wallet", "face_auth"],
"price": 24,
"duration": 1,
"autoRenew": false,
"notes": "Personal license for new user"
}
}
}

Campos de Respuesta

CampoTipoDescripción
licenseobjectInformación de la licencia creada
license.idstringIdentificador único para la licencia creada
license.userIdstringID de usuario al que se asigna esta licencia
license.licenseTypestringTipo de licencia ("personal", "business", "enterprise")
license.domainstringDominio principal para esta licencia
license.statusstringEstado de la licencia ("active", "pending", "suspended")
license.expiresAtstringTimestamp ISO cuando expira la licencia
license.createdAtstringTimestamp ISO cuando se creó la licencia
license.updatedAtstringTimestamp ISO cuando se actualizó la licencia por última vez
license.featuresarrayArray de características incluidas en esta licencia
license.pricenumberPrecio de la licencia en USD
license.durationnumberDuración de la licencia en años
license.autoRenewbooleanSi la licencia debe renovarse automáticamente
license.notesstringNotas adicionales sobre esta licencia

Ejemplos

# Primero, crear una sesión para obtener el token JWT
curl -X POST "https://api.zelf.world/api/sessions" \
-H "Content-Type: application/json" \
-H "Origin: https://test.example.com" \
-d '{
"identifier": "test_session_123",
"type": "createWallet",
"isWebExtension": false
}'

# Luego crear una licencia
curl -X POST "https://api.zelf.world/api/licenses" \
-H "Content-Type: application/json" \
-H "Origin: https://test.example.com" \
-H "Authorization: Bearer YOUR_JWT_TOKEN_HERE" \
-d '{
"userId": "user_123",
"licenseType": "personal",
"domain": "zelf",
"duration": 1,
"features": ["basic_wallet", "face_auth"],
"price": 24,
"notes": "Personal license for new user",
"autoRenew": false
}'