Transfer Report

GET /api/v1/reports/transfer

Returns transfer transaction data grouped by category over time periods. This endpoint provides the same data as the Transfer Report in the web UI, which helps reconcile transfers between accounts.

Query Parameters

ParameterTypeRequiredDefaultDescription
date_fromstringYes-Start date (YYYY-MM-DD)
date_tostringYes-End date (YYYY-MM-DD)
group_bystringNomonthGrouping period (day/week/month/year)
accountsstringNoallComma-separated account IDs to filter
particularsstringNo-Filter by particulars (partial match)
entitystringNo-Filter by entity (partial match, use 'empty' for null/empty)
categorystringNo-Filter by category (partial match, use 'empty' for null/empty)

Example Request

curl -X GET "https://statements.finopsbricks.com/api/v1/reports/transfer?date_from=2024-01-01&date_to=2024-12-31&group_by=month&accounts=acc123,acc456" \
  -H "api-key: fob_stm_xxxxxxxxxxxx" \
  -H "api-secret: xxxxxxxxxxxxxxxx"

Response

{
  "data": {
    "period": {
      "date_from": "2024-01-01",
      "date_to": "2024-12-31",
      "group_by": "month"
    },
    "accounts": [
      {
        "id": "acc123",
        "name": "Business Checking",
        "category": "bank"
      },
      {
        "id": "acc456",
        "name": "Savings Account",
        "category": "bank"
      }
    ],
    "data": [
      {
        "category": "transfers",
        "2024-01": {
          "inflow": 5000.00,
          "outflow": 3000.00,
          "net": 2000.00,
          "transaction_count": 12
        },
        "2024-02": {
          "inflow": 7000.00,
          "outflow": 4000.00,
          "net": 3000.00,
          "transaction_count": 15
        }
      }
    ]
  }
}

Response Fields

period

FieldTypeDescription
date_fromstringStart date of the report
date_tostringEnd date of the report
group_bystringGrouping period used (day/week/month/year)

accounts

Array of account objects included in the report (non-archived accounts).

FieldTypeDescription
idstringAccount ID
namestringAccount name
categorystringAccount category (bank or credit_card)

data

Array of transfer data objects grouped by category.

FieldTypeDescription
categorystringTransaction category name
{period}objectPeriod key (format depends on group_by): YYYY-MM-DD (day), YYYY-Www (week), YYYY-MM (month), YYYY (year)

Each period object contains:

FieldTypeDescription
inflownumberTotal inflows for the period (in base currency units)
outflownumberTotal outflows for the period (in base currency units)
netnumberNet amount (inflow - outflow)
transaction_countnumberTotal number of transactions (inflows + outflows)

Understanding Transfer Reports

Transfer reports show transactions categorized as "transfer" type, which represent money movement between your own accounts. Key use cases:

  • Reconciliation: Verify that transfers between accounts are properly recorded
  • Cash Movement: Track how money flows between different accounts
  • Balance Verification: Ensure transfer inflows match transfer outflows across accounts

For proper reconciliation, transfer inflows should equal transfer outflows across all accounts (net should approach zero when summed).

Filtering Options

Special Values

  • entity='empty': Filters for transactions with null or empty entity field
  • category='empty': Filters for transactions with null or empty category field

Partial Matching

The particulars, entity, and category filters use case-insensitive partial matching:

  • particulars=payment matches "Monthly Payment", "PAYMENT RECEIVED", "Prepayment"
  • entity=acme matches "Acme Corp", "ACME Inc", "Acme Holdings"

Account Filtering

Pass comma-separated account IDs to filter transactions:

  • accounts=acc123 - Single account
  • accounts=acc123,acc456,acc789 - Multiple accounts

Errors

CodeDescription
400Missing date_from or date_to parameter
400Invalid date format (must be YYYY-MM-DD)
400date_from is after date_to
400Invalid group_by value (must be day, week, month, or year)
401Invalid or missing API credentials
403API key lacks reports:read permission