curl --request GET \
--url https://api.paywithlocus.com/api/credits/ledger \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.paywithlocus.com/api/credits/ledger"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.paywithlocus.com/api/credits/ledger', 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.paywithlocus.com/api/credits/ledger",
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: Bearer <token>"
],
]);
$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://api.paywithlocus.com/api/credits/ledger"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.paywithlocus.com/api/credits/ledger")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.paywithlocus.com/api/credits/ledger")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"entries": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"direction": "DEBIT",
"category": "<string>",
"amountUsdc": "<string>",
"amountCredits": "<string>",
"balanceAfterUsdc": "<string>",
"baseUsdc": "<string>",
"marginUsdc": "<string>",
"markupBps": 123,
"sourceKey": "<string>",
"externalReference": "<string>",
"externalUserId": "<string>",
"metadata": "<unknown>",
"createdAt": "2023-11-07T05:31:56Z"
}
],
"nextCursor": "<string>",
"appliedFilters": [
"account"
]
}Tenant-wide ledger
curl --request GET \
--url https://api.paywithlocus.com/api/credits/ledger \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.paywithlocus.com/api/credits/ledger"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.paywithlocus.com/api/credits/ledger', 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.paywithlocus.com/api/credits/ledger",
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: Bearer <token>"
],
]);
$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://api.paywithlocus.com/api/credits/ledger"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.paywithlocus.com/api/credits/ledger")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.paywithlocus.com/api/credits/ledger")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"success": true,
"entries": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"direction": "DEBIT",
"category": "<string>",
"amountUsdc": "<string>",
"amountCredits": "<string>",
"balanceAfterUsdc": "<string>",
"baseUsdc": "<string>",
"marginUsdc": "<string>",
"markupBps": 123,
"sourceKey": "<string>",
"externalReference": "<string>",
"externalUserId": "<string>",
"metadata": "<unknown>",
"createdAt": "2023-11-07T05:31:56Z"
}
],
"nextCursor": "<string>",
"appliedFilters": [
"account"
]
}Authorizations
Locus Pro dashboard session (Cognito).
Query Parameters
TOPUP, BURN, REFUND, CLAWBACK, FEE, ADJUSTMENT, ALLOCATION, PROMO Case-sensitive immutable ID in the tenant namespace. Prefer an identity-provider subject, not an email address.
1 - 200^[A-Za-z0-9][A-Za-z0-9._:@/-]{0,199}$Spender reference :, matching the analytics initiator identity. Cannot be combined with externalUserId or account=platform; unattributed is not filterable.
Matches the provider recorded on the ledger entry. Legacy entries without provider metadata are excluded from this filtered ledger view.
metadata.endpoint equality. Requires provider.
Inclusive lower bound. Strict ISO-8601.
Exclusive upper bound. Strict ISO-8601.
Equality filter on metadata.attribution., one query parameter per key: attribution.entityId=acct_889. Dot form only — bracket form is not parsed.
Narrow to one ledger event kind, e.g. wapi_burn or stripe_topup.
Restrict to the tenant's pooled platform account. Mutually exclusive with externalUserId and with an end-user initiator.
platform 1 <= x <= 200Response
Ledger page
Show child attributes
Show child attributes
Names of the narrowing query filters this server applied. An empty array means the request did not include a narrowing filter.
account, attribution, category, createdAfter, createdBefore, endpoint, externalUserId, initiator, provider, sourceKey