IVMS101 필수 값

IVMS101 필수값을 케이스별로 설명합니다.

IVMS101 이해하기

IVMS101은 위의 이미지와 같이 매우 복잡한 구조로 형성이 되어 있습니다. 위의 구조도 하나의 예시 일뿐, 'naturalPerson'/'legalPerson'인지에 따라 혹은 'localNameIdentifier'를 사용하는지 등에 따라 상황별로 다양한 경우의 수가 나올 수 있습니다.

송수신 케이스별로 필수 값이 달라지기 때문에, 각 시나리오를 잘 이해하고 그에 맞게 필요한 항목들을 잘 입력하는 것이 중요합니다.

구조가 복잡해 보이지만 결국 'Originator', 'Beneficiary', 'OriginatingVASP', 'BeneficiaryVASP' 4개의 객체만 잘 작성할 수 있다면 문제 없습니다. 송신 측 VASP는 IVMS101 표준에 따라 'payload'에 'Originator', 'Beneficiary', 'OriginatingVASP' 세 가지 정보를 잘 담아 요청을 보내고, 수신 측 VASP는 요청에 담겨온 세 가지 정보에 'BeneficiaryVASP' 정보를 더해 반환하면 프로세스가 완료됩니다.

지금부터 대표적인 케이스별 IVMS101 필수 객체를 알아보겠습니다. 작성법은 IVMS101 타입 페이지를 참고해주세요.

송신(출고)할 때

'Originator': 'naturalPerson'

송신인이 개인인 경우 'name' 객체 아래 ❗ 'nameIdentifier' 객체는 필수❗, 'localNameIdentifier'는 옵션입니다. 'nameIdentifier'는 항상 존재해야 하기 때문에, 입력할 이름이 없는 경우 공란으로 작성해 주세요.

일반적으로 'nameIdentifier'에는 영문 이름을, 'localNameIdentifier'에는 한글 이름(혹은 그 외의 현지어 이름)을 담아 전송합니다.

🚧

다만, 한국 VASP 간 통신 시에는 'nameIdentifier'에 한글 이름, 'localNameIdentifier'에 영문 이름을 전송하기로 약속되어 있습니다. 자세한 내용은 IVMS101 이름페이지에서 확인할 수 있습니다.

{
  "Originator": {
    "originatorPersons": [
      {
        "naturalPerson": {
          "name": {
            "nameIdentifier": [
              {
                "primaryIdentifier": "",
                "secondaryIdentifier": "",
                "nameIdentifierType": ""
              }
            ],
            "localNameIdentifier": [
              {
                "primaryIdentifier": "홍",
                "secondaryIdentifier": "길동",
                "nameIdentifierType": "LEGL"
              }
            ]
          },
          "dateAndPlaceOfBirth": {
            "dateOfBirth": "1990-01-01",
          },
        }
      }
    ],
    "accountNumber": [
      "rJChk8e71gxVhyJSr1srzZxWhVisWMMYKZ:tag or memo"
    ]
  },
  "Beneficiary": {
  },
  "OriginatingVASP": {
  }
}

'Originator: 'legalPerson'

송신인이 법인인 경우 'originatorPersons' 객체 하위에 ❗'legalPerson'과 적어도 하나의 'naturalPerson'이 필수❗입니다. 'legalPerson'에는 법인의 정보를 담고, 'naturalPerson'에는 법인 대표자의 정보를 담습니다.

이 경우에도 마찬가지로 'name' 객체 아래 ❗ 'nameIdentifier' 객체는 필수❗, 'localNameIdentifier'는 옵션입니다. 'nameIdentifier'는 항상 존재해야 하기 때문에, 입력할 이름이 없는 경우 공란으로 작성해 주세요.

법인의 대표자가 여러 명인 경우 'beneficiaryPersons' 객체 array에 'naturalPerson'객체를 필요한 만큼 추가합니다.

'nameIdentifier'에는 영문 이름을, 'localNameIdentifier'에는 한글 이름(혹은 그 외의 현지어 이름)을 담아 전송합니다.

🚧

마찬가지로, 한국 VASP 간 통신 시에는 대표자 정보 'naturalPerson'의 'nameIdentifier'에 한글 이름, 'localNameIdentifier'에 영문 이름을 전송합니다. 자세한 내용은 IVMS101 이름페이지에서 확인할 수 있습니다.

{
  "Originator": {
    "originatorPersons": [
      {
        "legalPerson": {
          "name": {
            "nameIdentifier": [
              {
                "legalPersonName": "CODE Inc.",
                "legalPersonNameIdentifierType": "LEGL"
              }
            ]
          },
          "countryOfRegistration": "KR"
        }
      },
      {
        "naturalPerson": {
          "name": {
            "nameIdentifier": [
              {
                "primaryIdentifier": "",
                "secondaryIdentifier": "",
                "nameIdentifierType": ""
              }
            ],
            "localNameIdentifier": [
              {
                "primaryIdentifier": "홍",
                "secondaryIdentifier": "길동",
                "nameIdentifierType": "LEGL"
              }
            ]
          }
        }
      },
    ],
    "accountNumber": [
      "rJChk8e71gxVhyJSr1srzZxWhVisWMMYKZ:tag or memo"
    ]
  },
  "Beneficiary": {
  },
  "OriginatingVASP": {
    
  }
}

'Beneficiary': 'naturalPerson'

수신인이 개인인 경우 ''name' 객체 아래 ❗ 'nameIdentifier' 객체는 필수❗, 'localNameIdentifier'는 옵션입니다. 'nameIdentifier'는 항상 존재해야 하기 때문에, 입력할 이름이 없는 경우 공란으로 작성해 주세요.

일반적으로 'nameIdentifier'에는 영문 이름을, 'localNameIdentifier'에는 한글 이름(혹은 그 외의 현지어 이름)을 담아 전송합니다.

🚧

다만, 한국 VASP 간 통신 시에는 'nameIdentifier'에 한글 이름, 'localNameIdentifier'에 영문 이름을 전송하기로 약속되어 있습니다. 자세한 내용은 IVMS101 이름페이지에서 확인할 수 있습니다.

{
  "Originator": {
  },
  "Beneficiary": {
    "beneficiaryPersons": [
      {
        "naturalPerson": {
          "name": {
            "nameIdentifier": [
              {
                "primaryIdentifier": "",
                "secondaryIdentifier": "",
                "nameIdentifierType": ""
              }
            ],
            "localNameIdentifier": [
              {
                "primaryIdentifier": "앨리스 스미스",
                "secondaryIdentifier": "",
                "nameIdentifierType": "LEGL"
              }
            ]
          },
        }
      }
    ],
    "accountNumber": [
      "rHcFoo6a9qT5NHiVn1THQRhsEGcxtYCV4d:tag or memo"
    ]
  },
  "OriginatingVASP": {
    
  }
}

'Beneficiary': 'legalPerson'

수신인이 법인인 경우 'beneficiaryPersons' 객체 하위에 ❗'legalPerson'과 적어도 하나의 'naturalPerson'❗이 필수입니다. 'legalPerson'에는 법인의 정보를 담고, 'naturalPerson'에는 법인 대표자의 정보를 담습니다.

이 경우에도 마찬가지로'name' 객체 아래 ❗ 'nameIdentifier' 객체는 필수❗, 'localNameIdentifier'는 옵션입니다. 'nameIdentifier'는 항상 존재해야 하기 때문에, 입력할 이름이 없는 경우 공란으로 작성해 주세요.

법인의 대표자가 여러 명인 경우 'beneficiaryPersons' 객체 array에 'naturalPerson' 객체를 필요한 만큼 추가합니다.

'nameIdentifier'에는 영문 이름을, 'localNameIdentifier'에는 한글 이름(혹은 그 외의 현지어 이름)을 담아 전송합니다.

🚧

마찬가지로, 한국 VASP 간 통신 시에는 대표자 정보 'naturalPerson'의 'nameIdentifier'에 한글 이름, 'localNameIdentifier'에 영문 이름을 전송합니다. 자세한 내용은 IVMS101 이름페이지에서 확인할 수 있습니다.

{
  "Originator": {
  },
  "Beneficiary": {
    "beneficiaryPersons": [
      {
        "legalPerson": {
          "name": {
            "nameIdentifier": [
              {
                "legalPersonName": "CODE Inc.",
                "legalPersonNameIdentifierType": "LEGL"
              }
            ]
          },
          "countryOfRegistration": "KR"
        }
      },
      {
        "naturalPerson": {
          "name": {
            "nameIdentifier": [
              {
                "primaryIdentifier": "",
                "secondaryIdentifier": "",
                "nameIdentifierType": ""
              }
            ],
            "localNameIdentifier": [
              {
                "primaryIdentifier": "앨리스 스미스",
                "secondaryIdentifier": "",
                "nameIdentifierType": "LEGL"
              }
            ]
          }
        }
      },
    ],
    "accountNumber": [
      "rHcFoo6a9qT5NHiVn1THQRhsEGcxtYCV4d:tag or memo"
    ]
  },
  "OriginatingVASP": {

  }
}

'OriginatingVASP'

'OriginatingVASP' 객체에는 송신측 VASP의 정보를 담아 전달합니다.

'legalPerson'하위에 'name'과 'countryOfRegistration'이 필수이며, 'geographicAddress'와 'nationalIdentification' 중 한 가지는 반드시 입력해야 합니다.

🍀

'nationalIdentification'을 사용할 때는, 식별 번호를 발급한 기관 정보를 뜻하는 'registrationAuthority'를 입력해주면 좋습니다. GLEIF 홈페이지 하단에서 'GLEIF Registration Authorities List' 파일을 다운받아 국가, 등록번호 타입과 매칭되는 Authority Code를 찾아 입력해주세요.

{
  "Originator": {
  },
  "Beneficiary": {
  },
  "OriginatingVASP": {
    "originatingVASP": {
      "legalPerson": {
        "name": {
          "nameIdentifier": [
            {
              "legalPersonName": "CODE Inc.",
              "legalPersonNameIdentifierType": "LEGL"
            }
          ]
        },
        "geographicAddress": [
          {
            "addressType": "GEOG",
            "townName": "Seoul",
            "country": "KR"
          }
        ],
        "nationalIdentification": {
          "nationalIdentifier": "EXAMPLE-TAX-ID",
          "nationalIdentifierType": "RAID",
        },
        "countryOfRegistration": "KR"
      }
    }
  }
}

수신(입고)할 때

'BeneficiaryVASP'

수신 측 VASP는 '자산 이전 허가 요청'에 담겨있는 'Originator', 'Beneficiary', 'OriginatingVASP' 정보에 자신들의 'BenficiaryVASP' 정보를 추가해 전송합니다.

'legalPerson'하위에 'name'과 'countryOfRegistration'이 필수이며, 'geographicAddress'와 'nationalIdentification' 중 한 가지는 반드시 입력해야 합니다.

🍀

'nationalIdentification'을 사용할 때는, 식별 번호를 발급한 기관 정보를 뜻하는 'registrationAuthority'를 입력해주면 좋습니다. GLEIF 홈페이지 하단에서 'GLEIF Registration Authorities List' 파일을 다운받아 국가, 등록번호 타입과 매칭되는 Authority Code를 찾아 입력해주세요.

{
  "Originator": {
  },
  "Beneficiary": {
  },
  "OriginatingVASP": {
  },
  "BeneficiaryVASP": {
    "beneficiaryVASP": {
      "legalPerson": {
        "name": {
          "nameIdentifier": [
            {
              "legalPersonName": "CODE Inc.",
              "legalPersonNameIdentifierType": "LEGL"
            }
          ]
        },
        "geographicAddress": [
          {
            "addressType": "GEOG",
            "townName": "Seoul",
            "country": "KR"
          }
        ],
        "nationalIdentification": {
          "nationalIdentifier": "6948624434",
          "nationalIdentifierType": "RAID",
        },
        "countryOfRegistration": "KR"
      }
    }
  }
}