자산 이전 허가 요청
가상 자산의 이전에 대한 허가를 자산을 수신하는 VASP 에 요청합니다
POST
/v1/code/transfer/{BeneficiaryVaspEntityId}
가상 자산을 전송하려는 VASP 는 가상 자산을 수신할 VASP 에 자산의 이전 허가를 요청합니다. 자산을 보내려는 VASP 는 요청(request)에 송금인의 개인 정보를 보내고, 자산을 수신하는 VASP 는 송금인의 정보를 확인한 후, 거래를 거절하거나 수취인의 개인 정보와 함께 허가를 통보할 수 있습니다.
요청을 보낸 VASP 는 요청을 보내기 전 또는 응답을 받은 후, 저장한 자산 이전 목록의 상태(status) 를 verified
또는 denied
로 업데이트 합니다.
Path Parameter
BeneficiaryVaspEntityId: 자산을 수신하는 주소를 소유하는 VASP 의 EntityID 로 반드시 입력해야 합니다.
REQUEST Body Schema: application/jsonRequest
송금인(Originator)의 개인정보는 2022.3.25 현재 개인인 경우 개인의 이름, 법인인 경우 법인과 대표자의 이름에 대한 정보만 보내기로 합니다.
transferId(Required):
'자산 이전 허가 요청' 부터는 이후 프로세스가 실행되는 중에 트랜잭션 상태를 추적할 수 있는 고유 아이디가 필요합니다.
요청을 보내는 클라이언트는 반드시 UUID v4 값을 생성해서 보내야 합니다.
currency(Required): 이전하려는 가상 자산의 심볼입니다.(대소문자를 구분하지 않습니다)
amount(Required): 이전하려는 가상 자산의 총 볼륨입니다.
historicalCost(Optional): 이전하려는 가상자산의 취득 원가입니다. (국세청 요구 사항이지만, 아직은 사용하지 않습니다.)
tradePrice(Required): 법정 화폐로 환산한 가상 자산 전송 금액입니다. 자체 시세 정보가 없는 경우에는 타 VASP의 시세 API 를 사용하여 환산합니다.
tradeCurrency(Required): 법정 화폐로 환산할 때 사용한 ISO 4217 표준을 따르는 법정 화폐 코드입니다.
isExceedingThreshold(Required):
tradePrice 가 법령에서 지정한 트래블룰 적용 기준을 초과하는지 여부입니다.
해당 필드는 true 또는false로 입력하며, 필드값이 true 일 경우, 요청(request)의Beneficiary 이름을 실제 가상 자산 주소를 소유한 Beneficiary 이름과 비교하게 됩니다.
필드값이 true일 경우, 요청(request)에 Beneficiary이름이 없거나 다를 경우 '거절(deny)' 응답을 보냅니다.
originatingVasp(Optional, 대소문자 주의): VerifyVASP 로부터 들어오는 요청에 한하여 암호화 영역인 payload 외부에 originatingVASP 객체가 포함되어 있습니다.
countryOfRegistration(Optional) : VerifyVASP 요청은 해당 필드값이 포함되지 않습니다.
payload(Required): IVMS101 메시지를 담기 위한 객체입니다.
ivms101(Required): IVMS101 메시지 표준을 따르는 송금인(Originator), 수취인(Beneficiary), 송신 VASP(OriginatorVASP), 수취VASP(BeneficiaryVASP) 등 가상자산 이전에 관여하는 각 주체를 IVMS101 국제 표준에 맞춰서 정의한 객체입니다. '자산 이전 허가 요청' 에서는 Originator 의 이름과 자산 주소, Beneficiary 의 자산 주소, OriginatingVASP 정보가 반드시 포함돼야 하고, Beneficiary 이름은 선택 사항입니다.
Originator(Required): 자산을 이전하고자 하는 송금인(개인) 또는 법인 및 대표자에 대한 정보.
originatorPersons(Required): naturalPerson(개인), legalPerson(법인) 두 종류의 객체가 있으며, 법인의 경우에는 legalPerson(법인)과 naturalPerson(대표) 정보를 모두 설정해야 합니다. 배열 객체이며, 배열의 각 요소(element)는 naturalPerson 또는 legalPerson 중 하나 만을 정의해야 합니다. 자세한 내용은 본 매뉴얼 위쪽의
IVMS101 표준
항목을 참고해주세요.naturalPerson(Required): 개인에 대한 정보를 설정하기 위한 객체로 name(이름) 정보를 필수로 설정해야 합니다.
name(Required):
nameIdentifier: 법적 성명을 기입합니다. 국내 VASP 끼리 거래하는 경우는 한글로 기입하고, 해외 VASP 와 거래하는 경우 영문으로 기입합니다.
IVMS101 표준
항목을 참고해 주세요.primaryIdentifier: 성명 중 성을 기입합니다. 분리할 수 없는 경우는 성과 이름을 순서대로 함께 표기합니다.
secondaryIdentifier: 성명 중 이름을 기입합니다. 성과 이름을 분리할 수 없는 경우는 생략합니다.
nameIdentifierType: 'LEGL(legal)' 로 고정됩니다.
localNameIdentifier: 해외 VASP 와 거래하는 경우 한글 이름을 추가로 전달하기 위해 정의합니다.
primaryIdentifier: 한글 표기 성명 중 성을 기입합니다. 분리할 수 없는 경우 성과 이름을 순서대로 함께 표기합니다.
secondaryIdentifier: 한글 표기 성명 중 이름을 기입합니다. 분리할 수 없는 경우는 생략합니다.
nameIdentifierType: 'LEGL'(legal) 로 고정됩니다.
customerIdentification(Optional): 자산을 전송하는 송금인을 VASP에서 식별 가능한 식별자 (UID 또는 IDX)
legalPerson(Optional): 법인에 대한 정보를 설정하기 위한 객체로 name 객체를 필수로 설정해야 합니다.
name(Required):
nameIdentifier: 법인의 등록 상 명칭을 기입합니다. 국내 VASP 끼리 거래하는 경우는 한글 또는 영문으로 기입하고, 해외 VASP 와 거래하는 경우 영문으로 기입합니다.
legalPersonName: 법인명을 기입합니다.
legalPersonNameIdentifierType: 'LEGL'(legal) 로 고정됩니다.
customerIdentification(Optional): 자산을 전송하는 송금인을 VASP에서 식별 가능한 식별자 (UID 또는 IDX)
accountNumber(Required): 자산을 전송하는 지갑 주소입니다. tag 나 memo 값이 필요한 경우는 ':' 로 구분해서 하나의 문자열로 만듭니다.
Beneficiary(Required): 자산을 수신 받는 수취인(개인) 또는 법인 및 대표자에 대한 정보를 기입합니다. 요청(request)을 보낼 때, Beneficiary 정보를 함께 기입하여 보내야 하며, ①이름과 ②지갑 주소로 구성되어 있습니다. 지갑 주소 정보는 필수입니다. 이름 정보는 tradePrice가 트래블룰 적용 기준을 초과할 경우, 필수로 설정해야하고, 초과하지 않을 경우 옵션입니다. ※ 이름 정보는 'isExceedingThreshold'가 true일 때 Required, 'isExceedingThreshold'가 false일 때 Optional입니다.
beneficiaryPersons(Required): Beneficiary 상위 객체에는 반드시 beneficiaryPersons라는 하위 객체가 포함되어야 합니다. beneficiaryPersons는 originatorPersons와 구조가 동일합니다. beneficiaryPersons 하위에는 naturalPerson 또는 legalPerson로 나눌 수 있습니다. 수취 VASP는 입력한 이름과 실제 수취인의 이름을 비교했을 때, 이름이 다를 경우 거절(denied) 응답을 보냅니다.
naturalPerson(Required or Optional): 개인에 대한 정보를 설정하기 위한 객체이며, 'isExceedingThreshold'가 true일 경우 Required, 'isExceedingThreshold'가 false일 경우 Optional입니다.
legalPerson(Required or Optional): 법인에 대한 정보를 설정하기 위한 객체이며, 'isExceedingThreshold'가 true일 경우 Required, 'isExceedingThreshold'가 false일 경우 Optional입니다.
accountNumber(Required): 자산을 수신하는 지갑 주소입니다. tag 나 memo 값이 필요한 경우는 ':' 로 구분해서 하나의 문자열로 만듭니다.
OriginatingVASP(Required): 자산을 전송하려는 송신 VASP 정보입니다.
originatingVASP(Required):
legalPerson(Required): 자산을 전송하려는 VASP의 법인 정보입니다.
name(Required):
nameIdentifier: 국제 표기법을 따르는 영문 이름 정보입니다.
legalPersonName: 영문 법인명입니다.
legalPersonNameIdentifierType: 'LEGL'(legal) 로 고정됩니다.
geographicAddress(Optional): 법인의 등록 서류상 소재지입니다. 법인 주소 또는 법인 등록 번호 중 하나는 반드시 입력해야 합니다.
addressType: 'GEOG' 로 입력합니다.
townName: 시/도 이름을 입력합니다.
addressLine: townName 하위 주소를 문자열의 배열 형식으로 입력합니다.
country: ISO-3166-1 alpha-2 에서 정하는 2글자 국가 코드입니다. 예) KR, JP, US 등
nationalIdentification(Optional): 국가의 인증을 받은 법인 식별 번호, 즉 사업자등록번호 입니다. 법인 주소 또는 등록 번호 중 하나는 반드시 입력해야 합니다.
nationalIdentifier: 사업자등록번호
nationalIdentifierType: 'RAID'(Registration authority identifier)
registrationAuthority: 'RA000657' (대한민국 국세청 RA 식별번호)
countryOfRegistration(Required): 등록 국가. ISO-3166-1 alpha-2 에서 정하는 2글자 국가 코드입니다. 예) KR, JP, US 등
Response
200 OK
RESPONSE SCHEMA: application/json
result(Required): 가상 자산의 이전 허가 결과입니다.
verified: 허가된 경우 반환됩니다.
denied: 자산 이전을 거부한 경우 반환됩니다. reasonType 값으로 상세 내용을 구분할 수 있습니다.
reasonType(Optional): result 필드 값이 denied 인 경우 이 필드가 추가 됩니다.
NOT_FOUND_ADDRESS: 가상 자산 주소를 찾을 수 없는 경우입니다.
NOT_SUPPORTED_SYMBOL: 거래할 수 없는 화폐 심볼입니다.
NOT_KYC_USER: 수신 주소의 소유자가 KYC 인증을 진행하지 않은 경우입니다.
INPUT_NAME_MISMATCHED: 요청 메시지로 전송한 수취인 이름이 실제 소유자의 이름과 일치하지 않는 경우입니다.
SANCTION_LIST: 가상 자산 주소 또는 소유자가 수취 VASP 의 제재 대상입니다.
LACK_OF_INFORMATION: 자산 이전을 결정하는데 필요한 정보가 없을 경우입니다.
UNKNOWN: 그 밖에 다른 이유입니다.
reasonMsg(Optional): reasonType 을 설명하는 상세 메시지를 정의합니다.
transferId(Required): '자산 이전 허가 요청' 부터는 이후 프로세스가 실행되는 중에 트랜잭션 상태를 추적할 고유 아이디가 필요합니다. 요청을 보내는 클라이언트에서 UUID 를 생성해서 보냅니다.
beneficiaryVasp(Optional, 대소문자 주의): VerifyVASP 로부터 들어오는 응답에 한하여 암호화 영역인 payload 외부에 beneficiaryVASP 객체가 포함되어 있습니다.
payload(Required): IVMS101 메시지를 담기 위한 객체입니다.
ivms101(Required): IVMS101 메시지 표준을 따르는 송금인(Originator), 수취인(Beneficiary), 송신 VASP(OriginatorVASP), 수취 VASP(BeneficiaryVASP) 등 가상자산 이전에 관여하는 각 주체를 IVMS101 국제 표준에 맞춰 정의한 객체입니다. 응답(response) 객체에서는 Originator, OriginatingVASP 정보는 요청(request)의 데이터를 복사하고, Beneficiary, BeneficiaryVASP 데이터가 추가됩니다.
Originator(Required): 자산을 전송하고자 하는 송금인(개인) 또는 법인 및 대표자에 대한 정보입니다. 요청의 값을 그대로 복사해서 사용합니다.
Beneficiary(Required): 자산을 수신하는 수취인(개인) 또는 법인 및 대표자에 대한 정보입니다. 응답(response)에서는 이름과 자산 주소를 기입해서 보내야 합니다.
beneficiaryPersons(Required): 상위 객체인 Beneficiary 객체에 반드시 포함되어야 하며 구조는 originatorPersons 와 같으므로 요청의 originatorPersons 설명을 참고해 주세요.
naturalPerson(Required): 개인에 대한 정보를 설정하기 위한 객체로 name(이름) 정보를 필수로 설정해야 합니다.
legalPerson(Optional): 법인에 대한 정보를 설정하기 위한 객체로 name(이름) 정보를 필수로 설정해야 합니다.
accountNumber(Required): 자산을 수신하는 지갑 주소입니다. tag 나 memo 값이 필요한 경우는 ':' 로 구분해서 하나의 문자열로 만듭니다.
OriginatingVASP(Required): 자산을 전송하려는 송신 VASP 정보로 요청의 값을 그대로 복사해서 사용합니다.
BeneficiaryVASP(Required): 자산을 수신하는 수취 VASP 정보입니다. 구조는 OriginatingVASP 와 같으므로 요청의 OriginatingVASP 설명을 참고해 주세요.
Last updated