Reports
Pull an entity's profit and loss, balance sheet, cash flow, trial balance, and general ledger.
Every report covers a single entity over a single date range, so each endpoint is nested under the entity uuid and takes startDate and endDate as required, inclusive calendar days. ledgerBasis selects the ledger and defaults to cash; reading the accrual ledger means opening it first through Ledgers.
Profit and loss
Sections with their total and account lines
Balance sheet
Sections with their total and account lines, balances as of endDate
Cash flow
Indirect-method sections plus a summary of operating, investing, and financing totals with beginning and ending cash
Trial balance
One row per account with its debit and credit, plus the totals
General ledger
Every ledger posting grouped by account, with opening and closing balances
The general ledger is the one report that spans posting types: its entries carry a sourceType, so bank transactions, bills, invoices, opening balances, and manual entries can be told apart. Journal Entries covers the manual entries alone.
Grouping the range into columns
groupBy splits the requested range into week, month, quarter, or year columns. It defaults to total, a single column covering the whole range. The general ledger lists individual dated postings rather than period aggregates, so it is the one report that does not take the parameter.
Grouping does not change the response shape. periods always lists at least one date range, and every ...ByPeriod array lines up with it one for one, so the same parsing code handles a grouped and an ungrouped report. Alongside those arrays each amount keeps its whole-range scalar.
What that scalar means depends on the report. Profit and loss and cash flow measure flow, so it is the sum of the columns. Balance sheet and trial balance measure position, and their columns are balances as of the end of each period, so it is the last column rather than the sum of them.
Returns the entity's profit and loss for the period between startDate and endDate (inclusive), on the basis given by ledgerBasis. Each section carries its total and its account lines, already flattened out of the nested report groups.
Organization access token issued by Kick, sent as Authorization: Bearer kick_org_....
cashPossible values: totalPossible values: 200
400
401
404
429
GET /api/platform/v1/entities/{entityId}/reports/profit-and-loss?startDate=text&endDate=text HTTP/1.1
Host: use.kick.co
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"report": {
"endDate": "text",
"entityId": "123e4567-e89b-12d3-a456-426614174000",
"groupBy": "total",
"ledgerBasis": "cash",
"periods": [
{
"endDate": "text",
"startDate": "text"
}
],
"sections": [
{
"lines": [
{
"accountCode": "text",
"accountName": "text",
"amount": 1,
"amountsByPeriod": [
1
],
"kind": "account"
}
],
"section": "income",
"total": 1,
"totalsByPeriod": [
1
]
}
],
"startDate": "text"
}
}Returns the entity's balance sheet on the basis given by ledgerBasis. Balances are as of endDate; startDate only bounds the reported activity.
Organization access token issued by Kick, sent as Authorization: Bearer kick_org_....
cashPossible values: totalPossible values: 200
400
401
404
429
GET /api/platform/v1/entities/{entityId}/reports/balance-sheet?startDate=text&endDate=text HTTP/1.1
Host: use.kick.co
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"report": {
"endDate": "text",
"entityId": "123e4567-e89b-12d3-a456-426614174000",
"groupBy": "total",
"ledgerBasis": "cash",
"periods": [
{
"endDate": "text",
"startDate": "text"
}
],
"sections": [
{
"label": "text",
"lines": [
{
"accountCode": "text",
"accountName": "text",
"amount": 1,
"amountsByPeriod": [
1
],
"kind": "account"
}
],
"total": 1,
"totalsByPeriod": [
1
]
}
],
"startDate": "text"
}
}Returns the entity's indirect-method cash flow statement for the period, alongside a summary holding the operating, investing and financing totals, the net change in cash, and the beginning and ending cash balances.
Organization access token issued by Kick, sent as Authorization: Bearer kick_org_....
cashPossible values: totalPossible values: 200
400
401
404
429
GET /api/platform/v1/entities/{entityId}/reports/cash-flow?startDate=text&endDate=text HTTP/1.1
Host: use.kick.co
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"report": {
"endDate": "text",
"entityId": "123e4567-e89b-12d3-a456-426614174000",
"groupBy": "total",
"ledgerBasis": "cash",
"periods": [
{
"endDate": "text",
"startDate": "text"
}
],
"sections": [
{
"lines": [
{
"accountCode": "text",
"accountName": "text",
"amount": 1,
"amountsByPeriod": [
1
]
}
],
"section": "Operating",
"total": 1,
"totalsByPeriod": [
1
]
}
],
"startDate": "text",
"summary": {
"beginningCashBalance": 1,
"endingCashBalance": 1,
"financingActivities": 1,
"investingActivities": 1,
"netCashChange": 1,
"operatingActivities": 1
},
"summaryByPeriod": [
{
"beginningCashBalance": 1,
"endingCashBalance": 1,
"financingActivities": 1,
"investingActivities": 1,
"netCashChange": 1,
"operatingActivities": 1
}
]
}
}Returns the entity's trial balance for the period: one row per account with its debit and credit, plus the debit and credit totals across every row.
Organization access token issued by Kick, sent as Authorization: Bearer kick_org_....
cashPossible values: totalPossible values: 200
400
401
404
429
GET /api/platform/v1/entities/{entityId}/reports/trial-balance?startDate=text&endDate=text HTTP/1.1
Host: use.kick.co
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"report": {
"endDate": "text",
"entityId": "123e4567-e89b-12d3-a456-426614174000",
"groupBy": "total",
"ledgerBasis": "cash",
"periods": [
{
"endDate": "text",
"startDate": "text"
}
],
"rows": [
{
"accountCode": "text",
"accountName": "text",
"amountsByPeriod": [
{
"credit": 1,
"debit": 1
}
],
"credit": 1,
"debit": 1
}
],
"startDate": "text",
"totals": {
"credit": 1,
"debit": 1
},
"totalsByPeriod": [
{
"credit": 1,
"debit": 1
}
]
}
}Returns every ledger posting of the entity for the period, grouped by account with its opening and closing balance. Unlike the manual journal entries surface, entries here carry a mix of source types, so sourceType is meaningful per line.
Organization access token issued by Kick, sent as Authorization: Bearer kick_org_....
cashPossible values: 200
400
401
404
429
GET /api/platform/v1/entities/{entityId}/reports/general-ledger?startDate=text&endDate=text HTTP/1.1
Host: use.kick.co
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"report": {
"accounts": [
{
"accountCode": 1,
"accountId": "123e4567-e89b-12d3-a456-426614174000",
"accountName": "text",
"closingBalance": 1,
"entries": [
{
"balance": 1,
"counterpartyName": "text",
"creditAmount": 1,
"date": "2026-01-01T00:00:00.000Z",
"debitAmount": 1,
"description": "text",
"journalEntryId": "123e4567-e89b-12d3-a456-426614174000",
"memo": "text",
"sourceType": "transaction"
}
],
"openingBalance": 1
}
],
"endDate": "text",
"entityId": "123e4567-e89b-12d3-a456-426614174000",
"ledgerBasis": "cash",
"startDate": "text"
}
}Last updated
Was this helpful?
