curl --request GET \
--url https://api.next.orenda.finance/v1/batch-payments \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.next.orenda.finance/v1/batch-payments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.next.orenda.finance/v1/batch-payments"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"success": true,
"data": {
"paymentsBatches": [
{
"id": "batch-123",
"customerId": "customer-123",
"programId": "program-123",
"sandbox": false,
"paymentsCount": 3,
"createdDateTime": "2026-06-16T10:00:00.000Z",
"customerName": "Jane Doe",
"itemsStatus": {
"completed": 1,
"pending": 1,
"processing": 1,
"failed": 0
},
"totalAmount": "1250.50"
}
],
"nextToken": "eyJpZCI6ImJhdGNoLTEyMyJ9"
}
}{
"success": false,
"code": "VALIDATION_ERROR",
"message": "limit must be a positive integer"
}{
"message": "Unauthorized"
}List batches
Lists the caller’s batches, most recent first, paginated. Add date=YYYY-MM-DD to narrow to batches created on one UTC calendar day; where it applies it takes precedence over lookbackDays.
Item summary. Add includeItemSummary=true (the exact string true) and each batch carries itemsStatus (its completed, pending, processing, and failed counts) and totalAmount, the sum of its item amounts. That’s enough to show progress for a page of batches without opening each one. It’s opt-in because each summarised batch costs one extra query, so ask for it on the page sizes you display rather than on a large limit you only want ids from. Open to every role. Name enrichment (customerName, custodianName) is separate and management only.
Drafts. drafts=true lists batches verified but not yet paid, newest first, with the same pagination; a draft never appears in the default list. Each carries id (the batchId to submit with), status (DRAFT, or EXPIRED once expiresAt has passed; derived at read time, never stored, so a lapsed draft stays visible as a record that a batch was prepared and never sent), paymentsCount, expiresAt, and createdDateTime. A draft appears as soon as verification is requested, not when it finishes. Drafts have no item rows, so itemsStatus and totalAmount are absent even with includeItemSummary=true; paymentsCount is what a draft has instead. You only ever see your own drafts, including one a back-office operator prepared for you.
curl --request GET \
--url https://api.next.orenda.finance/v1/batch-payments \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.next.orenda.finance/v1/batch-payments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.next.orenda.finance/v1/batch-payments"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"success": true,
"data": {
"paymentsBatches": [
{
"id": "batch-123",
"customerId": "customer-123",
"programId": "program-123",
"sandbox": false,
"paymentsCount": 3,
"createdDateTime": "2026-06-16T10:00:00.000Z",
"customerName": "Jane Doe",
"itemsStatus": {
"completed": 1,
"pending": 1,
"processing": 1,
"failed": 0
},
"totalAmount": "1250.50"
}
],
"nextToken": "eyJpZCI6ImJhdGNoLTEyMyJ9"
}
}{
"success": false,
"code": "VALIDATION_ERROR",
"message": "limit must be a positive integer"
}{
"message": "Unauthorized"
}Authorizations
The caller's access_token from authentication. Management API callers send the id_token. The program and environment come from the token.
Query Parameters
Required on the Management API, where the token carries no program: omitting it returns 400. Customer API callers resolve the program from their token and should omit it; a value sent there is ignored.
Maximum number of batches to return. Values above 200 are clamped to 200: the response is capped, not rejected. Invalid values include 0, negative numbers, non-integer strings, and mixed strings such as 10abc.
1 <= x <= 200Pagination token returned by a previous response.
Lookback window for Management API listings, used only when date is not provided. A supplied value is still validated even when date takes precedence, so an invalid one is rejected either way. Invalid values include 0, negative numbers, non-integer strings, and mixed strings such as 10abc.
x >= 1UTC calendar date filter applied to each batch's createdDateTime. Available on the Customer API and the Management API alike. Use YYYY-MM-DD exactly: empty strings, 2026/06/30, 2026-2-3 and impossible dates such as 2026-02-30 are all rejected. Where it applies, it takes precedence over lookbackDays.
^\d{4}-\d{2}-\d{2}$"2026-06-30"
Set to true to list batches awaiting submission instead of submitted ones. Omit it and the response is unchanged. Drafts are held in separate indexes, so this selects a different query rather than filtering the normal one: a draft never appears in the default listing. Only the exact string true enables it.
true Set to true to include the per-batch item summary: itemsStatus (counts by item status) and totalAmount (the sum of item amounts). Omit it and both fields are absent. Available to every role, including customer callers. Only the exact string true enables it. Has no effect with drafts=true, which has no item rows to summarise.
true