Skip to content

remove the CARD.FUNDING_SOURCE_CHANGE webhook from the spec - #923

Merged
shreyav merged 3 commits into
mainfrom
claude/remove-card-funding-source-change-webhook
Sep 9, 2026
Merged

remove the CARD.FUNDING_SOURCE_CHANGE webhook from the spec#923
shreyav merged 3 commits into
mainfrom
claude/remove-card-funding-source-change-webhook

Conversation

@shreyav

@shreyav shreyav commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

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 and GET /cards/{id} already return the new fundingSources list, so an integrator has what they need without an event. This removes the webhook and everything that promised it.

What changes

  • CARD.FUNDING_SOURCE_CHANGE leaves the WebhookType enum.
  • The card-funding-source-change webhook and its CardFundingSourceChangeWebhook schema are deleted.
  • The PATCH /cards/{id} description no longer says a webhook fires for a fundingSources change. It now says to read the card back.
  • The cards docs (funding sources, implementation overview, sandbox testing, webhooks) drop the event. The webhooks page now describes one card event type, CARD.STATE_CHANGE.
  • The Stainless note that cited CardFundingSourceChangeWebhook as an example now cites CardTransactionWebhook instead. The transform itself is unchanged.
  • The skill endpoint reference drops the entry.

CARD.STATE_CHANGE and the transaction webhook stream are untouched.

Test plan

  • npm run lint:openapi passes. Redocly reports 51 warnings (down from 55, all from the removed schemas); Spectral reports 0 errors at the same 901-problem baseline as main.
  • No reference to the event remains in openapi/, mintlify/, .stainless/, or the bundled openapi.yaml.

🤖 Generated with Claude Code


Generated by Claude Code

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>
@mintlify

mintlify Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated
Grid 🟢 Ready View Preview Sep 9, 2026, 7:05 PM

@vercel

vercel Bot commented Sep 9, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

2 Skipped Deployments
Project Deployment Actions Updated
grid-flow-builder Ignored Ignored Preview Sep 9, 2026 7:12pm UTC
grid-wallet-demo Ignored Ignored Preview Sep 9, 2026 7:12pm UTC

Request Review

@github-actions github-actions Bot added the breaking-change Introduces a breaking change to the OpenAPI spec label Sep 9, 2026
@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

⚠️ Breaking OpenAPI changes detected

oasdiff reports 13 error / 0 warning changes to openapi.yaml.
This PR will need approval from an API reviewer before merge.

Errors (13)

  • POST webhook:agent-action — removed the enum value CARD.FUNDING_SOURCE_CHANGE of the request property allOf[#/components/schemas/BaseWebhook]/type [request-property-enum-value-removed].
  • POST webhook:bulk-upload — removed the enum value CARD.FUNDING_SOURCE_CHANGE of the request property allOf[#/components/schemas/BaseWebhook]/type [request-property-enum-value-removed].
  • POST webhook:card-state-change — removed the enum value CARD.FUNDING_SOURCE_CHANGE of the request property allOf[#/components/schemas/BaseWebhook]/type [request-property-enum-value-removed].
  • POST webhook:card-transaction — removed the enum value CARD.FUNDING_SOURCE_CHANGE of the request property allOf[#/components/schemas/BaseWebhook]/type [request-property-enum-value-removed].
  • POST webhook:customer-update — removed the enum value CARD.FUNDING_SOURCE_CHANGE of the request property allOf[#/components/schemas/BaseWebhook]/type [request-property-enum-value-removed].
  • POST webhook:external-account-status — removed the enum value CARD.FUNDING_SOURCE_CHANGE of the request property allOf[#/components/schemas/BaseWebhook]/type [request-property-enum-value-removed].
  • POST webhook:incoming-payment — removed the enum value CARD.FUNDING_SOURCE_CHANGE of the request property allOf[#/components/schemas/BaseWebhook]/type [request-property-enum-value-removed].
  • POST webhook:internal-account-status — removed the enum value CARD.FUNDING_SOURCE_CHANGE of the request property allOf[#/components/schemas/BaseWebhook]/type [request-property-enum-value-removed].
  • POST webhook:invitation-claimed — removed the enum value CARD.FUNDING_SOURCE_CHANGE of the request property allOf[#/components/schemas/BaseWebhook]/type [request-property-enum-value-removed].
  • POST webhook:outgoing-payment — removed the enum value CARD.FUNDING_SOURCE_CHANGE of the request property allOf[#/components/schemas/BaseWebhook]/type [request-property-enum-value-removed].
  • POST webhook:test-webhook — removed the enum value CARD.FUNDING_SOURCE_CHANGE of the request property allOf[#/components/schemas/BaseWebhook]/type [request-property-enum-value-removed].
  • POST webhook:verification-update — removed the enum value CARD.FUNDING_SOURCE_CHANGE of the request property allOf[#/components/schemas/BaseWebhook]/type [request-property-enum-value-removed].
  • POST webhook:wallet-operation — removed the enum value CARD.FUNDING_SOURCE_CHANGE of the request property allOf[#/components/schemas/BaseWebhook]/type [request-property-enum-value-removed].

Detected by oasdiff. Full report: job summary or the oasdiff-report artifact.

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

✱ Stainless preview builds for grid

This PR will update the grid SDKs with the following commit messages.

cli

feat: remove the CARD.FUNDING_SOURCE_CHANGE webhook from the spec

go

feat: remove the CARD.FUNDING_SOURCE_CHANGE webhook from the spec

kotlin

feat: remove the CARD.FUNDING_SOURCE_CHANGE webhook from the spec

openapi

feat: remove the CARD.FUNDING_SOURCE_CHANGE webhook from the spec

php

feat: remove the CARD.FUNDING_SOURCE_CHANGE webhook from the spec

python

feat: remove the CARD.FUNDING_SOURCE_CHANGE webhook from the spec

ruby

feat: remove the CARD.FUNDING_SOURCE_CHANGE webhook from the spec

typescript

feat: remove the CARD.FUNDING_SOURCE_CHANGE webhook from the spec
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.
If you push custom code to the preview branch, re-run this workflow to update the comment.
Last updated: 2026-09-09 19:28:56 UTC

@greptile-apps

greptile-apps Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR removes the unsupported card funding-source-change webhook from the OpenAPI source, generated bundles, SDK configuration references, and card documentation.

  • Deletes the webhook operation and payload schema.
  • Removes CARD.FUNDING_SOURCE_CHANGE from WebhookType.
  • Directs integrators to use the updated card response or retrieve the card instead.
  • Leaves the removal internally consistent, but applies the breaking contract change to the existing versioned API.

Confidence Score: 4/5

The 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 2025-10-13 contract makes that version unstable for clients that regenerate or reference the removed model.

Files Needing Attention: openapi/openapi.yaml, openapi/components/schemas/webhooks/WebhookType.yaml

Important Files Changed

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

Comment thread openapi/openapi.yaml
Comment on lines 413 to 414
$ref: webhooks/verification-update.yaml
card-state-change:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 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)

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>
@shreyav
shreyav merged commit cbf1227 into main Sep 9, 2026
10 of 11 checks passed
@shreyav
shreyav deleted the claude/remove-card-funding-source-change-webhook branch September 9, 2026 19:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking-change Introduces a breaking change to the OpenAPI spec

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants