Quick Start
This guide walks you through issuing a digital certificate end-to-end using real API calls. You’ll create the minimum required entities and issue a certificate in a single session.
All entities must belong to the same tenant. Obtain your credentials from the DokStamp dashboard before starting.
Prerequisites
API credentials (email + password)
Your X-Tenant identifier
A PDF file of the certificate to issue
Step 1 — Authenticate
curl -X POST https://api.dokstamp.eu/auth/login \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"email": "admin@myschool.edu", "password": "secret"}'
Save the access_token from the response. You’ll use it in every subsequent request.
Step 2 — Create an Institution
An institution is the issuing body. It must exist before courses or certificates.
curl -X POST https://api.dokstamp.eu/institutions \
-H "Authorization: Bearer {TOKEN}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Tenant: {TENANT}" \
-d '{
"name": "My University",
"legal_name": "My University Foundation",
"tax_id": "00.000.000/0001-00",
"country": "Brazil",
"website": "https://myuniversity.edu.br",
"status": "active"
}'
Save the uuid from the response — you’ll need it as institution_uuid.
Step 3 — Create a Course
curl -X POST https://api.dokstamp.eu/courses \
-H "Authorization: Bearer {TOKEN}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Tenant: {TENANT}" \
-d '{
"name": "Bachelor of Computer Science",
"code": "BCS-2024",
"description": "4-year undergraduate program in computer science.",
"workload_hours": 3200,
"status": "active",
"institution_uuid": "{INSTITUTION_UUID}"
}'
Save the uuid as course_uuid.
Step 4 — Create a Student
curl -X POST https://api.dokstamp.eu/students \
-H "Authorization: Bearer {TOKEN}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Tenant: {TENANT}" \
-d '{
"name": "Maria Fernanda Silva",
"email": "maria@email.com",
"date_of_birth": "1998-05-20",
"gender": "female"
}'
Save the uuid as student_uuid.
Step 5 — Upload the PDF
Upload the signed certificate PDF file:
curl -X POST https://api.dokstamp.eu/files \
-H "Authorization: Bearer {TOKEN}" \
-H "Accept: application/json" \
-H "X-Tenant: {TENANT}" \
-F "files[]=@/path/to/certificate.pdf"
The response returns an array. Save the first item’s uuid as file_uuid.
Step 6 — Issue the Certificate
Now combine everything into a certificate:
curl -X POST https://api.dokstamp.eu/certificates \
-H "Authorization: Bearer {TOKEN}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Tenant: {TENANT}" \
-d '{
"institution_uuid": "{INSTITUTION_UUID}",
"course_uuid": "{COURSE_UUID}",
"student_uuid": "{STUDENT_UUID}",
"file_uuid": "{FILE_UUID}",
"status": "issued",
"issued_at": "2024-12-01T00:00:00Z"
}'
Response:
{
"data" : {
"uuid" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ,
"status" : "issued" ,
"issued_at" : "2024-12-01T00:00:00.000000Z" ,
"public_verification_url" : "https://verificar.dokstamp.eu/a1b2c3d4" ,
"student" : { "name" : "Maria Fernanda Silva" },
"course" : { "name" : "Bachelor of Computer Science" },
"institution" : { "name" : "My University" }
}
}
The public_verification_url is the shareable link for credential verification.
What’s next?
Entity Registration Order See the full dependency map before building integrations.
Certificate Lifecycle Learn how certificates move from draft to issued, revoked, and expired.
Issue Certificate Guide A longer guide with modules, cohorts, enrollments, and templates.
API Reference Full parameter reference for every endpoint.