List transactions
/v1/transactionsThe club's money-movement ledger, oldest first — one row per settled charge, each referencing its order_id (use GET /v1/orders/{id} for the itemized purchase). amount is in minor units (cents). Cursor-paginate via starting_after; narrow with created_after / created_before. Scoped to the club tied to your API key.
Date basis. created_after / created_before filter on each transaction's own timestamp (UTC). Refunds ARE returned as separate records with a negative amount, dated by the refund — so a refund can fall outside the window that contains the charge it reverses. Summing amount over a window therefore gives cash-basis net movement for that window, which is how the OpenCourt admin reports date money.
Authorization
bearerAuth Your club API key. Send it as Authorization: Bearer oc_live_….
In: header
Query Parameters
Number of results, 1–100 (default 25).
1 <= value <= 100Cursor: the id of the last transaction from the previous page.
ISO-8601 lower bound on the transaction's OWN timestamp (inclusive). For a refund that is the refund's date, not the original charge's.
ISO-8601 upper bound on the transaction's OWN timestamp (inclusive). For a refund that is the refund's date, not the original charge's.
Response Body
application/json
application/json
application/json
application/json
curl -X GET "https://api.getopencourt.com/v1/transactions"{
"object": "list",
"data": [
{
"id": "e5f6a7b8-9c0d-4e1f-b2a3-c4d5e6f7a8b9",
"object": "transaction",
"order_id": "d4e5f6a7-8b9c-4d0e-a1b2-c3d4e5f6a7b8",
"amount": 4500,
"currency": "USD",
"charge_type": "card",
"created_at": "2026-01-15T14:30:00.000Z"
}
],
"has_more": true,
"url": "string"
}{
"error": {
"type": "string",
"code": "string",
"message": "string",
"param": "string",
"request_id": "string"
}
}{
"error": {
"type": "string",
"code": "string",
"message": "string",
"param": "string",
"request_id": "string"
}
}{
"error": {
"type": "string",
"code": "string",
"message": "string",
"param": "string",
"request_id": "string"
}
}