Empower your commercial users by establishing a comprehensive business profile within the banking ecosystem. This endpoint serves as the primary entry point for entities—from startups to established enterprises—capturing critical organizational data to kickstart the onboarding process. Upon registration, entities are placed in a Pending status, ready for the rigorous compliance and verification workflows required for modern business banking.
The Onboarding Journey:
- Registration: Establish the business entity's digital record as a precursor to all corporate banking services.
- Verification: Following creation, ensure that at least one primary address, an identity document, a mobile number, and an email are added. Then, utilize the Verify Customer API to validate these credentials. A successful verification transitions the record to a
Verifiedstate. - Activation: Successful verification transitions the business to an active state, enabling downstream operations like account opening and fund transfers.
Real-time Lifecycle Visibility
To maintain precise synchronization with the asynchronous onboarding process, we strongly recommend subscribing to our real-time webhooks. These provide immediate notifications for creation events, verification results, and state transitions, serving as the most efficient way to monitor progress.
| Function | Webhook Reference |
|---|---|
| Create Customer | Register Customer Webhook |
For a complete overview of the end-to-end integration sequence, please refer to the Customer Onboarding Guide.
Using Template Option IDs
Several fields in this request payload require IDs that are obtained from the Get Business Customer Template API. You must call the Business Customer Template API first to retrieve the valid option IDs for your tenant before creating a customer.
The following fields require template option IDs:
| Field in Request Body | Source from Business Customer Template Response |
|---|---|
officeId | officeOptions[].id |
legalFormId | clientLegalFormOptions[].id |
clientTypes[] | clientTypeOptions[].id |
clientClassificationId | clientClassificationOptions[].id |
countryOfIncorporationId | countryOptions[].id |
constitutionId | clientNonPersonConstitutionOptions[].id |
mainBusinessLineId | clientNonPersonMainBusinessLineOptions[].id |
Example: If the template returns
clientNonPersonConstitutionOptions: [{ "id": 8680, "name": "Sole Proprietorship" }, { "id": 8681, "name": "Partnership" }]. To create a sole proprietorship, pass"constitutionId": 8680in this request body.
Click to View Business Customer Request Payload Fields
| Field name | Data type | Mandatory / optional | Length constraints | Validation pattern (regex) |
|---|---|---|---|---|
| officeId | Integer | Mandatory (Default 1) | - | ^\d+$ |
| legalFormId | Integer | Mandatory | - | ^(2)$ |
| fullname | String | Mandatory | Max 100 | ^[a-zA-Z'-\u00C0-\u017F\s]*$ |
| locale | String | Mandatory | - | - |
| mobileCountryCode | String | Mandatory | - | - |
| mobileNo | String | Mandatory | - | ^\d+$ |
| emailAddress | String | Mandatory | - | ^\S+@\S+\.\S+$ |
| dateFormat | String | Mandatory if submittedOnDate is passed | - | - |
| externalId | String | Optional | - | ^\d+$ |
| clientNonPersonDetails | Object | Optional | - | - |
| countryOfIncorporationId | Integer | Optional | - | - |
| incorpNumber | String | Optional | - | - |
| constitutionId | Integer | Optional | - | - |
| entityTypeId | Integer | Optional | - | - |
| remarks | String | Optional | - | - |
| mainBusinessLineId | Integer | Optional | - | - |
| website | String | Optional | - | Valid URI |
| incorpValidityTillDate | String | Optional | - | - |
| clientTypes | Array (Integer) | Optional | - | - |
| clientClassificationId | Integer | Optional | - | ^\d+$ |
| submittedOnDate | String | Optional | - | - |
Click to View Address Fields (nested in address array)
| Field name | Data type | Mandatory / optional | Length constraints | Validation pattern (regex) |
|---|---|---|---|---|
| addressTypeId | Integer | Mandatory | - | ^(31|32|33|34)$ |
| addressLine1 | String | Optional | Max 255 | - |
| addressLine2 | String | Optional | Max 255 | - |
| addressLine3 | String | Optional | Max 255 | - |
| city | String | Optional | - | [a-zA-Z- ]+ |
| stateProvinceId | Integer | Optional | - | ^\d+$ |
| countryId | Integer | Optional | - | ^\d+$ |
| postalCode | String | Optional | Max 255 | ^\d+$ |
| isActive | Boolean | Optional | - | - |

