Skip to main content

Create individual VA customer

POST
Authentication

Virtual Account APIs use the same access token as the rest of the platform. Obtain it from the Authentication API and send it on every VA call:

Authorization: Bearer <access_token>

Base URLs for each environment are listed under API environments.

note

What this does: Registers a natural person as a Virtual Account customer. Requires the docReferenceNumber from the document uploads in Upload VA documents — upload the 3 mandatory Individual documents first.

Endpoint​

Request Fields​

FieldRequired?Notes
customerTypeCodeREQUIREDFixed: 100001 for Individual
customerSubTypeCodeREQUIREDe.g. 100001
serviceTypeCodeREQUIREDFixed: VIRTUAL
sourceOPTIONALe.g. WEB
docReferenceNumberREQUIREDFrom the Upload VA Document response (Upload VA documents)
walletOwnerCodeREQUIREDYour 10-digit send client code
firstName / lastNameREQUIREDLegal name
middleNameOPTIONAL—
dateOfBirthREQUIREDFormat: YYYY-MM-DD
genderREQUIREDmale / female
nationalityREQUIREDISO 3166-1 alpha-3, e.g. IND
mobileNumberREQUIRED—
dialCodeOPTIONALe.g. +91
emailREQUIRED—
occupationCodeREQUIREDe.g. RHO015 (Consultant)
jobTitle / jobIndustryREQUIRED—
addressLine1REQUIRED—
addressLine2OPTIONAL—
countryCode / state / city / pincodeREQUIREDcountryCode is ISO alpha-3, e.g. IND
residenceStatusCodeREQUIREDe.g. 100006
idTypeCode / idNumber / idCountryREQUIREDidTypeCode e.g. RHD002
idIssuedByOPTIONAL—
issueDateREQUIREDFormat YYYY-MM-DD
idExpiryDateREQUIREDFormat YYYY-MM-DD
noIssueDate / noIdExpiryOPTIONALBoolean flags — set true when the ID has no issue date / never expires.
thirdPartyDeterminationOPTIONALBoolean — is this a third-party registration?
declarationOPTIONALBoolean — customer declaration accepted
transactionVolumeCodeOPTIONALe.g. 100002
isSenderPepOPTIONALBoolean — Politically Exposed Person flag
customerCodeOPTIONALLeave empty "" on Create — the system assigns and returns it as code (Retrieve individual VA customer). That code value becomes REQUIRED on Edit (Edit individual VA customer) — note the field is named code there, not customerCode.
customerStatusOPTIONALLeave empty — system-managed
ownerDetailListOPTIONALSend null — this is only used for Business customers (Create business VA customer)
isPayoutBannedOPTIONALDefault false
payoutClientCodesOPTIONALDefault empty array []

Complete Request Example​

Individual customer

{
"customerTypeCode": "100001",
"customerSubTypeCode": "100001",
"serviceTypeCode": "VIRTUAL",
"docReferenceNumber": "DOC1234569",
"walletOwnerCode": "1000008547",
"firstName": "Jane",
"lastName": "Doe",
"dateOfBirth": "1981-08-21",
"occupationCode": "RHO010",
"jobTitle": "Job Titlee",
"jobIndustry": "Job Industrye",
"gender": "male",
"nationality": "CAN",
"mobileNumber": "9876543216",
"addressLine1": "canada",
"email": "jane.doe@example.com",
"issueDate": "1988-08-22",
"idCountry": "MWI",
"countryCode": "CAN",
"state": "canada",
"city": "canada",
"pincode": "232222",
"idTypeCode": "RHD002",
"idNumber": "ID9000000003",
"idExpiryDate": "2027-02-09"
}
info

ℹ This example shows mandatory fields only. Optional fields (source, middleName, dialCode, addressLine2, idIssuedBy, noIssueDate, noIdExpiry, thirdPartyDetermination, declaration, transactionVolumeCode, isSenderPep, customerCode, customerStatus, ownerDetailList, isPayoutBanned, payoutClientCodes) may still be sent per the Request Fields table above.