Skip to main content

IVMS-101: What information should I bring?

The payload to be encrypted should look like below, the ivms101 payload is as a child inside the key name “ivms101”: { … }.

{
"ivms101": {
//...
}
}

Where the required information depends on Legal Person or Natural Person to make a transaction, the following structure may help you to fill the info.

{
"ivms101": {
"originator": {
"originatorPersons": [
// LegalPerson or NaturalPerson
],
"accountNumber": ["ACCOUNT NUMBER"]
},
"beneficiary": {
"beneficiaryPersons": [
// LegalPerson or NaturalPerson
],
"accountNumber": ["ACCOUNT NUMBER"]
},
"originatingVASP": {
"legalPerson": {
// LegalPerson }
},
"beneficiaryVASP": {
"legalPerson": {
// LegalPerson }
}
}
// option: transferPath (IntermediaryVasp)
// option: payloadMetadata (TransliterationMethodCode)
}
}
}

The full example could reference below:

{
"ivms101": {
// required
"Originator": {
"originatorPersons": [
{
// required: naturalPerson or legalPerson
"naturalPerson": {
"name": {
// nameIdentifier, localNameIdentifier, phoneticNameIdentifier
"nameIdentifier": [
{
"primaryIdentifier": "Satoshi",
"secondaryIdentifier": "Nakamoto",
"nameIdentifierType": "LEGL" // Usually Fixed as LEGL // for natural person: ALIA, BIRT, MAID, LEGL, MISC
}
]
},
// required
"geographicAddress": [
{
// required:
"addressType": "GEOG", // HOME, BIZZ, GEOG
"townName": "VirtualTown",
"addressLine": ["Line489", "Line762"],
"country": "US", // ISO-3166-1 alpha-2 codes

// optional:
"department": "OfficeOfTheCEO",
"subDepartment": "InternalAudit8562",
"streetName": "SiliconAlley65",
"buildingNumber": "J4H6",
"buildingName": "VirtualTower200",
"floor": "Floor94",
"postBox": "CB842",
"room": "BionicRoom38",
"postCode": "TT7643",
"townLocationName": "E-Sector",
"districtName": "BlockchainDistrict",
"countrySubDivision": "E-Province"
}
],
// required
"nationalIdentification": {
"nationalIdentifier": "024181096", // ^[a-zA-Z0-9' ]{1,35}$
"nationalIdentifierType": "RAID", // ISO20022, ARNU, CCPT, RAID, DRLC, FIIN, TXID, SOCS, IDCD, LEIX, MISC
"registrationAuthority": "RA000589" // ^RA([0-9]{6})$
},
// optional (?)
"customerIdentification": "0xA3a8C1C840A8C2049472065b2664E01E0e8A8b67",
// optional (?)
"dateAndPlaceOfBirth": {
"dateOfBirth": "1986-11-21", // ISO 8601, YYYY-MM-DD
"placeOfBirth": "New York City" // ^[a-zA-Z0-9' ]{1,70}$
},
// required
"countryOfResidence": "US", // ISO-3166-1 alpha-2 codes
// optional (?)
"nationality": "US" // ISO-3166-1 alpha-2 codes
}
}
],
// required - user wallet address
"accountNumber": [
"1HB5XMLmzFVj8ALj6mfBsbifRoD4miY36v" // Max 100 text, ^[a-zA-Z0-9' ]{1,100}$
]
},


// required
"Beneficiary": {
"beneficiaryPersons": [
{
// required: naturalPerson or legalPerson
// NOTE: if you send to legalPerson, please fill [{naturalPerson:{}},{legalPerson:{}}] both, the natural person
"legalPerson": {
// required
"name": {
// nameIdentifier, localNameIdentifier, phoneticNameIdentifier
"nameIdentifier": [
{
"legalPersonName": "Paycase Inc",
"legalPersonNameIdentifierType": "LEGL" // Usually Fixed as LEGL // for legal person: LEGL, SHRT, TRAD
}
]
},
// required
"geographicAddress": [
// SAME AS OTHER geographicAddress
],
// required
"nationalIdentification": {
"nationalIdentifier": "335800HXPOIUDJ9T5R34", // ^[a-zA-Z0-9' ]{1,35}$
"nationalIdentifierType": "LEIX"// ISO20022, ARNU, CCPT, RAID, DRLC, FIIN, TXID, SOCS, IDCD, LEIX, MISC
},
// optional (?)
"customerIdentification": "0x3E9181d09E56AdEF3bbc8BAb664Ce6B268Bf6e62",
// required
"countryOfRegistration": "CA" // ISO-3166-1 alpha-2 codes
}
}
],
// required - user wallet address
"accountNumber": [
"1BVMFfPXJy2TY1x6wm8gow3N5Amw4Etm5h" // Max 100 text, ^[a-zA-Z0-9' ]{1,100}$
]
},


// required
"OriginatingVASP": {
"legalPerson": {
"name": {
"nameIdentifier": [
{
"legalPersonName": "VASP A",
"legalPersonNameIdentifierType": "LEGL" // Usually Fixed as LEGL // for legal person: LEGL, SHRT, TRAD
}
]
},
// required
"geographicAddress": [
// SAME AS OTHER geographicAddress
],
// required
"nationalIdentification": {
"nationalIdentifier": "335800HXPOIUDJ9T5R34", // ^[a-zA-Z0-9' ]{1,35}$
"nationalIdentifierType": "LEIX"// ISO20022, ARNU, CCPT, RAID, DRLC, FIIN, TXID, SOCS, IDCD, LEIX, MISC,
"countryOfIssue":"US", // two alphabet country code
"registrationAuthority": "GLEIF Code (If exists)"
}
// vasp as legal person does not have customerIdentification
}
},


// required
"BeneficiaryVASP": {
"legalPerson": {
"name": {
"nameIdentifier": [
{
"legalPersonName": "VASP B",
"legalPersonNameIdentifierType": "LEGL" // Usually Fixed as LEGL // for legal person: LEGL, SHRT, TRAD
}
]
},
"geographicAddress": [
// SAME AS OTHER geographicAddress
],
// required
"nationalIdentification": {
"nationalIdentifier": "335800HXPOIUDJ9T5R34", // ^[a-zA-Z0-9' ]{1,35}$
"nationalIdentifierType": "LEIX"// ISO20022, ARNU, CCPT, RAID, DRLC, FIIN, TXID, SOCS, IDCD, LEIX, MISC,
"countryOfIssue":"US", // two alphabet country code
"registrationAuthority": "GLEIF Code (If exists)"
}
// vasp as legal person does not have customerIdentification
}
}
}
}
  • The nameIdentifierType is commonly set to 'LEGL'.
  • primaryIdentifier is lastName, secondaryIdentifier is firstName.
  • For primaryIdentifier, secondaryIdentifier. If the name cannot be separated, please fill firstName and lastName together (1. firstName 2. lastName).
  • firstName: givenName, lastName: familyName.
  • For the current version of IVMS specification, only the root level has first capital naming (e.g: Beneficiary, BeneficiaryVASP, Originator, OriginatingVASP).

In addition:

nameIdentifierType (naturalPersonNameType)

  • ALIA (Alias name): A name other than the legal name by which a natural person is also known.
  • BIRT (Name at birth): The name given to a natural person at birth.
  • MAID (Maiden name): The original name of a natural person who has changed their name after marriage.
  • LEGL (Legal name): The name that identifies a natural person for legal, official or administrative purposes.
  • MISC (Unspecified): A name by which a natural person may be known but which cannot otherwise be categorized or the category of which the sender is unable to determine.

legalPersonNameIdentifierType (legalPersonNameType)

  • LEGL (Legal name): Official name under which an organisation is registered.
  • SHRT (Short name): Specifies the short name of the organisation.
  • TRAD (Trading name): Name used by a business for commercial purposes, although its registered legal name, used for contracts and other formal situations, may be another.

nationalIdentifierType

  • ARNU: Alien registration number (a number issued by the government to foreigners to identify them)
  • CCPT: passport number
  • RAID: (body corporate only) Business registration number provided by the authority
  • DRLC: Driver's License Number
  • FIIN: Foreign Investor Number (number assigned to foreign investors)
  • TXID: Number given by the tax authority
  • SOCS: Social Security Number or National Identification Number
  • IDCD: Identity card number assigned by a state agency
  • LEIX: (Legal entities only) Global legal entity identification number, LEI code assigned in accordance with the ISO 17442 standard
  • MISC: ID card number from other countries

Others

Other fields for more over,these are not necessary for the payloads:

  1. localNameIdentifier: for non-English name of identity person, full name separated into primary and secondary identifier using local characters.

    {
    "primaryIdentifier": "김",
    "secondaryIdentifier": "김지수",
    "nameIdentifierType": "LEGL" // IVMS101: ALIA, BIRT, MAID, LEGL, MISC
    }
  2. phoneticNameIdentifier: Alternate representation of a name that corresponds to the manner the name is pronounced.

    {
    "primaryIdentifier": "Kim",
    "secondaryIdentifier": "Jisoo",
    "nameIdentifierType": "LEGL" // IVMS101: ALIA, BIRT, MAID, LEGL, MISC
    }
  3. transferPath (IntermediaryVasp): The transfer path refers to the intermediary VASP(s) participating in a serial chain that receive(s) and retransmit(s) a VA transfer on behalf of the originating VASP and the beneficiary VASP, or another intermediary VASP, together with their corresponding sequence number.

    {
    "transferPath": [
    // IntermediaryVasp
    {
    "intermediaryVasp": {
    // legalPerson of vasp },
    "sequence": 0 // count from 0 to 9007199254740991L
    }
    }
    ]
    }
  4. payloadMetadata (TransliterationMethodCode): Data describing the contents of the payload. TransliterationMethodCode is the method used to map from a national system of writing to Latin script.

    {
    "payloadMetadata": [
    "kore" // ISO 15924, arab, aran, armn, cyrl, deva, geor, grek, hani, hebr, kana, kore, thai, othr
    ]
    }

For ISO 15924, the available enum is: arab, aran, armn, cyrl, deva, geor, grek, hani, hebr, kana, kore, thai, othr.

  • arab, Arabic (Arabic language) ISO 233-2:1993
  • aran, Arabic (Persian language) ISO 233-3:1999
  • armn, Armenian ISO 9985:1996
  • cyrl, Cyrillic ISO 9:1995
  • deva, Devanagari & related Indic ISO 15919:2001
  • geor, Georgian ISO 9984:1996
  • grek, Greek ISO 843:1997
  • hani, Han (Hanzi, Kanji, Hanja) ISO 7098:2015
  • hebr, Hebrew ISO 259-2:1994
  • kana, Kana ISO 3602:1989
  • kore, Korean Revised Romanization of Korean
  • thai, Thai ISO 11940-2:2007
  • othr, Script other than those listed above Unspecified

For example: 한국어 (hangug-eo), the method is "kore".

Copyright (C) 2024 Global Travel Rule. All Rights Reserved
General
Developer