Expense Metadata — Proposed Guide
Planned API — Reference OnlyExpense Metadata: Expense metadata can hold an integration correlation value or a bounded annotation. It should not duplicate the entire source receipt or…
Overview
Expense metadata can hold an integration correlation value or a bounded annotation. It should not duplicate the entire source receipt or contain payment credentials.
Key concepts
Namespace integration-owned keys and document merge behavior. Keep structured financial fields outside arbitrary metadata.
Implementation considerations
Treat metadata as untrusted input when displaying or exporting it. Never allow it to override amount, approval state or organization identity.
Proposed API behavior
PATCH /v1/expenses/{expense_id}/metadata 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.
| Name | Type | Description |
|---|---|---|
| expense_idrequired | string | Stable fictional expense reference; not a secret and not evidence that a resource exists. |
| Name | Type | Description |
|---|---|---|
| metadata | object | Bounded, namespaced annotations. Do not store credentials or bank details here. |
| version | integer | Illustrative resource revision for detecting stale updates; no live concurrency contract is published. |
Static example requests
# Proposed request text only; this reserved host is not a live API.
curl -X PATCH 'https://api.remizen.example/v1/expenses/exp_example_123/metadata' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
--data '{
"metadata": {
"example.source": "local-fixture"
},
"version": 1
}'Fictional response example
Fictional documentation data only. No request was sent, record created, review performed, payment initiated or provider connection activated.
{
"data": {
"expense_id": "exp_example_123",
"metadata": {
"example.source": "local-fixture"
},
"version": 1,
"id": "exp_example_123",
"organization_id": "org_example_123",
"merchant": "Example Office Supply",
"amount_minor": 12550,
"currency": "USD",
"status": "draft"
},
"meta": {
"request_id": "req_example_123",
"reference_only": true
}
}Illustrative error case
Review this failure case in context: Treat metadata as untrusted input when displaying or exporting it. Never allow it to override amount, approval state or organization identity.
Synthetic diagnostic example. Human-readable messages must not be used as stable programmatic contracts.
{
"error": {
"code": "validation_error",
"message": "The proposed expense metadata operation requires review of its input or authorization.",
"request_id": "req_example_123"
}
}Proposed data types
| Name | Type | Description |
|---|---|---|
| expense_id | string | Stable fictional expense reference; not a secret and not evidence that a resource exists. |
| metadata | object | Bounded, namespaced annotations. Do not store credentials or bank details here. |
| version | integer | Illustrative resource revision for detecting stale updates; no live concurrency contract is published. |