DigiLocker integrationfor Indian universities
How to onboard as a DigiLocker issuer, implement the Pull URI specification, map credentials to the issued-document envelope, and pair DigiLocker with W3C Verifiable Credentials so students carry a wallet-friendly citizen artefact and a globally verifiable cryptographic proof at the same time.
Why every Indian university should be a DigiLocker issuer
30+ crore Indians already have it
DigiLocker is one of the most-installed government apps in India, with more than 30 crore (300 million) registered users. Pushing credentials there means students can present them from a wallet they already trust — no new login, no new app.
Government-recognised by default
DigiLocker entries carry the same legal weight as the original document under the IT Act, 2000. For most domestic employer verification flows, a DigiLocker pull is sufficient evidence.
OAuth-based citizen consent
Every pull is consented by the citizen via DigiLocker's OAuth flow. Universities cannot push to a citizen who has not authenticated and authorised — DPDP-aligned by design.
Pairs naturally with W3C VC
DigiLocker handles the citizen-facing wallet and government recognition. W3C VC adds cryptographic verification, selective disclosure, and international interoperability. Together they cover every verification scenario.
Becoming a DigiLocker issuer, step by step
From application to citizen pull, here's the path. Steps 1–2 are paperwork; 3–6 are engineering.
Apply as Issuer Organisation with NeGD
DigiLocker is operated by the National e-Governance Division (NeGD) under MeitY. Universities apply through the issuer onboarding portal at digilocker.gov.in. The application requires UGC recognition documents, registrar identity, and a designated technical point of contact.
Receive Issuer ID and sandbox credentials
After approval (typically 4–8 weeks), the institution receives a unique Issuer ID, sandbox API credentials, and the integration kit. Sandbox lets you push test documents and pull them back via a citizen account before going live.
Implement the Pull URI specification
DigiLocker's primary model is 'pull on demand' — citizens authenticate via DigiLocker, request a specific document type, and DigiLocker fetches it from the issuer in real time. The university hosts a Pull URI endpoint; DigiLocker calls it with a signed request; the endpoint returns the document XML.
Map your credential schema to DigiLocker XML
Each document type (degree certificate, mark-sheet, transcript) maps to a defined XML envelope with namespaced fields. The W3C Verifiable Credential carries the source-of-truth data; the DigiLocker XML is a wrapper rendered for display in the citizen-facing app.
Add the W3C VC backlink
Inside the DigiLocker entry, include a 'verify cryptographically' link pointing to the public verifier with the credential ID. This gives citizens the choice: DigiLocker for offline display, the verifier for instant cryptographic check by an employer.
Go live with citizen-facing testing
Final UAT involves real student accounts pulling their own documents. Common failures: Aadhaar mismatch in the candidate name field (resolve at registration), namespace errors in XML (resolve in mapping), and slow Pull URI response (resolve with caching).
What a DigiLocker payload looks like
An illustrative envelope — the actual schema namespaces are defined in the DigiLocker integration kit. Notice how NAD ID, ABC ID, and the W3C VC anchor are all carried as Verification references.
<?xml version="1.0" encoding="UTF-8"?>
<!-- DigiLocker issued-document envelope (illustrative) -->
<DigiLockerDoc>
<Issuer>
<Id>UNIV-IIITS-2026</Id>
<Name>IIIT Surat</Name>
</Issuer>
<Holder>
<Name>Priya Sharma</Name>
<DOB>2003-08-12</DOB>
<AadhaarLast4>4537</AadhaarLast4>
</Holder>
<Document>
<Type>BachelorDegree</Type>
<Programme>B.Tech, Computer Science</Programme>
<IssuanceDate>2026-05-09</IssuanceDate>
<Result>
<CGPA>8.94</CGPA>
<Class>First Class with Distinction</Class>
</Result>
</Document>
<Verification>
<NADCertificateId>NAD-2026-IIITS-040217</NADCertificateId>
<ABCId>12-3456-7890-1234</ABCId>
<VCAnchor>https://gradifytech.com/verifier?cid=cid:abc...</VCAnchor>
</Verification>
<IssuerSignature>...</IssuerSignature>
</DigiLockerDoc>DigiLocker integration FAQs
Does DigiLocker replace NAD?+
Pull URI vs Push API — which should we implement?+
How long does DigiLocker issuer onboarding take?+
Can students share their DigiLocker certificate with a foreign university?+
Does DigiLocker support revocation?+
What if our university is not yet approved as a DigiLocker issuer?+
Ship to DigiLocker, NAD, and a public verifier — same pipeline
Gradify's issuance pipeline pushes every credential to all three destinations from a single transaction. We handle the issuer onboarding paperwork too.
Talk to integrations