IVMS101 정보 기입 가이드

IVMS101 은 메시징 프로토콜로, 각종 개인 정보를 어떻게 기입해야 하는지에 대한 데이터 형식을 정의하고 있습니다.

하지만 많은 케이스에 대해 데이터를 어떤 순서로 어떻게 넣어야 하며 특수 케이스에 대해서는 어떻게 정보를 기입해야 하는지 명확하게 정의하고 있지 않아 정보를 주고받는 VASP 들 입장에서는 각 정보가 어떤 의미를 담고 있는지 파악하기 어려운 경우가 많습니다.

이를 위해 VASP 끼리 IVMS101 메시징 포맷으로 개인 정보를 주고받을 때, 각각의 케이스에서 정보를 어떻게 담아야 하고 어떻게 해석해야 하는지에 대한 가이드라인을 제공하고자 합니다.

본 가이드에 제시된 케이스에 대해서는 해당 가이드 내용을 반드시(강제 사항) 지켜야 합니다. 이 문서에 나와있지 않은 케이스에 대해서는 별도로 이슈 제기를 해주시길 바랍니다.

케이스 별 정보 기입 방법

기본 전제 사항

  1. 각 verification 은 한 개의 거래에 대해서만 정보를 기입해야 합니다.

    • 즉, 여러 개의 거래에 대한 정보를 한꺼번에 하나의 verification으로 기입하면 안 됩니다.

개인 혹은 법인 정보 기입 방법

  1. 발신인(originator)이 여러 명인 경우

    • IVMS101에는 발신인(originator)은 한 명만 기입합니다.

      • 즉, 하나의 verification에 대해 발신인이 여러 명인 경우는 없어야 합니다.

      • 서로 다른 두 개인(natural person) 혹은 법인(legal person)이 동일한 verification의 발신인으로 기입될 수 없습니다.

    • 만약 발신인이 여러 명인 경우가 있다면 각 발신인에 대해 별도의 verification으로 검증 요청을 전송해야 합니다.

    • 예외) 법인의 경우 법인 정보와 대표자 정보를 넣어야 하므로 originatorPersons에 여러 명이 들어갈 수 있습니다.

      1. 이 경우에도 모든 발신인이 결국 1개의 법인을 나타내므로 발신인은 하나인 것으로 간주할 수 있습니다.

  2. 수취인(beneficiary)이 여러 명인 경우

    • IVMS101에는 수취인(beneficiary)은 한 명만 기입합니다.

      • 즉, 하나의 verification에 대해 수취인이 여러 명인 경우는 없어야 합니다.

      • 서로 다른 두 개인(natural person) 혹은 법인(legal person)이 동일한 verification의 수취인으로 기입될 수 없습니다.

    • 만약 수취인이 여러 명인 경우가 있다면 각 수취인에 대해 별도의 verification으로 검증 요청을 전송해야 합니다.

    • 예외) 법인의 경우 법인 정보와 대표자 정보를 넣어야 하므로 beneficiaryPersons에 여러 명이 들어갈 수 있습니다.

      1. 이 경우에도 모든 수취인이 결국 1개의 법인을 나타내므로 수취인은 하나인 것으로 간주할 수 있습니다.

  3. 발신인 혹은 수취인이 법인(legal person)인 경우

    • 국내법(대한민국) 상 법인의 경우에는 법인에 대한 정보뿐만 아니라 대표자에 대한 정보도 기입해야 합니다. 발신인, 수취인 모두에 대해 마찬가지입니다.

    • IVMS101의 LegalPerson 타입에는 대표자 정보를 넣는 요소가 별도로 없으므로 대표자 정보는 다음과 같은 방법으로 기입하도록 정합니다.

      • originatorPersons 또는 beneficiaryPersons는 Person 타입의 배열이므로 배열의 첫 번째 원소에는 무조건 법인(legal person)에 대한 정보를 넣습니다.

      • 두 번째 원소부터는 법인 대표자의 개인 정보(natural person)를 기입합니다.

      • 대표자가 여러 명인 경우에는 배열에 이어서 계속 대표자들의 개인 정보를 기입합니다.

지갑 주소 기입 방법

  1. 공통

    • accountNumber는 대소문자를 구분해야 하며, 문자열 배열입니다.

    • XRP나 EOS처럼 "부모 주소" 이외에, "메모"나 "데스티네이션 태그"와 같은 부차적인 주소가 있는 경우에는 다음과 같은 형식으로 주소를 기입합니다.

      • "부모주소:메모" or "부모주소:데스티네이션태그"

    • 지갑 주소 형식에 대한 자세한 내용은 지갑 주소 및 트랜잭션 ID 표준 가이드를 참고하세요.

  2. originator의 accountNumber

    • originator의 accountNumber에는 송신인의 입금 주소를 입력합니다.

      • 송신인의 입금 주소는 해당 송신인을 고유하게 구별할 수 있는 주소여야 합니다.

      • 만약 송신인에 대한 입금 주소가 발급되지 않았다면, 출금하기 전에 송신인에 대한 입금 주소를 먼저 만들고 해당 주소를 입력합니다.

    • 송신인의 입금 주소를 따로 지원하지 않는 자산인 경우에는 해당 고객을 유일하게 식별할 수 있는 VASP 내부에서 부여한 고유 식별 번호를 기입합니다.

  3. beneficiary의 accountNumber

    • beneficiary의 accountNumber에는 발신인이 입력한, 실제 가장 자산을 보낼 블록체인 주소를 기입합니다.

    • 만약 받는 주소가 여러 개인 경우에는 모든 주소를 기입합니다.

이름 기입 방법

  1. 공통

    • NaturalPerson 과 LegalPerson의 name 은 배열이 아니고 단일 객체입니다.

      • 스펙에서는 배열로 표시되어 있기도 하고, 단일 객체로 표시되어 있기도 하지만, 단일 객체로 해석하는 것이 더 타당합니다.

    • name의 nameIdentifier 요소는 배열입니다.

      • 여러 개의 이름을 넣고 싶으면 nameIdentifier 배열에 여러 개의 이름을 넣을 수 있습니다.

    • nameIdentifier 배열의 원소 중에 적어도 하나는 법적 이름이어야 합니다. (LEGL 타입)

  2. 국내 VASP 끼리 거래할 경우

    • 이름은 한글로 기입합니다.

    • 영문이 원문인 경우(외국인이나 법인 등)에는 영문으로 입력합니다.

  3. 해외 VASP 와 거래할 경우

    • 이름을 반드시 영문으로 입력해야 합니다.

    • 회원 정보에 영문 이름이 없는 경우에는 ‘국어의 로마자 표기법’에 따라 음역(transliteration) 하여 입력합니다.

    • localNameIdentifier 요소에 한글 이름을 입력할 수 있습니다. 하지만 이때에도 반드시 nameIdentifier 요소에 법적 영문 이름이 기입되어 있어야 합니다.

  4. 성과 이름을 분리할 수 있는 경우

    • primaryIdentifier에 성(last name)을 기입합니다.

    • secondaryIdentifier에 이름(first name)을 기입합니다.

  5. 성과 이름을 분리할 수 없는 경우

    • primaryIdentifier에 전체 이름(full name)을 기입합니다.

    • secondaryIdentifier에는 아무 이름도 기입하지 않습니다.

지리적 주소 기입 방법

  1. 공통

    • geographicAddress 요소는 배열입니다. 따라서 여러 주소를 넣을 수 있습니다.

      • 주소 중에 하나는 반드시 GEOG 또는 HOME 또는 BIZZ 타입 주소여야 합니다.

    • 하나의 주소에는 반드시 다음 조합 중에 하나의 조합이 나타나야 합니다.

      • 적어도 하나의 addressLine

      • streetName + buildingName

      • stressName + buildingNumber

    • country 요소는 필수 값이며, ISO-3166-1 alpha-2에서 정하는 2글자 국가 코드를 기입해야 합니다.

      • 예) KR, JP, US 등

  2. 주소 정보가 시, 도, 도시, 거리, 건물 등 요소 별로 나눠서 저장되어 있을 경우

    • countrySubDivision 요소에는 특별시, 광역시, 도를 기입합니다.

      • 예) 서울특별시, 광주광역시, 경기도, 제주도

    • districtName 요소에는 시, 군, 구를 기입합니다.

    • townName 요소에는 읍, 면, 동을 기입합니다.

    • streetName 요소에는 거리 이름을 기입합니다.

    • buildingName 요소 또는 buildingNumber 요소에는 건물 이름 또는 건물 번호를 기입합니다.

    • floor 요소나 room 요소에는 층이나 방 번호를 기입합니다.

  3. 주소 정보가 시, 도, 도시 등의 요소 별로 나눠서 저장되어 있지 않을 경우

    • addressLine 요소에 배열로 7개까지의 주소를 넣을 수 있으므로, 나눠서 입력받은 주소가 있으면 분리하여 배열의 원소로 넣습니다.

    • 만약 전체 주소 밖에 알지 못하는 경우에는 addressLine 배열의 첫 번째 원소로 전체 주소를 기입합니다.

  4. 법인의 주소를 기입할 경우

    • 법인의 주소를 기입할 때에는 본점과 사업장의 주소를 모두 기입해야 합니다.

      • 본점 주소는 지리적 주소 배열의 첫 번째 원소로 넣습니다.

      • 사업장 주소는 지리적 주소 배열의 두 번째 원소로 넣습니다.

      • 사업장이 여러 개인 경우에는 지리적 주소 배열의 세 번째 원소부터 추가적으로 넣을 수 있습니다.

      • 본점과 사업장의 주소가 같은 경우에도 첫 번째, 두 번째 원소에 각각 중복해서 넣습니다.

생년월일 기입 방법

  1. 공통

    • 법인은 생년월일이 없으므로 기입하지 않습니다.

    • dateOfBirth 요소에 생년월일을 “YYYY-MM-DD” 과 같은 형식으로 입력해야 합니다.

    • placeOfBirth 요소에는 원칙적으로는 출생지를 기입해야 합니다.

      • 출생지 정보가 없는 경우 지리적 주소 정보(현재 거주지)를 기입합니다.

      • 단, 주민번호와 같은 국가 고유 번호 체계가 없는 국가의 고객에 대해서는 반드시 출생지 정보를 기입해야 합니다.

    주민등록번호와 같이 국가가 관리하는 국민 고유 번호 체계가 없는 국가에서는 출생지 정보가 중요하게 사용됩니다. 하지만 대한민국은 주민등록번호 체계가 있으므로 출생지 정보는 중요하게 간주되지 않습니다.

국적 기입 방법

  1. 공통

    • 법인에는 국적이 없으므로 기입하지 않습니다.

    • IVMS101에는 거주국을 넣을 수 있는 포맷은 존재하지만, 국적을 넣을 수 있는 포맷은 존재하지 않습니다.

    • 국적 정보를 교환하기 위해 IVMS101 포맷을 수정하여 NaturalPerson type에 nationality 요소를 추가했습니다.

    • 따라서, 국적 정보는 nationality 요소에 국가 코드를 기입합니다.

Last updated