docs(openapi): split Card processorRef (Lithic) from issuerRef (Lead)#620
Conversation
…of-record The Card schema exposed only issuerRef, with a Lithic example — but Lithic is the card *processor*; the issuer of record is Lead Bank. Split them to match the data model (and the Card response): processorRef carries the Lithic card token (parallel to CardTransaction.issuerTransactionToken), issuerRef carries the Lead identifier.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
✱ Stainless preview builds for gridThis PR will update the cli csharp go kotlin openapi php python ruby typescript ✅ grid-typescript studio · code
✅ grid-ruby studio · code
|
Greptile SummaryThis PR corrects the processor-vs-issuer terminology in the
Confidence Score: 5/5Purely additive docs change — adds a new readOnly field and corrects descriptions; no logic, auth, or data-path changes. All four changed files are OpenAPI schema and webhook documentation. The new processorRef field is additive and readOnly, the description fixes are accurate, and the bundled outputs match the source. No breaking changes to existing fields. No files require special attention. The one open nit is the pre-existing omission of processorRef/issuerRef from the frozen webhook example.
|
| Filename | Overview |
|---|---|
| openapi/components/schemas/cards/Card.yaml | Adds processorRef (Lithic token) immediately before issuerRef (Lead Bank id); corrects panEmbedUrl description from "issuer" to "processor"; updates issuerRef description and example to reflect Lead Bank. |
| openapi/webhooks/card-state-change.yaml | Updates the activated example to include processorRef: card_b81c2a4f and corrected issuerRef: lead_card_7a1b9c3d; frozen and issuerRejected examples are unchanged (pre-existing omission of ref fields). |
| openapi.yaml | Bundled output file — identical changes to the source Card schema and webhook, generated by make build. |
| mintlify/openapi.yaml | Mintlify-specific bundled output — same schema and webhook changes as openapi.yaml, in sync with the source. |
Entity Relationship Diagram
%%{init: {'theme': 'neutral'}}%%
erDiagram
Card {
string id "Card:uuid"
string platformCardId "platform-assigned opaque id"
string processorRef "Lithic card token (NEW)"
string issuerRef "Lead Bank card identifier (corrected)"
string panEmbedUrl "Lithic embed URL (description fixed)"
string currency
string state
}
CardTransaction {
string id
string issuerTransactionToken "parallel to processorRef on Card"
}
Card ||--o{ CardTransaction : "has"
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
erDiagram
Card {
string id "Card:uuid"
string platformCardId "platform-assigned opaque id"
string processorRef "Lithic card token (NEW)"
string issuerRef "Lead Bank card identifier (corrected)"
string panEmbedUrl "Lithic embed URL (description fixed)"
string currency
string state
}
CardTransaction {
string id
string issuerTransactionToken "parallel to processorRef on Card"
}
Card ||--o{ CardTransaction : "has"
Reviews (3): Last reviewed commit: "docs(openapi): address Greptile — group ..." | Re-trigger Greptile
…fix processor wording - place processorRef adjacent to issuerRef so the processor-vs-issuer pair reads together - panEmbedUrl: 'card issuer's iframe' -> 'card processor's iframe' (it's a Lithic/embed.lithic.com endpoint) - card-state-change webhook example: drop stale issuerRef: lithic_..., show processorRef (Lithic) + issuerRef (Lead)
|
The latest updates on your projects. Learn more about Vercel for GitHub. 2 Skipped Deployments
|
Addressed Greptile review
|

Summary
Companion docs change to the card-id standardization (webdev#29318).
processorRefto theCardschema — the Lithic card token, parallel toCardTransaction.issuerTransactionToken. This is the field the implementation now returns alongside theCard:<uuid>id (the spec'sidwas alreadyCard:<uuid>; the implementation was the side that diverged).issuerRef: its example was a Lithic token (lithic_card_...), but Lithic is the card processor — the issuer of record is Lead Bank.issuerRefnow describes the Lead identifier; the Lithic ref lives inprocessorRef. This matches the data model (processor_ref= Lithic,issuer_ref= Lead).Test plan
make build(rebundlesopenapi.yaml+mintlify/openapi.yaml)make lint-openapi→ exit 0 (no new findings on theCardschema)Proof-of-concept companion to the implementation PR; leaving as a draft.
Slack thread: https://lightsparkgroup.slack.com/archives/D0AJJH3A4J1/p1782347206097239
🤖 sovereign-reactor-4(#4) | Feedback
Original PR: #619