Español (US)
Español (US)
Appearance
Español (US)
Español (US)
Appearance
Gestiona emisores de credenciales — las organizaciones o personas que entregan credenciales.
Todos los endpoints requieren autenticación mediante la cabecera X-Api-Key. Consulta Autenticación.
Crea un nuevo emisor.
POST /issuers| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
name | string | Sí | Nombre de la organización (mínimo 3 caracteres) |
url | string | Sí | Sitio web de la organización (URL HTTP/HTTPS válida) |
email | string | Sí | Correo de contacto del emisor |
logo | string | No | Imagen codificada en Base64 (PNG o JPG) |
linkedinOrganizationId | string | No | ID numérico de la página de empresa en LinkedIn. Si se define, cada página pública de otorgamiento de este emisor mostrará un botón Add to LinkedIn Profile. |
curl -X POST https://api.badges.ninja/issuers \
-H "X-Api-Key: bws_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"parameters": {
"name": "Acme Academy",
"url": "https://acme.example.com",
"email": "badges@acme.example.com"
}
}'{
"statusCode": 200,
"info": {
"issuerId": "https://api.badges.ninja/certify-badge/issuer/a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
}Recupera todos los emisores que has creado.
GET /issuerscurl -X GET https://api.badges.ninja/issuers \
-H "X-Api-Key: bws_your_api_key_here"{
"statusCode": 200,
"info": {
"issuers": [
{
"id": "https://api.badges.ninja/certify-badge/issuer/a1b2c3d4-...",
"name": "Acme Academy",
"url": "https://acme.example.com",
"email": "badges@acme.example.com",
"verified": true,
"timestamp": "2025-01-15T10:30:00.000Z"
}
]
}
}Verifica un emisor mediante el código de verificación enviado a su correo.
POST /issuers/{issuerId}/verify| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
issuerId | string | Sí | El ID del emisor (parámetro de ruta) |
code | string | Sí | El código de verificación recibido en el correo |
curl -X POST https://api.badges.ninja/issuers/a1b2c3d4-e5f6-7890-abcd-ef1234567890/verify \
-H "X-Api-Key: bws_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"parameters": {
"issuerId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"code": "ABC123"
}
}'{
"statusCode": 200,
"info": {
"verified": true
}
}Elimina un emisor. El emisor no puede tener credenciales.
DELETE /issuers/{issuerId}curl -X DELETE https://api.badges.ninja/issuers/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
-H "X-Api-Key: bws_your_api_key_here"{
"statusCode": 200,
"info": {
"deleted": true
}
}400 — el emisor tiene credenciales o otorgamientos y no puede eliminarse (suprímelos antes)404 — emisor no encontradoActualiza los campos de un emisor no verificado. Una vez verificado, solo logo y linkedinOrganizationId quedan editables para preservar la estabilidad de las credenciales.
PUT /issuers/{issuerId}| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
issuerId | string | Sí | El ID del emisor (parámetro de ruta) |
name | string | No | Nuevo nombre (solo si no está verificado) |
url | string | No | Nueva URL (solo si no está verificado) |
email | string | No | Nuevo correo (solo si no está verificado — envía un nuevo correo de verificación) |
logo | string | No | Nuevo logotipo codificado en Base64 |
linkedinOrganizationId | string | No | Nuevo LinkedIn organization ID (o cadena vacía para borrarlo) |
Invalida el enlace de verificación anterior y envía uno nuevo por correo. Solo vale mientras el emisor siga sin verificar.
POST /issuers/{issuerId}/rotate-code{
"statusCode": 200,
"info": {
"sent": true
}
}