Build with certify

Integrate credential verification, issuance, and management into your applications. Full REST API, SDKs in 6 languages, webhooks, and a comprehensive sandbox environment.

Try Playground →Full API Docs

Quick Start

3 EXAMPLES
// 1. Verify a credential — single hash
import { CertifyClient } from '@certify/sdk';

const client = new CertifyClient({
  apiKey: process.env.CERTIFY_API_KEY,
  baseUrl: 'https://api.certify.ma/v1'
});

const result = await client.verify({
  hash: 'sha256:a8f2e1b3c4d5...'
});

console.log(result.valid);       // true
console.log(result.credential);  // { name, degree, institution, ... }

Official SDKs

JavaScript / Node.js

Full-featured SDK for Node.js and browser environments. TypeScript support included.

npm install @certify/sdk
v2.4.112.4K/mo

Python

Python SDK with async support. Compatible with Django, Flask, and FastAPI.

pip install certify-sdk
v1.8.08.9K/mo

PHP

PHP SDK for Laravel, Symfony, and WordPress. PSR-7/PSR-18 compliant.

composer require certify/sdk
v1.2.33.1K/mo

Java / Kotlin

JVM SDK for Spring Boot and Android applications. Retrofit-based.

implementation "ma.certify:sdk:1.1.0"
v1.1.02.1K/mo

Go

Go module with context support and connection pooling for high-performance services.

go get github.com/certify-ma/go-sdk
v0.9.21.5K/mo

Ruby

Ruby gem for Rails applications. Active Support integration included.

gem install certify-sdk
v0.7.1890/mo

API Endpoints

Full REST API supporting all credential types in the Moroccan education system.

MethodEndpointDescriptionAuth
GET/api/credentialsList credentials with filtersAPI Key
GET/api/credentials/statsAggregated platform statisticsPublic
GET/api/credentials/verify/:hashVerify a single credential by SHA-256Public
POST/api/credentials/batch-verifyBatch verify multiple hashesAPI Key
POST/api/credentials/issueIssue a new verifiable credentialIssuer Key
GET/api/institutionsList all institutions with countsPublic
POST/api/share/createCreate a credential share linkAPI Key
GET/api/share/:tokenAccess a shared credentialPublic
POST/api/requestsSubmit a credential requestStudent Key

Supported Credential Types

All credential types supported by the API, mapped to their Prisma enums and EQF levels.

API TypePrisma EnumEQFDescription
BachelorDegreeBACHELOR_DEGREE6Licence (L1-L3)
MasterDegreeMASTER_DEGREE7Master (M1-M2)
DoctorateDegreeDOCTORATE8Doctorat / PhD
IngenieurINGENIEUR7Diplôme d'Ingénieur d'État
BaccalaureatBACCALAUREAT4Baccalauréat du Maroc
OFPPTDiplomaOFPPT_DIPLOMA5Technicien Spécialisé OFPPT
DUTDUT5Diplôme Universitaire de Technologie
BTSDiplomaBTS_DIPLOMA5Brevet de Technicien Supérieur
LicenceProLICENCE_PRO6Licence Professionnelle
DEUGDEUG5Diplôme d'Études Universitaires Générales
CertificateCERTIFICATE-Professional/Corporate Certificate
BadgeBADGE-Digital Badge (Open Badges v3)
MicroCredentialMICRO_CREDENTIAL-Micro-Credential / Skill Badge
TranscriptTRANSCRIPT-Relevé de Notes
AttestationATTESTATION-Attestation de Réussite / Scolarité
DiplomaDIPLOMA-Generic Diploma

Webhook Events

Subscribe to real-time events. All payloads include a HMAC-SHA256 signature for verification.

credential.issued

Fired when a new credential is created and signed

{ credentialId, type, institutionId, studentId, sha256Hash }
credential.verified

Fired when a credential is verified via API or web

{ sha256Hash, verifiedAt, source, ipCountry }
credential.revoked

Fired when a credential is revoked by the issuer

{ credentialId, revokedAt, reason, revokedBy }
credential.shared

Fired when a share link is created or accessed

{ shareId, credentialId, viewCount, expiresAt }
institution.created

Admin event: new institution onboarded

{ institutionId, name, type, tier }
batch.completed

Fired when a batch verification job completes

{ batchId, total, verified, notFound, revoked }

Rate Limits & Pricing

Morocco CDN endpoints for lowest latency. All plans include unlimited public verifications.

Free

Free
Rate: 100/day
Batch: 10 hashes
Verify:
Support: Community

Pro

490 MAD/mo
Rate: 1,000/min
Batch: 100 hashes
Verify:
Support: Email

Enterprise

Custom
Rate: 10,000/min
Batch: 500 hashes
Verify:
Support: 24/7 SLA

Morocco-Specific Integration

Special considerations for Moroccan developers and institutions.

CNDP Compliance

All API responses conform to CNDP (Commission Nationale de Contrôle de la Protection des Données) requirements. PII is minimized in public endpoints.

Multi-Language Support

Credential names available in French, Arabic, and English. API supports Accept-Language header for localized responses.

Institution Types

12 institution types: University, Grande École, OFPPT ISTA, CPGE, BTS Center, Primary/Middle/High School, Corporate Academy, Professional Association.

Morocco Grading Scale

Full support for the /20 grading system. GPA fields accept format "XX.X/20". Honors mapped to French mentions (Passable, AB, Bien, TB).

Payment Integration

CMI (Centre Monétique Interbancaire) payment gateway for Moroccan card payments. MAD currency support for subscription billing.

Data Residency

All credential data stored in Morocco-based servers (OVH Rabat DC). GDPR and Law 09-08 compliant. No cross-border data transfer.

Error Codes Reference

All API errors follow a consistent format with machine-readable codes and human-readable messages.

CodeStatusDescriptionAction
CREDENTIAL_NOT_FOUND404Hash does not match any credentialCheck hash format
CREDENTIAL_REVOKED410Credential was revoked by issuerContact institution
INVALID_HASH400Hash format is not valid SHA-256Ensure hex format, 64 chars
RATE_LIMIT_EXCEEDED429Too many requestsUpgrade plan or wait
AUTH_INVALID401API key is invalid or expiredRegenerate key
BATCH_TOO_LARGE413Batch exceeds maximum sizeSplit into smaller batches
INSTITUTION_NOT_FOUND404Institution ID does not existCheck /api/institutions
FORBIDDEN403Insufficient permissionsRequest higher role

Authentication

certify uses API keys for authentication. Include your key in the Authorization header.

// API Key Authentication
fetch('https://api.certify.ma/v1/credentials', {
  headers: {
    'Authorization': 'Bearer crt_live_xxxxxxxxxxxxxxxxxx',
    'Content-Type': 'application/json',
    'Accept-Language': 'fr-MA'  // Response in French
  }
});

// OAuth 2.0 (for ATS integrations)
// 1. Register your app at dashboard.certify.ma
// 2. Redirect users to: https://certify.ma/oauth/authorize
// 3. Exchange code for access token
// 4. Use token in Authorization header

API Changelog

Recent API changes and version history.

v2.4
2025-12-01
Added QR code verification endpoint
Batch verify now supports Excel files
New webhook: credential.shared
v2.3
2025-09-15
OFPPT credential types added
Arabic transliteration in responses
Rate limit headers in all responses
v2.2
2025-06-01
W3C VC v2.0 compliance
StatusList2021 revocation
EDCI/Europass integration
v2.1
2025-03-01
Batch verification API
Webhook HMAC signatures
Institution onboarding API

Sandbox Environment

Test your integration without affecting production data. The sandbox mirrors all production endpoints.

Base URL
https://sandbox.certify.ma/v1
API Key Prefix
crt_test_xxxxxxxxxx
Pre-seeded Data
25 credentials, 8 institutions
Rate Limit
100 req/min (no restrictions)
Webhook Test
Instant replay available
Reset
Auto-reset every 24 hours

Community & Resources

Join the certify developer community and access additional resources.

GitHub

Open-source SDK repositories, sample apps, and issue tracker.

github.com/certify-ma

Discord Community

2,000+ developers sharing integrations, tips, and getting help.

discord.gg/certify

Developer Blog

Tutorials, case studies, and API changelog announcements.

blog.certify.ma/dev

Status Page

Real-time API uptime monitoring. 99.95% SLA on Enterprise tier.

status.certify.ma

Postman Collection

Pre-built API collection for testing. Import in one click.

postman.com/certify

Stack Overflow

Tag: [certify-api]. Community Q&A for common integration issues.

stackoverflow.com/tags/certify-api

Ready to Build?

Get your API key in 30 seconds. Free tier includes 100 requests/day — no credit card required.

Full API ReferenceVerify Hub
© 2026 certify.ma Developers · W3C VC v2.0 · 1EdTech CLR · EDCI