---
title: "Create Onboarding"
method: POST
path: "/gcc/v2/partner/merchant/onboard"
tags: ["Merchant Onboarding"]
---

# Create Onboarding

`POST /gcc/v2/partner/merchant/onboard`

## Request

- Base URL: `https://api.onboard.payglocal.in`
- URL: `https://api.onboard.payglocal.in/gcc/v2/partner/merchant/onboard`
- Auth: API key in header `x-gl-auth` and API key in header `x-gl-digest`
- TypeScript: <https://skmtc.dev/payglocal/apis/payglocal-api/docs/gcc/v2/partner/merchant/onboard/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates a new merchant onboarding record. This is always the first API call in the
onboarding sequence. The `onboardingId` returned is required for all subsequent calls.

## Request body

- object
  - `externalOnboardingId` string, required: Partner's unique identifier for this merchant. Must be unique per merchant.
  - `panNumber` string, required: PAN of the business entity. Valid types — P (Individual), C (Company), T (Trust), F (Firm).

## Response `201`

Merchant onboarding record created successfully.

- CommonSuccessResponse
  - `gid` string: PayGlocal global transaction ID.
  - `timestamp` string: Response timestamp (DD/MM/YYYY HH:MM:SS).
  - `reasonCode` string: Empty string on success.
  - `data` object
    - `merchantInfo` MerchantInfo
      - `onboardingId` string: PayGlocal-generated onboarding ID.
      - `partnerOnboardingId` string: Partner's external onboarding ID.
      - `onboardingStatus` 'INITIATED' | 'IN_PROGRESS' | 'PENDING_VERIFICATION' | 'PENDING_REVIEW' | 'APPROVED' | 'REJECTED' | 'RFI': Current onboarding lifecycle status.
      - `businessDetails` object
        - `entityType` string
        - `gstNumber` string
        - `natureOfBusiness` string
        - `registeredName` string
        - `tradeName` string
        - `iec` string
        - `businessMonthlySize` string
        - `websiteUrl` string
        - `purposeCode` string
        - `businessRegisteredAddress` Address
          - `streetAddress1` string: Primary street line.
          - `streetAddress2` string: Secondary street line (suite, floor, etc.).
          - `zipcode` string: PIN code.
          - `stateCode` string: Two-letter state code (e.g., MH, KA, DL).
          - `city` string: City name.
          - `state` string: Full state name.
        - `businessOperatingAddress` Address
          - `streetAddress1` string: Primary street line.
          - `streetAddress2` string: Secondary street line (suite, floor, etc.).
          - `zipcode` string: PIN code.
          - `stateCode` string: Two-letter state code (e.g., MH, KA, DL).
          - `city` string: City name.
          - `state` string: Full state name.
      - `directorDetails` object[]
        - `designation` string
        - `name` string
        - `pan` string
      - `beneficialOwnerDetails` object[]
        - `designation` string
        - `name` string
        - `pan` string
        - `percentageOwnership` number
      - `authorisedSignatoryDetails` object
        - `authSignatoryName` string
        - `authSignatoryPan` string
        - `contact` object
          - `phone` string
          - `email` string
      - `settlementDetails` object
        - `bankAccountNumber` string
        - `bankIfscCode` string
        - `accountHolderName` string
        - `accountType` 'CURRENT' | 'SAVINGS'
    - `merchantOnboardingCheckListStatus` ChecklistStatus
      - `businessDetails` 'COMPLETE' | 'INCOMPLETE' | 'NOT_APPLICABLE': Per-step completion state for an onboarding checklist field.
      - `beneficialOwners` 'COMPLETE' | 'INCOMPLETE' | 'NOT_APPLICABLE': Per-step completion state for an onboarding checklist field.
      - `bankDetails` 'COMPLETE' | 'INCOMPLETE' | 'NOT_APPLICABLE': Per-step completion state for an onboarding checklist field.
      - `authorisedSignatory` 'COMPLETE' | 'INCOMPLETE' | 'NOT_APPLICABLE': Per-step completion state for an onboarding checklist field.
      - `vkyc` 'COMPLETE' | 'INCOMPLETE' | 'NOT_APPLICABLE': Per-step completion state for an onboarding checklist field.
      - `digiLocker` 'COMPLETE' | 'INCOMPLETE' | 'NOT_APPLICABLE': Per-step completion state for an onboarding checklist field.
      - `tncAcknowledged` 'COMPLETE' | 'INCOMPLETE' | 'NOT_APPLICABLE': Per-step completion state for an onboarding checklist field.
      - `documents` 'COMPLETE' | 'INCOMPLETE' | 'NOT_APPLICABLE': Per-step completion state for an onboarding checklist field.
      - `products` 'COMPLETE' | 'INCOMPLETE' | 'NOT_APPLICABLE': Per-step completion state for an onboarding checklist field.
      - `documentsToBeUploaded` string[]

## Other responses

- `400`: Validation error — missing or invalid fields.
- `401`: Authentication failed — invalid API key or digest.

---

[API](https://skmtc.dev/payglocal/apis/payglocal-api.md) - [All operations](https://skmtc.dev/payglocal/apis/payglocal-api/llms.txt) - [OpenAPI document](https://skmtc.dev/payglocal/apis/payglocal-api/revisions/498446abc56d?raw)
