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

# Get a customer

> Retrieve customer details by ID. Required scope: `customer:read`.



## OpenAPI

````yaml /api-reference/customer/get-openapi.json get /api/external/customer/{id}
openapi: 3.1.0
info:
  title: Blaaiz Platform API - Get Customer
  version: 1.0.0
  description: Retrieve a single customer by ID.
servers:
  - url: https://api-prod.blaaiz.com
  - url: https://api-dev.blaaiz.com
security: []
tags:
  - name: Customer
paths:
  /api/external/customer/{id}:
    get:
      tags:
        - Customer
      summary: Get a customer
      description: 'Retrieve customer details by ID. Required scope: `customer:read`.'
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
          description: Customer ID
      responses:
        '200':
          description: Customer retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCustomerResponse'
              examples:
                individual:
                  summary: Verified individual customer
                  value:
                    message: Customer retrieved successfully
                    data:
                      id: 9d4c4ec5-59ea-4130-bf8a-6a5edec401ee
                      business_id: 9d4c4ec5-572d-49de-a362-f01ed09f2b1b
                      type: individual
                      first_name: John
                      last_name: Doe
                      business_name: null
                      email: john.doe@example.com
                      phone: '+2348012345678'
                      country: NG
                      id_type: passport
                      id_number: A12345678
                      tin: null
                      verification_status: VERIFIED
                      enhanced_due_diligence: false
                      kyc_data:
                        id: 9d4c4ec5-59ea-4130-bf8a-6a5edec40200
                        dob: '1990-01-15'
                        street: 123 Main Street
                        city: Lagos
                        state: Lagos
                        zip_code: '100001'
                        operating_street: null
                        operating_city: null
                        operating_state: null
                        operating_zip_code: null
                        id_expiry_date: '2030-01-15'
                        id_issue_date: '2020-01-15'
                      created_at: '2024-01-15T10:30:00.000000Z'
                      updated_at: '2024-01-15T10:40:00.000000Z'
                business:
                  summary: Verified business customer with owners and KYB documents
                  value:
                    message: Customer retrieved successfully
                    data:
                      id: 019a6da3-4a9a-7033-81b9-12489eff13ee
                      business_id: 9d4c4ec5-572d-49de-a362-f01ed09f2b1b
                      type: business
                      first_name: null
                      last_name: null
                      business_name: Acme Corp
                      trading_name: Acme
                      business_type: llc
                      registration_number: RC123456
                      incorporation_country: NG
                      incorporation_date: '2019-03-12'
                      industry_type: Software & SaaS
                      business_description: B2B SaaS platform for African logistics operators.
                      website: https://acme.example.com
                      source_of_funds: business_revenue
                      estimated_annual_revenue: '1000000_4999999'
                      expected_monthly_payments: 250
                      account_purpose: send_receive_funds_related_parties
                      email: contact@acme.example.com
                      phone: '+2348012345678'
                      country: NG
                      id_type: null
                      id_number: null
                      tin: 12345678-0001
                      verification_status: VERIFIED
                      enhanced_due_diligence: false
                      kyc_data:
                        id: 019a6da3-4a9a-7033-81b9-12489eff13f0
                        dob: null
                        street: 456 Business Ave
                        city: Lagos
                        state: Lagos
                        zip_code: '100001'
                        operating_street: 789 Operations Blvd
                        operating_city: Lagos
                        operating_state: Lagos
                        operating_zip_code: '100002'
                        id_expiry_date: null
                        id_issue_date: null
                      owners:
                        - id: 019a6e22-8b4c-7c8d-9d12-c0c1ab3f1a90
                          first_name: Jane
                          last_name: Doe
                          ownership_percentage: '60.00'
                          is_beneficial_owner: true
                          is_signer: true
                          has_control: true
                          id_document_type: passport
                          status: APPROVED
                          admin_comments: null
                      documents:
                        - id: 019a6e10-1fb3-7b2f-8f8b-ad1e92c4017a
                          type: CERTIFICATE_OF_INCORPORATION
                          name: Acme Inc — Certificate of Incorporation.pdf
                          extension: pdf
                          status: APPROVED
                          admin_comments: null
                          url: https://s3.amazonaws.com/...?X-Amz-Signature=...
                      created_at: '2024-01-15T10:30:00.000000Z'
                      updated_at: '2024-01-15T10:40:00.000000Z'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: false
                message: Invalid or missing access token
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: false
                message: Customer not found
      security:
        - oauth2ClientCredentials:
            - customer:read
components:
  schemas:
    GetCustomerResponse:
      type: object
      properties:
        message:
          type: string
        data:
          $ref: '#/components/schemas/Customer'
      required:
        - message
        - data
    Error:
      type: object
      properties:
        status:
          type: boolean
        message:
          type: string
      required:
        - status
        - message
    Customer:
      type: object
      properties:
        id:
          type: string
          format: uuid
        business_id:
          type: string
          format: uuid
          description: ID of the platform business that owns this customer.
        type:
          type: string
          enum:
            - individual
            - business
        first_name:
          type: string
          nullable: true
          description: Set for individual customers. Null for businesses.
        last_name:
          type: string
          nullable: true
          description: Set for individual customers. Null for businesses.
        business_name:
          type: string
          nullable: true
          description: Set for business customers. Null for individuals.
        trading_name:
          type: string
          nullable: true
          description: Business KYB field. Null for individuals.
        business_type:
          type: string
          nullable: true
          description: Business KYB field. Null for individuals.
        registration_number:
          type: string
          nullable: true
          description: Business KYB field. Null for individuals.
        incorporation_country:
          type: string
          nullable: true
          description: Business KYB field. Null for individuals.
        incorporation_date:
          type: string
          format: date
          nullable: true
          description: Business KYB field. Null for individuals.
        industry_type:
          type: string
          nullable: true
          description: Business KYB field. Null for individuals.
        business_description:
          type: string
          nullable: true
          description: Business KYB field. Null for individuals.
        website:
          type: string
          nullable: true
          description: Business KYB field. Null for individuals.
        source_of_funds:
          type: string
          nullable: true
          description: Business KYB field. Null for individuals.
        estimated_annual_revenue:
          type: string
          nullable: true
          description: Business KYB field. Null for individuals.
        expected_monthly_payments:
          type: integer
          nullable: true
          description: Business KYB field. Null for individuals.
        account_purpose:
          type: string
          nullable: true
          description: Business KYB field. Null for individuals.
        email:
          type: string
          format: email
        phone:
          type: string
          nullable: true
        country:
          type: string
          nullable: true
          description: ISO alpha-2.
        id_type:
          type: string
          nullable: true
          description: >-
            Set for individual customers. May be null on business customers
            (which identify via `registration_number` +
            `incorporation_country`).
        id_number:
          type: string
          nullable: true
          description: Set for individual customers. May be null on business customers.
        tin:
          type: string
          nullable: true
          description: Tax identification number.
        verification_status:
          type: string
          enum:
            - PENDING
            - PROCESSING
            - VERIFIED
            - REJECTED
          description: >-
            Customer-level verification state. `PROCESSING` is the under-review
            state for business customers between `/submit` and the compliance
            verdict; individual customers typically transition `PENDING →
            VERIFIED` (or `→ REJECTED`) without a separate `PROCESSING` step.
        enhanced_due_diligence:
          type: boolean
          description: Whether enhanced due-diligence is enabled for this customer.
        kyc_data:
          $ref: '#/components/schemas/KycData'
          description: >-
            Profile data: registered address, operating address (business), date
            of birth (individual), ID expiry/issue dates.
        owners:
          type: array
          description: Beneficial owners. Empty / absent for individual customers.
          items:
            $ref: '#/components/schemas/Owner'
        documents:
          type: array
          description: >-
            KYB document collection — incorporation certificates, articles,
            beneficial-ownership certificates, bank statements, etc. Empty /
            absent for individual customers.
          items:
            $ref: '#/components/schemas/KybDocument'
        recent_comments:
          type: array
          description: >-
            Recent compliance-team comments attached to this customer (e.g.
            status-change notes). Returned when loaded.
          items:
            $ref: '#/components/schemas/RecentComment'
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
      required:
        - id
        - business_id
        - type
        - email
        - verification_status
        - created_at
        - updated_at
    KycData:
      type: object
      description: >-
        KYC / KYB profile data. Returned when the relation is loaded (which is
        always the case for `GET /customer/{id}`).
      properties:
        id:
          type: string
          format: uuid
        dob:
          type: string
          format: date
          nullable: true
          description: Date of birth. Populated for individual customers.
        street:
          type: string
          nullable: true
          description: Registered address — street.
        city:
          type: string
          nullable: true
        state:
          type: string
          nullable: true
        zip_code:
          type: string
          nullable: true
        operating_street:
          type: string
          nullable: true
          description: >-
            Business operating address (when different from registered). Used by
            business customers; null for individuals.
        operating_city:
          type: string
          nullable: true
        operating_state:
          type: string
          nullable: true
        operating_zip_code:
          type: string
          nullable: true
        id_expiry_date:
          type: string
          format: date
          nullable: true
        id_issue_date:
          type: string
          format: date
          nullable: true
    Owner:
      type: object
      properties:
        id:
          type: string
          format: uuid
        first_name:
          type: string
        last_name:
          type: string
        email:
          type: string
          format: email
          nullable: true
        phone:
          type: string
          nullable: true
        date_of_birth:
          type: string
          format: date
          nullable: true
        nationality:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        ownership_percentage:
          type: string
          example: '60.00'
        has_control:
          type: boolean
        is_signer:
          type: boolean
        is_beneficial_owner:
          type: boolean
        country:
          type: string
          nullable: true
        id_document_type:
          type: string
          nullable: true
        id_document_number:
          type: string
          nullable: true
        id_document_country:
          type: string
          nullable: true
        id_expiry_date:
          type: string
          format: date
          nullable: true
        tin:
          type: string
          nullable: true
        is_pep:
          type: boolean
        usa_tax_residency:
          type: boolean
        status:
          type: string
          enum:
            - PENDING
            - PROCESSING
            - APPROVED
            - REJECTED
          description: >-
            Owner KYB review state. PENDING = not yet submitted; PROCESSING =
            under compliance review; APPROVED/REJECTED = terminal. APPROVED and
            PROCESSING are locked from edits.
        admin_comments:
          type: array
          nullable: true
          description: >-
            Reviewer feedback. Display each entry as a separate bullet to the
            end customer.
          items:
            type: string
    KybDocument:
      type: object
      properties:
        id:
          type: string
          format: uuid
        type:
          type: string
          example: CERTIFICATE_OF_INCORPORATION
        name:
          type: string
        extension:
          type: string
        description:
          type: string
          nullable: true
        status:
          type: string
          enum:
            - PENDING
            - PROCESSING
            - APPROVED
            - REJECTED
        admin_comments:
          type: array
          nullable: true
          items:
            type: string
        url:
          type: string
          nullable: true
          description: 2-minute presigned download URL.
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    RecentComment:
      type: object
      description: >-
        Compliance-team comment attached to the customer (e.g. status-change
        notes). Returned when loaded.
      properties:
        id:
          type: string
          format: uuid
        comment:
          type: string
        type:
          type: string
          example: info
        created_at:
          type: string
          format: date-time
  securitySchemes:
    oauth2ClientCredentials:
      type: oauth2
      description: >-
        Use your OAuth client credentials to obtain a short-lived Bearer token
        from POST /oauth/token.
      flows:
        clientCredentials:
          tokenUrl: /oauth/token
          scopes:
            customer:read: Read customers.

````