Skip to main content

Syncing Academic Structure

This page covers how to sync each academic entity from your system to DokStamp, in the correct dependency order.
Always follow the order below. Creating a certificate before its dependencies exist will result in 422 validation errors.

Sync order


Step 2 — Syncing a course

When a course is created or updated in your system, mirror the change to DokStamp.

Step 3 — Syncing modules/disciplines


Step 4 — Attaching modules to a course

After creating/syncing both the course and its modules, attach them:
Re-attaching a module that is already attached to a course will return a 422. To check which modules are already attached, use GET /courses/{uuid}?includes[modules]=1 before attaching.

Step 5 — Module groups (optional)

If your system organizes disciplines into semesters or periods, mirror that structure:
Then re-attach modules specifying the group:

Step 6 — Syncing cohorts

A cohort maps to a specific graduating intake (e.g., “Evening Class 2024/1”):

Step 7 — Registering eligible students

When your system determines a student is eligible for a certificate, register them in DokStamp (or verify they already exist):

Step 8 — Creating the enrollment


Step 9 — Issuing the certificate

finish: true triggers the full issuance pipeline in a single call: the certificate status is set to issued, all files are cryptographically signed, an academic transcript is generated, and the student is notified. Omitting finish (or passing false) creates the certificate as a draft for later review.

Full async example

For queue-based integrations, wrap each step in a job:
Retry on 5xx and 429. Log and discard 4xx (they indicate a data problem, not a transient failure).