Custom Onboarding SDK
Integrate with Custom Onboarding SDK to create client accounts using APIs and prefill KYC details.
To integrate with Custom Onboarding SDK:
You require a bearer token to access onboarding APIs. Below is a sample code to generate a bearer token using Onboarding SDK.
The access_token
is valid for 90 days. After your access token expires, you will receive a 4XX error response. Regenerate the access token using your credentials.
Use onboarding APIs to add KYC details of your clients. You can pre-fill all or a few KYC details using APIs and let the users fill in the remaining on the onboarding form.
Below are the APIs available to onboard clients.
API | Action |
---|---|
Create and update a client account. Add basic details like name, phone number, email ID and KYC details like business name, type and business PAN details. Check the for the complete list of fields. | |
Configure products for an account. Update payment methods, settlement details and refund settings. Check the for the complete list of fields. | |
Add the KYC details of the authorised signatory or the owner of the business. Check the for the list of fields. | |
Upload KYC documents for accounts and stakeholders. Know more about . |
Below is a sample code to create a client account. Know more about
.id
string
The unique identifier of a sub-merchant account generated by Razorpay. The maximum length is 18 characters. For example, acc_GLGeLkU2JUeyDZ
.
type
string
The account type. Possible value is standard
.
status
string
The status of the account. Possible values:
created
: Account status when the merchant account is created.activated
: Account status when the merchant KYC is approved.needs_clarification
: Account status when the merchant is asked to provide clarifications related to the KYC details submitted.under_review
: Account status when the merchant submits all the KYC requirements.suspended
: Account status when the merchant account is identified as potentially fraudulent and is suspended.rejected
: Account status when the KYC details submitted by the merchant are rejected during manual review.
string
The sub-merchant's business email address.
phone
integer
The sub-merchant's business phone number. The minimum length is 8 characters and the maximum length is 15.
legal_business_name
string
The name of the sub-merchant's business. For example, Acme Corp
. The minimum length is 4 characters and the maximum length is 200.
customer_facing_business_name
string
The sub-merchant billing label as it appears on the Razorpay Dashboard. The minimum length is 1 character and the maximum length is 255. This parameter might be required to complete the KYC process. However, it is optional for this API.
business_type
string
The type of business operated by the sub-merchant. Possible values:
reference_id
string
Partner's external account reference id. The minimum length is 1 character and the maximum length is 512.
profile
object
The business details of the sub-merchant's account.
category
string
The business category of the sub-merchant. Possible values:
subcategory
string
The business sub-category of the sub-merchant. Possible values:
description
deprecated
string
This parameter has been deprecated. Pass the description using the business_model
parameter.
business_model
string
The business description. The minimum length is 1 character and the maximum length is 255.
addresses
object
Details of sub-merchant's address.
operation
object
Details of the sub-merchant's operational address. This parameter might be required to complete the KYC process. However, it is optional for this API.
street1
string
Address, line 1. The maximum length is 100 characters.
street2
string
Address, line 2. The maximum length is 100 characters.
city
string
The city. The maximum length is 100 characters.
state
string
The state. The minimum length is 2 and the maximum length is 100.
postal_code
integer
The postal code. This should be exactly 6 characters.
country
string
The country. The minimum length is 2 and the maximum length is 64. This can either be a country code in capital letters or the full name of the country in lower case letters. For example, for India, you must write either IN
or india
.
registered
object
Details of the sub-merchant's registered address.
street1
string
Address, line 1. The maximum length is 100 characters.
street2
string
Address, line 2. The maximum length is 100 characters.
city
string
The city. The maximum length is 100 characters.
state
string
The state. The minimum length is 2 and the maximum length is 100.
postal_code
integer
The postal code. This should be exactly 6 characters.
country
string
The country. The minimum length is 2 and the maximum length is 64. This can either be a country code in capital letters or the full name of the country in lower case letters. For example, for India, you must write either IN
or india
.
legal_info
object
The legal details about the sub-merchant's business.
pan
string
Valid PAN number details of the sub-merchant's business.
- This is a 10-digit alphanumeric code. For example,
AVOJB1111K
. - The 4th digit should be either of 'C', 'H', 'F', 'A', 'T', 'B', 'J', 'G', 'L'.
- The regex for Company PAN is
/^[a-zA-z]{5}\d{4}[a-zA-Z]{1}$/
.
This parameter might be required to complete the KYC process. However, it is optional for this API. Business types like proprietorship and individual (not_yet_registered
), do not require Business PAN.
gst
string
Valid GSTIN number details of the sub-merchant.
- This is a 15-digit PAN-based unique identification number.
- The Regex for GSTIN is
/^[0123][0-9][a-z]{5}[0-9]{4}[a-z][0-9][a-z0-9][a-z0-9]$/gi
.
cin
string
CIN is for Private Limited and Public Limited, whereas LLPIN is for LLP business type.
- This is a 21-digit alpha-numeric number.
- The Regex for CIN is
/^([a-z]{3}-\d{4}|[ul]\d{5}[a-z]{2}\d{4}[a-z]{3}\d{6})$/i
.
brand
object
The branding details of the sub-merchant's business.
color
string
The color code of sub-merchant's business brand. This is a 6-character hex code (Regex: [a-fA-F0-9]{6}).
notes
object
Contains user-defined fields stored by the partner for reference purposes.
contact_name
string
The name of the contact. The minimum length is 4 and the maximum length is 255 characters.
contact_info
object
Options available for contact support.
chargeback
object
The type of contact support.
string
The email id of chargeback POC. The maximum length is:
- local part (before @): 64 characters.
- domain part (after @): 68 characters.
The total character length supported is 132.
phone
integer
The phone number of chargeback POC. The maximum length is 10 characters.
policy_url
string
The URL of chargeback policy. Regex is (protocol://<domainname>
:port/resource path?querystring#fragementid)
protocol-both http/https allowed. Only domain name is mandatory.
refund
object
The type of contact support.
string
The email id of refund POC. The maximum length is:
- local part (before @): 64 characters.
- domain part (after @): 68 characters.
The total character length supported is 132.
phone
integer
The phone number of refund POC. The maximum length is 10 characters.
policy_url
string
The URL of refund policy. Regex is (protocol://<domainname>
:port/resource path?querystring#fragementid)
protocol-both http/https allowed.
support
array
The type of contact support.
string
The email id of support POC. The maximum length is:
- local part (before @): 64 characters.
- domain part (after @): 68 characters.
The total character length supported is 132.
phone
integer
The phone number of support POC. The maximum length is 10 characters.
policy_url
string
The URL of support policy. Regex is (protocol://<domainname>
:port/resource path?querystring#fragementid)
protocol-both http/https allowed.
apps
object
The app details of the sub-merchant's business
websites
array
The website/app for the sub-merchant's business. A minimum of 1 website is required.
android
array
Android app details
url
string
The link of the Android app. Regex is (protocol://<domainname>
:port/resource path?querystring#fragementid)
protocol-both http/https allowed.
name
string
The name of the Android app.
ios
array
iOS app details
url
string
The link of the iOS app. Regex is (protocol://<domainname>
:port/resource path?querystring#fragementid)
protocol-both http/https allowed.
name
string
The name of the iOS app.
activated_at
integer
Unix timestamp that indicates when the merchant account was activated. This parameter has null
value till the account is activated.
live
boolean
Indicates the payments acceptance status of the merchant account. Possible values:
true
: Merchant can start accepting customer payments.false
: Merchant cannot accept customer payments.
hold_funds
boolean
Indicates the settlements status of the merchant account. Possible values:
true
: Settlement are on hold. Funds are not transferred to the merchant account.false
: Settlements can be transferred to the merchant account.
You can request a product configuration to configure and activate Razorpay products for a client account according to their requirements. Know more about
.Below is a sample code to request a product configuration.
id
string
The unique identifier of a product generated by Razorpay for a sub-merchant account. This id is used to fetch or update a product.
product_name
string
The product(s) to be configured. Possible values:
payment_gateway
payment_links
tnc
object
It consists of the configuration for the accepted terms and conditions by the merchant for the requested product. If the terms and conditions are accepted by the user for the requested product, it would consist of the following fields:
id
string
The unique identifier representing the acceptance of terms and conditions for a product by a user.
accepted
boolean
The flag that represents whether the terms and conditions are accepted by the user.
accepted_at
integer
The Unix timestamp at which the terms and conditions were accepted by the user for the requested product.
activation_status
string
The status of the
requested
needs_clarification
under_review
activated
suspended
configuration
object
The following are the possible configurations:
payment_methods
object