Skip to content

Expense Report History — Proposed Guide

Planned API — Reference Only

Expense Report History: History would describe report transitions and material membership changes in sequence. It supports explanation of decisions…

Overview

History would describe report transitions and material membership changes in sequence. It supports explanation of decisions without exposing sensitive free-text notes to every reader.

Key concepts

Record actor, time, previous state and next state. Retain a reference to the reviewed version.

Implementation considerations

Ordering should remain stable when events have identical timestamps. Correction events should append to history rather than overwrite prior decisions.

Proposed API behavior

GET /v1/expense-reports/{report_id}/history 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.

Proposed path parameters
NameTypeDescription
report_idrequiredstringStable fictional report reference; not a secret and not evidence that a resource exists.

No additional request fields are illustrated; this is not a finalized 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/expense-reports/rpt_example_123/history' \
  -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": {
    "report_id": "rpt_example_123",
    "event_id": "event_example_123",
    "actor_id": "usr_example_123",
    "occurred_at": "2026-01-15T12:00:00Z",
    "id": "rpt_example_123",
    "organization_id": "org_example_123",
    "expense_ids": [
      "exp_example_123"
    ],
    "status": "draft"
  },
  "meta": {
    "request_id": "req_example_123",
    "reference_only": true
  }
}

Illustrative error case

Review this failure case in context: Ordering should remain stable when events have identical timestamps. Correction events should append to history rather than overwrite prior decisions.

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 expense report history operation requires review of its input or authorization.",
    "request_id": "req_example_123"
  }
}

Proposed data types

Illustrative field dictionary
NameTypeDescription
report_idstringStable fictional report reference; not a secret and not evidence that a resource exists.
event_idstringStable fictional event reference; not a secret and not evidence that a resource exists.
actor_idstringStable fictional actor reference; not a secret and not evidence that a resource exists.
occurred_atstring (date-time)Synthetic UTC timestamp. Business occurrence time may differ from delivery or processing time.