Partner APIs: Merchant Onboarding
Update Business Details
Submits or updates business information for a merchant. Cannot be updated after T&C is acknowledged by the merchant.
PUT
/
gcc
/
v2
/
partner
/
merchant
/
onboard
/
{onboardingId}
/
business-details
Update Business Details
curl --request PUT \
--url https://api.onboard.payglocal.in/gcc/v2/partner/merchant/onboard/{onboardingId}/business-details \
--header 'Content-Type: application/json' \
--header 'x-gl-auth: <api-key>' \
--header 'x-gl-digest: <api-key>' \
--data '
{
"entityType": "PVT_LTD_COMPANY",
"gstNumber": "27AAPFU0939F1ZV",
"natureOfBusiness": "BUS.IT_SERVICES",
"tradeName": "Acme Payments",
"websiteUrl": "https://acmepayments.com",
"purposeCode": "P0802",
"expectedMonthlyVolume": {
"amount": "50000",
"currency": "USD"
},
"address": {
"isOperatingSameAsRegistered": true,
"businessRegisteredAddress": {
"streetAddress1": "501 Commerce Street",
"streetAddress2": "Floor 3",
"zipcode": "400051",
"stateCode": "MH",
"city": "Mumbai",
"state": "Maharashtra"
}
}
}
'import requests
url = "https://api.onboard.payglocal.in/gcc/v2/partner/merchant/onboard/{onboardingId}/business-details"
payload = {
"entityType": "PVT_LTD_COMPANY",
"gstNumber": "27AAPFU0939F1ZV",
"natureOfBusiness": "BUS.IT_SERVICES",
"tradeName": "Acme Payments",
"websiteUrl": "https://acmepayments.com",
"purposeCode": "P0802",
"expectedMonthlyVolume": {
"amount": "50000",
"currency": "USD"
},
"address": {
"isOperatingSameAsRegistered": True,
"businessRegisteredAddress": {
"streetAddress1": "501 Commerce Street",
"streetAddress2": "Floor 3",
"zipcode": "400051",
"stateCode": "MH",
"city": "Mumbai",
"state": "Maharashtra"
}
}
}
headers = {
"x-gl-auth": "<api-key>",
"x-gl-digest": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)HttpResponse<String> response = Unirest.put("https://api.onboard.payglocal.in/gcc/v2/partner/merchant/onboard/{onboardingId}/business-details")
.header("x-gl-auth", "<api-key>")
.header("x-gl-digest", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"entityType\": \"PVT_LTD_COMPANY\",\n \"gstNumber\": \"27AAPFU0939F1ZV\",\n \"natureOfBusiness\": \"BUS.IT_SERVICES\",\n \"tradeName\": \"Acme Payments\",\n \"websiteUrl\": \"https://acmepayments.com\",\n \"purposeCode\": \"P0802\",\n \"expectedMonthlyVolume\": {\n \"amount\": \"50000\",\n \"currency\": \"USD\"\n },\n \"address\": {\n \"isOperatingSameAsRegistered\": true,\n \"businessRegisteredAddress\": {\n \"streetAddress1\": \"501 Commerce Street\",\n \"streetAddress2\": \"Floor 3\",\n \"zipcode\": \"400051\",\n \"stateCode\": \"MH\",\n \"city\": \"Mumbai\",\n \"state\": \"Maharashtra\"\n }\n }\n}")
.asString();const url = 'https://api.onboard.payglocal.in/gcc/v2/partner/merchant/onboard/{onboardingId}/business-details';
const options = {
method: 'PUT',
headers: {
'x-gl-auth': '<api-key>',
'x-gl-digest': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
entityType: 'PVT_LTD_COMPANY',
gstNumber: '27AAPFU0939F1ZV',
natureOfBusiness: 'BUS.IT_SERVICES',
tradeName: 'Acme Payments',
websiteUrl: 'https://acmepayments.com',
purposeCode: 'P0802',
expectedMonthlyVolume: {amount: '50000', currency: 'USD'},
address: {
isOperatingSameAsRegistered: true,
businessRegisteredAddress: {
streetAddress1: '501 Commerce Street',
streetAddress2: 'Floor 3',
zipcode: '400051',
stateCode: 'MH',
city: 'Mumbai',
state: 'Maharashtra'
}
}
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));{
"gid": "gl_9c2645ed09edb22e",
"timestamp": "10/01/2026 15:00:00",
"reasonCode": "",
"data": {
"merchantInfo": {
"onboardingId": "pg_onboard_abc123",
"partnerOnboardingId": "partner-merchant-001",
"onboardingStatus": "INITIATED",
"businessDetails": {
"entityType": "<string>",
"gstNumber": "<string>",
"natureOfBusiness": "<string>",
"registeredName": "<string>",
"tradeName": "<string>",
"iec": "<string>",
"businessMonthlySize": "<string>",
"websiteUrl": "<string>",
"purposeCode": "<string>",
"businessRegisteredAddress": {
"streetAddress1": "<string>",
"streetAddress2": "<string>",
"zipcode": "<string>",
"stateCode": "MH",
"city": "<string>",
"state": "Maharashtra"
},
"businessOperatingAddress": {
"streetAddress1": "<string>",
"streetAddress2": "<string>",
"zipcode": "<string>",
"stateCode": "MH",
"city": "<string>",
"state": "Maharashtra"
}
},
"directorDetails": [
{
"designation": "<string>",
"name": "<string>",
"pan": "<string>"
}
],
"beneficialOwnerDetails": [
{
"designation": "<string>",
"name": "<string>",
"pan": "<string>",
"percentageOwnership": 123
}
],
"authorisedSignatoryDetails": {
"authSignatoryName": "<string>",
"authSignatoryPan": "<string>",
"contact": {
"phone": "<string>",
"email": "<string>"
}
},
"settlementDetails": {
"bankAccountNumber": "<string>",
"bankIfscCode": "<string>",
"accountHolderName": "<string>",
"accountType": "CURRENT"
}
},
"merchantOnboardingCheckListStatus": {
"businessDetails": "COMPLETE",
"beneficialOwners": "COMPLETE",
"bankDetails": "COMPLETE",
"authorisedSignatory": "COMPLETE",
"vkyc": "COMPLETE",
"digiLocker": "COMPLETE",
"tncAcknowledged": "COMPLETE",
"documents": "COMPLETE",
"products": "COMPLETE",
"documentsToBeUploaded": [
"<string>"
]
}
}
}{
"gid": "gl_9c2645ed09edb22e",
"timestamp": "10/01/2026 15:00:00",
"reasonCode": "VALIDATION_ERROR",
"data": {},
"errors": null,
"errorDetails": [
{
"fieldName": "paymentData.totalAmount",
"message": "This field is required"
}
]
}{
"gid": "gl_9c2645ed09edb22e",
"timestamp": "10/01/2026 15:00:00",
"reasonCode": "UNAUTHORIZED",
"data": {},
"errors": null,
"errorDetails": [
{
"fieldName": "authorization",
"message": "Invalid x-gl-token-external"
}
]
}{
"gid": "gl_9c2645ed09edb22e",
"timestamp": "10/01/2026 15:00:00",
"reasonCode": "VALIDATION_ERROR",
"data": {},
"errors": {},
"errorDetails": [
{
"field": "panNumber",
"message": "Required field is missing"
}
]
}{
"gid": "gl_9c2645ed09edb22e",
"timestamp": "10/01/2026 15:00:00",
"reasonCode": "VALIDATION_ERROR",
"data": {},
"errors": {},
"errorDetails": [
{
"field": "panNumber",
"message": "Required field is missing"
}
]
}When to Use
Submits or updates business information for a merchant onboarding record. Must be called after Create Onboarding.Business details cannot be updated after the merchant has acknowledged the Terms & Conditions. Ensure all information is accurate before triggering Get Verification Redirect.
Notes
address.businessOperatingAddressis required only whenaddress.isOperatingSameAsRegisteredisfalse. When addresses differ,OPERATING_ADDRESS_PROOFis added todocumentsToBeUploaded.natureOfBusinessmust be a subcategory code from Get Business Categories. State codes follow the 2-letter format — see State Codes.- For Partnership Firm entities, set
noPartnershipRegistrationCheck: truewhen the partnership is not registered. This exemptsPARTNERSHIP_REGISTRATION_CERTIFICATEfrom required documents.
Error Scenarios
| Scenario | HTTP Code |
|---|---|
| Required fields missing or empty | 400 |
| Invalid field format | 400 |
| Update attempted after T&C is acknowledged | 400 |
onboardingId does not exist | 404 |
onboardingId does not belong to this partner | 403 |
Authorizations
Static API Key generated from the PayGlocal Partner Dashboard.
Per-request HmacSHA256 signature, Base64-encoded, using your API Secret as the HMAC key.
- For GET requests: sign the request URI path (e.g.
/gcc/v2/partner/merchant/onboard/business-category), including query string if present. - For POST/PUT requests: sign the exact raw request body.
Path Parameters
PayGlocal-generated onboarding ID returned by Create Onboarding.
Body
application/json
Legal constitution of the business.
Available options:
INDIVIDUAL, PVT_LTD_COMPANY, PUBLIC_LTD_COMPANY, PROPRIETOR, PARTNERSHIP_FIRM, LLP_FIRM Example:
"PVT_LTD_COMPANY"
Subcategory code from the Get Business Categories API.
Example:
"BUS.IT_SERVICES"
Merchant website or app store URL.
Example:
"https://acmepayments.com"
Primary purpose code for merchant transactions.
Example:
"P0802"
Show child attributes
Show child attributes
Show child attributes
Show child attributes
GST registration number.
Example:
"27AAPFU0939F1ZV"
Trade name or brand name.
Example:
"Acme Payments"
Importer Exporter Code (preferred for GOODS businesses).
⌘I
Update Business Details
curl --request PUT \
--url https://api.onboard.payglocal.in/gcc/v2/partner/merchant/onboard/{onboardingId}/business-details \
--header 'Content-Type: application/json' \
--header 'x-gl-auth: <api-key>' \
--header 'x-gl-digest: <api-key>' \
--data '
{
"entityType": "PVT_LTD_COMPANY",
"gstNumber": "27AAPFU0939F1ZV",
"natureOfBusiness": "BUS.IT_SERVICES",
"tradeName": "Acme Payments",
"websiteUrl": "https://acmepayments.com",
"purposeCode": "P0802",
"expectedMonthlyVolume": {
"amount": "50000",
"currency": "USD"
},
"address": {
"isOperatingSameAsRegistered": true,
"businessRegisteredAddress": {
"streetAddress1": "501 Commerce Street",
"streetAddress2": "Floor 3",
"zipcode": "400051",
"stateCode": "MH",
"city": "Mumbai",
"state": "Maharashtra"
}
}
}
'import requests
url = "https://api.onboard.payglocal.in/gcc/v2/partner/merchant/onboard/{onboardingId}/business-details"
payload = {
"entityType": "PVT_LTD_COMPANY",
"gstNumber": "27AAPFU0939F1ZV",
"natureOfBusiness": "BUS.IT_SERVICES",
"tradeName": "Acme Payments",
"websiteUrl": "https://acmepayments.com",
"purposeCode": "P0802",
"expectedMonthlyVolume": {
"amount": "50000",
"currency": "USD"
},
"address": {
"isOperatingSameAsRegistered": True,
"businessRegisteredAddress": {
"streetAddress1": "501 Commerce Street",
"streetAddress2": "Floor 3",
"zipcode": "400051",
"stateCode": "MH",
"city": "Mumbai",
"state": "Maharashtra"
}
}
}
headers = {
"x-gl-auth": "<api-key>",
"x-gl-digest": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)HttpResponse<String> response = Unirest.put("https://api.onboard.payglocal.in/gcc/v2/partner/merchant/onboard/{onboardingId}/business-details")
.header("x-gl-auth", "<api-key>")
.header("x-gl-digest", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"entityType\": \"PVT_LTD_COMPANY\",\n \"gstNumber\": \"27AAPFU0939F1ZV\",\n \"natureOfBusiness\": \"BUS.IT_SERVICES\",\n \"tradeName\": \"Acme Payments\",\n \"websiteUrl\": \"https://acmepayments.com\",\n \"purposeCode\": \"P0802\",\n \"expectedMonthlyVolume\": {\n \"amount\": \"50000\",\n \"currency\": \"USD\"\n },\n \"address\": {\n \"isOperatingSameAsRegistered\": true,\n \"businessRegisteredAddress\": {\n \"streetAddress1\": \"501 Commerce Street\",\n \"streetAddress2\": \"Floor 3\",\n \"zipcode\": \"400051\",\n \"stateCode\": \"MH\",\n \"city\": \"Mumbai\",\n \"state\": \"Maharashtra\"\n }\n }\n}")
.asString();const url = 'https://api.onboard.payglocal.in/gcc/v2/partner/merchant/onboard/{onboardingId}/business-details';
const options = {
method: 'PUT',
headers: {
'x-gl-auth': '<api-key>',
'x-gl-digest': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
entityType: 'PVT_LTD_COMPANY',
gstNumber: '27AAPFU0939F1ZV',
natureOfBusiness: 'BUS.IT_SERVICES',
tradeName: 'Acme Payments',
websiteUrl: 'https://acmepayments.com',
purposeCode: 'P0802',
expectedMonthlyVolume: {amount: '50000', currency: 'USD'},
address: {
isOperatingSameAsRegistered: true,
businessRegisteredAddress: {
streetAddress1: '501 Commerce Street',
streetAddress2: 'Floor 3',
zipcode: '400051',
stateCode: 'MH',
city: 'Mumbai',
state: 'Maharashtra'
}
}
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));{
"gid": "gl_9c2645ed09edb22e",
"timestamp": "10/01/2026 15:00:00",
"reasonCode": "",
"data": {
"merchantInfo": {
"onboardingId": "pg_onboard_abc123",
"partnerOnboardingId": "partner-merchant-001",
"onboardingStatus": "INITIATED",
"businessDetails": {
"entityType": "<string>",
"gstNumber": "<string>",
"natureOfBusiness": "<string>",
"registeredName": "<string>",
"tradeName": "<string>",
"iec": "<string>",
"businessMonthlySize": "<string>",
"websiteUrl": "<string>",
"purposeCode": "<string>",
"businessRegisteredAddress": {
"streetAddress1": "<string>",
"streetAddress2": "<string>",
"zipcode": "<string>",
"stateCode": "MH",
"city": "<string>",
"state": "Maharashtra"
},
"businessOperatingAddress": {
"streetAddress1": "<string>",
"streetAddress2": "<string>",
"zipcode": "<string>",
"stateCode": "MH",
"city": "<string>",
"state": "Maharashtra"
}
},
"directorDetails": [
{
"designation": "<string>",
"name": "<string>",
"pan": "<string>"
}
],
"beneficialOwnerDetails": [
{
"designation": "<string>",
"name": "<string>",
"pan": "<string>",
"percentageOwnership": 123
}
],
"authorisedSignatoryDetails": {
"authSignatoryName": "<string>",
"authSignatoryPan": "<string>",
"contact": {
"phone": "<string>",
"email": "<string>"
}
},
"settlementDetails": {
"bankAccountNumber": "<string>",
"bankIfscCode": "<string>",
"accountHolderName": "<string>",
"accountType": "CURRENT"
}
},
"merchantOnboardingCheckListStatus": {
"businessDetails": "COMPLETE",
"beneficialOwners": "COMPLETE",
"bankDetails": "COMPLETE",
"authorisedSignatory": "COMPLETE",
"vkyc": "COMPLETE",
"digiLocker": "COMPLETE",
"tncAcknowledged": "COMPLETE",
"documents": "COMPLETE",
"products": "COMPLETE",
"documentsToBeUploaded": [
"<string>"
]
}
}
}{
"gid": "gl_9c2645ed09edb22e",
"timestamp": "10/01/2026 15:00:00",
"reasonCode": "VALIDATION_ERROR",
"data": {},
"errors": null,
"errorDetails": [
{
"fieldName": "paymentData.totalAmount",
"message": "This field is required"
}
]
}{
"gid": "gl_9c2645ed09edb22e",
"timestamp": "10/01/2026 15:00:00",
"reasonCode": "UNAUTHORIZED",
"data": {},
"errors": null,
"errorDetails": [
{
"fieldName": "authorization",
"message": "Invalid x-gl-token-external"
}
]
}{
"gid": "gl_9c2645ed09edb22e",
"timestamp": "10/01/2026 15:00:00",
"reasonCode": "VALIDATION_ERROR",
"data": {},
"errors": {},
"errorDetails": [
{
"field": "panNumber",
"message": "Required field is missing"
}
]
}{
"gid": "gl_9c2645ed09edb22e",
"timestamp": "10/01/2026 15:00:00",
"reasonCode": "VALIDATION_ERROR",
"data": {},
"errors": {},
"errorDetails": [
{
"field": "panNumber",
"message": "Required field is missing"
}
]
}
