> ## 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 Physical Mandate File

> Use this API to upload the Physical Nach registration forms that contain your customer’s bank account details and signature. Use the fileId you get in the response in the "Create Auth Seamless PhysicalMandate API".



## OpenAPI

````yaml post /api/v2/subscriptions/physical-mandate-file/upload
openapi: 3.0.0
info:
  title: Cashfree Subscription API
  description: >-
    Create and manage subscriptions and collect recurring payments from
    customers easily with Cashfree Subscriptions.
  version: v2
servers:
  - url: https://sandbox.cashfree.com
    description: Sandbox server
  - url: https://api.cashfree.com
    description: Production server
security: []
externalDocs:
  url: https://docs.cashfree.com/reference/postman-collection-1
  description: This url will have the information of all the APIs.
paths:
  /api/v2/subscriptions/physical-mandate-file/upload:
    post:
      tags:
        - Subscription
      summary: Upload Physical Mandate File
      description: >-
        Use this API to upload the Physical Nach registration forms that contain
        your customer’s bank account details and signature. Use the fileId you
        get in the response in the "Create Auth Seamless PhysicalMandate API".
      operationId: uploadPhysicalMandateFile
      parameters:
        - name: x-client-id
          in: header
          required: true
          schema:
            type: string
            description: Client ID provided by Cashfree.
            example: x-client-id
        - name: x-client-secret
          in: header
          required: true
          schema:
            type: string
            description: Client Secret provided by Cashfree.
            example: x-client-secret
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
                  description: The physical mandate file to be uploaded.
                  example: '@/Users/abcd/Documents/pnach/250723/file.jpg'
      responses:
        '200':
          description: Successful upload of the physical mandate file.
          content:
            application/json:
              examples:
                File Upload Success:
                  value:
                    status: 200
                    message: File Uploaded Successfully
                    data:
                      pNachFileId: '1475380791'
        '400':
          description: Bad request due to invalid file size or format.
          content:
            application/json:
              examples:
                File Size Exceeded:
                  value:
                    status: ERROR
                    subCode: '400'
                    message: File Size exceeded.
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: Status of the API call.
                    example: ERROR
                  message:
                    type: string
                    description: Error message.
                    example: Server encountered an unexpected condition.

````