m2pfintech
API LibraryOnboarding

Register Customer

Registers a new customer into the DCMS platform. This is the primary onboarding API that creates a customer profile with their personal information, KYC documents, address details, communication contacts, and bank account linkage. Optionally, a card can be issued as part of registration by including the kitInfo array in the request. This is commonly used for insta-card issuance where the card is issued at the time of account opening. The entityId must be unique and typically corresponds to the CIF number from the core banking system.

POST
/register

Authorization

tenantAuth
tenant<token>

The DCMS tenant name for multi-tenant isolation. Every API call must include this header to identify the client organization.

In: header

Header Parameters

tenant*string

The DCMS client or tenant name for multi-tenant isolation.

Request Body

application/json

entityId*string

Unique customer identifier, typically the CIF number from the core banking system.

entityType*string

Type of entity being registered.

Value in"CUSTOMER"
businessType*string

Type of business or tenant the customer belongs to.

business*string

Business or tenant name.

businessId*string

Unique business or tenant identifier.

title?string

Customer title or salutation.

Value in"Mr" | "Mrs" | "Miss" | "Ms" | "Dr"
firstName*string

Customer first name.

middleName?string

Customer middle name. Can be empty string if not applicable.

lastName*string

Customer last name or surname.

gender*string

Customer gender.

Value in"MALE" | "FEMALE" | "OTHER"
dob*string

Date of birth in YYYY-MM-DD format.

Formatdate
referralEntityId?string|null

Entity ID of the customer who referred this customer, if applicable.

deliveryAddress?string

Address type for card delivery when kitInfo is provided. Required when issuing a card during registration.

Value in"PERMANENT" | "COMMUNICATION"
addressInfo*

List of customer addresses. At least one PERMANENT address is required.

communicationInfo*

List of communication contacts. At least one contact with mobile number is required.

kycInfo*

List of KYC documents. At least one document is required.

accountInfo*

List of bank accounts to link. At least one account is required.

kitInfo?

Optional card details for insta-card issuance during registration. When provided, a card is issued as part of the registration process. The kitNo may reference a pre-allocated kit from inventory.

Response Body

application/json

application/json

application/json

curl -X POST "https://api.dcms.example.com/v1/register" \  -H "tenant: ACME_BANK" \  -H "Content-Type: application/json" \  -d '{    "entityId": "676765",    "entityType": "CUSTOMER",    "businessType": "ACME_BANK",    "business": "ACME_BANK",    "businessId": "687",    "title": "Miss",    "firstName": "Aadhu",    "middleName": "",    "lastName": "Chandran",    "gender": "FEMALE",    "dob": "1978-06-01",    "referralEntityId": null,    "addressInfo": [      {        "address1": "M2P Solutions Pvt Ltd",        "address2": "Olympia Quest, Plot No:C1 & C56, SIDCO",        "address3": "Thiru Vi Ka, Industrial Estate, Guindy",        "addressCategory": "PERMANENT",        "city": "CHENNAI",        "country": "INDIA",        "pinCode": "600032",        "state": "TAMILNADU"      },      {        "address1": "M2P Solutions Pvt Ltd",        "address2": "Olympia Quest, Plot No:C1 & C56, SIDCO",        "address3": "Thiru Vi Ka, Industrial Estate, Guindy",        "addressCategory": "COMMUNICATION",        "city": "CHENNAI",        "country": "INDIA",        "pinCode": "600032",        "state": "TAMILNADU"      }    ],    "communicationInfo": [      {        "contactNo": "9876543210",        "emailId": "test98765@gmail.com",        "notification": true      }    ],    "kycInfo": [      {        "documentType": "PAN",        "documentNo": "ABLIP7898E",        "hashDocumentNo": "XXXXXXXX",        "documentExpiry": "2099-03-01"      }    ],    "accountInfo": [      {        "accountNo": 8642135,        "accountStatus": "ACTIVE",        "accountType": "SAVING",        "accountsCurrency": "INR",        "defaultAccount": true,        "initialFunding": "8000",        "isPrimary": false,        "schemeCode": "2003"      }    ]  }'
{
  "result": {
    "entityId": "676765"
  },
  "exception": null,
  "pagination": null
}
{
  "result": null,
  "exception": {
    "errorCode": "CUS002",
    "shortMessage": "Registration failed",
    "detailMessage": "Required fields are missing or invalid in the registration request",
    "httpStatus": "BAD_REQUEST",
    "fieldError": [
      "firstName is required",
      "At least one address is required"
    ],
    "languageCode": "en"
  },
  "pagination": null
}
{
  "result": null,
  "exception": {
    "errorCode": "CUS003",
    "shortMessage": "Customer already exists",
    "detailMessage": "A customer with the given entityId is already registered",
    "httpStatus": "CONFLICT",
    "fieldError": [
      "Duplicate entityId"
    ],
    "languageCode": "en"
  },
  "pagination": null
}