API reference

Corrections & the journal

How issuer revisions change income without rewriting history.

Issuers revise their records

Corporate actions have versions. An issuer may correct withholding, net cash or even the action type after the fact: STRCx event c5721924 went through several revisions. Late records also arrive: a change that was unattributed yesterday can match an action published today.

Corpact re-classifies whenever issuer evidence changes. It never edits what it already recognized.

The journal

GET /v1/journal is an append-only audit trail. Every row is either a recognition or a reversal:

Field
idIncreasing row id
recordedAtWhen Corpact recorded the row
entryTyperecognition or reversal
kinddividend, split or unclassified_adjustment
effectiveAt, quantity, splitFactor, usd, valuationThe values recognized, or reversed
issuerEventId, issuerRevisionThe issuer evidence behind it
reversesIdFor a reversal, the recognition it closes
changeReasoninitial, issuer_correction, balance_history_changed, valuation_changed, no_longer_applicable
changeDetailA human-readable description of what changed

A correction, step by step

The issuer publishes revision 2 of a dividend: withholding 34% instead of 30%, net $0.33 instead of $0.35 per share.

RowEntryKindUSDIssuer revisionReason
#1recognitiondividend$35.001initial
#3reversal of #1dividend$35.001issuer_correction
#4recognitiondividend$33.002issuer_correction
  • Row #1 stays. Anyone who exported the journal before the correction can reconcile against it.
  • The income entry now reads $33.00, with revision: 2 and correctedAt set.
  • Conversion is paused for the position for 7 days, so the revised income can be reviewed.

Guarantees

  • Append-only storage. The database refuses updates and deletes on the journal.
  • One open recognition. Each entry has exactly one unreversed recognition, and a reversal always closes an earlier recognition of the same entry.
  • Journal equals income. Open dividend recognitions equal the income the API publishes, and verify-integrity checks it.
  • Idempotent replay. Re-running a sync with no new evidence appends nothing.