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

# Send User KYC Data

> Share User KYC PII details for a user you have already verified.

1. Share Data (including legal name, document number etc.)

2. Share Supporting Documents




## OpenAPI

````yaml openapi-v2.json POST /api/v2/user/kyc
openapi: 3.1.0
info:
  title: Saber Money API (v2)
  version: v2
  description: >-
    ## Authentication


    There is no standalone API-key auth — every request must be **signed**. An
    API key by itself authenticates nothing. Each call requires four headers
    together: `X-Api-Key` (your key), `X-Signature` (HMAC-SHA256 of `apiKey +
    timestamp` — or `apiKey + timestamp + userId` when `X-User-Id` is required —
    keyed with your API secret), `X-Timestamp` (unix seconds), and
    `X-Request-Id` (any unique string per request). The signature must be
    computed by a client script; there is no way to derive it by hand. Use the
    HMAC Generator flow to compute valid values for manual testing.


    ## Common Authentication Errors


    - **Invalid Client ID**: {"error_code":6092,"message":"X-Client-Id
    invalid","success":false}

    - **Invalid Secret**: {"error_code":6090,"message":"invalid
    secret","success":false}

    - **Timestamp (Older than 10 secs)**:
    {"errors":{"error_code":6093,"text":"timestamp expired"},"success":false}
servers:
  - url: https://api.saber.money
security: []
paths:
  /api/v2/user/kyc:
    post:
      tags:
        - KYC and EDD Operations
      summary: Send User KYC Data
      description: |
        Share User KYC PII details for a user you have already verified.

        1. Share Data (including legal name, document number etc.)

        2. Share Supporting Documents
      operationId: send-user-kyc-data-v2
      parameters:
        - name: X-Api-Key
          in: header
          required: true
          description: Your API key (configured in credentials)
          schema:
            type: string
        - name: X-Signature
          in: header
          required: true
          description: >-
            HMAC-SHA256 signature (auto-generated) To test manually: HMAC-SHA256
            of `apiKey + timestamp` (or `apiKey + timestamp + userId` when
            X-User-Id is required), keyed with your API secret. The HMAC
            Generator flow computes this for you.
          schema:
            type: string
        - name: X-Timestamp
          in: header
          required: true
          description: >-
            Unix timestamp in seconds (auto-generated) Unix seconds, e.g.
            `Math.floor(Date.now() / 1000)`. Must match the timestamp used in
            the X-Signature computation.
          schema:
            type: string
        - name: X-Request-Id
          in: header
          required: true
          description: >-
            Unique request identifier (auto-generated) Any unique string per
            request, e.g. a UUID.
          schema:
            type: string
        - name: X-User-Id
          in: header
          required: true
          description: User UUID (set above)
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                legal_name:
                  type: string
                  description: User's full legal name.
                poa:
                  type: string
                  description: Proof of address document ID.
                poi:
                  type: string
                  description: Proof of identity document ID.
                dob:
                  type: string
                  description: Date of birth.
                gender:
                  type: string
                  description: User's gender.
                income:
                  type: string
                  description: User's income information.
                occupation:
                  type: string
                  description: User's occupation.
                address:
                  type: string
                  description: User's address as a string.
                email:
                  type: string
                  description: User's email address.
                phone:
                  type: string
                  description: User's phone number (e.g. `+919876543210`).
                country_iso3:
                  type: string
                  description: ISO alpha-3 country code (e.g. `IND`).
                is_nri:
                  type: boolean
                  description: >-
                    Individual users only. Set `true` if the user is an NRI
                    (Non-Resident Indian). TDS is not deducted from INR sell
                    payouts for NRI users; it is deducted for third-party
                    payouts to Indian residents.
              required:
                - legal_name
                - poa
                - poi
                - country_iso3
            example:
              legal_name: John Doe
              poa: address_doc_id
              poi: id_doc_id
              country_iso3: IND
              email: user@example.com
              phone: '+919876543210'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema: {}
              example:
                success: true
                data: {}
        '400':
          description: >-
            `102001`: missing required parameters; `102002`: invalid parameter
            format — missing poa or poi; `102005`: invalid user uuid; `5004`:
            kyc sharing duplicate data found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type:
                            - integer
                            - string
                        text:
                          type: string
              example:
                success: false
                errors:
                  - code: 102001
                    text: missing required parameters
        '500':
          description: '`109999`: Something went wrong!'
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type:
                            - integer
                            - string
                        text:
                          type: string
              example:
                success: false
                errors:
                  - code: 102001
                    text: missing required parameters

````

## Related topics

- [Initiate KYC (Generate KYC URL)](/api-reference/kyc-and-edd-operations/initiate-kyc-generate-kyc-url.md)
- [Send User KYC Documents](/api-reference/kyc-and-edd-operations/kyc-sharing/send-user-kyc-documents.md)
- [Update User KYC Data](/api-reference/kyc-and-edd-operations/kyc-sharing/update-user-kyc-data.md)
- [KYC Sharing](/user/kyc/sharing.md)
- [Overview](/client/pool-account/overview.md)
