curl -X DELETE 'https://verification.didit.me/v3/organization/11111111-2222-3333-4444-555555555555/application/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/transactions/delete/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"transaction_uuids": ["abcdef12-3456-7890-abcd-ef1234567890"]}'import requests
url = "https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/transactions/delete/"
payload = { "transaction_uuids": ["abcdef12-3456-7890-abcd-ef1234567890", "12345678-90ab-cdef-1234-567890abcdef"] }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.delete(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'DELETE',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
transaction_uuids: ['abcdef12-3456-7890-abcd-ef1234567890', '12345678-90ab-cdef-1234-567890abcdef']
})
};
fetch('https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/transactions/delete/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/transactions/delete/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_POSTFIELDS => json_encode([
'transaction_uuids' => [
'abcdef12-3456-7890-abcd-ef1234567890',
'12345678-90ab-cdef-1234-567890abcdef'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/transactions/delete/"
payload := strings.NewReader("{\n \"transaction_uuids\": [\n \"abcdef12-3456-7890-abcd-ef1234567890\",\n \"12345678-90ab-cdef-1234-567890abcdef\"\n ]\n}")
req, _ := http.NewRequest("DELETE", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/transactions/delete/")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"transaction_uuids\": [\n \"abcdef12-3456-7890-abcd-ef1234567890\",\n \"12345678-90ab-cdef-1234-567890abcdef\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/transactions/delete/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"transaction_uuids\": [\n \"abcdef12-3456-7890-abcd-ef1234567890\",\n \"12345678-90ab-cdef-1234-567890abcdef\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"transaction_uuids": [
"This field is required unless delete_all is true."
]
}{
"detail": "<string>"
}{
"detail": "<string>",
"code": "in_filed_report",
"reports": [
{
"uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"report_number": "<string>",
"report_type": "SAR",
"case_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"transactions": [
{
"uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"transaction_id": "<string>",
"reports": [
{
"uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"report_number": "<string>",
"report_type": "SAR",
"case_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
]
}
]
}Batch Delete Transactions
Delete monitored transactions permanently by UUID or clear every transaction in the application. A finalized report blocks the deletion.
curl -X DELETE 'https://verification.didit.me/v3/organization/11111111-2222-3333-4444-555555555555/application/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/transactions/delete/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"transaction_uuids": ["abcdef12-3456-7890-abcd-ef1234567890"]}'import requests
url = "https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/transactions/delete/"
payload = { "transaction_uuids": ["abcdef12-3456-7890-abcd-ef1234567890", "12345678-90ab-cdef-1234-567890abcdef"] }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.delete(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'DELETE',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
transaction_uuids: ['abcdef12-3456-7890-abcd-ef1234567890', '12345678-90ab-cdef-1234-567890abcdef']
})
};
fetch('https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/transactions/delete/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/transactions/delete/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_POSTFIELDS => json_encode([
'transaction_uuids' => [
'abcdef12-3456-7890-abcd-ef1234567890',
'12345678-90ab-cdef-1234-567890abcdef'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/transactions/delete/"
payload := strings.NewReader("{\n \"transaction_uuids\": [\n \"abcdef12-3456-7890-abcd-ef1234567890\",\n \"12345678-90ab-cdef-1234-567890abcdef\"\n ]\n}")
req, _ := http.NewRequest("DELETE", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/transactions/delete/")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"transaction_uuids\": [\n \"abcdef12-3456-7890-abcd-ef1234567890\",\n \"12345678-90ab-cdef-1234-567890abcdef\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/transactions/delete/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"transaction_uuids\": [\n \"abcdef12-3456-7890-abcd-ef1234567890\",\n \"12345678-90ab-cdef-1234-567890abcdef\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"transaction_uuids": [
"This field is required unless delete_all is true."
]
}{
"detail": "<string>"
}{
"detail": "<string>",
"code": "in_filed_report",
"reports": [
{
"uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"report_number": "<string>",
"report_type": "SAR",
"case_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"transactions": [
{
"uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"transaction_id": "<string>",
"reports": [
{
"uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"report_number": "<string>",
"report_type": "SAR",
"case_uuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
]
}
]
}What is deleted
A deleted transaction goes with the records that are only its own: its parties, tags, notes, payment method links, documents and every stored version of their files, rule runs, alerts, provider results, network snapshot and Travel Rule data. Cases, people and companies stay; their link to the deleted transaction is cleared. Draft regulatory reports stop listing the deleted transaction and are rebuilt without it. Deletion is permanent and irreversible.Select what to delete
Send exactly one selector:| Field | Type | Description |
|---|---|---|
transaction_uuids | UUID[] | Didit transaction UUIDs to delete. Required unless delete_all is true. |
delete_all | boolean | Delete every transaction in the application. transaction_uuids is ignored. |
delete_all: true deletes every transaction in the application. There is no confirmation step and no undo.Blocked by a finalized report
If any selected transaction is listed in a finalized regulatory report, the whole request returns409 and nothing is deleted:
{
"detail": "Transactions included in a filed regulatory report cannot be deleted.",
"code": "in_filed_report",
"transactions": [
{
"uuid": "abcdef12-3456-7890-abcd-ef1234567890",
"transaction_id": "your-txn-2026-05-17-001",
"reports": [
{
"uuid": "5ec00000-0000-4000-8000-000000000007",
"report_number": "SAR-0001",
"report_type": "SAR",
"case_uuid": "c1a5e000-0000-4000-8000-000000000001"
}
]
}
]
}
Related
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
Organization UUID.
Application UUID.
Body
- Selected transactions
- All transactions
Response
Selected transactions deleted.