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

# Verify International Passport

> Verifies Kenyan International Passports, including facial matching and data validation against government database records.



## OpenAPI

````yaml /api-reference/specs/quickcheck.json post /v2/api/identity/ke/passport
openapi: 3.0.3
info:
  title: Youverify Quick Check API
  version: 2.0.0
  description: >-
    All Quick Check endpoints (KYC identity verification by country, KYB
    business verification by country, and AML/watchlist screening). Assembled
    from doc.youverify.co/api-reference-sdk/api-reference/quick-check, endpoints
    kept in the exact order they appear in the GitBook navigation. Some
    endpoints (address-verification "create a candidate" / "get states" /
    "retrieve" / "history") are documented twice in the source docs — once for
    individuals under KYC, once for businesses under KYB — and are the exact
    same request/response shape. They appear ONCE here (at their first, KYC,
    position) tagged with both sections so the file stays valid OpenAPI.


    Account-wide error responses (401, 429, 500 on every endpoint; 402 on paid
    verification calls; 404 on lookup-by-ID calls) are sourced verbatim from
    Youverify's own "Youverify OS Error Codes" and "Response Codes" pages
    (doc.youverify.co/youverify-os-error-codes, /get-started/response-codes) and
    attached via components.responses, since those pages document them
    account-wide rather than per endpoint. Any error example that a specific
    endpoint's own page actually showed is kept exactly as documented there
    instead of being replaced by these.
  contact:
    name: Youverify Support
    email: support@youverify.co
servers:
  - url: https://api.youverify.co
    description: Production (live, billed)
  - url: https://api.sandbox.youverify.co
    description: Sandbox (test data, not billed)
security:
  - ApiKeyAuth: []
tags:
  - name: KYC - Global
    description: Identity data-matching endpoints that work across countries.
  - name: KYC - South Africa
    description: South Africa-specific identity, phone and bank verification.
  - name: KYC - Kenya
    description: Kenya-specific identity, phone, bank, credit and employment verification.
  - name: KYC - Ghana
    description: Ghana-specific identity verification (passport, SSNIT, voter's card).
  - name: KYC - Nigeria
    description: >-
      Nigeria-specific identity, phone, bank and credit verification (BVN, NIN,
      etc).
  - name: KYC - Cote D'Ivoire
    description: Cote D'Ivoire-specific national ID and residence card verification.
  - name: KYC - General
    description: >-
      Identity retrieval, history and facial comparison, not tied to one
      country.
  - name: KYC - Address Verification (Individuals)
    description: >-
      Physical and digital address verification workflows for individuals. Note:
      these same endpoints are also documented under KYB for businesses — see
      merge notes.
  - name: KYB - Global
    description: >-
      Business search, bulk-upload and premium company-search endpoints not tied
      to one country.
  - name: KYB - Nigeria
    description: Nigeria-specific business address verification and tax ID checks.
  - name: KYB - South Africa
    description: South Africa-specific business account and address verification.
  - name: KYB - Cote D'Ivoire
    description: Cote D'Ivoire-specific company filings lookup.
  - name: AML Screening
    description: PEP, sanctions, adverse-media and crypto AML screening.
  - name: AML Watchlist
    description: Manage your own custom AML watchlist.
paths:
  /v2/api/identity/ke/passport:
    post:
      tags:
        - KYC - Kenya
      summary: Verify International Passport
      description: >-
        Verifies Kenyan International Passports, including facial matching and
        data validation against government database records.
      operationId: verifyInternationalPassportKenya
      parameters:
        - name: token
          in: header
          required: true
          schema:
            type: string
          description: API secret token
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: string
                  description: Candidate's passport number
                isSubjectConsent:
                  type: boolean
                  description: Indicate subject has given consent. Must be true
                validations:
                  type: object
                  description: Validation object
                  properties:
                    data:
                      type: object
                      description: Validation data object
                      properties:
                        lastName:
                          type: string
                          description: Last name to compare against ID
                        firstName:
                          type: string
                          description: First name to compare against ID
                        dateOfBirth:
                          type: string
                          description: Date of birth to compare against ID
                    selfie:
                      type: object
                      description: Selfie validation object
                      properties:
                        image:
                          type: string
                          description: Base64 or URL of selfie image
                metadata:
                  type: object
                  description: Any valid object can be passed here. It gets returned as is.
              required:
                - id
                - isSubjectConsent
            example:
              id: AK1367466
              metadata:
                requestId: '1209348756'
              isSubjectConsent: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                success: true
                statusCode: 200
                message: success
                data:
                  id: 62b511caf1d35a61f7ba4de6
                  parentId: null
                  status: found
                  reason: null
                  dataValidation: false
                  selfieValidation: false
                  firstName: KARBOH
                  middleName: null
                  lastName: ZEBOCK
                  fullName: KARBOH ZEBOCK
                  image: null
                  nationality: KENYAN
                  dateOfBirth: null
                  isConsent: true
                  idNumber: AK0167656
                  businessId: 6222a5ea3e7a41c29c030fac
                  type: kePassport
                  gender: male
                  requestedAt: '2022-06-24T01:22:18.710Z'
                  requestedById: 6222a5ea3e7a41c29c030fad
                  country: KE
                  createdAt: '2022-06-24T01:22:18.728Z'
                  lastModifiedAt: '2022-06-24T01:22:18.728Z'
                  requestedBy:
                    firstName: API
                    lastName: User
                    middleName: ''
                    id: 6222a5ea3e7a41c29c030fad
                links: []
        '401':
          $ref: '#/components/responses/Error401Unauthorized'
        '402':
          $ref: '#/components/responses/Error402PaymentRequired'
        '404':
          description: Resource not found
          content:
            application/json:
              example:
                success: false
                statusCode: 404
                message: You have attempted to get a resource that does not exist.
                name: ResourceNotFoundError
                data: {}
        '429':
          $ref: '#/components/responses/Error429TooManyRequests'
        '500':
          $ref: '#/components/responses/Error500ServerError'
components:
  responses:
    Error401Unauthorized:
      description: Unauthorized — the token header is missing or invalid.
      content:
        application/json:
          example:
            success: false
            statusCode: 401
            message: Permission denied
            name: UnauthorizedError
            data: {}
    Error402PaymentRequired:
      description: Payment Required — your account balance is too low to run this check.
      content:
        application/json:
          example:
            success: false
            statusCode: 402
            message: Insufficient fund
            name: PaymentRequiredError
            data: {}
    Error429TooManyRequests:
      description: Too Many Requests — you have exceeded the rate limit; wait and retry.
      content:
        application/json:
          example:
            success: false
            statusCode: 429
            message: Too many requests
            name: RateLimitError
            data: {}
    Error500ServerError:
      description: >-
        Internal Server Error — a rare, unexpected failure on Youverify's side.
        Contact support@youverify.co if it persists.
      content:
        application/json:
          example:
            success: false
            statusCode: 500
            message: Internal Server Error
            name: Error
            data: {}
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: token
      description: Your Youverify API secret key. Never expose client-side.

````