TrieOH
UniventsAPICertifications

Enqueue certification emission for a program

Enqueues the `cert.grant_occurrence` job for the program's participants. The job is idempotent: it only emits certificates for participants who do not already hold one for the program (accountless gifted participants are skipped), and records failures for later inspection via `/editions/{edition_id}/certifications/emission-errors`. The actor must be an owner or admin of the event.

POST/programs/{program_id}/certifications/emit

Enqueues the cert.grant_occurrence job for the program's participants. The job is idempotent: it only emits certificates for participants who do not already hold one for the program (accountless gifted participants are skipped), and records failures for later inspection via /editions/{edition_id}/certifications/emission-errors. The actor must be an owner or admin of the event.

Authorization

bearerAuth
AuthorizationBearer <token>

JWT issued by IdentityX, signed with Ed25519

In: header

Path Parameters

program_id*string

Program ID.

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X POST "https://example.com/programs/497f6eca-6276-4993-bfeb-53cbbbba6f08/certifications/emit"
{
  "program_id": "70c1146b-e933-4cb2-a789-bbca5312b517",
  "queued": true
}
{
  "detail": "string",
  "instance": "../dictionary",
  "errors": [
    {
      "field": "string",
      "message": "string"
    }
  ],
  "type": "http://example.com",
  "status": 401,
  "title": "Unauthenticated"
}
{
  "detail": "string",
  "instance": "../dictionary",
  "errors": [
    {
      "field": "string",
      "message": "string"
    }
  ],
  "type": "http://example.com",
  "status": 403,
  "title": "Insufficient Role"
}
{
  "detail": "string",
  "instance": "../dictionary",
  "errors": [
    {
      "field": "string",
      "message": "string"
    }
  ],
  "type": "http://example.com",
  "status": 404,
  "title": "Not Found"
}
{
  "detail": "string",
  "instance": "../dictionary",
  "errors": [
    {
      "field": "string",
      "message": "string"
    }
  ],
  "type": "http://example.com",
  "status": 500,
  "title": "Internal Server Error"
}