Get Statement
GET /api/v1/statements/:id
Returns a single statement by ID.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
| id | string | Statement ID |
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| fields | string | all | Comma-separated field names |
Example Request
curl -X GET "https://statements.finopsbricks.com/api/v1/statements/stmt123xyz" \
-H "api-key: fob_stm_xxxxxxxxxxxx" \
-H "api-secret: xxxxxxxxxxxxxxxx"
Response
{
"data": {
"id": "stmt123xyz",
"file_name": "statement_jan_2025.pdf",
"mime_type": "application/pdf",
"file_type": "pdf",
"file_size": "245760",
"parser_type": "hdfc_savings__pdf",
"step": "complete",
"error": null,
"account_id": "acc123",
"account_name": "Main Account",
"account_currency": "INR",
"is_archived": false,
"created_at": "2025-01-05T10:30:00.000Z",
"period_start": "2025-01-01",
"period_end": "2025-01-31",
"opening_balance": 5000050,
"closing_balance": 4825075,
"data_source": {
"period_start": "extracted",
"period_end": "extracted",
"opening_balance": "computed",
"closing_balance": "computed"
},
"review": {
"is_done": true,
"at": "2025-01-06T14:30:00.000Z",
"type": "human",
"by": "user123",
"work_record_id": "wr456"
},
"org": "org123xyz",
"checks": {
"balance_verified": true,
"date_sequence_valid": true
},
"parsed_data": {
"transactions": [
{
"date": "2025-01-05",
"particulars": "ATM Withdrawal",
"inflow": 0,
"outflow": 500000,
"balance": 4500050,
"fingerprint": "D-(2025-01-05)-IF-(0)-OF-(500000)-P-(ATMWithdrawal)"
}
],
"metadata": {
"acc_no": "1234567890",
"currency": "INR",
"acc_owner": "John Doe",
"date_from": "2025-01-01",
"date_to": "2025-01-31",
"opening_balance": 5000050,
"closing_balance": 4825075
}
},
"raw_data": {
"table": [
["Date", "Description", "Debit", "Credit", "Balance"],
["05/01/2025", "ATM Withdrawal", "5000.00", "", "45000.50"]
]
}
}
}
Response Fields
See Statement Object for field descriptions.
Detail-Only Fields
The following fields are only returned when fetching a single statement (not in list responses):
| Field | Type | Description |
|---|---|---|
| org | string | Organization ID |
| checks | object | Validation check results (balance verification, date sequence, etc.) |
| parsed_data | object | Extracted transactions and metadata from the statement |
| raw_data | object | Raw file content for reprocessing |
parsed_data Structure
{
"transactions": [
{
"date": "YYYY-MM-DD",
"particulars": "Transaction description",
"inflow": 0,
"outflow": 500000,
"balance": 4500050,
"fingerprint": "D-(date)-IF-(inflow)-OF-(outflow)-P-(particulars)"
}
],
"metadata": {
"acc_no": "Account number",
"currency": "INR",
"acc_owner": "Account holder name",
"date_from": "Period start",
"date_to": "Period end",
"opening_balance": 5000050,
"closing_balance": 4825075
}
}
raw_data Structure
Varies by file type:
- CSV/XLSX:
{ "table": [[...rows]] }- 2D array of cell values - PDF:
{ "pdf2json": [...], "pdf_parse_text": "...", "pdf_parse_table": [...] }- Multiple extraction formats
Checking Processing Status
Use the step and error fields to check processing status:
step: "complete"- Successfully processedstep: "uploaded"+ no error - Still processingstep: "identify_statement"+ error - Parser detection failed- Any step + error - Processing failed at that step
Errors
| Code | Description |
|---|---|
| 401 | Invalid or missing API credentials |
| 403 | API key lacks statements:read permission |
| 404 | Statement not found |