VASP API 구현

VerifyVASP 프로토콜을 통해 Travel Rule을 준수하기 위해, VerifyVASP Enclave를 제공합니다.

Enclave 서버를 통해 전달받은 개인 정보에 대한 검증을 하기 위해 아래와 같은 API를 구현하여 연결합니다.

사용자 Address 검증 API 개발

개요

  • VASP가 Beneficiary VASP 역할을 할 때, Originating VASP에 의해 호출되는 API입니다.

  • VASP의 address (계좌번호 또는 지갑 주소)의 소유 여부를 검증합니다.

  • Originating VASP에서 사용자 검증 API를 호출하기 전에, 사용자 Address 검증 API를 통해 Beneficiary Address(지갑 주소, 계좌번호)에 대해 선 검증 할 수 있습니다.

Enclave 환경 변수:

VEGA_VERIFICATION_ACCOUNT_API_PATH 변수에, 사용자 계정 검증 API 엔드포인트를 명시합니다.

구현 사항

  • 지갑 주소(Address) 와 수취인 이름 정보가 VASP 소유인지 확인해야 합니다.

요청/응답

  • 요청

    • KeyType, beneficiaryVaspId, symbol, payload를 전달받아, 지갑 주소와 수취인 이름에 대해 검증 요청합니다.

    • payload에는 지갑 주소와 수취인 이름 정보를 IVMS101 메시징 프로토콜 형태로 전달합니다.

  • 응답

    • 검증을 요청한 Symbol의 Addresses가 VASP 소유 주소인지의 여부를 반환합니다.

    • 검증을 요청한 수취인의 이름이 VASP 소유 지갑 주소에 일치하는 수취인 이름인지 확인합니다.

  • 자세한 API 스펙은 아래 링크를 참조 바랍니다.

사용자 계정 검증 API

사용자 검증 API 개발

개요

  • VASP가 Beneficiary VASP 역할을 할 때, Originating VASP에 의해 호출되는 API입니다.

  • Beneficiary에 대한 검증 요청에 대하여 Beneficiary VASP는 사용자의 정보를 검증해야 합니다.

Enclave 환경 변수:

VEGA_VERIFICATION_API_PATH 변수에, 사용자 검증 API 엔드포인트를 명시합니다.

구현 사항

  • Beneficiary의 이름을 확인합니다.

  • Beneficiary의 Address (지갑 주소 또는 계좌번호)를 확인합니다.

  • KYC 인증이 된 사용자인지 확인합니다.

  • AML 검증을 수행합니다.

  • Originator에 대해 Sanction screening을 수행합니다.

    • VASP 자체적으로 사용 중인 sanction 관련 서비스를 이용해도 됩니다.

    • Originator에 대한 위험도를 체크하여 Sanction List에 있는 사용자일 경우, 검증 결과를 DENIED로 반환합니다.

요청/응답

  • 요청

    • Asset information, Originator, Beneficiary에 대한 정보를 IVMS101 메시지 형식으로 전달하여, 사용자 검증 요청합니다.

  • 응답

    • Beneficiary에 대한 유효성 검사 결과를 반환합니다.

    • Beneficiary에 대한 추가 정보를 IVMS101 형식으로 반환합니다.

      • 처음 요청받은 Beneficiary의 정보는 Originator가 입력한 이름과 계좌번호뿐이므로, Travel Rule을 만족하기 위해 Beneficiary 개인 정보(주민 번호, 주소, 생년월일 및 출생지 등)를 추가하여 반환합니다.

  • 자세한 API 스펙은 아래 링크를 참조 바랍니다.

사용자 검증 API

트랜잭션 처리 상태 조회 API 개발

개요

  • VASP가 Originating VASP 역할을 할 때, Beneficiary VASP에 의해 호출되는 API입니다.

  • Originating VASP에서 VerifyVASP를 통해 Beneficiary 검증 후, 실제 블록체인으로 가상 자산을 전송하면 해당 트랜잭션의 ID (TxHash) 값을 VerifyVASP로 리포팅 해야 합니다.

  • 하지만 어떠한 이유로든 트랜잭션 아이디 (Transaction hash, txHash) 리포팅이 정상적으로 수행되지 못했을 때, Beneficiary VASP에서 블록체인의 트랜잭션의 처리 상태를 역으로 조회할 수 있는 API입니다.

Enclave 환경 변수:

VEGA_VERIFICATION_TRANSACTION_API_PATH 변수에, 트랜잭션 처리 상태 조회 API 엔드포인트를 명시합니다.

구현 사항

  • 전달받은 Verification UUID에 대한, Transaction 처리 결과 (TxHash)를 제공해야 합니다.

요청/응답

  • 요청

    • 이전 사용자 검증 요청했던 Verification UUID

  • 응답

    • 전달받은 Verification UUID에 상응하는 트랜잭션의 처리 상태와 TxHash 정보를 반환합니다.

  • 자세한 API 스펙은 아래 링크를 참조 바랍니다.

트랜잭션 처리 상태 조회 API

Callback API 개발

개요

  • Enclave의 일부 API는 비동기로 동작합니다. 예를 들어 사용자 검증 API를 호출하면 검증 결과가 response로 바로 반환되는 것이 아니라 verificationUuid만 전달됩니다.

  • 사용자 검증 요청은 비동기적으로 Beneficiary VASP로 전달되며, 결과 역시 비동기적으로 Originating VASP로 전달됩니다.

  • 비동기적으로 전달되는 사용자 검증 결과를 받기 위해서는 Callback API를 구현하여 enclave 환경 변수로 입력해야 합니다.

  • 선택적으로 구현할 수도 구현하지 않을 수도 있지만, 구현하지 않으면 VASP 내부 구현이 복잡해지므로 구현하는 것을 강력히 권장합니다.

Enclave 환경 변수:

VEGA_VERIFICATION_CALLBACK_API_PATH 변수에, Callback API 엔드포인트를 명시합니다.

구현 사항

  • 각각의 callbackType (VERIFICATION_RESULT, TX_REPORT, ERROR_REPORT 등)에 대해 적절히 처리해야 합니다.

  • response는 가급적 빨리 반환해야 합니다.

요청/응답

  • 요청

    • 비동기 API의 처리 결과가 입력됩니다.

  • 응답

    • 200 응답을 반환합니다.

  • 자세한 API 스펙은 아래 링크를 참조 바랍니다.

Callback API

암호화 키에 대한 복호화 API 개발

개요

  • Enclave가 사용하는 데이터베이스에 대한 encryption key에 대하여, 이 API를 통하여 더 높은 수준의 암호화 키를 사용할 수 있습니다.

  • Enclave에서 이 API를 통해, 개인 정보나 private key와 같은 민감 정보를 암호화할 때 사용하는 encryption key를 복호화 합니다.

Enclave 환경 변수:

VEGA_DECRYPT_API_ENDPOINT 변수에, 암호화 키에 대한 복호화 API 엔드포인트를 명시합니다.

구현 사항

  • 전달받은 암호화 키에 대해, 한 번 더 복호화 한 암호화키를 제공합니다.

요청/응답

  • 요청

    • 암호화 키인 inputKey를 전달받습니다.

  • 응답

    • inputKey에 대한 복호화 된 암호화 키를 반환합니다.

  • 자세한 API 스펙은 아래 링크를 참조 바랍니다.

Database 암호화 키를 복호화 하는 API

화면 개발

  • Travel Rule을 준수하기 위한 추가적인 화면 개발이 필요합니다.

  • 최소한, Beneficiary VASP 선택, Beneficiary의 이름과 계좌번호를 입력받을 수 있는 화면 개발이 필요합니다.

Last updated