Pak Identity Data API: citizen ID, family tree and fees
Pak Identity is NADRA's citizen identity app for CNIC and NICOP applications, digital ID cards, family records and registration-center appointments. The sign-in call at /v1/auth/session returns a session token plus the citizen profile, while /v1/id-wallet/documents loads dematerialized ID documents from the vault, /v1/id-wallet/family lists family members by CNIC, /v1/appointments/slots finds bookable slots and /v1/payments/checkout starts fee checkout.
Pak Identity is NADRA's official citizen identity app for CNIC, NICOP, CRC and family-tree services. After a citizen signs in at /v1/auth/session, the session returns a JWT plus profile flags (digitalCardEnabled, familyTreeEnabled), and the app loads dematerialized ID documents from the digital vault (/v1/id-wallet/documents), family members by CNIC (/v1/id-wallet/family), registration-center appointment slots (/v1/appointments/slots), and application-fee checkout via card or a QR rail (/v1/payments/checkout). The session token is attached as Authorization: Bearer on subsequent calls.
Screenshots
API surface
Sign in citizen (create session)
POST
/v1/auth/sessionosintSigns a citizen into Pak Identity and returns the JWT, refresh token, CNIC (citizenNumber) and feature flags that unlock the digital card, family tree and other NADRA services.
Auth: Unauthenticated sign-in. The response token is stored as access_token and sent as Authorization: Bearer on later calls; renewal uses the session-refresh call.
- citizenNumber
- fullName
- mobileNumber
- token
- refreshToken
- sessionKey
- deviceId
- digitalCardEnabled
- familyTreeEnabled
- familyIDCardFeatureEnabled
- verificationStatus
- pakidUser
Illustrative example reconstructed from the app's interface — not a live capture.
POST /v1/auth/session HTTP/1.1 Content-Type: application/json { "username": "3520212345671", "password": "********", "deviceId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" }{ "citizenNumber": "3520212345671", "fullName": "AHMED ALI", "email": "[email protected]", "mobileNumber": "03001234567", "token": "eyJhbGciOiJIUzI1NiJ9...", "refreshToken": "d8f1c2e4-9a1e-4c2b-8f01-55c17a91f0e2", "sessionKey": "3f2b8c1d9a1e4c2b", "deviceId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "digitalCardEnabled": true, "familyTreeEnabled": true, "familyIDCardFeatureEnabled": true, "verificationStatus": "VERIFIED", "pakidUser": true }Derived from the app's interface; endpoint details are illustrative, not a live capture.
Reconstructed from the app's citizen sign-in and session bootstrap flow.Captures the token and feature flags every later call depends on.
Renew access token
GET
/v1/auth/session/refresh/{refreshToken}osintExchanges the stored refreshToken for a new JWT (token) and rotating refreshToken used on every subsequent citizen call.
Auth: Path parameter refreshToken from the sign-in response (stored as refresh_token). Returns a new token used as Authorization: Bearer.
- token
- refreshToken
Illustrative example reconstructed from the app's interface — not a live capture.
GET /v1/auth/session/refresh/d8f1c2e4-9a1e-4c2b-8f01-55c17a91f0e2 HTTP/1.1{ "email": "[email protected]", "token": "eyJhbGciOiJIUzI1NiJ9...", "refreshToken": "c9e2b1a0-7d4f-41aa-90ee-22b10c88aa11" }Derived from the app's interface; endpoint details are illustrative, not a live capture.
Reconstructed from the app's session-renewal flow.
Fetch digital ID documents
GET
/v1/id-wallet/documentsopendataReturns the citizen's dematerialized ID documents (CNIC/NICOP and related cards) as labeled records with identifiers and display fields for the digital vault screen.
Auth: Authorization: Bearer token from the sign-in call (or its renewal).
- message
- status
- message_local
- data
- label
- identifiers
- displayData
- key
- title
- value
Illustrative example reconstructed from the app's interface — not a live capture.
GET /v1/id-wallet/documents HTTP/1.1 Authorization: Bearer eyJhbGciOiJIUzI1NiJ9...{ "message": "OK", "status": "SUCCESS", "message_local": "کامیاب", "data": [ { "label": "CNIC", "identifiers": { "citizenNumber": "3520212345671", "documentType": "CNIC" }, "displayData": [ {"key": "name", "title": "Name", "value": "AHMED ALI"}, {"key": "fatherName", "title": "Father Name", "value": "MUHAMMAD ALI"}, {"key": "dateOfBirth", "title": "Date of Birth", "value": "1990-03-14"}, {"key": "expiryDate", "title": "Expiry", "value": "2030-03-14"} ] } ] }Derived from the app's interface; endpoint details are illustrative, not a live capture.
Reconstructed from the app's digital ID vault screen.
Fetch family digital-ID members
GET
/v1/id-wallet/familyosintLists family members linked to the signed-in citizen's digital ID, each with CNIC, name, relation and photograph used by the family-tree and family digital-ID screens.
Auth: Authorization: Bearer token from the sign-in call.
- citizenNumber
- name
- relation
- photograph
Illustrative example reconstructed from the app's interface — not a live capture.
GET /v1/id-wallet/family HTTP/1.1 Authorization: Bearer eyJhbGciOiJIUzI1NiJ9...[ { "citizenNumber": "3520298765432", "name": "FATIMA ALI", "relation": "SPOUSE", "photograph": "/9j/4AAQSkZJRgABAQAAAQABAAD..." }, { "citizenNumber": "3520211122233", "name": "HASSAN ALI", "relation": "SON", "photograph": "/9j/4AAQSkZJRgABAQAAAQABAAD..." } ]Derived from the app's interface; endpoint details are illustrative, not a live capture.
Reconstructed from the app's family-tree and family digital-ID screens.
List available NRC appointment slots
GET
/v1/appointments/slotsopendataReturns bookable time slots at a registration center so a citizen can hold and then book an appointment for CNIC/NICOP capture.
Auth: Authorization: Bearer token from the sign-in call. Query centerId and date select the registration center.
- success
- message
- validationErrors
- data
- slotId
- startTime
- endTime
- capacity
- booked
- available
Illustrative example reconstructed from the app's interface — not a live capture.
GET /v1/appointments/slots?centerId=LHR-NRC-12&date=2026-10-02 HTTP/1.1 Authorization: Bearer eyJhbGciOiJIUzI1NiJ9...{ "success": true, "message": "Slots available", "validationErrors": null, "data": [ { "slotId": "SLOT-4412", "startTime": "09:00", "endTime": "09:20", "capacity": 8, "booked": 3, "available": true } ] }Derived from the app's interface; endpoint details are illustrative, not a live capture.
Reconstructed from the app's appointment booking flow.
Initiate application fee payment
POST
/v1/payments/checkoutopenfinanceStarts card checkout for a CNIC/NICOP/CRC application fee and returns currency, fee and the hosted initPaymentUrl. A QR-based rail uses a sibling QR-init call.
Auth: Authorization: Bearer token from the sign-in call.
- currency
- fee
- initPaymentUrl
- message
- status
Illustrative example reconstructed from the app's interface — not a live capture.
POST /v1/payments/checkout HTTP/1.1 Authorization: Bearer eyJhbGciOiJIUzI1NiJ9... Content-Type: application/json { "trackingId": "TID-20261002-88421", "citizenNumber": "3520212345671", "paymentSource": "CARD" }{ "currency": "PKR", "fee": "1500.00", "initPaymentUrl": "https://payments.example.pk/checkout/sess_9f3c", "message": "Payment session created", "status": "PENDING" }Derived from the app's interface; endpoint details are illustrative, not a live capture.
Reconstructed from the app's application-fee checkout flow.
Data categories
- citizen identity
- digital ID documents
- family tree
- appointments
- application fees
Where teams use this data
Citizen identity onboarding
A KYC or onboarding flow can consume citizenNumber, fullName, email, mobileNumber and verificationStatus from the authenticate response (plus digitalCardEnabled) to confirm a Pakistani citizen before opening a wallet or SIM.
Digital ID document display
An identity vault or verifier can pull document records from /v1/id-wallet/documents — label, identifiers.citizenNumber and displayData key/title/value — to render a CNIC/NICOP without a physical card.
Household / family-tree matching
Lending or social-protection stacks can list family members via citizenNumber, name, relation and photograph from /v1/id-wallet/family to match dependents against a household roster.
NRC appointment and fee reconciliation
A citizen-services desk can poll available slots (slotId, startTime, capacity) then record application fees from /v1/payments/checkout (currency, fee, status, initPaymentUrl) against the trackingId.
Frequently asked questions
What identity data does Pak Identity expose after sign-in?
The sign-in response carries citizenNumber (CNIC), fullName, email, mobileNumber, token, refreshToken and flags such as digitalCardEnabled and familyTreeEnabled that gate the rest of the app.
How are digital ID documents returned?
GET /v1/id-wallet/documents returns a data array of document records with label, identifiers and displayData (key, title, value) used by the digital vault screen.
Can family members be listed from the same session?
Yes. GET /v1/id-wallet/family returns citizenNumber, name, relation and photograph for each linked member, which feeds the family-tree screen.
How are application fees collected?
POST /v1/payments/checkout returns currency, fee, initPaymentUrl, message and status so the app can open card checkout or a QR-based rail for the trackingId.
Topics
- Pak Identity API
- NADRA CNIC data
- digital ID documents
- family tree CNIC
- NRC appointment slots
- Pak Identity payment
Need this app's data API integrated?
We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.