Skip to main content

04 - IVMS101-part2

1. IVMS101

  • IVMS101 is a standardized Travel Rule data format for secure and interoperable exchange between VASPs.

1-1. Reference Materials

  • Please find the official IVMS101 guide by InterVASP Here.
  • Please refer to the json schema and examples here .
  • CodeVASP Github

1-2. Formatting Rules

  • Field names in the message should be written in camelCase, starting with a lowercase letter.
  • However, entities defined in IVMS101—namely Originator, Beneficiary, OriginatorVASP, and BeneficiaryVASP—should be written in PascalCase.
  • All field values are case-insensitive unless otherwise specified.
  • All field values must be expressed as UTF-8 encoded strings, including booleans, integers, and floats.
  • English should be used for all field values, unless Korean is explicitly allowed.

1-3. IVMS101 Version

IVMS101 has been updated once since its release, resulting in two versions:

  • IVMS101.2020: Initial version
  • IVMS101.2023: Updated in 2024 Currently, all global Travel Rule solutions universally adopt IVMS101.2020, and all of CodeVASP's guide content is based on this version. Using different versions of the IVMS101 protocol between VASPs can disrupt communication. To ensure proper functionality, always adhere to the instructions outlined in the documentation when implementing.

2. IVMS101 Type

  • IVMS101 is described object by object to guide the construction of the payload.

IVMS101 as an originator VASP

As an originator VASP, you need to send following to beneficiary VSAP. You should know the entityId of beneficiary from CodeVASP, however, you still do not know their VASP information, thus, only send following objects.

{ 
"ivms101" : {
"Originator": {...},
"Beneficiary": {...},
"OriginatingVASP": {...}
}
}

IVMS101 as a beneficiary VASP

When beneficiary VASP response to originator, it should complete the IVMS101 format as following.

  • You may also include more Beneficiary information in Beneficiary Object such as customerIdentification.
{ 
"ivms101" : {
"Originator": {...},
"Beneficiary": {...},
"OriginatingVASP": {...},
"BeneficiaryVASP": {...}
}
}

2-0. ivms101

NameRequiredTypeDescription
OriginatorRequiredOriginatorAn object that contains the information of the user sending the virtual asset.
BeneficiaryRequiredBeneficiaryAn object that contains the information of the user receiving the virtual asset.
OriginatingVASPRequiredOriginatingVASPAn object that contains the information of the VASP sending the virtual asset.
BeneficiaryVASPOptionalBeneficiaryVASPAn object that contains the information of the VASP receiving the virtual asset.

2-1. Originator

  • Details associated with the identity information of the sender (the person sending the virtual asset).
NameRequiredTypeDescription
originatorPersonsRequiredarray<Person>An object designed to hold the information of the sender.
accountNumberRequiredarray<String>The wallet address of the user sending the asset. If a tag or memo value is required, it should be appended using ':' as a separator.

2-2. Beneficiary

  • Details associated with the identity information of the recipient (the person receiving the virtual asset).
NameRequiredTypeDescription
beneficiaryPersonsRequiredarray<Person>An object designed to contain the information of the recipient.
accountNumberRequiredarray<String>The wallet address of the user receiving the asset, with a tag or memo value appended using ':' as a separator if required.

2-3. OriginatingVASP

  • Information about the Virtual Asset Service Provider (VASP) on the sender's side.
NameRequiredTypeDescription
originatingVASPOptionalPersonAn object designed to hold the information of the sending VASP.

2-4. BeneficiaryVASP

  • Information about the Virtual Asset Service Provider (VASP) on the recipient's side.
NameRequiredTypeDescription
beneficiaryVASPOptionalPersonAn object designed to contain the information of the receiving VASP.

2-1-1. Address

  • Information representing the geographical address of an individual or a corporation.
NameRequiredTypeDescription
addressTypeRequiredAddressTypeCodeAn object that represents the type of address.
townNameRequiredStringCity name
countryRequiredCountryCodeCountry of residence
departmentOptionalStringDepartment of a large organization or building
subDepartmentOptionalStringSub-department of a large organization or building
streetNameOptionalStringStreet name
buildingNumberOptionalStringBuilding number
buildingNameOptionalStringBuilding name
floorOptionalStringFloor
postBoxOptionalStringPost box
roomOptionalStringRoom number
postcodeOptionalStringZip code, Postal code
townLocationNameOptionalStringName of a specific location within a city
districtNameOptionalStringDistrict
countrySubDivisionOptionalStringDivision within a country
addressLineOptionalarray<String>Detailed address

2-1-2. AddressTypeCode

  • A code used to identify the classification or type of an address.
CodeNameDescription
HOMEResidentialAddress is the home address.
BIZZBusinessAddress is the business address.
GEOGGeographicAddress is the unspecified physical(geographical) address suitable for identification of the natural or legal person.

2-1-3. CountryCode

2-1-4. DateAndPlaceOfBirth

  • Information regarding the date of birth and place of birth.
NameRequiredTypeDescription
dateOfBirthRequiredDateDate of birth
placeOfBirthRequiredStringPlace of birth

2-1-5. LegalPerson

  • Information about a corporation.
  • Either geographicAddress or nationalIdentification is mandatory.
NameRequiredTypeDescription
nameRequiredLegalPersonNameAn object containing the official name information of a corporation.
geographicAddressOptionalarray<Address>An object containing the address information of a corporation.
customerIdentificationOptionalStringA unique number assigned by a VASP to identify a corporation as a customer.
nationalIdentificationOptionalNationalIdentificationAn object containing numbers such as the corporate registration number and tax identification number, used for official identification of a corporation.
countryOfRegistrationRequiredCoununtryCodeCountry of registration

2-1-6. LegalPersonName

  • Information related to the name of the corporation.
NameRequiredTypeDescription
nameIdentifierRequiredarray<LegalPersonNameID>An object that can include one or more names, such as legal names, trade names, etc.
localNameIdentifierOptionalarray<LocalLegalPersonNameID>An object containing the name of the corporation in the local language.
phoneticNameIdentifierOptionalarray<LocalLegalPersonNameID>An object containing phonetic names based on pronunciation.

2-1-7. LegalPersonNameID

  • Information for specifically identifying the name of the corporation.
NameRequiredTypeDescription
legalPersonNameRequiredStringThe name of the corporation as used in legal documents or official registrations.
legalPersonNameIdentifierTypeRequiredLegalPersonNameTypeCodeAn object representing the type of corporation name.

2-1-8. LegalPersonNameTypeCode

  • A code used to distinguish the types of corporation names.
CodeNameDescription
LEGLLegal nameOfficial name under which an organisation is registered.
SHRTShort nameSpecifies the short name of the organisation.
TRADTrading nameName used by a business for commercial purposes, although its registered legal name, used for contracts and other formal situations, may be another.

2-1-9. LocalLegalPersonNameID

  • Information expressing the name of the corporation in the local language of the region or country where the corporation is located.
NameRequiredTypeDescription
legalPersonNameRequiredStringThe name of the corporation in the local language.
legalPersonNameIdentifierTypeRequiredLegalPersonNameTypeCodeAn object representing the type of the corporation's name.

2-1-10. LocalNaturalPersonNameID

  • Information for identifying an individual's (natural person's) name according to the local region or language.
NameRequiredTypeDescription
primaryIdentifierRequiredStringEnter the last name (surname), and if it cannot be separated, indicate the surname and first name in order together.
secondaryIdentifierOptionalStringEnter the first name, and if it cannot be separated, omit it.
nameIdentifierTypeRequiredNaturalPersonNameTypeCodeAn object that represents the type of name., Default: 'LEGL'(=Legal)

2-1-11. NationalIdentification

  • Information about a unique identification number or code used to identify an individual.
NameRequiredTypeDescription
nationalIdentifierRequiredStringA unique identification number for an individual or corporation.
nationalIdentifierTypeRequiredNationalIdentifierTypeCodeAn object representing the type of identification number.
countryOfIssueOptionalCountryCodeThe country where the identification number was issued. (only used with 'naturalPerson')
registrationAuthorityOptionalRegistrationAuthority- An object containing information about the institution that issued the identification number.
-Used only when the value of 'nationalIdentifierType' is not 'LEIX'.

2-1-12. NationalIdentifierTypeCode

  • A code used to distinguish the types of an individual's national identification number.
CodeNameDescription
ARNUAlien registration numberNumber assigned by a government agency to identify foreign nationals.
CCPTPassport numberNumber assigned by a passport authority.
RAIDRegistration authority identifierIdentifier of a legal entity as maintained by a registration authority.
DRLCDriver license numberNumber assigned to a driver's license.
FIINForeign investment identity numberNumber assigned to a foreign investor(other than the alien number).
TXIDTax identification numberNumber assigned by a tax authority to an entity.
SOCSSocial security numberNumber assigned by a social security agency.
IDCDIdentity card numberNumber assigned by a national authority to an identity card.
LEIXLegal Entity IdentifierLegal Entity Identifier (LEI) assigned in accordance with ISO 174421
MISCUnspecifiedA national identifier which may be known but which cannot otherwise be categorized or the category of which the sender is unable to determine.

2-1-13. NaturalPerson

  • Information that can clearly identify an individual (natural person), such as identification information, address, national identification number, etc.
NameRequiredTypeDescription
nameRequiredNaturalPersonNameAn object designed to contain name information.
dateAndPlaceOfBirthOptionalDateAndPlaceOfBirthAn object designed to contain information about the date of birth and place of birth.
customerIdentificationOptionalStringAn identifier (UID or IDX) assigned by a VASP to distinguish users.
countryOfResidenceOptionalCountryCodeInformation about the country of residence.

2-1-14. NaturalPersonName

  • Information regarding the name of an individual (natural person).
NameRequiredTypeDescription
nameIdentifierRequiredarray<NaturalPersonNameID>An object for entering the legal name. When transacting between domestic VASPs, enter in Korean, and when transacting with foreign VASPs, enter in English.
localNameIdentifierOptionalarray<NaturalPersonNameID>An object for providing the Local name additionally when transacting with foreign VASPs.
phoneticNameIdentifierOptionalarray<NaturalPersonNameID>An object containing phonetic names based on pronunciation.

2-1-15. NaturalPersonNameID

  • Specific identification information regarding the name of an individual (natural person).
NameRequiredTypeDescription
primaryIdentifierRequiredstringEnter the last name (surname), and if it cannot be separated, list the surname and first name together in order.
nameIdentifierTypeRequiredNaturalPersonNameTypeCodeAn object that represents the type of name., Default: 'LEGL'(=Legal)
secondaryIdentifierOptionalstringEnter the first name, and if it cannot be separated, omit it.

2-1-16. NaturalPersonNameTypeCode

  • A code used to distinguish the types of an individual's (natural person's) name.
CodeNameDescription
ALIAAlias nameA name other than the legal name by which a natural person is also known.
BIRTName at birthThe name given to a natural person at birth.
MAIDMaiden nameThe original name of a natural person who has changed their name after marriage.
LEGLLegal nameThe name that identifies a natural person for legal, official or administrative purposes.
MISCUnspecifiedA name by which a natural person maybe known but which cannot otherwise be categorized or the category of which the sender is unable to determine.

2-1-17. Person

  • Information used to distinguish individuals or natural persons involved in a transaction.Either naturalPerson or legalPerson is mandatory.
NameRequiredTypeDescription
naturalPersonOptionalNaturalPersonAn object designed to set information about an individual.
legalPersonOptionalLegalPersonAn object designed to set information about a corporation.

2-1-18. RegistrationAuthority

2-5. Example