Your payouts to your bank, and the balance behind them, for reconciling deposits and forecasting cash. These endpoints only read: payouts are made from Payouts in the dashboard by owners and admins, and no API key or AI assistant can move money out of your balance. The list's nextCursor is opaque: pass it back exactly as it came. For every payout option and speed, see Payout options.
| Topic | Detail |
|---|---|
| Endpoints | `GET /api/v1/payouts`, `GET /api/v1/payouts/{id}`, `GET /api/v1/balance` |
| Key permissions | payouts:read |
| Samples | curl; Node.js 18+ with the built-in fetch (in an ES module); the Node SDK (preview: not on npm yet); Python with requests. |
| Every request can also answer | 401 UNAUTHORIZED, 401 API_KEY_EXPIRED, 403 NOT_ENROLLED, 403 PERMISSION_DENIED, 403 IP_NOT_ALLOWED, 429 RATE_LIMITED, 500 INTERNAL_ERROR. See Error codes. |
The payout object
{
"object": "payout",
"livemode": true,
"id": "wdrl_5Tz8QwN2xYb6RcD1",
"status": "completed",
"amountCents": 482500,
"netCents": 482500,
"currency": "usd",
"method": "Chase checking",
"speed": "standard",
"automatic": true,
"estimatedArrival": "2026-10-22T16:00:00.000Z",
"traceCode": "021000021234567",
"failureMessage": null,
"createdAt": "2026-10-20T16:00:00.000Z"
}| Field | Type | Description |
|---|---|---|
object | string | The type of object. Always payout. |
livemode | boolean | False for test-mode data (an ak_test_ key); true for live data. |
id | string | wdrl_… |
status | string | requested, in_review, processing, completed, reversed, canceled, failed, denied, unknown. completed means it was sent; reversed that it came back. |
amountCents | integer or null | Taken from the balance. Integer cents. |
netCents | integer or null | What reaches the bank. Integer cents. |
currency | string | usd. |
method | string or null | Where it went, e.g. “Chase checking”. |
speed | string or null | One of standard, instant. |
automatic | boolean or null | Sent on the automatic schedule. |
estimatedArrival | string (date-time) or null | Expected at the bank. |
traceCode | string or null | The trace number your bank can find the deposit by. Match it, with netCents, against your bank feed. |
failureMessage | string or null | Why it failed or came back. |
createdAt | string (date-time) | Created. |
The balance object
{
"object": "balance",
"livemode": true,
"currency": "usd",
"availableCents": 128400,
"pendingCents": 54200,
"reserveCents": 0
}| Field | Type | Description |
|---|---|---|
object | string | The type of object. Always balance. |
livemode | boolean | False for test-mode data (an ak_test_ key); true for live data. |
currency | string | usd. |
availableCents | integer | Ready to pay out. Integer cents. |
pendingCents | integer | Not settled yet. Integer cents. |
reserveCents | integer | Held in reserve. Integer cents. |
Endpoints
List payouts
/api/v1/payoutspayouts:readPayouts to the business's bank, newest first. The cursor is opaque.
Query
limitinteger- How many objects per page, 1–100. Default 25. See Pagination.
cursorstring- The previous page's
nextCursor, for the page after it.
curl "https://anytime-capital.com/api/v1/payouts?limit=10" \
-H "Authorization: Bearer $ANYTIME_API_KEY"const res = await fetch("https://anytime-capital.com/api/v1/payouts?limit=10", {
headers: { Authorization: `Bearer ${process.env.ANYTIME_API_KEY}` },
});
const page = await res.json();
if (!res.ok) throw new Error(`${page.error.code}: ${page.error.message}`);import { AnytimeCapital } from "@anytimecapital/node";
const client = new AnytimeCapital({ apiKey: process.env.ANYTIME_API_KEY! });
const page = await client.payouts.list({ limit: 10 });import os
import requests
res = requests.get(
"https://anytime-capital.com/api/v1/payouts",
headers={"Authorization": f"Bearer {os.environ['ANYTIME_API_KEY']}"},
params={"limit": "10"},
timeout=30,
)
page = res.json()
if not res.ok:
raise RuntimeError(f"{page['error']['code']}: {page['error']['message']}"){
"object": "list",
"data": [
{
"object": "payout",
"livemode": true,
"id": "wdrl_5Tz8QwN2xYb6RcD1",
"status": "completed",
"amountCents": 482500,
"netCents": 482500,
"currency": "usd",
"method": "Chase checking",
"speed": "standard",
"automatic": true,
"estimatedArrival": "2026-10-22T16:00:00.000Z",
"traceCode": "021000021234567",
"failureMessage": null,
"createdAt": "2026-10-20T16:00:00.000Z"
}
],
"hasMore": false,
"nextCursor": null
}Errors
- 400
INVALID_INPUT - A field, filter,
limitorcursoris missing or invalid. The message starts with the field's name, as inamountCents: …, or readsInvalid cursor.Fix the named field. Don't retry the same request unchanged. - 502
PROCESSOR_ERROR - The payments network didn't answer in time. Retry with the same
Idempotency-Key. A refund is keyed at the network by that key too, so a retry never refunds twice. - 503
NOT_CONFIGURED - The part of Anytime Capital Payments this needs isn't available right now. Retry later, with the same
Idempotency-Keyon a write.
Get a payout
/api/v1/payouts/{id}payouts:readOne payout.
Path
idstringrequiredwdrl_…
curl https://anytime-capital.com/api/v1/payouts/wdrl_5Tz8QwN2xYb6RcD1 \
-H "Authorization: Bearer $ANYTIME_API_KEY"const res = await fetch("https://anytime-capital.com/api/v1/payouts/wdrl_5Tz8QwN2xYb6RcD1", {
headers: { Authorization: `Bearer ${process.env.ANYTIME_API_KEY}` },
});
const payout = await res.json();
if (!res.ok) throw new Error(`${payout.error.code}: ${payout.error.message}`);import { AnytimeCapital } from "@anytimecapital/node";
const client = new AnytimeCapital({ apiKey: process.env.ANYTIME_API_KEY! });
const payout = await client.payouts.retrieve("wdrl_5Tz8QwN2xYb6RcD1");import os
import requests
res = requests.get(
"https://anytime-capital.com/api/v1/payouts/wdrl_5Tz8QwN2xYb6RcD1",
headers={"Authorization": f"Bearer {os.environ['ANYTIME_API_KEY']}"},
timeout=30,
)
payout = res.json()
if not res.ok:
raise RuntimeError(f"{payout['error']['code']}: {payout['error']['message']}"){
"object": "payout",
"livemode": true,
"id": "wdrl_5Tz8QwN2xYb6RcD1",
"status": "completed",
"amountCents": 482500,
"netCents": 482500,
"currency": "usd",
"method": "Chase checking",
"speed": "standard",
"automatic": true,
"estimatedArrival": "2026-10-22T16:00:00.000Z",
"traceCode": "021000021234567",
"failureMessage": null,
"createdAt": "2026-10-20T16:00:00.000Z"
}Errors
- 404
NOT_FOUND - No such object on your business (an id from another business reads the same), or no such endpoint under
/api/v1, which still answers in JSON. Check the id and the path. Ids are case-sensitive. - 502
PROCESSOR_ERROR - The payments network didn't answer in time. Retry with the same
Idempotency-Key. A refund is keyed at the network by that key too, so a retry never refunds twice. - 503
NOT_CONFIGURED - The part of Anytime Capital Payments this needs isn't available right now. Retry later, with the same
Idempotency-Keyon a write.
Get the balance
/api/v1/balancepayouts:readAvailable, pending and reserved, in USD cents. All zero before your first payment settles.
curl https://anytime-capital.com/api/v1/balance \
-H "Authorization: Bearer $ANYTIME_API_KEY"const res = await fetch("https://anytime-capital.com/api/v1/balance", {
headers: { Authorization: `Bearer ${process.env.ANYTIME_API_KEY}` },
});
const balance = await res.json();
if (!res.ok) throw new Error(`${balance.error.code}: ${balance.error.message}`);import { AnytimeCapital } from "@anytimecapital/node";
const client = new AnytimeCapital({ apiKey: process.env.ANYTIME_API_KEY! });
const balance = await client.balance.retrieve();import os
import requests
res = requests.get(
"https://anytime-capital.com/api/v1/balance",
headers={"Authorization": f"Bearer {os.environ['ANYTIME_API_KEY']}"},
timeout=30,
)
balance = res.json()
if not res.ok:
raise RuntimeError(f"{balance['error']['code']}: {balance['error']['message']}"){
"object": "balance",
"livemode": true,
"currency": "usd",
"availableCents": 128400,
"pendingCents": 54200,
"reserveCents": 0
}Errors
- 502
PROCESSOR_ERROR - The payments network didn't answer in time. Retry with the same
Idempotency-Key. A refund is keyed at the network by that key too, so a retry never refunds twice. - 503
NOT_CONFIGURED - The part of Anytime Capital Payments this needs isn't available right now. Retry later, with the same
Idempotency-Keyon a write.
Events
payout.paid when a payout to your bank is sent and payout.failed when one fails, is denied or comes back, each with the payout object. The reconciliation guide puts these together in a nightly job.