Skip to content

chore: Sync account schemas#546

Merged
mohamedwane merged 1 commit into
mainfrom
auto/sync-grid-schemas-20260603-182422
Jun 3, 2026
Merged

chore: Sync account schemas#546
mohamedwane merged 1 commit into
mainfrom
auto/sync-grid-schemas-20260603-182422

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 3, 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 3, 2026 6:24pm

Request Review

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

github-actions Bot commented Jun 3, 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 3, 2026

✱ Stainless preview builds for grid

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

cli

docs(api): update account-info parameter requirements for external accounts

csharp

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

go

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

kotlin

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

openapi

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

php

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

python

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

ruby

fix(types): require bank_name in BDT/COP/EGP/GHS/PKR external account models

typescript

fix(types): require bankName field in BDT/COP/EGP/GHS/PKR external account types
grid-openapi studio · code

Your SDK build had at least one "note" diagnostic.
generate ✅

grid-ruby studio · code

Your SDK build had at least one "note" diagnostic.
generate ✅build ✅lint ✅test ✅

grid-kotlin studio · code

Your SDK build had at least one "note" diagnostic.
generate ✅build ✅lint ✅test ✅

⚠️ grid-python studio · code

Your SDK build had a failure in the lint CI job, which is a regression from the base state.
generate ✅build ✅lint ❗test ❗

pip install https://pkg.stainless.com/s/grid-python/e0407d1d5dc163a24e7113cc895b9d307a649705/grid-0.0.1-py3-none-any.whl
⚠️ grid-csharp studio · code

Your SDK build had a failure in the build CI job, which is a regression from the base state.
generate ⚠️build ❗lint ✅test ❗

grid-typescript studio · code

Your SDK build had at least one "note" diagnostic.
generate ✅build ✅lint ✅test ✅

npm install https://pkg.stainless.com/s/grid-typescript/f9c3f11a720b40d03e2b2ed4ad0bb23da7745bde/dist.tar.gz
⚠️ grid-go studio · code

Your SDK build had a failure in the lint CI job, which is a regression from the base state.
generate ✅build ✅lint ❗test ❗

go get github.com/stainless-sdks/grid-go@0cc569911c1ba3ca1820ad2a1463bbd24b5fe624
grid-php studio · code

Your SDK build had at least one "note" diagnostic.
generate ✅lint ✅test ✅

⚠️ grid-cli studio · code

Your SDK build had a failure in the build CI job, which is a regression from the base state.
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-03 22:28:33 UTC

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Jun 3, 2026

Greptile Summary

This auto-synced PR adds bankName as a new required field to five per-currency account info base schemas (BDT, COP, EGP, GHS, PKR), reflecting updated VASP adapter field definitions from sparkcore. The bundled openapi.yaml and mintlify/openapi.yaml are regenerated in lock-step and are fully consistent with the source component files.

  • BDT, COP, EGP, GHS: bankName is a net-new property added to properties and placed in the top-level required array; it is now mandatory regardless of payment rail.
  • PKR: bankName already existed as an optional property; this PR promotes it to globally required and extends the requirement from MOBILE_MONEY-only to both BANK_TRANSFER and MOBILE_MONEY, which is a more impactful change for existing consumers on the bank-transfer rail.

Confidence Score: 4/5

Safe to merge once confirmed the backend already enforces bankName on all affected rails in production.

The schema changes are internally consistent across all five currencies and both bundled files. The one area deserving attention is that adding bankName to the global required array is a backward-incompatible contract change — callers currently sending valid requests without bankName will start receiving validation errors. For PKR specifically, existing BANK_TRANSFER consumers are newly affected. The risk is low if the sparkcore backend change shipped first, but worth a quick double-check before merging.

The five *AccountInfoBase.yaml source files all carry the same behavioral change; PkrAccountInfoBase.yaml deserves slightly more attention because bankName was previously defined as optional for BANK_TRANSFER.

Important Files Changed

Filename Overview
openapi/components/schemas/common/BdtAccountInfoBase.yaml Adds bankName as a globally required field and new property; breaking change for existing BDT consumers who don't supply it.
openapi/components/schemas/common/CopAccountInfoBase.yaml Adds bankName as globally required and new property; mirrors BDT pattern consistently.
openapi/components/schemas/common/EgpAccountInfoBase.yaml Adds bankName as globally required and new property; mirrors BDT pattern consistently.
openapi/components/schemas/common/GhsAccountInfoBase.yaml Adds bankName as globally required and new property; mirrors BDT pattern consistently.
openapi/components/schemas/common/PkrAccountInfoBase.yaml Moves bankName from bottom of properties to top, promotes it from MOBILE_MONEY-only requirement to globally required (now includes BANK_TRANSFER); existing BANK_TRANSFER consumers not sending bankName will break.
openapi.yaml Generated bundle updated in sync with component YAML files; consistent with source schemas.
mintlify/openapi.yaml Mintlify bundle updated identically to openapi.yaml; changes are consistent and correct.

Sequence Diagram

sequenceDiagram
    participant Client
    participant GridAPI
    participant Validator

    Client->>GridAPI: POST /payment (BDT/COP/EGP/GHS/PKR account)
    GridAPI->>Validator: Validate request body
    alt bankName present (new requirement)
        Validator-->>GridAPI: Valid
        GridAPI-->>Client: 200 OK
    else bankName missing (previously valid)
        Validator-->>GridAPI: Required field missing
        GridAPI-->>Client: 422 Validation Error
    end
Loading
Prompt To Fix All With AI
Fix the following 1 code review issue. Work through them one at a time, proposing concise fixes.

---

### Issue 1 of 1
openapi/components/schemas/common/BdtAccountInfoBase.yaml:2-4
**Breaking change: `bankName` added as globally required**

`bankName` is now in the top-level `required` array, making it mandatory for every request that includes any of these five schemas (BDT, COP, EGP, GHS, PKR). Any existing API consumer submitting a valid payload today — one that omits `bankName` — will receive a validation error after this change lands. For PKR this is a double-impact: `bankName` was previously only documented as required for `MOBILE_MONEY`; it is now required for `BANK_TRANSFER` as well. Please confirm the backend already enforces `bankName` on all existing live traffic so that the schema change and backend enforcement land together, and consider whether a changelog notice or versioned endpoint bump is needed.

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

Comment on lines 2 to +4
required:
- 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 Breaking change: bankName added as globally required

bankName is now in the top-level required array, making it mandatory for every request that includes any of these five schemas (BDT, COP, EGP, GHS, PKR). Any existing API consumer submitting a valid payload today — one that omits bankName — will receive a validation error after this change lands. For PKR this is a double-impact: bankName was previously only documented as required for MOBILE_MONEY; it is now required for BANK_TRANSFER as well. Please confirm the backend already enforces bankName on all existing live traffic so that the schema change and backend enforcement land together, and consider whether a changelog notice or versioned endpoint bump is needed.

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

Comment:
**Breaking change: `bankName` added as globally required**

`bankName` is now in the top-level `required` array, making it mandatory for every request that includes any of these five schemas (BDT, COP, EGP, GHS, PKR). Any existing API consumer submitting a valid payload today — one that omits `bankName` — will receive a validation error after this change lands. For PKR this is a double-impact: `bankName` was previously only documented as required for `MOBILE_MONEY`; it is now required for `BANK_TRANSFER` as well. Please confirm the backend already enforces `bankName` on all existing live traffic so that the schema change and backend enforcement land together, and consider whether a changelog notice or versioned endpoint bump is needed.

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!

@mohamedwane mohamedwane merged commit bfdf3e7 into main Jun 3, 2026
9 checks passed
@mohamedwane mohamedwane deleted the auto/sync-grid-schemas-20260603-182422 branch June 3, 2026 22:21
shreyav pushed a commit that referenced this pull request Jun 4, 2026
## Summary

Updates documentation and Grid Visualizer to match recent OpenAPI schema changes for account types (BDT, COP, EGP, GHS, PKR).

**Changes:**

- **Mintlify docs**: Add missing `bankName` field to Colombia (COP) mobile money example
- **Grid Visualizer**: Update account-types.ts to match schema field requirements:
  - BDT_ACCOUNT: Add required `bankName` field
  - COP_ACCOUNT: Add required `bankName` and `bankAccountType` fields
  - EGP_ACCOUNT: Fix fields to match schema (`iban` for bank transfer, not `accountNumber`; remove non-existent `swiftCode`)
  - GHS_ACCOUNT: Add required `bankName` field  
  - PKR_ACCOUNT: Reorder fields with `bankName` first (required for all rails, not just mobile money)

**Related commits:**
- bfdf3e7 chore: Sync account schemas (#546)

## Test plan

- [ ] Verify lint passes (`make lint`)
- [ ] Review account field specs in Grid Visualizer match OpenAPI schemas
- [ ] Verify COP mobile money example includes required `bankName`

🤖 Generated with [Claude Code](https://claude.com/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.

1 participant