Pak Identity icon

Pak Identity Data API: citizen ID, family tree and fees

National Database & Registration Authority · Identity

Pak Identity is the official citizen-identity app of Pakistan's National Database & Registration Authority (NADRA), the government agency that maintains the national civil registry and issues the Computerized National Identity Card (CNIC). Citizens sign in with their CNIC number to apply for or renew a CNIC, a NICOP (the National Identity Card for Overseas Pakistanis) or a CRC (Child Registration Certificate) from their phone. Issued cards are kept in an on-phone digital ID vault, so a CNIC or NICOP can be shown without carrying the physical card, and a family-tree screen displays the relatives linked to the user's registration along with their family digital IDs. When a visit is needed, an appointment screen books time slots at NADRA Registration Centers for in-person capture, and a checkout screen collects application fees by card or Raast QR. The app serves citizens inside Pakistan as well as the overseas diaspora who rely on NICOP, and it sits in the same class of state identity apps as India's Aadhaar app and DigiLocker, Saudi Arabia's Absher, Singapore's Singpass and UAE PASS.

Thirteen-digit CNIC numbers, carried as citizenNumber, tie together the citizen's profile, ID documents and family links. The sign-in profile pairs that number with fullName, email, mobileNumber and a verificationStatus flag, plus feature switches such as digitalCardEnabled, familyTreeEnabled and familyIDCardFeatureEnabled that show which NADRA services the citizen has unlocked. The digital vault holds dematerialized CNIC and NICOP cards as labeled records — a label, an identifiers block with the document type, and displayData rows of key, title and value covering name, father's name, date of birth and expiry — with status messages also returned in Urdu via message_local. Household links list each relative by citizenNumber, name, relation (spouse, son) and photograph.

Registration-center capacity is exposed per time slot as slotId, startTime, endTime, capacity, booked and available, and each CNIC, NICOP or CRC application fee comes back as a checkout record with currency (PKR), fee, status and a hosted initPaymentUrl, tied to the application's tracking ID.

Fintech wallets and mobile operators can run KYC onboarding on the verified profile before opening a wallet or SIM; identity vaults and verifiers can render a CNIC or NICOP from the document records without a physical card; lending and social-protection stacks can match dependents against a household roster using the family links; and citizen-services desks can poll slot availability and reconcile application fees against tracking IDs. openData Studio turns this NADRA civil-registry data into callable open data for those integrations.

Screenshots

  • Pak Identity screenshot 1
  • Pak Identity screenshot 2
  • Pak Identity screenshot 3
  • Pak Identity screenshot 4
  • Pak Identity screenshot 5

API surface

The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.

  • Sign in citizen (create session)

    POST /v1/citizen/session osint

    Signs 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
    • email
    • mobileNumber
    • token
    • refreshToken
    • sessionKey
    • deviceId
    • digitalCardEnabled
    • familyTreeEnabled
    • familyIDCardFeatureEnabled
    • verificationStatus
    • pakidUser
    POST /v1/citizen/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
    }
  • Renew access token

    GET /v1/citizen/session/refresh/{refreshToken} osint

    Exchanges 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.

    • email
    • token
    • refreshToken
    GET /v1/citizen/session/refresh/d8f1c2e4-9a1e-4c2b-8f01-55c17a91f0e2 HTTP/1.1
    {
      "email": "[email protected]",
      "token": "eyJhbGciOiJIUzI1NiJ9...",
      "refreshToken": "c9e2b1a0-7d4f-41aa-90ee-22b10c88aa11"
    }
  • Fetch digital ID documents

    GET /v1/id-wallet/documents opendata

    Returns 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
    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"}
          ]
        }
      ]
    }
  • Fetch family digital-ID members

    GET /v1/id-wallet/family osint

    Lists 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
    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..."
      }
    ]
  • List available NRC appointment slots

    GET /v1/appointments/slots opendata

    Returns 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
    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
        }
      ]
    }
  • Initiate application fee payment

    POST /v1/payments/checkout openfinance

    Starts 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
    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"
    }

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.

Apps similar to Pak Identity

  • Aadhaar App — UIDAI's official app lets Indian residents store a digital Aadhaar, generate a Virtual ID, and share identity via QR code instead of photocopies.
  • DigiLocker — DigiLocker is India's government document wallet for storing, sharing and verifying issued digital copies of Aadhaar, PAN, driving licences and other certificates.
  • Absher — Absher is Saudi Arabia's Ministry of Interior app for national ID renewal, family civil records, and digital copies of identity documents.
  • Singpass — Singpass is Singapore's national digital identity, used to log in to government and business services and to present a Digital IC at counters.
  • VNeID — VNeID is Vietnam's Ministry of Public Security digital-identity app, a credential equivalent to the citizen identity card for public services.
  • eGovPH — eGovPH is the Philippine government super-app that holds a Digital National ID (PhilSys) with the same legal validity as the physical PhilID card.
  • UAE PASS — UAE PASS is the United Arab Emirates' national digital identity and e-signature app, with a vault for Emirates ID and other official documents.

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.

  • NDA + SOW on every engagement
  • Delivery in 3–7 days
  • Payment only after acceptance
  • Work scoped to authorized use

Get a quote