Skip to content

chore: Sync account schemas#539

Open
lightspark-copybara[bot] wants to merge 1 commit into
mainfrom
auto/sync-grid-schemas-20260602-191454
Open

chore: Sync account schemas#539
lightspark-copybara[bot] wants to merge 1 commit into
mainfrom
auto/sync-grid-schemas-20260602-191454

Conversation

@lightspark-copybara
Copy link
Copy Markdown
Contributor

Auto-synced account schemas.

These schemas are generated from VASP adapter field definitions in sparkcore.

Synced schemas:

  • common/ — per-currency account info, beneficiary, and payment account schemas
  • common/PaymentInstructions.yaml — payment instructions oneOf (new currencies added)
  • external_accounts/ — per-currency external account schemas (reference common/)

Please review the changes before merging.

@vercel
Copy link
Copy Markdown

vercel Bot commented Jun 2, 2026

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

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
grid-flow-builder Ignored Ignored Preview Jun 2, 2026 7:15pm

Request Review

@github-actions github-actions Bot added the breaking-change Introduces a breaking change to the OpenAPI spec label Jun 2, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 2, 2026

⚠️ Breaking OpenAPI changes detected

This PR introduces breaking changes to openapi.yaml:

API Changelog 2025-10-13 vs. 2025-10-13

API Changes

POST /agents/me/external-accounts

  • ⚠️ added the new required request property allOf[subschema #1]/accountInfo/oneOf[subschema #11: GHS Account]/allOf[#/components/schemas/GhsAccountInfoBase]/bankName
  • ⚠️ added the new required request property allOf[subschema #1]/accountInfo/oneOf[subschema #2: BDT Account]/allOf[#/components/schemas/BdtAccountInfoBase]/bankName
  • ⚠️ added the new required request property allOf[subschema #1]/accountInfo/oneOf[subschema #6: COP Account]/allOf[#/components/schemas/CopAccountInfoBase]/bankName
  • ⚠️ added the new required request property allOf[subschema #1]/accountInfo/oneOf[subschema #8: EGP Account]/allOf[#/components/schemas/EgpAccountInfoBase]/bankName
  • ⚠️ the request property allOf[subschema #1]/accountInfo/oneOf[subschema #24: PKR Account]/allOf[#/components/schemas/PkrAccountInfoBase]/bankName became required

POST /customers/external-accounts

  • ⚠️ added the new required request property allOf[subschema #1]/accountInfo/oneOf[subschema #11: GHS Account]/allOf[#/components/schemas/GhsAccountInfoBase]/bankName
  • ⚠️ added the new required request property allOf[subschema #1]/accountInfo/oneOf[subschema #2: BDT Account]/allOf[#/components/schemas/BdtAccountInfoBase]/bankName
  • ⚠️ added the new required request property allOf[subschema #1]/accountInfo/oneOf[subschema #6: COP Account]/allOf[#/components/schemas/CopAccountInfoBase]/bankName
  • ⚠️ added the new required request property allOf[subschema #1]/accountInfo/oneOf[subschema #8: EGP Account]/allOf[#/components/schemas/EgpAccountInfoBase]/bankName
  • ⚠️ the request property allOf[subschema #1]/accountInfo/oneOf[subschema #24: PKR Account]/allOf[#/components/schemas/PkrAccountInfoBase]/bankName became required

POST /platform/external-accounts

  • ⚠️ added the new required request property accountInfo/oneOf[subschema #11: GHS Account]/allOf[#/components/schemas/GhsAccountInfoBase]/bankName
  • ⚠️ added the new required request property accountInfo/oneOf[subschema #2: BDT Account]/allOf[#/components/schemas/BdtAccountInfoBase]/bankName
  • ⚠️ added the new required request property accountInfo/oneOf[subschema #6: COP Account]/allOf[#/components/schemas/CopAccountInfoBase]/bankName
  • ⚠️ added the new required request property accountInfo/oneOf[subschema #8: EGP Account]/allOf[#/components/schemas/EgpAccountInfoBase]/bankName
  • ⚠️ the request property accountInfo/oneOf[subschema #24: PKR Account]/allOf[#/components/schemas/PkrAccountInfoBase]/bankName became required

POST webhook:agent-action

  • ⚠️ added the new required request property allOf[subschema #2]/data/quote/allOf[#/components/schemas/Quote]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #28: BDT Account]/allOf[#/components/schemas/BdtAccountInfo]/allOf[#/components/schemas/BdtAccountInfoBase]/bankName
  • ⚠️ added the new required request property allOf[subschema #2]/data/quote/allOf[#/components/schemas/Quote]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #31: EGP Account]/allOf[#/components/schemas/EgpAccountInfo]/allOf[#/components/schemas/EgpAccountInfoBase]/bankName
  • ⚠️ added the new required request property allOf[subschema #2]/data/quote/allOf[#/components/schemas/Quote]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #32: GHS Account]/allOf[#/components/schemas/GhsAccountInfo]/allOf[#/components/schemas/GhsAccountInfoBase]/bankName
  • ⚠️ added the new required request property allOf[subschema #2]/data/transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #28: BDT Account]/allOf[#/components/schemas/BdtAccountInfo]/allOf[#/components/schemas/BdtAccountInfoBase]/bankName
  • ⚠️ added the new required request property allOf[subschema #2]/data/transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #31: EGP Account]/allOf[#/components/schemas/EgpAccountInfo]/allOf[#/components/schemas/EgpAccountInfoBase]/bankName
  • ⚠️ added the new required request property allOf[subschema #2]/data/transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #32: GHS Account]/allOf[#/components/schemas/GhsAccountInfo]/allOf[#/components/schemas/GhsAccountInfoBase]/bankName
  • ⚠️ the request property allOf[subschema #2]/data/quote/allOf[#/components/schemas/Quote]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #36: PKR Account]/allOf[#/components/schemas/PkrAccountInfo]/allOf[#/components/schemas/PkrAccountInfoBase]/bankName became required
  • ⚠️ the request property allOf[subschema #2]/data/transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #36: PKR Account]/allOf[#/components/schemas/PkrAccountInfo]/allOf[#/components/schemas/PkrAccountInfoBase]/bankName became required

POST webhook:internal-account-status

  • ⚠️ added the new required request property allOf[subschema #2]/data/fundingPaymentInstructions/items/accountOrWalletInfo/oneOf[subschema #28: BDT Account]/allOf[#/components/schemas/BdtAccountInfo]/allOf[#/components/schemas/BdtAccountInfoBase]/bankName
  • ⚠️ added the new required request property allOf[subschema #2]/data/fundingPaymentInstructions/items/accountOrWalletInfo/oneOf[subschema #31: EGP Account]/allOf[#/components/schemas/EgpAccountInfo]/allOf[#/components/schemas/EgpAccountInfoBase]/bankName
  • ⚠️ added the new required request property allOf[subschema #2]/data/fundingPaymentInstructions/items/accountOrWalletInfo/oneOf[subschema #32: GHS Account]/allOf[#/components/schemas/GhsAccountInfo]/allOf[#/components/schemas/GhsAccountInfoBase]/bankName
  • ⚠️ the request property allOf[subschema #2]/data/fundingPaymentInstructions/items/accountOrWalletInfo/oneOf[subschema #36: PKR Account]/allOf[#/components/schemas/PkrAccountInfo]/allOf[#/components/schemas/PkrAccountInfoBase]/bankName became required

POST webhook:outgoing-payment

  • ⚠️ added the new required request property allOf[subschema #2]/data/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #28: BDT Account]/allOf[#/components/schemas/BdtAccountInfo]/allOf[#/components/schemas/BdtAccountInfoBase]/bankName
  • ⚠️ added the new required request property allOf[subschema #2]/data/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #31: EGP Account]/allOf[#/components/schemas/EgpAccountInfo]/allOf[#/components/schemas/EgpAccountInfoBase]/bankName
  • ⚠️ added the new required request property allOf[subschema #2]/data/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #32: GHS Account]/allOf[#/components/schemas/GhsAccountInfo]/allOf[#/components/schemas/GhsAccountInfoBase]/bankName
  • ⚠️ the request property allOf[subschema #2]/data/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #36: PKR Account]/allOf[#/components/schemas/PkrAccountInfo]/allOf[#/components/schemas/PkrAccountInfoBase]/bankName became required

Detected by oasdiff. This PR will need approval from an API reviewer before merge.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 2, 2026

✱ Stainless preview builds for grid

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

cli

docs(api): add bankName to required fields in external accounts parameter docs

csharp

fix(types): make BankName required in BDT/COP/EGP/GHS/PKR account types

go

fix(types): make bankName required in BDT/COP/EGP/GHS/PKR external account params

kotlin

feat(api): add required bankName field to BDT/COP/EGP/GHS/PKR external account models

openapi

fix(types): make bankName required in BDT/EGP/GHS/PKR/COP account info

php

fix(types): make bankName required across external account types

python

fix(types): make bank_name required in BDT/COP/EGP/GHS/PKR external account types

ruby

fix(types): make bank_name required in BDT/COP/EGP/GHS/PKR account models

typescript

feat(api): add bankName requirement to BDT/COP/EGP/GHS/PKR external account types

Edit this comment to update them. They will appear in their respective SDK's changelogs.

grid-openapi studio · code · diff

Your SDK build had at least one "note" diagnostic, but this did not represent a regression.
generate ✅

grid-ruby studio · code · diff

Your SDK build had at least one "note" diagnostic, but this did not represent a regression.
generate ✅build ✅lint ✅test ✅

grid-kotlin studio · code · diff

Your SDK build had at least one "note" diagnostic, but this did not represent a regression.
generate ✅build ✅lint ✅test ✅

grid-typescript studio · code · diff

Your SDK build had at least one "note" diagnostic, but this did not represent a regression.
generate ✅build ✅lint ✅test ✅

npm install https://pkg.stainless.com/s/grid-typescript/0a4a225a214bdfa336adc9ca8a25e3718cd940f4/dist.tar.gz
⚠️ grid-python studio · code · diff

Your SDK build had a failure in the lint CI job, which is a regression from the base state.
generate ✅build ✅ (prev: build ⏭️) → lint ❗ (prev: lint ⏭️) → test ❗

pip install https://pkg.stainless.com/s/grid-python/1ce3f87f5d027186b35072c0ae2c248d19706607/grid-0.0.1-py3-none-any.whl
grid-csharp studio · code · diff

Your SDK build had at least one "warning" diagnostic, but this did not represent a regression.
generate ⚠️build ❗lint ✅test ❗

grid-go studio · code · diff

Your SDK build had at least one "note" diagnostic, but this did not represent a regression.
generate ✅build ✅ (prev: build ⏭️) → lint ❗test ❗

go get github.com/stainless-sdks/grid-go@f0f36c9731f3f904a0403424b6e8b82f707a386b
grid-php studio · code · diff

Your SDK build had at least one "note" diagnostic, but this did not represent a regression.
generate ✅lint ✅test ✅

grid-cli studio · code · diff

Your SDK build had at least one "warning" diagnostic, but this did not represent a regression.
generate ⚠️build ❗lint ❗test ❗


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-06-02 19:23:26 UTC

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Jun 2, 2026

Greptile Summary

This PR syncs five per-currency account info base schemas (BDT, COP, EGP, GHS, PKR) by adding bankName as a new globally required field and regenerating both openapi.yaml and mintlify/openapi.yaml bundles. For PKR, bankName was already defined for the MOBILE_MONEY rail — this change promotes it to the required array and adds it to the BANK_TRANSFER rail description as well, while removing the now-redundant duplicate property definition at the bottom of the schema.

  • bankName added as globally required: All five schemas now unconditionally require bankName; callers who previously omitted the field will fail validation, making this a breaking API contract change.
  • PKR property reorder: bankName was moved to the top of the properties list and the duplicate definition at the end was removed — correct cleanup, no semantic change.
  • PR description vs diff mismatch: The description references PaymentInstructions.yaml (new currencies) and external_accounts/ schema updates, neither of which appear in the diff.

Confidence Score: 4/5

Safe to merge if the backend already enforces bankName; the schema is catching up to an existing constraint. Proceed with caution if bankName is a new backend requirement being rolled out simultaneously.

The core change — promoting bankName to unconditionally required — is consistent across all five schemas and the generated bundles match the sources correctly. The main concern is that adding a field to required is a backward-incompatible contract change: any existing client omitting bankName will now fail validation. If the backend already requires it in production this is a documentation-only sync, but if not, callers need advance notice. The PR description also references PaymentInstructions.yaml and external_accounts/ updates that don't appear in the diff, which warrants confirmation before merging.

All five *AccountInfoBase.yaml source schemas carry the same breaking-change pattern; openapi.yaml and mintlify/openapi.yaml are generated bundles and look correct.

Important Files Changed

Filename Overview
openapi/components/schemas/common/BdtAccountInfoBase.yaml Adds bankName as a new top-level required field and to BANK_TRANSFER/MOBILE_MONEY rails in description; breaking change for existing callers who omit bankName.
openapi/components/schemas/common/CopAccountInfoBase.yaml Adds bankName as globally required field; updates rail-specific description for BANK_TRANSFER and MOBILE_MONEY.
openapi/components/schemas/common/EgpAccountInfoBase.yaml Adds bankName as globally required field; updates description for both payment rails.
openapi/components/schemas/common/GhsAccountInfoBase.yaml Adds bankName as globally required field; updates description for BANK_TRANSFER and MOBILE_MONEY rails.
openapi/components/schemas/common/PkrAccountInfoBase.yaml bankName was already a MOBILE_MONEY field; now added to required array and BANK_TRANSFER rail. Property is moved to top of the list and the duplicate definition at the bottom is removed.
openapi.yaml Generated bundle reflecting the same bankName changes across all five account info base schemas.
mintlify/openapi.yaml Mintlify copy of generated bundle; identical changes to openapi.yaml — correct per the build process.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    subgraph "Required (all rails)"
        R1[accountType]
        R2[bankName NEW]
    end

    subgraph "BDT / GHS"
        BT1["BANK_TRANSFER: accountNumber + bankName"]
        MM1["MOBILE_MONEY: bankName + phoneNumber"]
    end

    subgraph "EGP"
        BT2["BANK_TRANSFER: iban + bankName"]
        MM2["MOBILE_MONEY: bankName + phoneNumber"]
    end

    subgraph "COP"
        BT3["BANK_TRANSFER: accountNumber + bankAccountType + bankName"]
        MM3["MOBILE_MONEY: bankName + phoneNumber"]
    end

    subgraph "PKR"
        BT4["BANK_TRANSFER: accountNumber + bankName"]
        MM4["MOBILE_MONEY: bankName + phoneNumber"]
    end

    R2 --> BT1 & MM1
    R2 --> BT2 & MM2
    R2 --> BT3 & MM3
    R2 --> BT4 & MM4
Loading

Fix All in Claude Code

Prompt To Fix All With AI
Fix the following 2 code review issues. Work through them one at a time, proposing concise fixes.

---

### Issue 1 of 2
openapi/components/schemas/common/BdtAccountInfoBase.yaml:3-4
**`bankName` now globally required — breaking change for existing callers**

`bankName` has been added to the top-level `required` array, making it unconditionally required regardless of payment rail. Any existing API client submitting a BDT (or COP, EGP, GHS) account payload without `bankName` will now fail schema validation. The same pattern applies across all five schemas in this PR. If the backend already enforces this constraint, this sync is purely documentational — but if not, it is a backward-incompatible contract change that may need a migration notice or deprecation period.

### Issue 2 of 2
openapi/components/schemas/common/BdtAccountInfoBase.yaml:1-5
**PR description references changes not present in the diff**

The PR description lists `common/PaymentInstructions.yaml` (new currencies added) and `external_accounts/` (per-currency external account schemas) as synced, but neither appears in this diff. Were those changes intentionally excluded from this PR, or are they still pending in a follow-up sync?

Reviews (1): Last reviewed commit: "chore: Sync account schemas" | Re-trigger Greptile

Comment on lines 3 to +4
- accountType
- bankName
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 bankName now globally required — breaking change for existing callers

bankName has been added to the top-level required array, making it unconditionally required regardless of payment rail. Any existing API client submitting a BDT (or COP, EGP, GHS) account payload without bankName will now fail schema validation. The same pattern applies across all five schemas in this PR. If the backend already enforces this constraint, this sync is purely documentational — but if not, it is a backward-incompatible contract change that may need a migration notice or deprecation period.

Prompt To Fix With AI
This is a comment left during a code review.
Path: openapi/components/schemas/common/BdtAccountInfoBase.yaml
Line: 3-4

Comment:
**`bankName` now globally required — breaking change for existing callers**

`bankName` has been added to the top-level `required` array, making it unconditionally required regardless of payment rail. Any existing API client submitting a BDT (or COP, EGP, GHS) account payload without `bankName` will now fail schema validation. The same pattern applies across all five schemas in this PR. If the backend already enforces this constraint, this sync is purely documentational — but if not, it is a backward-incompatible contract change that may need a migration notice or deprecation period.

How can I resolve this? If you propose a fix, please make it concise.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Fix in Claude Code

Comment on lines 1 to 5
type: object
required:
- accountType
- bankName
description: 'Required fields depend on the selected paymentRails:
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.

P2 PR description references changes not present in the diff

The PR description lists common/PaymentInstructions.yaml (new currencies added) and external_accounts/ (per-currency external account schemas) as synced, but neither appears in this diff. Were those changes intentionally excluded from this PR, or are they still pending in a follow-up sync? Were the PaymentInstructions.yaml and external_accounts/ changes intentionally left out of this PR, or are they missing by mistake?

Prompt To Fix With AI
This is a comment left during a code review.
Path: openapi/components/schemas/common/BdtAccountInfoBase.yaml
Line: 1-5

Comment:
**PR description references changes not present in the diff**

The PR description lists `common/PaymentInstructions.yaml` (new currencies added) and `external_accounts/` (per-currency external account schemas) as synced, but neither appears in this diff. Were those changes intentionally excluded from this PR, or are they still pending in a follow-up sync? Were the PaymentInstructions.yaml and external_accounts/ changes intentionally left out of this PR, or are they missing by mistake?

How can I resolve this? If you propose a fix, please make it concise.

Fix in Claude Code

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.

0 participants