IVMS101 is an international messaging standard used for virtual asset transfers. It facilitates the communication of necessary information between parties involved in the transfer, ensuring compliance with regulatory requirements and enhancing the transparency and security of virtual asset transactions.

CODE uses the IVMS101 standard to exchange personal information related to virtual asset transaction.

Please refer to the json schema and examples here.

  • A field name of a message is expressed with camelCase whose first character starts with a lowercase. But, 'Originator', 'Beneficiary', 'OriginatorVASP', and 'BeneficiaryVASP' objects corresponding to Entity in ivms101 are expressed with PascalCase.
  • The values of all fields are not case-sensitive unless otherwise specified.
  • The values of all fields are always expressed with a UTF-8 encoded string. (including boolean, integer, real number, etc.)
  • In principle, the values of all fields shall be written in English except when Local language is permitted.

Name

How to enter LegalPerson information

  • For a LegalPerson as per Korea's Special Financial Transaction Act, information on the representative as well as information on the LegalPerson shall be entered. (The same is true for both the sender and the beneficiary.)
  • Since there is no separate element to enter the information on representative in the LegalPerson type of IVMS101, the representative information is set to be entered in the following way.
    • Since originatorPersons or beneficiaryPersons is an array of Person type, always enter the information on a legal person in the first element of the array.
    • From the second element, enter the personal information of the LegalPerson's representative (natural person).
    • If there are multiple representatives, continue to enter the representatives' personal information in the array.

Name (nameIdentifier) notation

1. Transactions between VASPs in Korea

  • Enter in nameIdentifier in Korean.
  • Enter an English name for foreigners or legal persons whose original name is in English.
  • Enter an English name in localNameIdentifier.

2. Transactions with VASPs outside Korea

  • Enter nameIdentifier in English.
  • In addition, you can enter a local name in the localNameIdentifier element. However, even in this case, it is recommended to provide a nameIdentifier with a legal English name.

3. If first name and last name can be separated

  • Enter the last name in primaryIdentifier.
  • Enter the first name in secondaryIdentifier.

4. If first name and last name cannot be separated

  • Enter the full name in primaryIdentifier based on VASP DB. For English, enter the name in the order of first name and last name. For Korean, enter the name in the order of last name and first name. If you cannot identify first name and last name, then enter the same value as the value in the DB.
  • Do not enter anything in secondaryIdentifier.

🚧

Note!

Please try to send the first name and last name separately for both English and Local names. If the order of arranging the full name is different according to the policy of the VASPs, beneficiary VASP could handle freely according to their own policy.

Verification of beneficiary's name

A VASP who wants to transfer an asset may request the VASP to whom the asset is transferred, to compare the name with the name of the real address owner's name holder by sending the beneficiary's name when requesting authorization to transfer the asset.

Describe the criteria for comparing names according to a transaction context.

Caution: This function shall be implemented by the beneficiary VASP to operate according to the VASP's request to transfer the asset.

  • Verify the name with both nameIdentifier, localNameIdentifier objects and verify nameIdentifier first.
  • When nameIdentifier is blank (""), verify localNameIdentifier.
"nameIdentifier": [
  {
    "primaryIdentifier": "",
    "secondaryIdentifier": "",
    "nameIdentifierType": "LEGL"
  }
]

Comparing Names

Comparing natural person names

  • For the originating VASP, please send the first name and last name separately when sending the beneficiary's name to be verified. If you cannot separate the first name and last name, the order is last name and first name for Korean, and first name and last name for English.
  • The beneficiary VASP compares the name of the beneficiary who received the verification request with the name of the actual owner of the property address.
  • When comparing, it is recommended to connect primaryIdentifier and secondaryIdentifier according to the receiving exchange DB criteria to make a single UTF-8 string, remove spaces (' '), and compare them in case-insensitive.

Comparing legal person names

  • The originating VASP sends a legal person's corporate name to be verified and one representative's name.
    • In principle, the corporate name in the registration shall be used. (Basically, if the name to be stored by the beneficiary VASP is different, the name may be rejected.)
    • Even if there are several representatives, only one representative's name shall be sent, and the entering method is the same as an individual.
  • The beneficiary VASP compares the corporate name of a legal person, who received a verification request, and the name of one representative with the actual legal owner of the corresponding asset address and the representative name.
    • When comparing legal persons' names, it is recommended to compare the names to know whether the requested corporate names match each other or not, and it shall be at the discretion of the beneficiary VASP whether to partially remove and compare strings such as corporation or not.
    • For several representatives, if the name of the representative received at the request matches one of the actual representative names, it is considered as appropriate.