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

# Upload Documents

> Use this API to upload KYC documents for merchants.

<Accordion title="Supported document types">
  The `document_type` parameter accepts the following values organised by document category:

  ### Business proof documents

  | Document type | Description |
  | - | - |
  | `businessproof_saecertificate` | Certificate or licence issued by the appropriate authorities under Shops and Establishment Act and any other Acts as applicable to the firm |
  | `businessproof_regproof` | Other government-issued registration proof |
  | `businessproof_municipal` | Municipal certificate |
  | `businessproof_udhyog` | Udyog Aadhaar |
  | `businessproof_taxreturn` | Sales tax and income tax return |
  | `businessproof_roc` | Registration certificate from ROC (Registrar of Company for a Jurisdiction) |
  | `businessproof_taxreturnfull` | Full tax return |
  | `businessproof_customeragreement` | Customer agreement |
  | `businessproof_platformconfirm` | Platform confirmation |
  | `businessproof_invoices` | Business invoices |

  ### Entity proof documents

  | Document type | Description |
  | - | - |
  | `entityproof_partnershipdeed` | Partnership deed |
  | `entityproof_trustdeed` | Trust deed |
  | `entityproof_societycertificate` | Society certificate |
  | `entityproof_hufdeed` | HUF deed |
  | `entityproof_llp` | LLPIN document |

  ### Line of business proof documents

  | Document type | Description |
  | - | - |
  | `lobproof_nonprofit` | Domestic: 80 G, 12 A or International: FCRA |
  | `lobproof_travel` | IATA certificate or IRCTC agency certificate |
  | `lobproof_pcidss` | AOC for PCI-DSS compliance |
  | `lobproof_gaming` | RNG certificate (if applicable), legal opinion |
  | `lobproof_food` | FSSAI |
  | `lobproof_bbps` | BBPS certificate |
  | `lobproof_jewellery` | BIS certificate, 916 Hallmark, 925 Hallmark, or GII certificate |
  | `lobproof_nbfc` | NBFCs or Service Level Agreements with RBI approved NBFCs |
  | `lobproof_papg` | PA-PG licence |
  | `lobproof_pharmacy` | Pharmacy licence, retail or wholesale drug licence, undertaking of authorised signatory under Drugs and Cosmetics Act 1940, declaration (Form 20, Form 21, Form 21B, Form 20B) |
  | `lobproof_ppi` | Bank PPI licence or Non Bank PPI licence |
  | `lobproof_mutualfunds` | AMFI certificate |
  | `lobproof_fema` | FEMA registration, FFMC certificate (FFMC state wise) |
  | `lobproof_ayush` | Ayush (manufacturing licence - Form 24D) |
  | `lobproof_sebi` | SEBI certificate |
  | `lobproof_insurance` | IRDA: Life insurance, general insurance, health insurance or SLA with the insurer if this is being issued by a different party |
  | `lobproof_education` | UGC certificate, ICSE, CBSE, or AICTE |

  ### Other documents

  | Document type | Description |
  | - | - |
  | `bank_statement` | Bank statement |
  | `certificate_of_incorporation` | Certificate of incorporation |
  | `board_resolution` | Board resolution |
  | `gst_certificate` | GST certificate |
  | `localtax_identifier` | Local tax identifier |
  | `bene_owner_id_proof_1` to `bene_owner_id_proof_6` | Beneficial owner ID proofs |
</Accordion>


## OpenAPI

````yaml post /merchants/{merchant_id}/documents
openapi: 3.0.0
info:
  version: '2023-01-01'
  title: Merchant Onboarding APIs
servers:
  - url: https://api-sandbox.cashfree.com/partners
    description: Sandbox server
  - url: https://api.cashfree.com/partners
    description: Production server
security: []
paths:
  /merchants/{merchant_id}/documents:
    post:
      tags:
        - Merchant Onboarding
      summary: Upload Documents
      description: Use this API to upload KYC documents for merchants.
      parameters:
        - $ref: '#/components/parameters/apiKeyHeader'
        - $ref: '#/components/parameters/apiVersionHeader'
        - in: path
          name: merchant_id
          required: true
          schema:
            type: string
            description: Unique identifier for the merchant
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                document_type:
                  type: string
                  description: >-
                    The type of document being uploaded. For the complete list
                    of supported document types, see [Supported Document
                    Types](/api-reference/platforms/latest/merchant-onboarding/upload-documents#supported-document-types).
                file:
                  type: string
                  format: binary
                  description: >-
                    The KYC document file to upload. Supported formats include
                    PDF, JPG, JPEG, and PNG.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadDocumentResponseEntity'
        '400':
          description: Invalid file format or unsupported file type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidFileFormatError'
        '401':
          description: Invalid partner API key or unauthorised access
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationError'
        '404':
          description: Merchant ID not found or not linked to partner
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidMerchantError'
        '409':
          description: Product is already active for the merchant
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlreadyActiveError'
        default:
          description: Any bad or invalid request will lead to following error object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  parameters:
    apiKeyHeader:
      in: header
      name: x-partner-apikey
      required: true
      schema:
        description: Your partner API key for authentication
        type: string
    apiVersionHeader:
      in: header
      name: x-api-version
      schema:
        type: string
        description: API version to be used for the request
        default: '2023-01-01'
  schemas:
    UploadDocumentResponseEntity:
      title: Upload Document Success Response
      example:
        document_type: bank_statement
        uploaded_on: 2006-01-02T15:04:05-0700
      properties:
        document_type:
          type: string
          description: Enter the valid document type as given
        uploaded_on:
          type: string
          description: time when document was uploaded
    InvalidFileFormatError:
      title: InvalidFileFormatError
      example:
        message: Invalid file format. Allowed formats are jpeg, png, pdf
        code: invalid_document_format
        type: invalid_request_error
      type: object
      properties:
        message:
          type: string
        code:
          type: string
        type:
          type: string
          description: invalid_request_error
    AuthenticationError:
      title: AuthenticationError
      example:
        message: Invalid authentication credentials
        code: failed_authentication
        type: invalid_request_error
      type: object
      properties:
        message:
          type: string
        code:
          type: string
        type:
          type: string
          description: invalid_request_error
    InvalidMerchantError:
      title: InvalidMerchantError
      example:
        message: Merchant not found or linked to partner.
        code: partner_connect_not_found
        type: invalid_request_error
      type: object
      properties:
        message:
          type: string
        code:
          type: string
        type:
          type: string
          description: invalid_request_error
    AlreadyActiveError:
      title: AlreadyActiveError
      example:
        message: Product is already active for the merchant.
        code: merchant_product_is_active
        type: invalid_request_error
      type: object
      properties:
        message:
          type: string
        code:
          type: string
        type:
          type: string
          description: invalid_request_error
    ErrorResponse:
      title: ErrorResponse
      example:
        message: bad URL, please check API documentation
        code: request_failed
        type: invalid_request_error
      type: object
      properties:
        message:
          type: string
          description: Human-readable error message
        code:
          type: string
          description: Error code for programmatic handling
        type:
          type: string
          description: Type of error, typically 'invalid_request_error'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.