CHANGELOG — CPD Specification Family
All notable changes to the Canonical Payment Definition (CPD) specification family are recorded here.
This log follows Semantic Versioning 2.0.0.
FPSF-CPD-002 — Canonical Payment Request Definition
[1.0.0] — 2026-06-15
Status: Draft
Author: Adalton Reis <[email protected]>
Summary: Initial release of CPD-002. Defines the Canonical Payment Request (CPR) as a payer-agnostic, rail-neutral structure from which a CPD-001 Payment may be derived.
Introduced:
- Base
CanonicalPaymentRequestinterface:cpr_version,request_id,created_at,expires_at,payee,value,memo,rail_hint,extensions PayeeDescriptorandRequestedValue/AssetDescriptorstructuresRailHintenumeration:ON_CHAIN,SEPA_CT,SEPA_INST,ACH,PIX,UPI,SWIFT,OPEN- Delivery model: QR code (
fpsf-cpr://URI scheme), deep link, URL Token (ephemeral session), and direct JSON - Ephemeral token requirements: max 15-minute lifetime, single-use, TLS-only
- Domain-specific sub-interfaces:
OnChainPaymentRequest(SS-001 compatible),IBANPaymentRequest,AccountPaymentRequest,InstantKeyPaymentRequest - Derivation interface (Section 6): formal mapping from CPR +
DerivationContextto CPD-001Payment - Invariants section (Section 8): six invariants including no-payer-data rule
- Extensibility conventions:
fpsf:prefix for Foundation extensions, reverse-domain prefix for third parties - Conformance requirements for paying applications and payee systems
FPSF-CPD-001 — Canonical Payment Definition
[1.1.0] — 2026-06-15
Status: Draft
Author: Adalton Reis <[email protected]>
Backward-compatible with: v1.0.0
Summary: Minor update to bridge CPD-001 with the newly introduced CPD-002. All v1.0.0 structures, interfaces, and invariants are preserved unchanged.
Added:
- Section 2.3:
Payment Requestdefinition — brief normative description establishing the separation between Payment and Payment Request - Section 3.7:
PaymentRequestReferenceoptional field on thePaymentobject — enables traceability when a payment originates from a CPR - Section 5.7:
derivePaymentinterface — references the derivation procedure defined in CPD-002 Section 6 - Section 9: Relationship to FPSF-CPD-002 — table and prose making the CPD-001 / CPD-002 boundary explicit
- Scope section updated: explicitly notes that Payment Request structure is out of scope for CPD-001
- Non-Goals section updated: explicitly excludes Payment Request definition
- Conformance section updated: notes optional CPD-002 conformance path
- Abstract updated: references CPD-002 as the companion specification
Changed:
Paymentobject in Section 3.3: added optionalderived_from: PaymentRequestReferencefield
No breaking changes. Implementations conforming to v1.0.0 remain conformant to v1.1.0 without modification.
[1.0.0] — 2026-03-25
Status: Draft
Author: Adalton Reis <[email protected]>
Summary: Initial release. Canonical Payment and Digital Payment definitions, lifecycle, interfaces, and invariants.
Introduced:
PaymentandDigital PaymentdefinitionsParticipant,Value,Paymentobject,IntentDescriptor,AuthorizationProof,ExecutionContextstructuresPaymentStatelifecycle:CREATED,AUTHORIZED,IN_FLIGHT,SETTLED,FAILED,CANCELLED- State transition constraints and monotonicity invariant
- Conceptual interfaces:
initiatePayment,authorizePayment,submitPayment,settlePayment,getPaymentStatus,cancelPayment - Six invariants: uniqueness, integrity, authorization binding, deterministic state, finality
- Extensibility section
- Conformance section