Skip to content

KYC Application (For VA)

Tip

  • This request uses Post and the data format is multipart/form-data.
Brief Description

This API is used to submit user KYC information for Japan bank transfer and Dedicated VA scenarios.

After KYC is approved, the user can use Japan local payment capabilities that require identity verification, such as:

  • Japan Dedicated VA
  • Other Japan local payment methods that require real-name verification
Request URL
  • /v1/vexora/kycApplyFor
Request Method
  • Method: POST
  • Content-Type: multipart/form-data
header Required Type Description
merchantNo Yes String Merchant number assigned by Vexora. This value must be submitted in the request header.
Body
Parameter Required Type Description
sign Yes String Request signature. Sort all non-empty form fields except sign by parameter name in ascending alphabetical order, concatenate them as key1=value1key2=value2, append the app secret, and generate a lowercase MD5 hash. File content is not included in the signature string.
timestamp Yes String Request timestamp in milliseconds, for example 1715941383720.
userId Yes String Merchant-side user identifier. This value must uniquely identify the user within the merchant system.
callBackUrl Yes String HTTPS callback URL used to receive the final KYC review result.
usernameKanji Yes String User's legal name in Kanji or Japanese characters, consistent with the submitted identity document.
usernameFurigana Yes String User's legal name in Furigana, consistent with the submitted identity document.
dateOfBirth Yes String User date of birth. Format: yyyyMMdd, for example 19771002.
nationality Yes String User nationality, using ISO country code such as JP.
address Yes String User residential address. Submit the full address as shown in the user's supporting documents when applicable.
phone Yes String User mobile number. Use an 11-digit Japanese mobile number starting with 0, without country code, for example 09012345678.
email Yes String User email address.
recipientName Yes String Bank account holder name. It should match the account information submitted for verification.
bankCode Yes String Bank code. Refer to the Disbursement Bank Codes appendix.
branchName Yes String Bank account branch name.
branchCode Yes String Bank account branch code.
incomeSource1 Yes String Employment income indicator. 0: No, 1: Yes.
incomeSource2 Yes String Self-employment income indicator. 0: No, 1: Yes.
incomeSource3 Yes String Investment income indicator. 0: No, 1: Yes.
incomeSource4 Yes String Other income indicator. 0: No, 1: Yes.
documentFrontFile Yes File Front side of the user's identity document. Only PDF is supported. Maximum file size: 2 MB.
documentBackFile Yes File Back side of the user's identity document. Only PDF is supported. Maximum file size: 2 MB.
Request Parameter Example
curl --request POST \
  --url https://sandbox-api.vexora.com/japan/v1/vexora/kycApplyFor \
  --header 'content-type: multipart/form-data' \
  --header 'merchantNo: 4949866080' \
  --form userId=jp_user_100008 \
  --form callBackUrl=https://merchant.example.com/api/vexora/kyc/notify \
  --form 'usernameKanji=åąąį”° åĪŠéƒŽ' \
  --form 'usernameFurigana=ãƒĪマダ ã‚ŋロã‚Ķ' \
  --form dateOfBirth=19771002 \
  --form nationality=JP \
  --form 'address=æąäšŽéƒ―æļ‹č°·åŒšé“įŽ„å‚1-2-3' \
  --form phone=09012345678 \
  --form email=taro.yamada@example.com \
  --form 'recipientName=åąąį”° åĪŠéƒŽ' \
  --form bankCode=0005 \
  --form 'branchName=新åŪŋæ”Ŋåš—' \
  --form branchCode=123 \
  --form incomeSource1=0 \
  --form incomeSource2=1 \
  --form incomeSource3=1 \
  --form incomeSource4=0 \
  --form documentFrontFile=@front.pdf \
  --form documentBackFile=@back.pdf \
  --form sign=aa3d61235fb4b1f13e44c95b98d3fff1 \
  --form timestamp=1774925553256
Response Result
Parameter Required Type Description
msg Yes String Request message. A value such as success only indicates that the API request was accepted, not the final KYC review result.
code Yes String API request status code. 0000 means the request was processed successfully by the API layer. The final KYC result must be determined by data.authenticationStatus or the KYC callback.
timestamp Yes String Response timestamp in milliseconds.
success Yes Boolean API request result. This field indicates whether the API request succeeded.
data Yes Object KYC application response object.
data.kycNumber Yes String KYC application number generated by Vexora. Use this value for troubleshooting and reconciliation when needed.
data.authenticationStatus Yes String KYC review status. 0: Pending certification, 1: Under review, 2: Approved, 3: Rejected.
data.message Yes String Status description returned by the platform.
Successful Response Example
{
    "msg": "success",
    "code": "0000",
    "timestamp": 1732988443500,
    "success": true,
    "data": {
        "kycNumber": "79x7p10nh4xd121m",
        "authenticationStatus": "0",
        "message": "KYC application submitted successfully"
    }
}