Skip to content

Filtering — Proposed Guide

Planned API — Reference Only

Filtering: Filtering narrows a collection to records matching defined criteria. A useful expense query might combine a lifecycle status, a department and…

Overview

Filtering narrows a collection to records matching defined criteria. A useful expense query might combine a lifecycle status, a department and an incurred-date boundary without changing the stored resources.

Key concepts

Specify inclusive and exclusive date boundaries and the meaning of multiple values. Missing, null and empty-string fields must not be treated as interchangeable filters.

Implementation considerations

Reject unknown filter names instead of silently broadening a query that could expose additional financial records. Future contracts must list supported operators.

Proposed API behavior

GET /v1/expenses is an illustrative design for this topic. Path and field names may change before implementation. Access would require an authorized organization context and operation-specific permission; no public API or authorization grant is available here.

Illustrative query parameters
NameTypeDescription
statusstringProposed lifecycle value. Its meaning depends on the resource and must not be inferred from HTTP success.
department_idstringStable fictional department reference; not a secret and not evidence that a resource exists.
start_datestring (date)Synthetic calendar date in YYYY-MM-DD form; period inclusivity must be defined by the future contract.
end_datestring (date)Synthetic calendar date in YYYY-MM-DD form; period inclusivity must be defined by the future contract.

Static example requests

Proposed, non-executing request examples
# Proposed request text only; this reserved host is not a live API.
curl -X GET 'https://api.remizen.example/v1/expenses?status=draft&department_id=dept_example_123&start_date=2026-01-15&end_date=2026-01-31' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Fictional response example

200 (proposed example)Static response fixture

Fictional documentation data only. No request was sent, record created, review performed, payment initiated or provider connection activated.

JSON
{
  "data": [
    {
      "id": "exp_example_123",
      "organization_id": "org_example_123",
      "merchant": "Example Office Supply",
      "amount_minor": 12550,
      "currency": "USD",
      "status": "draft"
    }
  ],
  "pagination": {
    "has_more": false,
    "next_cursor": null
  },
  "meta": {
    "request_id": "req_example_123",
    "reference_only": true
  }
}

Illustrative error case

Review this failure case in context: Reject unknown filter names instead of silently broadening a query that could expose additional financial records. Future contracts must list supported operators.

422 (illustrative; final error contracts are undecided)Proposed error fixture

Synthetic diagnostic example. Human-readable messages must not be used as stable programmatic contracts.

JSON
{
  "error": {
    "code": "validation_error",
    "message": "The proposed filtering operation requires review of its input or authorization.",
    "request_id": "req_example_123"
  }
}

Proposed data types

Illustrative field dictionary
NameTypeDescription
statusstringProposed lifecycle value. Its meaning depends on the resource and must not be inferred from HTTP success.
department_idstringStable fictional department reference; not a secret and not evidence that a resource exists.
start_datestring (date)Synthetic calendar date in YYYY-MM-DD form; period inclusivity must be defined by the future contract.
end_datestring (date)Synthetic calendar date in YYYY-MM-DD form; period inclusivity must be defined by the future contract.