시작하기 전에
- 샌드박스 애플리케이션의 API 키를 사용하십시오. 실서비스 애플리케이션은 테스트 VASP에 도달하지 않습니다.
- 법적 명칭을 입력하여 Travel Rule을 켜십시오:
- 선택 사항으로 webhook 대상을
travel_rule.status.updated에 구독할 수 있습니다. 샌드박스는"environment": "sandbox"로 표시하여 이 이벤트를 전송합니다.
Didit Test VASP
GET /v1/sandbox/scenarios/는 테스트 VASP의 프로필과 travel_rule 객체 안의 모든 시나리오를 반환합니다. 따라서 테스트에서 트리거 값을 하드코딩하지 않고 이 응답에서 읽을 수 있습니다:
모든 값은 테스트 데이터입니다. 테스트 VASP는 어떤 Travel Rule 네트워크의 구성원도 아니며, 샌드박스의 어떤 결과도 실제 거래 상대방이나 네트워크에 도달할 수 있음을 보여주지 않습니다.
발신 시나리오
교환이 필요한 샌드박스 애플리케이션의 모든 발신travelRule 거래는 테스트 VASP로 보내집니다. 수취 지갑 주소(대소문자 구분 없음) 또는 수취인 이름을 Didit Test VASP <suffix> 형식으로 입력하여 결과를 선택합니다. 둘 다 설정하면 지갑이 우선합니다. 둘 다 없거나 표에 없는 접미사를 사용하면 전송은 완료됩니다(accept).
교환이 필요 없는 전송은 테스트 VASP에 도달하지 않습니다. 여기에는 threshold_amount 미만 금액의 전송, 사용자 본인의 인증된 지갑으로의 전송, 수취 지갑을 자체 보관 지갑으로 신고한 전송이 포함됩니다. 귀하 또는 최종 사용자가 디렉터리에서 직접 고른 거래 상대방 VASP는 실서비스 애플리케이션이 따르는 경로로 판단합니다. 항목에 경로(검증된 TRP 엔드포인트, 애플리케이션이 전송하는 네트워크, 컴플라이언스 연락처 중 하나)가 있으면 전송은 테스트 VASP로 보내집니다. 경로가 없으면 실서비스 애플리케이션에서와 마찬가지로 전송은 COUNTERPARTY_VASP_NOT_FOUND로 끝납니다.
rail은 TEST_VASP이며, 전송 목록은 Didit Test VASP를 수취인 VASP로 표시합니다. travel_rule.status.updated webhook에서 이 전송을 추적하거나 GET /v3/transactions/{transaction_id}/를 읽어 확인하십시오.
name_mismatch는 보낸 수취인 이름을 테스트 VASP가 응답하는 보유자 이름과 비교합니다. 비교는 수취인 주체 유형에 맞는 이름 규칙에 따라 이루어집니다(matching_rules.individual.name또는matching_rules.company.name이며, 직접 설정하기 전까지는name_matching_strictness를 따릅니다). 전송과 이를 결정한 타임라인 항목에는name_match(compared_with: "counterparty_vasp"포함)와mismatched_fields: ["name"]이 포함된data_match가 기록됩니다.not_reachable은 재시도하는 동안 전송을AWAITING_COUNTERPARTY로 유지하며,delivery.status는RETRYING,last_error는test VASP is not answering으로 설정됩니다. 이후 전송을COUNTERPARTY_VASP_NOT_REACHABLE로 바꿉니다. 다시 실행하려면{"action": "resend"}를 보내십시오.self_hosted에서 테스트 VASP는 해당 지갑이 자체 보관 지갑이라고 응답합니다.auto_wallet_verification이 켜져 있으면 생성되는 지갑 소유권 위젯이나POST .../travel-rule/ownership/에{"confirmed": true}를 보내 증명을 기록하십시오. 그러면 지갑이 수취인 이름으로 주소록에 추가되고, 이름 일치 여부가 전송을 결정합니다. 일치하면 전송이 완료되고 지갑은 검증된 것으로 표시됩니다.{"confirmed": false}를 보내면 전송이 거부됩니다.
샌드박스에서 수신 거래 테스트하기
수신 측을 테스트하려면 테스트 VASP가POST /v3/travel-rule/test-vasp/inbound/로 거래를 보내도록 하세요. 애플리케이션이 직접 등록한 주소록 지갑 하나를 지정하면, 해당 거래는 실제 거래와 같은 수신 경로에서 주소록, 소유권 모드, 이름 규칙에 따라 결정됩니다.
201 응답에는 transaction_id, txn_id, scenario, travel_rule_status, detail, test_vasp: true, 그리고 travel_rule 전송 정보가 포함됩니다. 라이브 애플리케이션에서 요청하면 400("The Didit Test VASP is only available on sandbox applications.")이 반환되고, 지원되지 않는 scenario 값을 보내면 400이, Travel Rule이 꺼져 있는 애플리케이션에서 요청하면 409가 반환됩니다.
대기 중인 거래는 실제 거래와 마찬가지로
POST .../travel-rule/ownership/로 결정하세요. {"confirmed": true}는 거래를 완료하고, {"confirmed": false}는 거래를 거부합니다.
POST /v3/transactions/로 직접 보고한 입금은 테스트 VASP가 보낸 거래가 아닙니다. 이 입금은 발신 VASP의 응답을 기다리며 AWAITING_COUNTERPARTY 상태에 머물고, 타임라인에는 위 엔드포인트가 표시됩니다. confirmation_timeout_hours가 지나 만료되기 전까지는 웹훅도 전송되지 않습니다. POST /v3/travel-rule/inbound/는 라이브 애플리케이션에서와 마찬가지로, 입금 후 등록된 건을 주소록에 대해 정산합니다.
샌드박스의 웹훅
travel_rule.status.updated는 샌드박스 애플리케이션에서 상태가 바뀔 때마다 "environment": "sandbox"와 함께 전송됩니다. 테스트 VASP가 응답한 거래에는 rail: "TEST_VASP", test_vasp: true, test_vasp_scenario도 함께 포함됩니다. 그 밖의 샌드박스 동작은 샌드박스의 거래 모니터링에 설명된 대로 유지됩니다. 규칙은 평가되지 않고, transaction.created와 transaction.status.updated는 전송되지 않으며, 요금도 청구되지 않습니다.
샌드박스로 증명되지 않는 것
- 실제 상대 VASP, 네트워크 멤버십, 또는 Didit의 공개 TRP 호스트가 작동한다는 사실. 이들 중 어느 것도 접촉하지 않습니다.
- 네트워크 자격 증명이 유효하다는 사실. 연결된 멤버십은 첫 번째 실제 교환을 통해 검증됩니다.
- 실제 VASP의 디렉터리 경로. 샌드박스 애플리케이션에서는 모든 경로가
reason: sandbox_application과 함께unavailable로 표시되며, 모든 행은reachable: false로 표시됩니다.