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

> Returns the current KYC verification status for a customer, resolved from the customer's account. The overall `status` matches the logic used for orders, so it stays consistent with whether the customer can transact. Submission details such as rejection reasons and timestamps are visible only to the partner that submitted the data.



## OpenAPI

````yaml /openapi.json get /ramp/customer/{customer_id}/kyc
openapi: 3.1.0
info:
  title: Etherfuse FX API
  description: Partner-facing ramp API for onramps, offramps, swaps, and KYC.
  license:
    name: Proprietary
  version: 1.0.0
servers:
  - url: https://api.sand.etherfuse.com
    description: Sandbox
security:
  - ApiKeyAuth: []
tags:
  - name: Authentication
    description: >-
      Partner JWT authentication — exchange a JWT for an access token, or launch
      a user into the app.
  - name: Lookup
    description: >-
      Public reference data: exchange rates, stablebonds, bond costs, country
      codes.
  - name: Assets
    description: Rampable stablecoins and stablebonds available per blockchain.
  - name: Onboarding
    description: Hosted and programmatic customer onboarding.
  - name: Agreements
    description: Legal agreement acceptance during onboarding.
  - name: Bank Accounts
    description: Register and retrieve customer bank accounts.
  - name: Quotes
    description: Price quotes for onramps, offramps, and swaps.
  - name: Orders
    description: Create, track, and manage ramp orders.
  - name: Swaps
    description: Crypto-to-crypto swaps.
  - name: Sponsored
    description: Token approvals for sponsored (gasless) offramps.
  - name: Customers
    description: Customer (child-organization) records.
  - name: Wallets
    description: Register and manage customer wallets.
  - name: KYC
    description: Submit and check customer KYC status.
  - name: Webhooks
    description: Event notification subscriptions.
  - name: Organizations
    description: Organization identity, child orgs, and partner fees.
paths:
  /ramp/customer/{customer_id}/kyc:
    get:
      tags:
        - KYC
      summary: Get KYC status
      description: >-
        Returns the current KYC verification status for a customer, resolved
        from the customer's account. The overall `status` matches the logic used
        for orders, so it stays consistent with whether the customer can
        transact. Submission details such as rejection reasons and timestamps
        are visible only to the partner that submitted the data.
      operationId: get_kyc_org
      parameters:
        - name: customer_id
          in: path
          description: >-
            The customer (child org) ID. Must belong to the caller's
            organization or a direct child.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: The org-level KYC status for the customer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KycStatusResponse'
        '404':
          description: Customer not found
components:
  schemas:
    KycStatusResponse:
      type: object
      description: KYC status response
      required:
        - customerId
        - status
        - selfies
        - documents
        - needsWork
      properties:
        approvedAt:
          type:
            - string
            - 'null'
          format: date-time
        currentRejectionReason:
          type:
            - string
            - 'null'
        customerId:
          type: string
          format: uuid
        documents:
          type: array
          items:
            $ref: '#/components/schemas/ProofOfIdentityDocument'
        needsWork:
          type: boolean
        onChainMarked:
          type:
            - boolean
            - 'null'
          description: >-
            Whether KYC is marked on-chain. Only present for Solana wallets.

            For other blockchain types (Stellar, EVM), this field is omitted as
            on-chain marking doesn't apply.
        selfies:
          type: array
          items:
            $ref: '#/components/schemas/ProofOfIdentityContent'
        status:
          type: string
        userMessage:
          type:
            - string
            - 'null'
        walletPublicKey:
          type:
            - string
            - 'null'
      example:
        approvedAt: '2026-05-01T16:00:00Z'
        currentRejectionReason: null
        customerId: a1b2c3d4-e5f6-7890-abcd-ef1234567890
        documents: []
        needsWork: false
        selfies: []
        status: approved
        walletPublicKey: GDUKMGUGD3V6VXTU2RLAUM7A2FABLMHCPWTMDHKP7HHJ6FCZKEY4PVWL
    ProofOfIdentityDocument:
      allOf:
        - $ref: '#/components/schemas/ProofOfIdentityContent'
        - type: object
          properties:
            extractedData:
              oneOf:
                - type: 'null'
                - $ref: '#/components/schemas/ProofOfIdentityUserInfo'
    ProofOfIdentityContent:
      type: object
      required:
        - id
        - type
        - status
      properties:
        approvedAt:
          type:
            - string
            - 'null'
          format: date-time
        contentLabel:
          type:
            - string
            - 'null'
        createdAt:
          type:
            - string
            - 'null'
          format: date-time
        id:
          type: string
        images:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/ImageInfo'
        ipAddress:
          type:
            - string
            - 'null'
        rejectedAt:
          type:
            - string
            - 'null'
          format: date-time
        rejectedReason:
          type:
            - string
            - 'null'
        status:
          $ref: '#/components/schemas/ProofOfIdentityStatus'
        type:
          type: string
        videoURL:
          type:
            - string
            - 'null'
    ProofOfIdentityUserInfo:
      type: object
      required:
        - id
      properties:
        address:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/ProofOfIdentityAddress'
        dateOfBirth:
          type:
            - string
            - 'null'
        email:
          type:
            - string
            - 'null'
        id:
          type: string
        idNumbers:
          type: array
          items:
            $ref: '#/components/schemas/ProofOfIdentityIdNumber'
        name:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/ProofOfIdentityName'
        occupation:
          type:
            - string
            - 'null'
        organizationId:
          type:
            - string
            - 'null'
          format: uuid
        phoneNumber:
          type:
            - string
            - 'null'
        sourceOrganizationId:
          type:
            - string
            - 'null'
          format: uuid
        useEmailForMarketing:
          type:
            - boolean
            - 'null'
        walletId:
          type:
            - string
            - 'null'
    ImageInfo:
      type: object
      required:
        - imageURL
        - label
      properties:
        imageURL:
          type: string
        label:
          type: string
    ProofOfIdentityStatus:
      type: string
      enum:
        - approved
        - rejected
        - proposed
    ProofOfIdentityAddress:
      type: object
      required:
        - country
      properties:
        city:
          type:
            - string
            - 'null'
        country:
          type: string
        postalCode:
          type:
            - string
            - 'null'
        region:
          type:
            - string
            - 'null'
        street:
          type:
            - string
            - 'null'
        street2:
          type:
            - string
            - 'null'
    ProofOfIdentityIdNumber:
      type: object
      required:
        - value
        - type
      properties:
        type:
          type: string
        value:
          type: string
    ProofOfIdentityName:
      type: object
      required:
        - givenName
        - familyName
      properties:
        familyName:
          type: string
        givenName:
          type: string
        middleName:
          type:
            - string
            - 'null'
        motherMaidenName:
          type:
            - string
            - 'null'
        preferredName:
          type:
            - string
            - 'null'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: API key sent in the Authorization header.

````