본문으로 건너뛰기

04 - IVMS101-part2

1. IVMS101

  • IVMS101은 VASP 간 안전하고 상호 운용 가능한 교환을 위한 표준화된 Travel Rule 데이터 형식입니다.

1-1. 참고 자료

  • InterVASP의 공식 IVMS101 가이드는 여기에서 확인하십시오.
  • json schema와 예제는 여기를 참고하십시오.
  • CodeVASP Github

1-2. 형식 규칙

  • 메시지의 필드명은 소문자로 시작하는 camelCase로 작성해야 합니다.
  • 단, IVMS101에서 정의된 엔터티인 Originator, Beneficiary, OriginatorVASP, BeneficiaryVASP는 PascalCase로 작성해야 합니다.
  • 별도로 명시된 경우를 제외하고 모든 필드 값은 대소문자를 구분하지 않습니다.
  • boolean, integer, float을 포함한 모든 필드 값은 UTF-8로 인코딩된 문자열로 표현되어야 합니다.
  • 한국어가 명시적으로 허용되지 않는 한, 모든 필드 값에는 영어를 사용해야 합니다.

1-3. IVMS101 버전

IVMS101은 출시 이후 한 번 업데이트되어 두 가지 버전이 존재합니다:

  • IVMS101.2020: 초기 버전
  • IVMS101.2023: 2024년 업데이트됨 현재 전 세계 Travel Rule 솔루션은 보편적으로 IVMS101.2020을 채택하고 있으며, CodeVASP의 모든 가이드 내용은 이 버전을 기반으로 합니다. VASP 간에 서로 다른 버전의 IVMS101 프로토콜을 사용하면 통신에 문제가 발생할 수 있습니다. 적절한 기능을 보장하기 위해 구현 시 문서에 명시된 지침을 항상 준수하십시오.

2. IVMS101 유형

  • IVMS101은 페이로드 구성을 안내하기 위해 객체별로 설명됩니다.

송신자 VASP로서의 IVMS101

송신자 VASP로서 수신자 VASP에게 다음 사항을 전송해야 합니다. CodeVASP로부터 수신자의 entityId를 알아야 하지만, 여전히 해당 VASP 정보를 알지 못하므로 다음 객체만 전송합니다.

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

수신자 VASP로서의 IVMS101

수신자 VASP가 송신자에게 응답할 때는 다음과 같이 IVMS101 형식을 완성해야 합니다.

  • customerIdentification과 같은 더 많은 수신자 정보를 Beneficiary Object에 포함시킬 수도 있습니다.
{ 
"ivms101" : {
"Originator": {...},
"Beneficiary": {...},
"OriginatingVASP": {...},
"BeneficiaryVASP": {...}
}
}

2-0. ivms101

NameRequiredTypeDescription
OriginatorRequiredOriginator디지털 자산을 전송하는 사용자의 정보를 포함하는 객체입니다.
BeneficiaryRequiredBeneficiary디지털 자산을 수신하는 사용자의 정보를 포함하는 객체입니다.
OriginatingVASPRequiredOriginatingVASP디지털 자산을 전송하는 VASP의 정보를 포함하는 객체입니다.
BeneficiaryVASPOptionalBeneficiaryVASP디지털 자산을 수신하는 VASP의 정보를 포함하는 객체입니다.

2-1. Originator

  • 송신자(디지털 자산을 전송하는 사람)의 신원 정보와 관련된 세부 사항입니다.
NameRequiredTypeDescription
originatorPersonsRequiredarray<Person>송신자의 정보를 보유하도록 설계된 객체입니다.
accountNumberRequiredarray<String>자산을 전송하는 사용자의 지갑 주소입니다. 태그 또는 메모 값이 필요한 경우 ':'를 구분자로 사용하여 추가해야 합니다.

2-2. Beneficiary

  • 수신자(디지털 자산을 수신하는 사람)의 신원 정보와 관련된 세부 사항입니다.
NameRequiredTypeDescription
beneficiaryPersonsRequiredarray<Person>수신자의 정보를 포함하도록 설계된 객체입니다.
accountNumberRequiredarray<String>자산을 수신하는 사용자의 지갑 주소로, 필요한 경우 태그 또는 메모 값을 ':'를 구분자로 사용하여 추가합니다.

2-3. OriginatingVASP

  • 송신자 측의 가상자산사업자(VASP) 정보입니다.
NameRequiredTypeDescription
originatingVASPOptionalPerson송신 VASP의 정보를 보유하도록 설계된 객체입니다.

2-4. BeneficiaryVASP

  • 수신자 측의 가상자산사업자(VASP) 정보입니다.
NameRequiredTypeDescription
beneficiaryVASPOptionalPerson수신 VASP의 정보를 포함하도록 설계된 객체입니다.

2-1-1. Address

  • 개인이나 법인의 지리적 주소를 나타내는 정보입니다.
NameRequiredTypeDescription
addressTypeRequiredAddressTypeCode주소 유형을 나타내는 객체입니다.
townNameRequiredString도시명
countryRequiredCountryCode거주 국가
departmentOptionalString대규모 조직이나 건물의 부서
subDepartmentOptionalString대규모 조직이나 건물의 하위 부서
streetNameOptionalString거리명
buildingNumberOptionalString건물 번호
buildingNameOptionalString건물명
floorOptionalString층수
postBoxOptionalString사서함
roomOptionalString호실
postcodeOptionalString우편번호, 우편 코드
townLocationNameOptionalString도시 내 특정 위치의 명칭
districtNameOptionalString구역
countrySubDivisionOptionalString국가 내 구분
addressLineOptionalarray<String>상세 주소

2-1-2. AddressTypeCode

  • 주소의 분류나 유형을 식별하는 데 사용되는 코드입니다.
CodeNameDescription
HOME거주지주소가 거주지 주소입니다.
BIZZ사업장주소가 사업장 주소입니다.
GEOG지리적주소가 자연인 또는 법인의 식별에 적합한 명시되지 않은 물리적(지리적) 주소입니다.

2-1-3. CountryCode

2-1-4. DateAndPlaceOfBirth

  • 생년월일 및 출생지에 관한 정보입니다.
NameRequiredTypeDescription
dateOfBirthRequiredDate생년월일
placeOfBirthRequiredString출생지

2-1-5. LegalPerson

  • 법인에 관한 정보입니다.
  • geographicAddress 또는 nationalIdentification 중 하나는 필수입니다.
NameRequiredTypeDescription
nameRequiredLegalPersonName법인의 공식 명칭 정보를 포함하는 객체입니다.
geographicAddressOptionalarray<Address>법인의 주소 정보를 포함하는 객체입니다.
customerIdentificationOptionalStringVASP가 법인을 고객으로 식별하기 위해 부여하는 고유 번호입니다.
nationalIdentificationOptionalNationalIdentification법인등록번호, 세금식별번호 등 법인의 공식 식별을 위해 사용되는 번호를 포함하는 객체입니다.
countryOfRegistrationRequiredCoununtryCode등록 국가

2-1-6. LegalPersonName

  • 법인의 명칭과 관련된 정보입니다.
NameRequiredTypeDescription
nameIdentifierRequiredarray<LegalPersonNameID>법적 명칭, 상호명 등 하나 이상의 명칭을 포함할 수 있는 객체입니다.
localNameIdentifierOptionalarray<LocalLegalPersonNameID>현지 언어로 된 법인의 명칭을 포함하는 객체입니다.
phoneticNameIdentifierOptionalarray<LocalLegalPersonNameID>발음을 기반으로 한 음성 명칭을 포함하는 객체입니다.

2-1-7. LegalPersonNameID

  • 법인의 명칭을 구체적으로 식별하기 위한 정보입니다.
NameRequiredTypeDescription
legalPersonNameRequiredString법적 문서나 공식 등록에서 사용되는 법인의 명칭입니다.
legalPersonNameIdentifierTypeRequiredLegalPersonNameTypeCode법인 명칭의 유형을 나타내는 객체입니다.

2-1-8. LegalPersonNameTypeCode

  • 법인 명칭의 유형을 구분하는 데 사용되는 코드입니다.
CodeNameDescription
LEGL법적 명칭조직이 등록된 공식 명칭입니다.
SHRT축약명조직의 축약 명칭을 명시합니다.
TRAD상호명등록된 법적 명칭이 계약 및 기타 공식적인 상황에서 사용될 수 있음에도 불구하고, 상업적 목적으로 사업체가 사용하는 명칭입니다.

2-1-9. LocalLegalPersonNameID

  • 법인이 위치한 지역이나 국가의 현지 언어로 법인의 명칭을 표현하는 정보입니다.
NameRequiredTypeDescription
legalPersonNameRequiredString현지 언어로 된 법인의 명칭입니다.
legalPersonNameIdentifierTypeRequiredLegalPersonNameTypeCode법인 명칭의 유형을 나타내는 객체입니다.

2-1-10. LocalNaturalPersonNameID

  • 현지 지역이나 언어에 따라 개인(자연인)의 성명을 식별하기 위한 정보입니다.
NameRequiredTypeDescription
primaryIdentifierRequiredString성(surname)을 입력하며, 분리할 수 없는 경우 성과 이름을 순서대로 함께 표시합니다.
secondaryIdentifierOptionalString이름을 입력하며, 분리할 수 없는 경우 생략합니다.
nameIdentifierTypeRequiredNaturalPersonNameTypeCode성명의 유형을 나타내는 객체입니다. 기본값: 'LEGL'(=Legal)

2-1-11. NationalIdentification

  • 개인을 식별하기 위해 사용되는 고유 식별 번호나 코드에 관한 정보입니다.
NameRequiredTypeDescription
nationalIdentifierRequiredString개인 또는 법인의 고유 식별 번호입니다.
nationalIdentifierTypeRequiredNationalIdentifierTypeCode식별 번호의 유형을 나타내는 객체입니다.
countryOfIssueOptionalCountryCode식별 번호가 발급된 국가입니다. ('naturalPerson'과만 함께 사용됩니다)
registrationAuthorityOptionalRegistrationAuthority- 식별 번호를 발급한 기관에 대한 정보를 포함하는 객체입니다.
-'nationalIdentifierType'의 값이 'LEIX'가 아닌 경우에만 사용됩니다.

2-1-12. NationalIdentifierTypeCode

  • 개인의 국가 식별 번호의 유형을 구분하는 데 사용되는 코드입니다.
CodeNameDescription
ARNU외국인등록번호정부 기관이 외국인을 식별하기 위해 부여하는 번호입니다.
CCPT여권번호여권 발급 기관이 부여하는 번호입니다.
RAID등록 기관 식별자등록 기관이 관리하는 법인의 식별자입니다.
DRLC운전면허번호운전면허증에 부여되는 번호입니다.
FIIN외국인투자식별번호외국인 투자자에게 부여되는 번호입니다(외국인등록번호와는 다름).
TXID세금식별번호세무 당국이 단체에 부여하는 번호입니다.
SOCS사회보장번호사회보장청이 부여하는 번호입니다.
IDCD신분증번호국가 당국이 신분증에 부여하는 번호입니다.
LEIX법인식별자ISO 174421에 따라 부여되는 법인식별자(LEI)입니다
MISC기타알려질 수 있지만 달리 분류될 수 없거나 송신자가 범주를 결정할 수 없는 국가 식별자입니다.

2-1-13. NaturalPerson

  • 개인(자연인)을 명확히 식별할 수 있는 신원 정보, 주소, 국가 식별 번호 등의 정보입니다.
NameRequiredTypeDescription
nameRequiredNaturalPersonName성명 정보를 포함하도록 설계된 객체입니다.
dateAndPlaceOfBirthOptionalDateAndPlaceOfBirth생년월일 및 출생지에 대한 정보를 포함하도록 설계된 객체입니다.
customerIdentificationOptionalStringVASP가 사용자를 구분하기 위해 부여하는 식별자(UID 또는 IDX)입니다.
countryOfResidenceOptionalCountryCode거주 국가에 대한 정보입니다.

2-1-14. NaturalPersonName

  • 개인(자연인)의 성명에 관한 정보입니다.
NameRequiredTypeDescription
nameIdentifierRequiredarray<NaturalPersonNameID>법적 성명을 입력하기 위한 객체입니다. 국내 VASP 간 거래 시에는 한국어로 입력하고, 해외 VASP와 거래 시에는 영어로 입력합니다.
localNameIdentifierOptionalarray<NaturalPersonNameID>해외 VASP와 거래할 때 현지명을 추가로 제공하기 위한 객체입니다.
phoneticNameIdentifierOptionalarray<NaturalPersonNameID>발음을 기반으로 한 음성 명칭을 포함하는 객체입니다.

2-1-15. NaturalPersonNameID

  • 개인(자연인)의 성명에 대한 구체적인 식별 정보입니다.
NameRequiredTypeDescription
primaryIdentifierRequiredstring성(surname)을 입력하며, 분리할 수 없는 경우 성과 이름을 순서대로 함께 나열합니다.
nameIdentifierTypeRequiredNaturalPersonNameTypeCode성명의 유형을 나타내는 객체입니다. 기본값: 'LEGL'(=Legal)
secondaryIdentifierOptionalstring이름을 입력하며, 분리할 수 없는 경우 생략합니다.

2-1-16. NaturalPersonNameTypeCode

  • 개인(자연인)의 성명 유형을 구분하는 데 사용되는 코드입니다.
CodeNameDescription
ALIA별명자연인이 법적 성명 외에 알려진 다른 명칭입니다.
BIRT출생 시 성명출생 시 자연인에게 주어진 성명입니다.
MAID결혼 전 성명결혼 후 성명을 변경한 자연인의 원래 성명입니다.
LEGL법적 성명법적, 공식적 또는 행정적 목적으로 자연인을 식별하는 성명입니다.
MISC기타자연인이 알려질 수 있지만 달리 분류될 수 없거나 송신자가 범주를 결정할 수 없는 성명입니다.

2-1-17. Person

  • 거래에 관련된 개인이나 자연인을 구분하는 데 사용되는 정보입니다.naturalPerson 또는 legalPerson 중 하나는 필수입니다.
NameRequiredTypeDescription
naturalPersonOptionalNaturalPerson개인에 대한 정보를 설정하도록 설계된 객체입니다.
legalPersonOptionalLegalPerson법인에 대한 정보를 설정하도록 설계된 객체입니다.

2-1-18. RegistrationAuthority

2-5. 예제