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

# Proof of Address Verification

> Verifies a client's proof of address in South Africa by validating identity information against submitted address documentation.



## OpenAPI

````yaml /api-reference/specs/quickcheck.json post /v2/api/identity/za/poa
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/za/poa:
    post:
      tags:
        - KYC - South Africa
      summary: Proof of Address Verification
      description: >-
        Verifies a client's proof of address in South Africa by validating
        identity information against submitted address documentation.
      operationId: proofOfAddressVerificationSouthAfrica
      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: User's identity number
                idType:
                  type: string
                  description: Candidate's ID type
                isSubjectConsent:
                  type: boolean
                  description: Must be true
                personalInformation:
                  type: object
                  description: Personal information for the candidate
                  properties:
                    firstName:
                      type: string
                      description: First name
                    lastName:
                      type: string
                      description: Last name
                    gender:
                      type: string
                      description: Gender
                    email:
                      type: string
                      description: Email address
                addressDetails:
                  type: object
                  description: Address and property information
                  properties:
                    proofOfAddressImage:
                      type: string
                      description: Base64-encoded proof of address image
                    imageName:
                      type: string
                      description: Name of the uploaded image
                    address1:
                      type: string
                      description: Address line 1
                    address2:
                      type: string
                      description: Address line 2
                    suburb:
                      type: string
                      description: Suburban area
                    houseNumber:
                      type: string
                      description: House number
                    street:
                      type: string
                      description: Street name
                    buildingName:
                      type: string
                      description: Building name
                    unitName:
                      type: string
                      description: Unit name
                    province:
                      type: string
                      description: Candidate's province
                    city:
                      type: string
                      description: Candidate's city
                    postalCode:
                      type: string
                      description: Postal code
                    stateCode:
                      type: string
                      description: City/state code
                    duration:
                      type: string
                      description: Duration of stay
                    propertyType:
                      type: string
                      description: Property type
                    country:
                      type: string
                      description: Candidate's country
              required:
                - id
                - idType
                - isSubjectConsent
                - personalInformation
                - addressDetails
            example:
              personalInformation:
                firstName: JONAH
                lastName: PILLAY
                gender: M
                email: XXXXX@XXXXX.com
              addressDetails:
                proofOfAddressImage: '{{Base64String}}'
                imageName: image.jp
                address1: Body Corporate of Cohiba
                address2: 'Stand NO: 433'
                suburb: Radiokop
                houseNumber: '1'
                street: '2'
                buildingName: '2'
                unitName: '2'
                province: '2'
                city: Radiokop
                postalCode: '1752'
                stateCode: GP
                duration: '13'
                propertyType: 'O  '
                country: ZA
              id: '2502161858090'
              idType: SAID
              isSubjectConsent: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                success: true
                statusCode: 200
                message: success
                data:
                  id: 64cc3994d0ae9481b885e518
                  parentId: null
                  status: found
                  reason: null
                  businessId: 62c2a4868d319373a6280152
                  requestedAt: '2023-08-03T23:34:44.712Z'
                  requestedById: 62c2a4868d3193700828014e
                  country: ZA
                  type: zaPOA
                  riskOutcome: High
                  isConsent: true
                  metadata: {}
                  personalInformation:
                    firstName: JONAH
                    lastName: PILLAY
                    gender: M
                    email: XXXXX@XXXXX.com
                  addressDetails:
                    proofOfAddressImage: '{{Base64String}}'
                    imageName: image.jp
                    address1: Body Corporate of Cohiba
                    address2: 'Stand NO: 433'
                    suburb: Radiokop
                    houseNumber: '1'
                    street: '2'
                    buildingName: '2'
                    unitName: '2'
                    province: '2'
                    city: Radiokop
                    postalCode: '1752'
                    stateCode: GP
                    duration: '13'
                    propertyType: 'O  '
                    country: ZA
                  requestedBy:
                    firstName: API
                    lastName: User
                    middleName: ''
                    id: 62c2a4868d3193700828014e
                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.

````