remove the CARD.FUNDING_SOURCE_CHANGE webhook from the spec - #923
Conversation
Grid does not send a webhook when a card's funding sources change. The
PATCH response and GET /cards/{id} already return the new list, so the
webhook, its schema, the enum value, and the docs that promised it are
removed.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Preview deployment for your docs. Learn more about Mintlify Previews.
|
|
The latest updates on your projects. Learn more about Vercel for GitHub. 2 Skipped Deployments
|
|
✱ Stainless preview builds for gridThis PR will update the cli go kotlin openapi php python ruby typescript ⏳ grid-typescript studio⏳ grid-openapi studio⏳ grid-ruby studio⏳ grid-kotlin studio⏳ grid-go studio⏳ grid-python studio⏳ grid-php studio⏳ grid-cli studio⏳ These are partial results; builds are still running. This comment is auto-generated by GitHub Actions and is automatically kept up to date as you push. |
Greptile SummaryThis PR removes the unsupported card funding-source-change webhook from the OpenAPI source, generated bundles, SDK configuration references, and card documentation.
Confidence Score: 4/5The PR should not merge until the breaking OpenAPI removal is published under a new matching API version and server path. The webhook removal is internally complete, but deleting a published operation, schema, and enum value from the unchanged Files Needing Attention: openapi/openapi.yaml, openapi/components/schemas/webhooks/WebhookType.yaml
|
| Filename | Overview |
|---|---|
| openapi/openapi.yaml | Removes the webhook registration from the existing versioned API without coordinating the required version and server-path bump. |
| openapi/components/schemas/webhooks/WebhookType.yaml | Removes the funding-source-change enum value, contributing to the breaking published-contract change. |
| openapi/components/schemas/webhooks/CardFundingSourceChangeWebhook.yaml | Deletes the public webhook payload schema consistently with the operation removal. |
| openapi/paths/cards/cards_{id}.yaml | Correctly documents that funding-source updates produce no webhook and should be confirmed from the card resource. |
| mintlify/snippets/cards/webhooks.mdx | Consistently updates the card webhook documentation to describe only the state-change event. |
Prompt To Fix All With AI
### Issue 1
openapi/openapi.yaml:413-414
**Unversioned contract removal**
This removes the published webhook operation from the existing `2025-10-13` API contract, along with its schema and `CARD.FUNDING_SOURCE_CHANGE` enum value. Clients that regenerate against the same API version will lose those public definitions, even though the service never emitted the event. The repository requires breaking changes to bump `info.version` and use the matching new `servers.url`, but both still use `2025-10-13`. Please publish this removal under a new matching API version so the existing contract remains stable.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.Reviews (1): Last reviewed commit: "remove the CARD.FUNDING_SOURCE_CHANGE we..." | Re-trigger Greptile
| $ref: webhooks/verification-update.yaml | ||
| card-state-change: |
There was a problem hiding this comment.
This removes the published webhook operation from the existing 2025-10-13 API contract, along with its schema and CARD.FUNDING_SOURCE_CHANGE enum value. Clients that regenerate against the same API version will lose those public definitions, even though the service never emitted the event. The repository requires breaking changes to bump info.version and use the matching new servers.url, but both still use 2025-10-13. Please publish this removal under a new matching API version so the existing contract remains stable.
Context Used: CLAUDE.md (source)
Prompt To Fix With AI
This is a comment left during a code review.
Path: openapi/openapi.yaml
Line: 413-414
Comment:
**Unversioned contract removal**
This removes the published webhook operation from the existing `2025-10-13` API contract, along with its schema and `CARD.FUNDING_SOURCE_CHANGE` enum value. Clients that regenerate against the same API version will lose those public definitions, even though the service never emitted the event. The repository requires breaking changes to bump `info.version` and use the matching new `servers.url`, but both still use `2025-10-13`. Please publish this removal under a new matching API version so the existing contract remains stable.
**Context Used:** CLAUDE.md ([source](https://github.com/lightsparkdev/grid-api/blob/main/CLAUDE.md))
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.The cards docs said transaction lifecycle events ride on the generic transaction webhook stream and that a follow-up would add a card type. The spec has had dedicated CARD_TRANSACTION.* events for some time, so the docs now list them. Also drops the note about funding source changes. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Summary
Grid does not send a webhook when a card's funding sources change, and there is no plan to add one. The
PATCH /cards/{id}response andGET /cards/{id}already return the newfundingSourceslist, so an integrator has what they need without an event. This removes the webhook and everything that promised it.What changes
CARD.FUNDING_SOURCE_CHANGEleaves theWebhookTypeenum.card-funding-source-changewebhook and itsCardFundingSourceChangeWebhookschema are deleted.PATCH /cards/{id}description no longer says a webhook fires for afundingSourceschange. It now says to read the card back.CARD.STATE_CHANGE.CardFundingSourceChangeWebhookas an example now citesCardTransactionWebhookinstead. The transform itself is unchanged.CARD.STATE_CHANGEand the transaction webhook stream are untouched.Test plan
npm run lint:openapipasses. Redocly reports 51 warnings (down from 55, all from the removed schemas); Spectral reports 0 errors at the same 901-problem baseline asmain.openapi/,mintlify/,.stainless/, or the bundledopenapi.yaml.🤖 Generated with Claude Code
Generated by Claude Code