Rename card status PENDING_ISSUE → PROCESSING#588
Conversation
Rename the Grid API card lifecycle state PENDING_ISSUE to PROCESSING so that PENDING_* states consistently denote waiting on user/platform action while PROCESSING denotes Grid/the issuer doing work — matching the convention already used by the quotes and transactions resources. PENDING_KYC is unchanged (it waits on the cardholder). Updates the OpenAPI source under openapi/, the Mintlify card doc snippets, and the regenerated openapi.yaml / mintlify/openapi.yaml bundles.
|
✱ Stainless preview builds for gridThis PR will update the cli csharp go kotlin openapi php python ruby typescript ✅ grid-ruby studio · code
|
Greptile SummaryThis PR renames the
Confidence Score: 5/5Safe to merge — this is a pure documentation and schema rename with no application logic, and grep confirms zero remaining PENDING_ISSUE references across the entire repo. Every occurrence of PENDING_ISSUE has been replaced in both the source OpenAPI files and the regenerated bundles, and the Mintlify doc snippets are fully updated. The generated bundles match exactly what make build would produce, the lifecycle diagram alignment is preserved, and no pre-existing logic or backend code is affected since the string is not yet emitted by any backend. No files require special attention. The SDK regeneration in webdev/grid-api is a noted follow-up in a separate repo.
|
| Filename | Overview |
|---|---|
| openapi/components/schemas/cards/CardState.yaml | Enum value and description table row renamed from PENDING_ISSUE to PROCESSING; clean change. |
| openapi/components/schemas/cards/CardStateReason.yaml | ISSUER_REJECTED description updated to reference PROCESSING instead of PENDING_ISSUE. |
| openapi/paths/cards/cards.yaml | POST /cards description updated to reference state: "PROCESSING". |
| openapi/webhooks/card-state-change.yaml | Webhook description and example summary updated to PROCESSING; consistent with schema change. |
| openapi.yaml | Generated bundle — diff matches exactly the 6 expected rename occurrences from make build; no extra reformatting. |
| mintlify/openapi.yaml | Generated Mintlify bundle — identical set of 6 renames, consistent with openapi.yaml bundle. |
| mintlify/snippets/cards/issuing-cards.mdx | Text-art lifecycle diagram and prose table updated; character alignment preserved (PROCESSING + 4 spaces = 14 chars, same as PENDING_ISSUE + 1 space). |
| mintlify/snippets/cards/webhooks.mdx | Webhook event table and handling branch documentation updated to PROCESSING. |
| mintlify/snippets/cards/intro.mdx | State table row updated from PENDING_ISSUE to PROCESSING. |
| mintlify/snippets/cards/quickstart.mdx | Prose reference to state: "PROCESSING" updated correctly. |
| mintlify/snippets/cards/sandbox-testing.mdx | Sandbox suffix table row updated to reference PROCESSING for the 001 suffix behavior. |
| mintlify/snippets/cards/implementation-overview.mdx | Issuance lifecycle prose updated from PENDING_ISSUE to PROCESSING. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A([POST /cards]) --> B[PROCESSING\nIssuer provisioning in progress]
B -->|CARD.STATE_CHANGE - success| C[ACTIVE\nCard live, can transact]
B -->|CARD.STATE_CHANGE - ISSUER_REJECTED| F[CLOSED\nTerminal]
C -->|PATCH state: FROZEN| D[FROZEN\nAuthorizations declined]
D -->|PATCH state: ACTIVE| C
C -->|PATCH state: CLOSED| F
D -->|PATCH state: CLOSED| F
%%{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"}}}%%
flowchart TD
A([POST /cards]) --> B[PROCESSING\nIssuer provisioning in progress]
B -->|CARD.STATE_CHANGE - success| C[ACTIVE\nCard live, can transact]
B -->|CARD.STATE_CHANGE - ISSUER_REJECTED| F[CLOSED\nTerminal]
C -->|PATCH state: FROZEN| D[FROZEN\nAuthorizations declined]
D -->|PATCH state: ACTIVE| C
C -->|PATCH state: CLOSED| F
D -->|PATCH state: CLOSED| F
Reviews (1): Last reviewed commit: "rename card status PENDING_ISSUE to PROC..." | Re-trigger Greptile
Merge activity
|

Summary
Renames the Grid API card lifecycle state
PENDING_ISSUEtoPROCESSING.Per the Slack thread, the
PENDING_*states should consistently mean waiting on user/platform action, whilePROCESSINGmeans Grid (or the issuer) is doing work — matching the convention already used by the quotes and transactions resources.PENDING_ISSUE(card being provisioned by the issuer) is Grid-side work, so it becomesPROCESSING. This also makes room for Dhruv's upcomingPENDING_AUTH(delegated-auth setup pending on user+platform).PENDING_KYCis intentionally unchanged — it waits on the cardholder.Changes
OpenAPI source (
openapi/):components/schemas/cards/CardState.yaml— enum value + description tablecomponents/schemas/cards/CardStateReason.yaml—ISSUER_REJECTEDdescription referencepaths/cards/cards.yaml—POST /cardsdescriptionwebhooks/card-state-change.yaml— webhook description + example summaryMintlify card doc snippets (
mintlify/snippets/cards/):intro,quickstart,issuing-cards(incl. lifecycle diagram),implementation-overview,webhooks,sandbox-testing.Regenerated bundles via
make build:openapi.yaml,mintlify/openapi.yaml.Note: breaking change & follow-ups
This is a breaking change to the public
CardStateenum (affectsCard.state, theCARD.STATE_CHANGEwebhook, and theGET /cards?state=filter). It's safe to land as a clean rename rather than a dual-value migration because the API surface is early-stage and no backend currently emits thePENDING_ISSUEstring — sparkcore's internalCardStatusenum isACTIVE/INACTIVE/SUSPENDED/CLOSEDand the publicCardStatevalues aren't produced yet.Follow-up (separate repo, not run here — needs the custom OpenAPI generator toolchain): regenerate the Python SDK in
webdev/grid-apiviaupdate_schema.shonce this merges.Verification
make build— bundles regenerate cleanly; bundle diff is exactly the 6 rename occurrences, no reformatting.make lint— 0 errors (pre-existing warnings/infos on unrelated beneficiary schemas only).grep -rn PENDING_ISSUEacross the repo returns nothing.🤖 inverted-obsidian(#1) | Feedback
Original PR: #587