curl -X GET 'https://verification.didit.me/v3/transactions/abcdef12-3456-7890-abcd-ef1234567890/related/?limit=50' \
-H 'x-api-key: YOUR_API_KEY'import os
import requests
transaction_id = 'abcdef12-3456-7890-abcd-ef1234567890'
resp = requests.get(
f'https://verification.didit.me/v3/transactions/{transaction_id}/related/',
headers={'x-api-key': os.environ['DIDIT_API_KEY']},
params={'limit': 50},
timeout=10,
)
resp.raise_for_status()
for tx in resp.json()['results']:
print(tx['uuid'], tx['txn_date'], tx['status'], tx['amount'], tx['currency'])const transactionId = 'abcdef12-3456-7890-abcd-ef1234567890';
const resp = await fetch(
`https://verification.didit.me/v3/transactions/${transactionId}/related/?limit=50`,
{ headers: { 'x-api-key': process.env.DIDIT_API_KEY } },
);
if (!resp.ok) throw new Error(`Related lookup failed: ${resp.status}`);
const page = await resp.json();
for (const tx of page.results) console.log(tx.uuid, tx.status, tx.amount, tx.currency);<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://verification.didit.me/v3/transactions/{transaction_id}/related/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://verification.didit.me/v3/transactions/{transaction_id}/related/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://verification.didit.me/v3/transactions/{transaction_id}/related/")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://verification.didit.me/v3/transactions/{transaction_id}/related/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"uuid": "abcdef99-3456-4890-abcd-ef1234567890",
"transaction_number": 4087,
"txn_id": "your-txn-2026-10-02-017",
"transaction_type": "finance",
"action_type": "deposit",
"status": "APPROVED",
"source": "LIVE",
"direction": "INBOUND",
"amount": "250",
"currency": "EUR",
"currency_type": "fiat",
"preferred_currency_amount": "270.08",
"preferred_currency_code": "USD",
"payment_details": "Card top-up",
"txn_date": "2026-10-02T14:10:00Z",
"created_at": "2026-10-02T14:10:03.512244Z",
"score": 12,
"severity": "LOW",
"decision_reason_code": null,
"decision_reason_label": null,
"tags": [],
"subject_name": "Maria Garcia",
"subject_vendor_data": "user-12345",
"subject_type": "user",
"subject_uuid": "e1111111-2222-4333-8444-555555555555",
"counterparty_name": null,
"counterparty_vendor_data": null,
"counterparty_country": null,
"subject_country": "ESP",
"assigned_to_name": null,
"travel_rule_status": null,
"application_id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"application_name": "Production app",
"organization_id": "11111111-2222-3333-4444-555555555555",
"organization_name": "Example Org"
}
]
}List Related Transactions
List the other transactions in your application that share a party vendor_data with a monitored transaction, newest first and paginated.
curl -X GET 'https://verification.didit.me/v3/transactions/abcdef12-3456-7890-abcd-ef1234567890/related/?limit=50' \
-H 'x-api-key: YOUR_API_KEY'import os
import requests
transaction_id = 'abcdef12-3456-7890-abcd-ef1234567890'
resp = requests.get(
f'https://verification.didit.me/v3/transactions/{transaction_id}/related/',
headers={'x-api-key': os.environ['DIDIT_API_KEY']},
params={'limit': 50},
timeout=10,
)
resp.raise_for_status()
for tx in resp.json()['results']:
print(tx['uuid'], tx['txn_date'], tx['status'], tx['amount'], tx['currency'])const transactionId = 'abcdef12-3456-7890-abcd-ef1234567890';
const resp = await fetch(
`https://verification.didit.me/v3/transactions/${transactionId}/related/?limit=50`,
{ headers: { 'x-api-key': process.env.DIDIT_API_KEY } },
);
if (!resp.ok) throw new Error(`Related lookup failed: ${resp.status}`);
const page = await resp.json();
for (const tx of page.results) console.log(tx.uuid, tx.status, tx.amount, tx.currency);<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://verification.didit.me/v3/transactions/{transaction_id}/related/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://verification.didit.me/v3/transactions/{transaction_id}/related/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://verification.didit.me/v3/transactions/{transaction_id}/related/")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://verification.didit.me/v3/transactions/{transaction_id}/related/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"uuid": "abcdef99-3456-4890-abcd-ef1234567890",
"transaction_number": 4087,
"txn_id": "your-txn-2026-10-02-017",
"transaction_type": "finance",
"action_type": "deposit",
"status": "APPROVED",
"source": "LIVE",
"direction": "INBOUND",
"amount": "250",
"currency": "EUR",
"currency_type": "fiat",
"preferred_currency_amount": "270.08",
"preferred_currency_code": "USD",
"payment_details": "Card top-up",
"txn_date": "2026-10-02T14:10:00Z",
"created_at": "2026-10-02T14:10:03.512244Z",
"score": 12,
"severity": "LOW",
"decision_reason_code": null,
"decision_reason_label": null,
"tags": [],
"subject_name": "Maria Garcia",
"subject_vendor_data": "user-12345",
"subject_type": "user",
"subject_uuid": "e1111111-2222-4333-8444-555555555555",
"counterparty_name": null,
"counterparty_vendor_data": null,
"counterparty_country": null,
"subject_country": "ESP",
"assigned_to_name": null,
"travel_rule_status": null,
"application_id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"application_name": "Production app",
"organization_id": "11111111-2222-3333-4444-555555555555",
"organization_name": "Example Org"
}
]
}vendor_data you send on each party when you submit a transaction. Send the same vendor_data for the same person or company every time, and this endpoint returns their full history around any one transaction: the same list reviewers see under Related transactions on the transaction detail in the Console.
Each result has the same summary shape as List transactions. Call Get transaction with a result’s uuid for its parties, alerts and rule runs.Authorizations
Your application's API key, from Developers -> API keys in the Business Console. The primary key has full access. A named key can be scoped: none, read or write per resource, limited to some workflows or to approved sessions, to a list of IP addresses, and to an expiry date. 401 means the key is missing, wrong, revoked or expired; 403 means the key has no access to this resource or action, or the request came from an address outside its IP list; 404 on a session route means the session is outside the key's workflows or statuses. A key without media access receives image, video and PDF URLs as null, and a key without sessions write receives session links and tokens as null. See https://docs.didit.me/console/api-keys.
Path Parameters
Didit transaction UUID: the uuid returned by POST /v3/transactions/ and GET /v3/transactions/. Your own txn_id is not accepted.
Query Parameters
Number of transactions per page. Defaults to 50. A value that is not a positive integer falls back to 50; a value above 1000000 returns 400.
1 <= x <= 1000000Zero-based position of the first transaction to return. Prefer following next. A value that is not a whole number falls back to 0; a value above 1000000 returns 400.
0 <= x <= 1000000Response
A page of related transactions, newest first.
Number of related transactions: exact up to 100, capped at 100 above that. Follow next instead of computing pages from it.
Absolute URL of the next page, or null on the last page.
Absolute URL of the previous page, or null on the first page.
Show child attributes
Show child attributes