curl --request GET \
--url https://public-test.blips.network/transactions/{transactionId} \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://public-test.blips.network/transactions/{transactionId}"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://public-test.blips.network/transactions/{transactionId}', 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://public-test.blips.network/transactions/{transactionId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>"
],
]);
$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://public-test.blips.network/transactions/{transactionId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://public-test.blips.network/transactions/{transactionId}")
.header("Authorization", "Basic <encoded-value>")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-test.blips.network/transactions/{transactionId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Basic <encoded-value>'
response = http.request(request)
puts response.read_body{
"transactionId": "Transaction:019542f5-b3e7-1d02-0000-000000000016",
"quoteId": "Quote:quote_123",
"type": "OUTGOING",
"status": "COMPLETED",
"customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
"platformCustomerId": "dbs_cust_4Er9nYwL2mQ8kR7XcT1pZa",
"createdAt": "2026-04-05T12:00:00Z",
"updatedAt": "2026-04-05T12:03:00Z",
"settledAt": "2026-04-05T12:03:00Z",
"source": {
"accountId": "InternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d123",
"sourceType": "INTERNAL_ACCOUNT"
},
"destination": {
"accountId": "alice@dbs.blips.network",
"destinationType": "PPV_ADDRESS"
},
"sentAmount": {
"currencyCode": "USD",
"amountMinor": "10000"
},
"exchangeRate": "54.23000000",
"fees": {
"currencyCode": "USD",
"amountMinor": "180"
}
}Get transaction by ID
Read one direction-aware public transaction detail by transactionId. This canonical public detail route returns either the Outgoing Transaction or Incoming Transaction variant. For Step 4 incoming review cases, the incoming variant may additionally expose reviewReason, decisionMode, recommendedAction, missingRequiredFields, actionAvailabilityHints, and the bounded scenario detail fields thresholdPolicyNote, sanctionsMatchSummary, or senderComplianceSummary.
curl --request GET \
--url https://public-test.blips.network/transactions/{transactionId} \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://public-test.blips.network/transactions/{transactionId}"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://public-test.blips.network/transactions/{transactionId}', 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://public-test.blips.network/transactions/{transactionId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>"
],
]);
$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://public-test.blips.network/transactions/{transactionId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://public-test.blips.network/transactions/{transactionId}")
.header("Authorization", "Basic <encoded-value>")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-test.blips.network/transactions/{transactionId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Basic <encoded-value>'
response = http.request(request)
puts response.read_body{
"transactionId": "Transaction:019542f5-b3e7-1d02-0000-000000000016",
"quoteId": "Quote:quote_123",
"type": "OUTGOING",
"status": "COMPLETED",
"customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
"platformCustomerId": "dbs_cust_4Er9nYwL2mQ8kR7XcT1pZa",
"createdAt": "2026-04-05T12:00:00Z",
"updatedAt": "2026-04-05T12:03:00Z",
"settledAt": "2026-04-05T12:03:00Z",
"source": {
"accountId": "InternalAccount:a12dcbd6-dced-4ec4-b756-3c3a9ea3d123",
"sourceType": "INTERNAL_ACCOUNT"
},
"destination": {
"accountId": "alice@dbs.blips.network",
"destinationType": "PPV_ADDRESS"
},
"sentAmount": {
"currencyCode": "USD",
"amountMinor": "10000"
},
"exchangeRate": "54.23000000",
"fees": {
"currencyCode": "USD",
"amountMinor": "180"
}
}Authorizations
Integration-key Basic Auth (clientId:clientSecret) as documented in docs/public/AUTHENTICATION.md.
Path Parameters
Canonical public transaction identifier for this transaction detail route.
Response
Transaction detail returned. The 200 response is direction-aware and may be the Outgoing Transaction or Incoming Transaction variant.
- Option 1
- Option 2
Direction-aware public transaction detail response. The 200 response is either the Outgoing Transaction or Incoming Transaction variant.
Canonical transaction identifier in Transaction:<uuid> format for this transaction detail response.
Quote identifier associated with the transaction when available.
Direction of this transaction.
OUTGOING Current transaction lifecycle status.
CREATED, PENDING, PROCESSING, COMPLETED, REJECTED, FAILED, REFUNDED, EXPIRED BLIPS customer identifier in Customer:<uuid> format associated with this transaction when available.
Platform-side customer mapping identifier in <platformslug>_cust_<base58uuid> format associated with this transaction when available.
Transaction creation timestamp.
Last update timestamp.
Settlement timestamp when the transaction has reached a settled terminal state.
Bounded source account detail for the outgoing transaction.
Show child attributes
Show child attributes
Bounded destination detail for the outgoing transaction.
Show child attributes
Show child attributes
Main sent amount for the outgoing transaction.
Show child attributes
Show child attributes
Applied exchange rate when available.
Total fees charged for the transaction when available.
Show child attributes
Show child attributes