curl -X POST https://verification.didit.me/v3/travel-rule/inbound/ \
-H 'x-api-key: YOUR_API_KEY' -H 'Content-Type: application/json' \
-d '{"chain":"ETH","txid":"0xdeposit-hash","wallet_address":"0xYourDepositWallet","amount":"500.00","currency":"USDC"}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.travel_rule.register_inbound(
chain="ETH",
txid="0xdeposit-hash",
wallet_address="0xYourDepositWallet",
amount="500.00",
currency="USDC",
originator_data={"name": "Origin CASP SL"},
beneficiary_data={"name": "Ana Diaz"},
originating_vasp={
"name": "Origin CASP SL",
"lei": "",
"travel_address": "ta9JbXbsBSuS5ozArJRFVgvBHMVnDGUnrPPChSZYQsuZTn3kPrJXUQ7RSLUEJ5KjyPvr8C9sAxmPtZfGsQVKCi4n8ShxP9BkbDdbtjtA9aumNybAZ1BxC",
},
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.travelRule.registerInbound({
chain: "ETH",
txid: "0xdeposit-hash",
wallet_address: "0xYourDepositWallet",
amount: "500.00",
currency: "USDC",
originator_data: { name: "Origin CASP SL" },
beneficiary_data: { name: "Ana Diaz" },
originating_vasp: {
name: "Origin CASP SL",
lei: "",
travel_address: "ta9JbXbsBSuS5ozArJRFVgvBHMVnDGUnrPPChSZYQsuZTn3kPrJXUQ7RSLUEJ5KjyPvr8C9sAxmPtZfGsQVKCi4n8ShxP9BkbDdbtjtA9aumNybAZ1BxC",
},
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.TravelRule.RegisterInbound(ctx, didit.TravelRuleInboundRequest{
Chain: "ETH",
Txid: "0xdeposit-hash",
WalletAddress: "0xYourDepositWallet",
Amount: "500.00",
Currency: "USDC",
OriginatorData: didit.Some(map[string]any{"name": "Origin CASP SL"}),
BeneficiaryData: didit.Some(map[string]any{"name": "Ana Diaz"}),
OriginatingVASP: didit.Some(didit.TravelRuleInboundRequestOriginatingVASP{
Name: didit.String("Origin CASP SL"),
Lei: didit.String(""),
TravelAddress: didit.String("ta9JbXbsBSuS5ozArJRFVgvBHMVnDGUnrPPChSZYQsuZTn3kPrJXUQ7RSLUEJ5KjyPvr8C9sAxmPtZfGsQVKCi4n8ShxP9BkbDdbtjtA9aumNybAZ1BxC"),
}),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import java.util.Map;
import me.didit.Didit;
import me.didit.types.TravelRuleInboundRequest;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.travelRule().registerInbound(TravelRuleInboundRequest.builder()
.chain("ETH")
.txid("0xdeposit-hash")
.walletAddress("0xYourDepositWallet")
.amount("500.00")
.currency("USDC")
.originatorData(Map.of("name", "Origin CASP SL"))
.beneficiaryData(Map.of("name", "Ana Diaz"))
.originatingVasp(TravelRuleInboundRequest.OriginatingVasp.builder()
.name("Origin CASP SL")
.lei("")
.travelAddress("ta9JbXbsBSuS5ozArJRFVgvBHMVnDGUnrPPChSZYQsuZTn3kPrJXUQ7RSLUEJ5KjyPvr8C9sAxmPtZfGsQVKCi4n8ShxP9BkbDdbtjtA9aumNybAZ1BxC")
.build())
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->travelRule->registerInbound([
'chain' => 'ETH',
'txid' => '0xdeposit-hash',
'wallet_address' => '0xYourDepositWallet',
'amount' => '500.00',
'currency' => 'USDC',
'originator_data' => ['name' => 'Origin CASP SL'],
'beneficiary_data' => ['name' => 'Ana Diaz'],
'originating_vasp' => [
'name' => 'Origin CASP SL',
'lei' => '',
'travel_address' => 'ta9JbXbsBSuS5ozArJRFVgvBHMVnDGUnrPPChSZYQsuZTn3kPrJXUQ7RSLUEJ5KjyPvr8C9sAxmPtZfGsQVKCi4n8ShxP9BkbDdbtjtA9aumNybAZ1BxC',
],
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.travel_rule.register_inbound(
chain: "ETH",
txid: "0xdeposit-hash",
wallet_address: "0xYourDepositWallet",
amount: "500.00",
currency: "USDC",
originator_data: { name: "Origin CASP SL" },
beneficiary_data: { name: "Ana Diaz" },
originating_vasp: {
name: "Origin CASP SL",
lei: "",
travel_address: "ta9JbXbsBSuS5ozArJRFVgvBHMVnDGUnrPPChSZYQsuZTn3kPrJXUQ7RSLUEJ5KjyPvr8C9sAxmPtZfGsQVKCi4n8ShxP9BkbDdbtjtA9aumNybAZ1BxC",
}
)
puts result.to_husing System;
using System.Collections.Generic;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.TravelRule.RegisterInboundAsync(new TravelRuleInboundRequest
{
Chain = "ETH",
Txid = "0xdeposit-hash",
WalletAddress = "0xYourDepositWallet",
Amount = "500.00",
Currency = "USDC",
OriginatorData = new Dictionary<string, object> { ["name"] = "Origin CASP SL" },
BeneficiaryData = new Dictionary<string, object> { ["name"] = "Ana Diaz" },
OriginatingVasp = new TravelRuleInboundRequestOriginatingVasp
{
Name = "Origin CASP SL",
Lei = "",
TravelAddress = "ta9JbXbsBSuS5ozArJRFVgvBHMVnDGUnrPPChSZYQsuZTn3kPrJXUQ7RSLUEJ5KjyPvr8C9sAxmPtZfGsQVKCi4n8ShxP9BkbDdbtjtA9aumNybAZ1BxC",
},
});
Console.WriteLine(JsonSerializer.Serialize(result));着金サンライズ送金登録API:トラベルルール
Didit Management APIで、データ交換が行われる前にオンチェーンで決済済みとなった暗号資産の入金に、トラベルルール情報を登録します。入金後に行うサンライズフローです。
curl -X POST https://verification.didit.me/v3/travel-rule/inbound/ \
-H 'x-api-key: YOUR_API_KEY' -H 'Content-Type: application/json' \
-d '{"chain":"ETH","txid":"0xdeposit-hash","wallet_address":"0xYourDepositWallet","amount":"500.00","currency":"USDC"}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.travel_rule.register_inbound(
chain="ETH",
txid="0xdeposit-hash",
wallet_address="0xYourDepositWallet",
amount="500.00",
currency="USDC",
originator_data={"name": "Origin CASP SL"},
beneficiary_data={"name": "Ana Diaz"},
originating_vasp={
"name": "Origin CASP SL",
"lei": "",
"travel_address": "ta9JbXbsBSuS5ozArJRFVgvBHMVnDGUnrPPChSZYQsuZTn3kPrJXUQ7RSLUEJ5KjyPvr8C9sAxmPtZfGsQVKCi4n8ShxP9BkbDdbtjtA9aumNybAZ1BxC",
},
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.travelRule.registerInbound({
chain: "ETH",
txid: "0xdeposit-hash",
wallet_address: "0xYourDepositWallet",
amount: "500.00",
currency: "USDC",
originator_data: { name: "Origin CASP SL" },
beneficiary_data: { name: "Ana Diaz" },
originating_vasp: {
name: "Origin CASP SL",
lei: "",
travel_address: "ta9JbXbsBSuS5ozArJRFVgvBHMVnDGUnrPPChSZYQsuZTn3kPrJXUQ7RSLUEJ5KjyPvr8C9sAxmPtZfGsQVKCi4n8ShxP9BkbDdbtjtA9aumNybAZ1BxC",
},
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.TravelRule.RegisterInbound(ctx, didit.TravelRuleInboundRequest{
Chain: "ETH",
Txid: "0xdeposit-hash",
WalletAddress: "0xYourDepositWallet",
Amount: "500.00",
Currency: "USDC",
OriginatorData: didit.Some(map[string]any{"name": "Origin CASP SL"}),
BeneficiaryData: didit.Some(map[string]any{"name": "Ana Diaz"}),
OriginatingVASP: didit.Some(didit.TravelRuleInboundRequestOriginatingVASP{
Name: didit.String("Origin CASP SL"),
Lei: didit.String(""),
TravelAddress: didit.String("ta9JbXbsBSuS5ozArJRFVgvBHMVnDGUnrPPChSZYQsuZTn3kPrJXUQ7RSLUEJ5KjyPvr8C9sAxmPtZfGsQVKCi4n8ShxP9BkbDdbtjtA9aumNybAZ1BxC"),
}),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import java.util.Map;
import me.didit.Didit;
import me.didit.types.TravelRuleInboundRequest;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.travelRule().registerInbound(TravelRuleInboundRequest.builder()
.chain("ETH")
.txid("0xdeposit-hash")
.walletAddress("0xYourDepositWallet")
.amount("500.00")
.currency("USDC")
.originatorData(Map.of("name", "Origin CASP SL"))
.beneficiaryData(Map.of("name", "Ana Diaz"))
.originatingVasp(TravelRuleInboundRequest.OriginatingVasp.builder()
.name("Origin CASP SL")
.lei("")
.travelAddress("ta9JbXbsBSuS5ozArJRFVgvBHMVnDGUnrPPChSZYQsuZTn3kPrJXUQ7RSLUEJ5KjyPvr8C9sAxmPtZfGsQVKCi4n8ShxP9BkbDdbtjtA9aumNybAZ1BxC")
.build())
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->travelRule->registerInbound([
'chain' => 'ETH',
'txid' => '0xdeposit-hash',
'wallet_address' => '0xYourDepositWallet',
'amount' => '500.00',
'currency' => 'USDC',
'originator_data' => ['name' => 'Origin CASP SL'],
'beneficiary_data' => ['name' => 'Ana Diaz'],
'originating_vasp' => [
'name' => 'Origin CASP SL',
'lei' => '',
'travel_address' => 'ta9JbXbsBSuS5ozArJRFVgvBHMVnDGUnrPPChSZYQsuZTn3kPrJXUQ7RSLUEJ5KjyPvr8C9sAxmPtZfGsQVKCi4n8ShxP9BkbDdbtjtA9aumNybAZ1BxC',
],
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.travel_rule.register_inbound(
chain: "ETH",
txid: "0xdeposit-hash",
wallet_address: "0xYourDepositWallet",
amount: "500.00",
currency: "USDC",
originator_data: { name: "Origin CASP SL" },
beneficiary_data: { name: "Ana Diaz" },
originating_vasp: {
name: "Origin CASP SL",
lei: "",
travel_address: "ta9JbXbsBSuS5ozArJRFVgvBHMVnDGUnrPPChSZYQsuZTn3kPrJXUQ7RSLUEJ5KjyPvr8C9sAxmPtZfGsQVKCi4n8ShxP9BkbDdbtjtA9aumNybAZ1BxC",
}
)
puts result.to_husing System;
using System.Collections.Generic;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.TravelRule.RegisterInboundAsync(new TravelRuleInboundRequest
{
Chain = "ETH",
Txid = "0xdeposit-hash",
WalletAddress = "0xYourDepositWallet",
Amount = "500.00",
Currency = "USDC",
OriginatorData = new Dictionary<string, object> { ["name"] = "Origin CASP SL" },
BeneficiaryData = new Dictionary<string, object> { ["name"] = "Ana Diaz" },
OriginatingVasp = new TravelRuleInboundRequestOriginatingVasp
{
Name = "Origin CASP SL",
Lei = "",
TravelAddress = "ta9JbXbsBSuS5ozArJRFVgvBHMVnDGUnrPPChSZYQsuZTn3kPrJXUQ7RSLUEJ5KjyPvr8C9sAxmPtZfGsQVKCi4n8ShxP9BkbDdbtjtA9aumNybAZ1BxC",
},
});
Console.WriteLine(JsonSerializer.Serialize(result));承認
お客様のアプリケーションのAPIキーです。Business ConsoleのDevelopers -> API keysで取得できます。プライマリキーはフルアクセス権を持ちます。名前付きキーにはスコープを設定できます。リソースごとのアクセス権(なし、読み取り、書き込み)、一部のワークフローまたは承認済みセッションへの限定、IPアドレスのリストへの限定、有効期限の設定です。401は、キーが誤っている、失効している、または期限切れであることを意味します。403は、キーが送信されていない、キーにこのリソースやアクションへのアクセス権がない、またはIPリスト外のアドレスからリクエストが送信されたことを意味します。セッションのルートでの404は、セッションがキーのワークフローまたはステータスの対象外であることを意味します。メディアへのアクセス権がないキーでは、画像、動画、PDFのURLがnullで返されます。セッションの書き込み権限がないキーでは、セッションのリンクとトークンがnullで返されます。詳細は次を参照してください: https://docs.didit.me/console/api-keys
ボディ
入金が決済されたチェーン(例: ETH)。小文字で保存され、ウォレットアドレス帳のエントリーとは大文字・小文字を区別せずに比較されるため、アドレス帳でも同じチェーントークンを使用してください。
32オンチェーン取引のハッシュ。wallet_addressと組み合わせて重複排除されます。
128入金を受け取った送金先のウォレットです。XRPのXアドレスはクラシックアドレスとタグに分割されます。
128入金額。0以上、小数点以下最大18桁の10進数文字列です。
入金アセット(例: "USDC")。
16送信側VASPから提供された送金人の詳細(判明している場合)で、{"name": "..."}のようなフラットなオブジェクトです。Diditはここからname(またはfull_name)、first_name、last_name、vendor_dataを読み取ります。
受取人(お客様の顧客)の詳細で、{"name": "..."}のようなフラットなオブジェクトです。Diditはnameを、一致したアドレス帳エントリのholder_nameと照合し、wallet_addressとchainはリクエストの値から設定します。
送信元VASPの任意の説明です。この送金にのみ保持され(metadata.originating_vasp、およびGET /v3/travel-rule/transfers/における送金の送金人VASP)、共有VASPディレクトリのエントリを作成、編集、リンクすることは決してありません。
Show child attributes
Show child attributes
任意。メモ型ネットワークにおける入金の宛先タグまたはメモです。共有の入金アドレスでは顧客を区別するためのもので、そのメモに対応するアドレス帳のエントリーが照合されます。XRP:宛先タグ。0から4294967295までの整数です(JSONの数値も受け付けます)。XLM:最大28バイトのテキストメモ、64ビットのID、または16進数で表した32バイトのハッシュ。EOS:最大256バイト。ATOM:最大256文字。HBAR:最大100バイト。Bitcoin、EVM、Solana、Tron、Litecoin、Bitcoin Cash、Dogecoin、Lightningのウォレットはメモを受け付けません。これらで指定すると400になります。エイリアス:destinationTagまたはdestination_tag。
256任意。UTXOチェーンのみ。入金取引の入力と出力です。送信者のウォレットは宣言されたoriginator_data.wallet_address、宣言がない場合は最大の入力となります。
Show child attributes
Show child attributes
レスポンス
このtxidとwallet_addressの送金はすでに登録されています。既存の送金が変更されずに返されます(createdはfalse)。
受信した入金のDidit取引UUIDです。
受信取引のtxn_id。Diditが取引を作成した場合はDiditが生成した値、未請求の入金が再利用された場合はお客様自身の値です。
この呼び出しで送金が登録された場合はtrue(HTTP 201)、同じtxidとwallet_addressの送金がすでに存在していた場合はfalse(HTTP 200)です。
所有権確認エンドポイントおよび完了/キャンセルエンドポイントから返される完全な送金オブジェクト。受信送金のウォレット所有権が未確認の間、取引相手のoriginator_dataとbeneficiary_dataはマスクされた状態で返され(各単語の最初の文字のみが残り、ウォレット、チェーン、VASPのルーティング情報は判読可能なままです)、data_maskedはtrueになります。
Show child attributes
Show child attributes