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

# Get KYC status

> Check the current KYC verification status for a customer's wallet.

**Data isolation:** Partners can only see KYC data submitted by their organization.
Documents and identity info submitted by other partners or directly by users are not returned.




## OpenAPI

````yaml /openapi.yaml get /ramp/customer/{customer_id}/kyc/{pubkey}
openapi: 3.1.0
info:
  title: FX API
  version: 1.0.0
  description: >
    API for managing FX operations including onboarding, quotes, orders, and
    customer management.

    This API provides endpoints for managing customers, bank accounts, crypto
    wallets, orders, and webhooks.
servers:
  - url: https://api.etherfuse.com
    description: Production API
  - url: https://api.sand.etherfuse.com
    description: Sandbox API (for testing)
security: []
tags:
  - name: Lookup
    description: Public endpoints for looking up stablebond and exchange rate data
  - name: Assets
    description: Get available assets for ramping
  - name: Onboarding
    description: Customer onboarding and KYC
  - name: Bank Accounts
    description: Manage customer bank accounts
  - name: Agreements
    description: Handle customer agreements and consents
  - name: Quotes
    description: Get quotes for conversions
  - name: Orders
    description: Create and manage orders
  - name: Swaps
    description: Create and manage swaps
  - name: Customers
    description: Manage customers
  - name: Crypto Wallets
    description: Manage crypto wallets
  - name: Webhooks
    description: Manage webhook subscriptions
  - name: Organizations
    description: Manage organizations and child organizations
paths:
  /ramp/customer/{customer_id}/kyc/{pubkey}:
    get:
      tags:
        - KYC
      summary: Get KYC status
      description: >
        Check the current KYC verification status for a customer's wallet.


        **Data isolation:** Partners can only see KYC data submitted by their
        organization.

        Documents and identity info submitted by other partners or directly by
        users are not returned.
      parameters:
        - name: customer_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: ID of the customer
        - name: pubkey
          in: path
          required: true
          schema:
            type: string
          description: Wallet public key
      responses:
        '200':
          description: KYC status retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KycStatusResponse'
        '404':
          description: Customer or wallet not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    KycStatusResponse:
      type: object
      description: KYC status and submission details for a customer's wallet
      properties:
        customerId:
          type: string
          format: uuid
          description: Customer ID
        walletPublicKey:
          type: string
          description: Wallet public key
        status:
          type: string
          enum:
            - not_started
            - proposed
            - approved
            - approved_chain_deploying
            - rejected
          description: >-
            Current KYC status. The `approved_chain_deploying` status indicates
            approval is complete but on-chain marking is in progress (Solana
            only).
        onChainMarked:
          type: boolean
          nullable: true
          description: >-
            Whether KYC is marked on the blockchain. Only present for Solana
            wallets.
        currentRejectionReason:
          type: string
          nullable: true
          description: Reason for rejection (if status is rejected)
        selfies:
          type: array
          description: Selfie verification images submitted by this partner
          items:
            $ref: '#/components/schemas/ProofOfIdentityContent'
        documents:
          type: array
          description: Identity documents submitted by this partner
          items:
            $ref: '#/components/schemas/ProofOfIdentityDocument'
        currentKycInfo:
          $ref: '#/components/schemas/ProofOfIdentityUserInfo'
        approvedAt:
          type: string
          format: date-time
          nullable: true
          description: Timestamp when KYC was approved
      example:
        customerId: 123e4567-e89b-12d3-a456-426614174000
        walletPublicKey: 9Qx7r...
        status: approved
        onChainMarked: true
        currentRejectionReason: null
        selfies: []
        documents: []
        currentKycInfo:
          id: info-123
          email: juan@example.com
          phoneNumber: '+521234567890'
          dateOfBirth: '1990-05-15'
          name:
            givenName: Juan
            familyName: Garcia
          address:
            street: Av. Reforma 123
            city: Mexico City
            region: CDMX
            postalCode: '06600'
            country: MX
          idNumbers:
            - value: GAJU900515HDFRNN09
              type: CURP
        approvedAt: '2024-01-01T00:00:00Z'
    Error:
      type: object
      properties:
        error:
          type: string
          description: Error message
      example:
        error: Invalid request parameters
    ProofOfIdentityContent:
      type: object
      description: A KYC verification content item (selfie or document image set)
      properties:
        id:
          type: string
          description: Unique identifier for this content
        type:
          type: string
          description: Content type (e.g., "selfie", "document")
        contentLabel:
          type: string
          nullable: true
          description: Label for the content
        status:
          type: string
          enum:
            - approved
            - rejected
            - proposed
          description: Review status of this content
        createdAt:
          type: string
          format: date-time
          nullable: true
          description: When the content was submitted
        approvedAt:
          type: string
          format: date-time
          nullable: true
          description: When the content was approved
        rejectedAt:
          type: string
          format: date-time
          nullable: true
          description: When the content was rejected
        rejectedReason:
          type: string
          nullable: true
          description: Reason for rejection
        ipAddress:
          type: string
          nullable: true
          description: IP address of submitter
        images:
          type: array
          nullable: true
          description: Image URLs for this content
          items:
            $ref: '#/components/schemas/ImageInfo'
        videoURL:
          type: string
          nullable: true
          description: Video URL if applicable
    ProofOfIdentityDocument:
      type: object
      description: A KYC identity document with extracted data
      allOf:
        - $ref: '#/components/schemas/ProofOfIdentityContent'
        - type: object
          properties:
            extractedData:
              $ref: '#/components/schemas/ProofOfIdentityUserInfo'
              nullable: true
              description: Data extracted from the document via OCR
    ProofOfIdentityUserInfo:
      type: object
      description: Identity information for a user
      properties:
        id:
          type: string
          description: Unique identifier
        walletId:
          type: string
          nullable: true
          description: Associated wallet ID
        organizationId:
          type: string
          format: uuid
          nullable: true
          description: Organization that owns this data
        email:
          type: string
          nullable: true
          description: Email address
        useEmailForMarketing:
          type: boolean
          nullable: true
          description: Marketing email consent
        phoneNumber:
          type: string
          nullable: true
          description: Phone number
        dateOfBirth:
          type: string
          nullable: true
          description: Date of birth (YYYY-MM-DD)
        name:
          $ref: '#/components/schemas/ProofOfIdentityName'
          nullable: true
        address:
          $ref: '#/components/schemas/ProofOfIdentityAddress'
          nullable: true
        idNumbers:
          type: array
          description: Government ID numbers
          items:
            $ref: '#/components/schemas/ProofOfIdentityIdNumber'
        occupation:
          type: string
          nullable: true
          description: Occupation
        identificationType:
          type: string
          nullable: true
          description: Type of identification used
        sourceOrganizationId:
          type: string
          format: uuid
          nullable: true
          description: Organization that submitted this data
    ImageInfo:
      type: object
      description: Image information with URL and label
      properties:
        imageURL:
          type: string
          description: URL to access the image
        label:
          type: string
          description: Label for the image (e.g., "id_front", "id_back", "selfie")
      required:
        - imageURL
        - label
    ProofOfIdentityName:
      type: object
      description: User's name information
      properties:
        givenName:
          type: string
          description: First name
        familyName:
          type: string
          description: Last name
        middleName:
          type: string
          nullable: true
          description: Middle name
        motherMaidenName:
          type: string
          nullable: true
          description: Mother's maiden name
        preferredName:
          type: string
          nullable: true
          description: Preferred name
      required:
        - givenName
        - familyName
    ProofOfIdentityAddress:
      type: object
      description: User's address information
      properties:
        street:
          type: string
          nullable: true
          description: Street address line 1
        street2:
          type: string
          nullable: true
          description: Street address line 2
        city:
          type: string
          nullable: true
          description: City
        region:
          type: string
          nullable: true
          description: State/region/province
        postalCode:
          type: string
          nullable: true
          description: Postal/ZIP code
        country:
          type: string
          description: Country code (ISO 3166-1 alpha-2)
      required:
        - country
    ProofOfIdentityIdNumber:
      type: object
      description: Government ID number
      properties:
        value:
          type: string
          description: The ID number value
        type:
          type: string
          description: Type of ID (e.g., "CURP", "INE", "passport")
      required:
        - value
        - type
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        API key for authentication. Pass the key directly (e.g., `Authorization:
        your-api-key`). Do not use a `Bearer` prefix.

````