Payments — Daily settled payments
binding spec data-contracts/payments-daily.odcs.yaml @ 1.0.0 — the spec of record. It states what must be; implementations converge on it, never the reverse.
Enforced by
check:version— any change must bump the artifact and service versions; a silent edit fails CI- datacontract-cli validation
- Spectral house rules for attribute and value naming
Version history
| Version | First released | Service version |
|---|---|---|
1.0.0 | 2026-08-23 | 1.0.0 |
Consume it
- Agents, over MCP:
get_artifact('payments', 'data-contracts/payments-daily.odcs.yaml') - Raw spec:
data-contracts/payments-daily.odcs.yaml - Implementations pin the release tag
payments/v3.0.1in theircontracts.lockand fetch read-only — the full loop is on Drive an implementation.
Status: active · Domain: Commerce ·Data product: payments
Purpose
Daily reconciliation of settled payments for finance. One row per settled payment, partitioned by settlement date.
Usage
Finance close and chargeback investigation. Not a source for real-time balances — use the payments service API for that.
Limitations
Settlement date is the processor's, not ours, so late arrivals can backfill up to 3 days. Do not treat a partition as final until D+3.
Schema
erDiagram
payments_daily_settled {
string payment_id PK
string order_id
date settled_at
integer amount_pence
}payments_daily_settled
| Field | Type | Required | Key | Constraints |
|---|---|---|---|---|
payment_id | string (uuid) | yes | primary key, unique | — |
order_id | string (uuid) | yes | — | — |
settled_at | date (timestamp) | yes | partition | — |
amount_pence | integer (bigint) | yes | — | ≥ 0 |
SLA
frequency: 1dlatency: 4h
Ownership & support
team-payments(owner)- slack:
#payments-support