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

# Create vendor

> Use this API to create a new vendor to your EasySplit account along with the KYC details. Provide KYC details such as account_type, business_type, gst, cin, pan, passport number and so on.



## OpenAPI

````yaml /openapi/payments/v2025-01-01.yaml post /easy-split/vendors
openapi: 3.0.0
info:
  version: '2025-01-01'
  title: Cashfree Payment Gateway APIs
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  contact:
    email: developers@cashfree.com
    name: API Support
    url: https://discord.com/invite/QdZkNSxXsB
  description: >-
    Cashfree's Payment Gateway APIs provide developers with a streamlined
    pathway to integrate advanced payment processing capabilities into their
    applications, platforms and websites.
servers:
  - url: https://sandbox.cashfree.com/pg
    description: Sandbox server.
  - url: https://api.cashfree.com/pg
    description: Production server.
security: []
tags:
  - name: Orders
    description: Collection of APIs to handle orders.
  - name: Payments
    description: Collection of APIs to handle payments.
  - name: Refunds
    description: Collection of APIs to handle refunds.
  - name: Settlements
    description: Collection of APIs to handle settlements.
  - name: Payment Links
    description: Collection of APIs to handle payment links.
  - name: Token Vault
    description: >-
      Collection of APIs to use Cashfree's token Vault. This helps you save
      cards and tokenize them in a PCI complaint manner. We support creation of
      network tokens which can be used across acquiring banks.
  - name: softPOS
    description: Collection of APIs to manage softPOS' agent and order.
  - name: Offers
    description: Collection of APIs to handle offers.
  - name: Eligibility
    description: >-
      Collection of APIs to check eligibile entities - payment methods, offer,
      affordibility.
  - name: Settlement Reconciliation
    description: Collection of APIs to handle settlements.
  - name: PG Reconciliation
    description: Collection of APIs to handle reconciliation.
  - name: Customers
    description: Collection of APIs to handle customers.
  - name: Easy-Split
    description: Collection of APIs to handle Easy-Split.
  - name: Simulation
    description: Collection of APIs to handle simulation.
  - name: Disputes
    description: Collection of APIs to handle disputes.
  - name: Utilities
    description: Collection of APIs for utility requirement.
  - name: Downtimes
    description: Collection of APIs for managing downtimes.
externalDocs:
  url: https://api.cashfree.com/pg
  description: This url will have the information of all the APIs.
paths:
  /easy-split/vendors:
    post:
      tags:
        - Easy-Split
      summary: Create vendor
      description: >-
        Use this API to create a new vendor to your EasySplit account along with
        the KYC details. Provide KYC details such as account_type,
        business_type, gst, cin, pan, passport number and so on.
      operationId: PGESCreateVendors
      parameters:
        - $ref: '#/components/parameters/apiVersionHeader'
        - $ref: '#/components/parameters/xRequestIDHeader'
        - $ref: '#/components/parameters/xIdempotencyKeyHeader'
      requestBody:
        $ref: '#/components/requestBodies/CreateVendorRequestBody'
      responses:
        '200':
          $ref: '#/components/responses/createVendorSuccessResponse'
        '400':
          $ref: '#/components/responses/Response400CreateVendor'
      deprecated: false
      security:
        - XClientID: []
          XClientSecret: []
        - XClientID: []
          XPartnerAPIKey: []
        - XClientID: []
          XClientSignatureHeader: []
        - XPartnerMerchantID: []
          XPartnerAPIKey: []
components:
  parameters:
    apiVersionHeader:
      in: header
      name: x-api-version
      required: true
      description: API version to be used. Format is in YYYY-MM-DD.
      schema:
        type: string
        description: API version to be used.
        default: '2025-01-01'
      example: '2025-01-01'
      x-ignore: true
    xRequestIDHeader:
      in: header
      name: x-request-id
      description: >-
        Request ID for the API call. Can be used to resolve tech issues.
        Communicate this in your tech related queries to Cashfree.
      required: false
      schema:
        type: string
      example: 4dfb9780-46fe-11ee-be56-0242ac120002
    xIdempotencyKeyHeader:
      in: header
      name: x-idempotency-key
      required: false
      description: >
        An idempotency key is a unique identifier you include with your API
        call.

        If the request fails or times out, you can safely retry it using the
        same key to avoid duplicate actions.
      schema:
        type: string
        format: UUID
      example: 47bf8872-46fe-11ee-be56-0242ac120002
  requestBodies:
    CreateVendorRequestBody:
      description: >-
        Request parameters to create a new vendor to your EasySplit account
        along with the KYC details.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateVendorRequest'
          examples:
            PG - Bank Account:
              value:
                vendor_id: vendortest123
                status: ACTIVE
                name: customer
                email: johndoe@cashfree.com
                phone: 9876543210
                verify_account: true
                dashboard_access: true
                schedule_option: 1
                bank:
                  account_number: 12345678890
                  account_holder: John Doe
                  ifsc: HDFC019345
                kyc_details:
                  account_type: BUSINESS
                  business_type: NBFC
                  uidai: 753624181019
                  gst: 11AAAAA1111A1Z0
                  cin: L00000Aa0000AaA000000
                  pan: BIAPA2934N
                  passport_number: L6892603
            PG - UPI:
              value:
                vendor_id: vendortest123
                status: ACTIVE
                name: customer
                email: johndoe@cashfree.com
                phone: 9876543210
                verify_account: true
                dashboard_access: true
                schedule_option: 1
                upi:
                  vpa: success@upi
                  account_holder: JOHN DOE
                kyc_details:
                  account_type: BUSINESS
                  business_type: NBFC
                  uidai: 753624181019
                  gst: 11AAAAA1111A1Z0
                  cin: L00000Aa0000AaA000000
                  pan: BIAPA2934N
                  passport_number: L6892603
            PG - Auto Collect:
              value:
                vendor_id: devtest23
                name: customer
                email: johndoe@cashfree.com
                phone: 9876543454
                verify_account: false
                dashboard_access: true
                bank:
                  account_number: 26291800001191
                  account_holder: John Doe
                  ifsc: YESB0000262
                kyc_details:
                  account_type: INDIVIDUAL
                  business_type: NBFC
                  uidai: 456712345678
                  pan: AFDHK1234F
  responses:
    createVendorSuccessResponse:
      description: >-
        Success response for creating a new vendor to your EasySplit account
        along with the KYC details.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateVendorResponse'
          examples:
            PG - Bank Account:
              value:
                email: johndoe@cashfree.com
                status: IN_BENE_CREATION
                bank:
                  account_number: 26291800001191
                  account_holder: JOHN DOE
                  ifsc: YESB0000262
                upi: null
                phone: 9876543210
                name: customer
                vendor_id: TestAccount11
                schedule_option:
                  settlement_schedule_message: T+1 settlement at 11:00 AM
                  schedule_id: 1
                  merchant_default: false
                kyc_details:
                  account_type: BUSINESS
                  business_type: NBFC
                  pan: AFDHK1234F
                  uidai: null
                  passport_number: null
                  driving_license: null
                  voter_id: null
                  gst: 11AAAAA1111A1Z0
                  cin: L00000Aa0000AaA000000
                dashboard_access: false
                bank_details: null
            PG - UPI:
              value:
                email: johndoe@cashfree.com
                status: IN_BENE_CREATION
                bank: null
                upi:
                  vpa: john@ybl
                  account_holder: JOHN DOE
                phone: 9876543210
                name: customer
                vendor_id: TestA2ccount211
                schedule_option:
                  settlement_schedule_message: T+1 settlement at 11:00 AM
                  schedule_id: 1
                  merchant_default: false
                kyc_details:
                  account_type: BUSINESS
                  business_type: NBFC
                  pan: AFDHK1234F
                  uidai: null
                  passport_number: null
                  driving_license: null
                  voter_id: null
                  gst: 11AAAAA1111A1Z0
                  cin: L00000Aa0000AaA000000
                dashboard_access: false
                bank_details: null
            PG - Auto Collect:
              value:
                email: johndoe@cashfree.com
                status: IN_BENE_CREATION
                bank: null
                upi:
                  vpa: success@upi
                  account_holder: JOHN DOE
                phone: 9876543210
                name: customer
                vendor_id: vendortest123
                schedule_option:
                  settlement_schedule_message: T+1 settlement at 11:00 AM
                  schedule_id: 1
                  merchant_default: false
                kyc_details:
                  account_type: INDIVIDUAL
                  business_type: NBFC
                  pan: AFDHK1234F
                  uidai: 456712345678
                  passport_number: null
                  driving_license: null
                  voter_id: null
                  gst: null
                  cin: null
                dashboard_access: false
                bank_details: null
    Response400CreateVendor:
      description: Create Vendor Failure Response.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BadRequestError'
          examples:
            Invalid vendorID:
              value:
                message: >-
                  vendor_id: should be alpha numeric. Value received:
                  testvend@or
                code: vendor_id_invalid
                type: invalid_request_error
            Invalid vendor status:
              value:
                message: 'status: should be ACTIVE BLOCKED. Value received: NEW'
                code: status_invalid
                type: invalid_request_error
            Invalid customer name size:
              value:
                message: >-
                  [size must be between 0 and 100 but it was
                  nG3apOaiBGT0AS4C0Qmq7QdW25IEHv8Y1hACb60dBdkdMbRBgaBS3bePo0yRTLAZB0yoYlZfjktsHSGWsGlCSeq18Z5SeOIY7mliE]
                code: api_request_failed
                type: invalid_request_error
            Customer name missing:
              value:
                message: 'name: is missing in the request. Value received: ""'
                code: name_missing
                type: invalid_request_error
            Invalid customer name:
              value:
                message: >-
                  [Invalid Name. Name should not have any special character
                  except . / - & but it was @Devraj]
                code: api_request_failed
                type: invalid_request_error
            Invalid email ID:
              value:
                message: >-
                  email: should be valid email. Value received:
                  arun@@cashfree.com
                code: email_invalid
                type: invalid_request_error
            Email ID missing:
              value:
                message: 'email: is missing in the request. Value received: ""'
                code: email_missing
                type: invalid_request_error
            Invalid phone number:
              value:
                message: '[Enter valid phone number. but it was 8867456990734887837434]'
                code: api_request_failed
                type: invalid_request_error
            Invalid verify status:
              value:
                message: invalid character '2' in literal true (expecting 'u')
                code: request_failed
                type: invalid_request_error
            Invalid dashboard access status:
              value:
                message: invalid character '2' in literal true (expecting 'u')
                code: request_failed
                type: invalid_request_error
            Invalid VPA:
              value:
                message: 'upi.vpa: invalid VPA provided. Value received: 026291800001191'
                code: upi.vpa_invalid
                type: invalid_request_error
            Invalid account holder name:
              value:
                message: >-
                  [Invalid account holder name. Account holder name should not
                  have any special character except . / - & but it was John_Doe]
                code: api_request_failed
                type: invalid_request_error
            Invalid UIDAI number:
              value:
                message: '[Please enter valid UIDAI number but it was 456712345678]]'
                code: api_request_failed
                type: invalid_request_error
            Invalid GST number:
              value:
                message: '[Please enter valid GST number but it was 11AAAAA1111A1@Z0]'
                code: api_request_failed
                type: invalid_request_error
            Invalid CIN number:
              value:
                message: >-
                  [Please enter valid CIN number but it was
                  L00000Aa0000AaA@000000]
                code: api_request_failed
                type: invalid_request_error
            Invalid PAN number:
              value:
                message: 'kyc_details.pan: is missing in the request. Value received: ""'
                code: kyc_details.pan_missing
                type: invalid_request_error
            Invalid Passport number:
              value:
                message: '[Please enter valid PASSPORT number but it was L68926@03]]'
                code: api_request_failed
                type: invalid_request_error
  schemas:
    CreateVendorRequest:
      title: CreateVendorRequest
      type: object
      example:
        vendor_id: vendortest123
        status: ACTIVE
        name: customer
        email: johndoe@cashfree.com
        phone: 9876543210
        verify_account: true
        dashboard_access: true
        schedule_option: 1
        bank: {}
        upi: {}
        kyc_details: {}
      properties:
        vendor_id:
          type: string
          description: >-
            Specify the unique Vendor ID to identify the beneficiary.
            Alphanumeric and underscore (_) allowed.
        status:
          type: string
          description: >-
            Specify the status of vendor that should be updated. Possible
            values: ACTIVE,BLOCKED, DELETED.
        name:
          type: string
          description: >-
            Specify the name of the vendor to be updated. Name should not have
            any special character except . / - &.
        email:
          type: string
          description: >-
            Specify the vendor email ID that should be updated. String in email
            ID format (Ex:johndoe_1@cashfree.com) should contain @ and dot (.).
        phone:
          type: string
          description: >-
            Specify the beneficiaries phone number to be updated. Phone number
            registered in India (only digits, 8 - 12 characters after excluding
            +91).
        verify_account:
          type: boolean
          description: >-
            Specify if the vendor bank account details should be verified.
            Possible values: true or false.
        dashboard_access:
          type: boolean
          description: >-
            Update if the vendor will have dashboard access or not. Possible
            values are: true or false.
        schedule_option:
          type: number
          description: >-
            Specify the settlement cycle to be updated. View the settlement
            cycle details from the "Settlement Cycles Supported" table. If no
            schedule option is configured, the settlement cycle ID "1" will be
            in effect. Select "8" or "9" if you want to schedule instant vendor
            settlements.
        bank:
          $ref: '#/components/schemas/BankDetails'
          description: Specify the vendor bank account details to be updated.
        upi:
          $ref: '#/components/schemas/UpiDetails'
          description: >-
            Updated beneficiary upi vpa. Alphanumeric, dot (.), hyphen (-), at
            sign (@), and underscore allowed (100 character limit). Note:
            underscore and dot (.) gets accepted before and after @, but hyphen
            (-) is only accepted before @ sign.
        kyc_details:
          $ref: '#/components/schemas/KycDetails'
          description: Specify the kyc details that should be updated.
      required:
        - vendor_id
        - status
        - name
        - email
        - phone
        - kyc_details
    CreateVendorResponse:
      title: CreateVendorResponse
      description: Create Vendor Response.
      type: object
      example:
        email: johndoe@cashfree.com
        status: IN_BENE_CREATION
        bank: []
        upi: []
        phone: 9876543210
        name: customer
        vendor_id: TestAccount11
        schedule_option: []
        kyc_details: []
        dashboard_access: false
        bank_details: null
      properties:
        email:
          type: string
        status:
          type: string
        bank:
          type: array
          items:
            $ref: '#/components/schemas/BankDetails'
        upi:
          type: string
        phone:
          type: number
        name:
          type: string
        vendor_id:
          type: string
        schedule_option:
          type: array
          items:
            $ref: '#/components/schemas/ScheduleOption'
        kyc_details:
          type: array
          items:
            $ref: '#/components/schemas/KycDetails'
        dashboard_access:
          type: boolean
        bank_details:
          type: string
    BadRequestError:
      title: BadRequestError
      description: Invalid request received from client.
      example:
        message: bad URL, please check API documentation
        help: >-
          Check latest errors and resolution from Merchant Dashboard API logs:
          https://bit.ly/4glEd0W Help Document: https://bit.ly/4eeZYO9
        code: request_failed
        type: invalid_request_error
      type: object
      properties:
        message:
          type: string
        code:
          type: string
        help:
          type: string
        type:
          type: string
          enum:
            - invalid_request_error
    BankDetails:
      title: BankDetails
      type: object
      example:
        account_number: 123456111110
        account_holder: JOHNDOE
        ifsc: YESB0000262
      properties:
        account_number:
          type: string
        account_holder:
          type: string
        ifsc:
          type: string
    UpiDetails:
      title: UpiDetails
      type: object
      example:
        vpa: success@upi
        account_holder: JOHN DOE
      properties:
        vpa:
          type: string
        account_holder:
          type: string
    KycDetails:
      title: KycDetails
      type: object
      example:
        account_type: BUSINESS
        business_type: NBFC
        uidai: 753624181019
        gst: 11AAAAA1111A1Z0
        cin: L00000Aa0000AaA000000
        pan: BIAPA2934N
        passport_number: L6892603
      properties:
        account_type:
          type: string
        business_type:
          type: string
        uidai:
          type: number
        gst:
          type: string
        cin:
          type: string
        pan:
          type: string
        passport_number:
          type: string
        driving_license:
          type: string
        voter_id:
          type: string
    ScheduleOption:
      title: ScheduleOption
      type: object
      example:
        settlement_schedule_message: T+1 settlement at 11:00 AM
        schedule_id: 1
        merchant_default: true
      properties:
        settlement_schedule_message:
          type: string
        schedule_id:
          type: number
        merchant_default:
          type: boolean
  securitySchemes:
    XClientID:
      type: apiKey
      in: header
      name: x-client-id
      description: >-
        Client app ID. You can find your app id in the [Merchant
        Dashboard](https://merchant.cashfree.com/auth/login/pg/developers/api-keys?env=prod).
    XClientSecret:
      type: apiKey
      in: header
      name: x-client-secret
      description: >-
        Client secret key. You can find your secret key in the [Merchant
        Dashboard](https://merchant.cashfree.com/auth/login/pg/developers/api-keys?env=prod).
    XPartnerAPIKey:
      type: apiKey
      in: header
      name: x-partner-apikey
      description: >-
        If you are partner and you are making an api call on behalf of a
        merchant.
    XClientSignatureHeader:
      type: apiKey
      in: header
      name: x-client-signature
      description: >-
        Use this if you do not want to pass the secret key and instead want to
        use signature.
    XPartnerMerchantID:
      type: apiKey
      in: header
      name: x-partner-merchantid
      description: >-
        If you are partner use this to specify the merchant ID if you don't have
        the merchant client app ID.

````