Search receipts
curl --request POST \
--url https://api.truthlocks.com/v1/receipts/search \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"subject": "<string>",
"receipt_type": "<string>",
"status": "<string>",
"from": "<string>",
"to": "<string>",
"limit": 20
}
'import requests
url = "https://api.truthlocks.com/v1/receipts/search"
payload = {
"subject": "<string>",
"receipt_type": "<string>",
"status": "<string>",
"from": "<string>",
"to": "<string>",
"limit": 20
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
subject: '<string>',
receipt_type: '<string>',
status: '<string>',
from: '<string>',
to: '<string>',
limit: 20
})
};
fetch('https://api.truthlocks.com/v1/receipts/search', 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://api.truthlocks.com/v1/receipts/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'subject' => '<string>',
'receipt_type' => '<string>',
'status' => '<string>',
'from' => '<string>',
'to' => '<string>',
'limit' => 20
]),
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://api.truthlocks.com/v1/receipts/search"
payload := strings.NewReader("{\n \"subject\": \"<string>\",\n \"receipt_type\": \"<string>\",\n \"status\": \"<string>\",\n \"from\": \"<string>\",\n \"to\": \"<string>\",\n \"limit\": 20\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.truthlocks.com/v1/receipts/search")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"subject\": \"<string>\",\n \"receipt_type\": \"<string>\",\n \"status\": \"<string>\",\n \"from\": \"<string>\",\n \"to\": \"<string>\",\n \"limit\": 20\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.truthlocks.com/v1/receipts/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"subject\": \"<string>\",\n \"receipt_type\": \"<string>\",\n \"status\": \"<string>\",\n \"from\": \"<string>\",\n \"to\": \"<string>\",\n \"limit\": 20\n}"
response = http.request(request)
puts response.read_body{
"items": [
{}
],
"total": 123
}{
"code": "AUTH_REQUIRED",
"message": "Authentication required",
"http_status": 401
}Receipts
Search Receipts
Search receipts using full-text search and faceted filters.
POST
/
v1
/
receipts
/
search
Search receipts
curl --request POST \
--url https://api.truthlocks.com/v1/receipts/search \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"subject": "<string>",
"receipt_type": "<string>",
"status": "<string>",
"from": "<string>",
"to": "<string>",
"limit": 20
}
'import requests
url = "https://api.truthlocks.com/v1/receipts/search"
payload = {
"subject": "<string>",
"receipt_type": "<string>",
"status": "<string>",
"from": "<string>",
"to": "<string>",
"limit": 20
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
subject: '<string>',
receipt_type: '<string>',
status: '<string>',
from: '<string>',
to: '<string>',
limit: 20
})
};
fetch('https://api.truthlocks.com/v1/receipts/search', 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://api.truthlocks.com/v1/receipts/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'subject' => '<string>',
'receipt_type' => '<string>',
'status' => '<string>',
'from' => '<string>',
'to' => '<string>',
'limit' => 20
]),
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://api.truthlocks.com/v1/receipts/search"
payload := strings.NewReader("{\n \"subject\": \"<string>\",\n \"receipt_type\": \"<string>\",\n \"status\": \"<string>\",\n \"from\": \"<string>\",\n \"to\": \"<string>\",\n \"limit\": 20\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.truthlocks.com/v1/receipts/search")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"subject\": \"<string>\",\n \"receipt_type\": \"<string>\",\n \"status\": \"<string>\",\n \"from\": \"<string>\",\n \"to\": \"<string>\",\n \"limit\": 20\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.truthlocks.com/v1/receipts/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"subject\": \"<string>\",\n \"receipt_type\": \"<string>\",\n \"status\": \"<string>\",\n \"from\": \"<string>\",\n \"to\": \"<string>\",\n \"limit\": 20\n}"
response = http.request(request)
puts response.read_body{
"items": [
{}
],
"total": 123
}{
"code": "AUTH_REQUIRED",
"message": "Authentication required",
"http_status": 401
}Search receipts using full-text search and faceted filters. Combine a text query with structured filters to narrow results.
Request
string
Full-text search across payload content.
string
Filter by receipt type name (e.g.
payment_receipt).string
Filter by status:
active, revoked, superseded, or redacted.string
Filter by issuer UUID.
string
Start of date range (RFC 3339).
string
End of date range (RFC 3339).
string
Search by indexed payload field name.
string
Value to match for
index_key.integer
Max results per page (1–100, default 20).
integer
Pagination offset (default 0).
Response
array
Array of matching receipt objects.
integer
Total number of matching receipts.
integer
Page size used.
integer
Current offset.
⌘I

