Create Person Customer

Seamlessly initiate the journey for new individual customers with this robust registration endpoint. Designed as the foundational step of the Mbanq onboarding lifecycle, it captures essential personal profiles and securely initializes them in a Pending state. By establishing this record, you unlock a streamlined path toward identity verification, compliance approval, and full banking activation.

The Onboarding Journey:

  1. Registration: Establish the customer's digital record as a precursor to all banking services.
  2. 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 Verified state.
  3. Activation: Successful verification transitions the customer 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.

FunctionWebhook Reference
Create CustomerRegister 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 Person Customer Template API. You must call the Person 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 BodySource from Person Customer Template Response
officeIdofficeOptions[].id
genderIdgenderOptions[].id
clientTypes[]clientTypeOptions[].id
clientClassificationIdclientClassificationOptions[].id
staffIdstaffOptions[].id
occupationIdclientOccupationOptions[].id
nationalityIdnationalityOptions[].id

Example: If the template returns genderOptions: [{ "id": 634, "name": "Male" }, { "id": 635, "name": "Female" }]. To create a male customer, pass "genderId": 634 in this request body.

Click to View Person Request Payload Fields
Field nameData typeMandatory / optionalLength constraintsValidation pattern (regex)
officeIdIntegerMandatory (Default 1)-^\d+$
firstnameStringMandatoryMax 100^[a-zA-Z'-\u00C0-\u017F\s]*$
lastnameStringMandatoryMax 100^[a-zA-Z'-\u00C0-\u017F\s]*$
mobileCountryCodeStringMandatory--
mobileNoStringMandatory-^\d+$
emailAddressStringMandatory-^\S+@\S+\.\S+$
dateFormatStringMandatory if submittedOnDate is passed--
externalIdStringOptional-^\d+$
middlenameStringOptional-^[a-zA-Z]+$
nicknameStringOptionalMax 50-
dateOfBirthStringOptional--
genderIdIntegerOptional-^(634|635|636)$
nationalityIdIntegerOptional-^\d+$
localeStringOptional--
occupationIdIntegerOptional-^\d+$
isCurrentlyEmployedBooleanOptional--
clientTypesArray (Integer)Optional--
clientClassificationIdIntegerOptional-^\d+$
isStaffBooleanOptional--
staffIdIntegerOptional-^\d+$
isOptedForMLAStatusBooleanOptional--
currentMLAStatusStringOptional-^[YN]$
addressArray (Object)Optional--
submittedOnDateStringOptional--
Click to View Address Fields (nested in address array)
Field nameData typeMandatory / optionalLength constraintsValidation pattern (regex)
addressTypeIdIntegerMandatory-^(31|32|33|34)$
addressLine1StringOptionalMax 255-
addressLine2StringOptionalMax 255-
addressLine3StringOptionalMax 255-
cityStringOptional-[a-zA-Z- ]+
stateProvinceIdIntegerOptional-^\d+$
countryIdIntegerOptional-^\d+$
postalCodeStringOptionalMax 255^\d+$
isActiveBooleanOptional--
Body Params
string
required
length ≤ 100
Defaults to John

The first name of the customer. Example: 'John'

string
required
length ≤ 100
Defaults to Doe

The last name of the customer. Example: 'Doe'

string

The date of birth. The date format should be as per the format mentioned in the dateFormat parameter. Example: '20 February 1999'

string
required
Defaults to +1

The mobile country code. Validation is enforced. Example: '+1'

string
required
Defaults to 5550198221

The mobile number of the customer. Validation is enforced. Example: '5550198221'

string
required
Defaults to [email protected]

The email address of the customer. Email Format Validation is enforced. Example: '[email protected]'

integer
required
Defaults to 1

The associated office Id. '1' will be passed as default. Example: 1

string

The middle name of the customer. Example: 'Edward'

integer

Identifier for the customer's occupation.The occupation represents the account holder's profession, job title, or primary field of work, offering insights into their employment status and industry. To get the list of available occupations, please use the API Get Code Value with code name Occupation Example: 10013

string
length ≤ 50

The preferred or informal name of the customer. This can be used for display purposes or casual correspondence. Example: 'Johnny'

integer

Identifier for the customer's nationality.
To get the list of available nationalities, use the API Get Code Value with code name COUNTRY. Example: 284

integer

The gender identifier of the customer. To retrieve the complete and valid list of gender code values, please use the API Get Code Value with code name Gender, which returns all gender options with their corresponding IDs. Example values:

  1. 634 - Male
  2. 635 - Female
  3. 636 - Diverse

Example: 634

boolean

Indicates whether the customer is currently employed. Example: true

string

A unique identifier that links the customer created by the third-party system to the customer generated within our system. Example: 'EXT-PER-48392'

clientTypes
array of integers

A list of customer type identifiers associated with the customer.
Each ID represents a specific customer classification.
The value is fetched from the API Get Code Value with code name ClientType.

clientTypes
boolean

Indicates whether the customer is opted for Military Lending Act (MLA) status. Example: false

string

The current Military Lending Act (MLA) status.

  1. Y - Yes, On active duty as of the search date or is a dependent of a servicemember on active duty as of the search date.
  2. N - No, Not on active duty as of the search date or is a dependent of a servicemember on active duty as of the search date. Example: 'Y: Yes, on active duty as of the search date or is a dependent of a servicemember on active duty as of the search date.'
boolean

Indicates whether the created customer is a staff member of the office Example: false

integer

If the 'isStaff' parameter value is 'true' then map the staffId. Example: 12345

integer

The customer classification Id. If the customer needs to be associated to any existing classification, then the classification id needs to be passed. To get the list of classification Id, use the API Get Code Value with code name ClientClassification-PERSON. Example: 12345

address
array of objects

A list of addresses associated with the customer. This array can be empty if no address details are provided during customer creation.

address
string

The locale of the customer. 'en' will be passed as default. Example: 'en'

string

If the fields 'submittedOnDate' or 'activationDate' is passed, then this parameter is mandatory. It specifies the dataformat, that's being used. Example: 'dd MMMM yyyy'

string

The submitted on date. The date format should be as per the format mentioned in the dateFormat parameter. Example: '14 February 2024'

Headers
string
required
Defaults to z01j3e71zd6zkq908vyf5861a8

The ID of your banking instance visible in the MBANQ Console.

Responses

Language
Credentials
Bearer
JWT
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json