Certificate Issuance

The Certificate Issuance API allows you to issue a new digital certificate to a recipient.

This endpoint creates the certificate, associates it with an organization, and optionally sends an email notification to the recipient.

Endpoint

POST /api/certificates/issue

Description

Use this endpoint to issue a new certificate to a recipient.

You must provide the recipient’s details (name, email, and optional attributes), the organization ID under which the certificate is being issued, and optional email content if you want the certificate delivered via email.

Headers

  • x-api-key (required) – Your API key from the Akowe dashboard.

  • x-subaccount-email (optional) – Used to scope issuance to a particular user’s assets.

  • Content-Type: application/json

Request Body

Field
Type
Required
Description

recipientData

object

✅ Yes

Information about the recipient. Includes name, email, and optional certificate attributes. For attributes to work, you need need to create and position fields on your template with the same name as you have specified in the attributes object.

organizationId

string

✅ Yes

The unique ID of the organization issuing the certificate.

mailData

object

✅ Yes

Email configuration for sending the certificate. Includes templateId, subject, and body.

Example Request

curl --location '{{baseurl}}/api/certificates/issue' \
--header &#x27;x-api-key: <your_api_key>&#x27; \
--header 'x-subaccount-email: [email protected]' \
--header 'Content-Type: application/json' \
--data-raw '{
  "recipientData": {
    "name": "John Doe",
    "email": "[email protected]",
    "attributes": {
      "Course Name": "Machine Learning",
      "Grade": "Excellent"
    }
  },
  "organizationId": "ae08808f-85e5-4444-92ca-304a07531f3b",
  "mailData": {
    "templateId": "777e143a-f685-48da-bc8d-39105b8336c0",
    "subject": "Hello",
    "body": "This is a demo credential, congratulations"
  }
}'

Example Successful Response

{
  "success": true,
  "message": "Certificate issued successfully",
  "data": {
    "certificateId": "c2d9d40d-6f5e-4f3b-8c4b-8d7d2f35f122",
    "recipient": {
      "name": "John Doe",
      "email": "[email protected]",
    },
    "organizationId": "ae08808f-85e5-4444-92ca-304a07531f3b",
    "issuedAt": "2025-09-24T16:45:10.000Z"
  }
}

Issue Single Credential

post
Header parameters
x-api-keystringOptionalExample: live-4ddc3c34-c47d-423a-a49b-0dbc3dac75a1-0-4b355392-ef21-421a-b076-30cf9b7d1fe4
x-subaccount-emailstringOptionalExample: [email protected]
Body
objectOptionalExample: {"recipientData":{"name":"John Doe","email":"[email protected]","attributes":{"field 1":"value 1","field 2":"value 2"}},"organizationId":"ae08808f-85e5-4444-92ca-304a07531f3b","mailData":{"templateId":"777e143a-f685-48da-bc8d-39105b8336c0","subject":"Hello","body":"This is a demo credentail, congratulations"}}
Responses
200

Successful response

application/json
post
/certificates/issue
POST /certificates/issue HTTP/1.1
Host: {{baseurl}}
Content-Type: application/json
Accept: */*
Content-Length: 310

{
  "recipientData": {
    "name": "John Doe",
    "email": "[email protected]",
    "attributes": {
      "field 1": "value 1",
      "field 2": "value 2"
    }
  },
  "organizationId": "ae08808f-85e5-4444-92ca-304a07531f3b",
  "mailData": {
    "templateId": "777e143a-f685-48da-bc8d-39105b8336c0",
    "subject": "Hello",
    "body": "This is a demo credentail, congratulations"
  }
}
200

Successful response

No content