> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fastcac.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Look up a NIN

> What NIMC holds for a NIN: names, gender, date of birth, phone, address, photo and its other fields.
Prefill your form from it, set it as a proprietor's `nin_lookup`, and use its photo as the passport.
Charged from your wallet (see `amount_charged`); not when NIMC has no record.



## OpenAPI

````yaml /openapi.json post /identities/nin_lookups
openapi: 3.1.0
info:
  title: FastCAC API
  description: Register Nigerian businesses with CAC from your own product.
  version: '2026-11-01'
servers:
  - url: https://api.fastcac.com/v1
security:
  - apiKey: []
tags:
  - name: Account
    description: Check your key and see your organization.
  - name: Names
    description: >-
      Check a business name against CAC's rules and registry, and the categories
      it takes, before registering it.
  - name: Registrations
    description: Register a Business Name with CAC, from draft to certificate.
  - name: Identities
    description: >-
      Look up a proprietor's NIN with NIMC, to prefill a registration and use
      their photo.
  - name: Balance
    description: >-
      Your prepaid wallet: what's available, its transactions and your funding
      account.
  - name: Test helpers
    description: >-
      Test keys only: move a registration on without waiting, or simulate a
      deposit.
  - name: Webhooks
    description: Endpoints that receive events, and the events sent to them.
  - name: Webhook events
    description: What FastCAC POSTs to your webhook endpoints.
paths:
  /identities/nin_lookups:
    post:
      tags:
        - Identities
      summary: Look up a NIN
      description: >-
        What NIMC holds for a NIN: names, gender, date of birth, phone, address,
        photo and its other fields.

        Prefill your form from it, set it as a proprietor's `nin_lookup`, and
        use its photo as the passport.

        Charged from your wallet (see `amount_charged`); not when NIMC has no
        record.
      operationId: create_nin_lookup_identities_nin_lookups_post
      parameters:
        - name: simulate
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Test keys only: nin_not_found (422) or insufficient_balance (402).
              Ignored with a live key.
            title: Simulate
          description: >-
            Test keys only: nin_not_found (422) or insufficient_balance (402).
            Ignored with a live key.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NinLookupIn'
            example:
              nin: '12345678901'
              consent: true
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1NinLookup'
              examples:
                Example:
                  value:
                    object: nin_lookup
                    id: ninl_6x9CKdEGQkJAbby8D1u7kN
                    nin: '12345678901'
                    first_name: ADA
                    middle_name: CHIOMA
                    last_name: OBI
                    gender: female
                    date_of_birth: '1990-04-12'
                    phone: '08031234567'
                    address: 12 ADMIRALTY WAY, LEKKI, LAGOS
                    photo: data:image/jpeg;base64,/9j/4AAQSkZJRgABA…
                    nimc_data: {}
                    amount_charged: '100.00'
                    transaction_id: wtx_0hA6wRH6yeYHTLfRjK4Bxn
                    created_at: '2026-10-26T05:55:58Z'
        '400':
          description: The request is invalid; `param` names the field.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    error:
                      type: invalid_request_error
                      code: consent_required
                      message: >-
                        Set consent to true to confirm the person whose NIN this
                        is agreed to the lookup.
                      param: consent
                      request_id: req_xcacu6qO33kUNHSxBjY5G9Yd
        '401':
          description: The API key is missing, malformed, revoked or expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    error:
                      type: authentication_error
                      code: api_key_missing
                      message: 'Send your API key as `Authorization: Bearer <key>`.'
                      param: null
                      request_id: req_hXO9uf6JYXxTYMz20Du2lF8n
        '402':
          description: >-
            The wallet can't cover a lookup: `insufficient_balance`, with
            `details`. Nothing was charged or looked up.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1Error'
              examples:
                Example:
                  value:
                    error:
                      type: payment_error
                      code: insufficient_balance
                      message: >-
                        Your balance is ₦0.00; a NIN lookup costs ₦100.00. Fund
                        your wallet by bank transfer to your funding account,
                        then try again.
                      param: null
                      request_id: req_T3QuXz9S4mAUr6Ilj7UfFnD3
                      details:
                        amount_due: '100.00'
                        balance: '0.00'
                        currency: NGN
                        funding_account:
                          account_number: '0000000000'
                          bank_name: TEST BANK
                          account_name: FastCAC - TEST MODE
        '403':
          description: >-
            The key can't do this (for example, a test helper called with a live
            key).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    error:
                      type: permission_error
                      code: live_mode_unavailable
                      message: >-
                        Live registrations are paused right now. Use a test key
                        (fc_test_…) meanwhile.
                      param: null
                      request_id: req_gXc3KKfa1egcBqGIxApcVRIr
        '404':
          description: No such object for this key's organization and mode.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                Example:
                  value:
                    error:
                      type: not_found_error
                      code: resource_missing
                      message: 'No such registration: reg_0000000000000000000000.'
                      param: id
                      request_id: req_5pBegFvIypCQp0ZmlXajiiet
        '409':
          description: >-
            The object's state doesn't allow this, or the Idempotency-Key was
            reused.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: '`nin_not_found`: NIMC has no record of the NIN. Not charged.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1Error'
              examples:
                Example:
                  value:
                    error:
                      type: invalid_request_error
                      code: nin_not_found
                      message: >-
                        NIMC has no record of that NIN. Check the number. You
                        weren't charged.
                      param: nin
                      request_id: req_SBKLBRia3TtzbQESMsQ1vznD
        '429':
          description: Too many requests; wait for `Retry-After` seconds.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: >-
            `nin_lookup_unavailable`: the identity service didn't answer. Not
            charged.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1Error'
components:
  schemas:
    NinLookupIn:
      properties:
        nin:
          type: string
          title: Nin
          description: The person's National Identification Number, 11 digits.
        consent:
          type: boolean
          title: Consent
          description: 'Must be true: you confirm the person agreed to this lookup.'
      type: object
      required:
        - nin
        - consent
      title: NinLookupIn
    V1NinLookup:
      properties:
        object:
          type: string
          const: nin_lookup
          title: Object
          default: nin_lookup
        id:
          type: string
          title: Id
          description: >-
            ninl_…: pass it as a proprietor's `nin_lookup`, or to use the photo
            as the passport.
        nin:
          type: string
          title: Nin
        first_name:
          anyOf:
            - type: string
            - type: 'null'
          title: First Name
          description: As NIMC holds it (usually upper case).
        middle_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Middle Name
          description: Goes in the proprietor's `other_names`.
        last_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Last Name
        gender:
          anyOf:
            - type: string
              enum:
                - male
                - female
            - type: 'null'
          title: Gender
        date_of_birth:
          anyOf:
            - type: string
            - type: 'null'
          title: Date Of Birth
          description: YYYY-MM-DD.
        phone:
          anyOf:
            - type: string
            - type: 'null'
          title: Phone
        address:
          anyOf:
            - type: string
            - type: 'null'
          title: Address
          description: >-
            NIMC's residence address as one line; the registration takes it in
            parts.
        photo:
          anyOf:
            - type: string
            - type: 'null'
          title: Photo
          description: 'NIMC''s photo as a data: URI (JPEG).'
        nimc_data:
          additionalProperties: true
          type: object
          title: Nimc Data
          description: Every other field NIMC returned, as it came.
        amount_charged:
          anyOf:
            - type: string
            - type: 'null'
          title: Amount Charged
          description: What the lookup cost, in naira, as a decimal string.
        transaction_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Transaction Id
          description: The wtx_… nin_lookup_charge.
        created_at:
          anyOf:
            - type: string
            - type: 'null'
          title: Created At
      type: object
      required:
        - id
        - nin
        - first_name
        - middle_name
        - last_name
        - gender
        - date_of_birth
        - phone
        - address
        - photo
        - nimc_data
        - amount_charged
        - transaction_id
        - created_at
      title: V1NinLookup
    Error:
      properties:
        error:
          $ref: '#/components/schemas/ErrorDetail'
      required:
        - error
      title: V1Error
      type: object
    V1Error:
      properties:
        error:
          $ref: '#/components/schemas/ErrorDetail'
      required:
        - error
      title: V1Error
      type: object
    ErrorDetail:
      properties:
        type:
          type: string
          enum:
            - invalid_request_error
            - authentication_error
            - payment_error
            - permission_error
            - not_found_error
            - idempotency_error
            - rate_limit_error
            - api_error
          title: Type
        code:
          type: string
          title: Code
          description: Stable and machine-readable, e.g. registration_incomplete.
        message:
          type: string
          title: Message
          description: For a developer to read; may change.
        param:
          anyOf:
            - type: string
            - type: 'null'
          title: Param
          description: The parameter at fault, as a path like proprietors[0].nin.
        request_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Request Id
          description: Also in the FastCAC-Request-Id header. Quote it to support.
        details:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Details
          description: >-
            Only on some errors. A 402 insufficient_balance carries amount_due,
            balance, currency and funding_account (number, bank, name; null
            until it's active).
      type: object
      required:
        - type
        - code
        - message
        - param
        - request_id
      title: ErrorDetail
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: 'Your secret API key: fc_test_… in test mode, fc_live_… in live mode.'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.