Skip to content

API d'emissors

Gestiona emissors de credencials — les organitzacions o persones que lliuren credencials.

Tots els endpoints requereixen autenticació amb la capçalera X-Api-Key. Consulta Autenticació.

Crear emissor

Crea un nou emissor.

POST /issuers

Paràmetres

ParàmetreTipusObligatoriDescripció
namestringNom de l'organització (mínim 3 caràcters)
urlstringLloc web de l'organització (URL HTTP/HTTPS vàlida)
emailstringCorreu de contacte de l'emissor
logostringNoImatge codificada en Base64 (PNG o JPG)
linkedinOrganizationIdstringNoID numèric de la pàgina d'empresa a LinkedIn. Si es defineix, cada pàgina pública d'atorgament d'aquest emissor mostra un botó Add to LinkedIn Profile.

Exemple

bash
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"
    }
  }'

Resposta

json
{
  "statusCode": 200,
  "info": {
    "issuerId": "https://api.badges.ninja/certify-badge/issuer/a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  }
}

Notes

  • Es comptabilitza contra el límit d'emissors del teu pla (Free: 1, Starter: 5, Pro: il·limitats). Sense descompte de quota.
  • Si el correu de l'emissor coincideix amb el correu del teu compte, es verifica automàticament.
  • Si el correu és diferent, s'envia un correu de verificació a l'adreça de l'emissor.

Llistar emissors

Recupera tots els emissors que has creat.

GET /issuers

Exemple

bash
curl -X GET https://api.badges.ninja/issuers \
  -H "X-Api-Key: bws_your_api_key_here"

Resposta

json
{
  "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"
      }
    ]
  }
}

Verificar emissor

Verifica un emissor amb el codi de verificació enviat al seu correu.

POST /issuers/{issuerId}/verify

Paràmetres

ParàmetreTipusObligatoriDescripció
issuerIdstringL'ID de l'emissor (paràmetre de ruta)
codestringEl codi de verificació rebut al correu

Exemple

bash
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"
    }
  }'

Resposta

json
{
  "statusCode": 200,
  "info": {
    "verified": true
  }
}

Eliminar emissor

Elimina un emissor. L'emissor no pot tenir credencials.

DELETE /issuers/{issuerId}

Exemple

bash
curl -X DELETE https://api.badges.ninja/issuers/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
  -H "X-Api-Key: bws_your_api_key_here"

Resposta

json
{
  "statusCode": 200,
  "info": {
    "deleted": true
  }
}

Errors

  • 400 — l'emissor té credencials o atorgaments i no es pot eliminar (suprimeix-los abans)
  • 404 — emissor no trobat

Actualitzar emissor

Actualitza els camps d'un emissor no verificat. Un cop verificat, només logo i linkedinOrganizationId queden editables per preservar l'estabilitat de les credencials.

PUT /issuers/{issuerId}

Paràmetres

ParàmetreTipusObligatoriDescripció
issuerIdstringL'ID de l'emissor (paràmetre de ruta)
namestringNoNou nom (només si no està verificat)
urlstringNoNova URL (només si no està verificat)
emailstringNoNou correu (només si no està verificat — envia un nou correu de verificació)
logostringNoNou logotip codificat en Base64
linkedinOrganizationIdstringNoNou LinkedIn organization ID (o cadena buida per esborrar-lo)

Rotar codi de verificació

Invalida l'enllaç de verificació anterior i envia'n un de nou per correu. Només vàlid mentre l'emissor continuï sense verificar.

POST /issuers/{issuerId}/rotate-code

Resposta

json
{
  "statusCode": 200,
  "info": {
    "sent": true
  }
}

badges.ninja Documentation