Skip to content

chore: Sync account schemas#353

Open
lightspark-copybara[bot] wants to merge 1 commit intomainfrom
auto/sync-grid-schemas-20260420-180444
Open

chore: Sync account schemas#353
lightspark-copybara[bot] wants to merge 1 commit intomainfrom
auto/sync-grid-schemas-20260420-180444

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 Apr 20, 2026

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

Project Deployment Actions Updated (UTC)
grid-flow-builder Ready Ready Preview, Comment Apr 20, 2026 6:05pm

Request Review

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 20, 2026

✱ Stainless preview builds

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

kotlin

fix(types): make nationality required in beneficiaries, add bankName/phoneNumber to accounts

openapi

fix(types): add required fields to account/beneficiary types across currencies

python

feat(api): add bank_name to accounts, phone_number to USD, require nationality in beneficiaries

typescript

feat(api): add bankName to account types, phoneNumber to USD, require beneficiary nationality

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

grid-python studio · code · diff

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

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

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

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/918bcbd0d20ba8db60500d5d55656d7e0254549e/dist.tar.gz
grid-kotlin studio · code · diff

Your SDK build had at least one new note diagnostic, which is a regression from the base state.
generate ✅build ✅lint ✅test ✅

New diagnostics (59 note)
💡 Schema/EnumHasOneMember: Confirm intentional use of `enum` with single member.
💡 Schema/EnumHasOneMember: Confirm intentional use of `enum` with single member.
💡 Schema/EnumHasOneMember: Confirm intentional use of `enum` with single member.
💡 Schema/EnumHasOneMember: Confirm intentional use of `enum` with single member.
💡 Schema/EnumHasOneMember: Confirm intentional use of `enum` with single member.
💡 Schema/EnumHasOneMember: Confirm intentional use of `enum` with single member.
💡 Schema/EnumHasOneMember: Confirm intentional use of `enum` with single member.
💡 Schema/EnumHasOneMember: Confirm intentional use of `enum` with single member.
💡 Schema/EnumHasOneMember: Confirm intentional use of `enum` with single member.
💡 Schema/EnumHasOneMember: Confirm intentional use of `enum` with single member.

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-04-20 18:10:46 UTC

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Apr 20, 2026

Greptile Summary

This PR syncs auto-generated account schemas from sparkcore VASP adapter definitions, adding support for ~15 new currency corridors (AED, BDT, BWP, COP, EGP, GHS, GTQ, HTG, JMD, MWK, MYR, PKR, RWF, SGD, THB, VND, etc.) and flattening the previous *AccountInfoBase/*AccountInfo allOf split into single flat schemas.

  • UsdAccountInfo has two new required fields (bankName, phoneNumber) that did not exist before. This is a breaking change for any consumer that constructs or validates UsdAccountInfo payloads — verify existing integrations are prepared for the stricter schema before merging.
  • MOBILE_MONEY is listed as a valid paymentRails value for USD — worth confirming this is intentional and not a copy-paste artifact from mobile-money corridor schemas.

Confidence Score: 4/5

Safe to merge once the UsdAccountInfo breaking-change additions are confirmed intentional by the sparkcore team.

One P1 finding: bankName and phoneNumber added as required fields on UsdAccountInfo is a breaking schema change for existing API consumers. This needs explicit confirmation that downstream integrations have been updated before merging. All other changes (new currencies, schema flattening, new beneficiary types) look clean.

openapi/components/schemas/common/UsdAccountInfo.yaml and its reflection in mintlify/openapi.yaml / openapi.yaml — the new required fields are the only concern.

Important Files Changed

Filename Overview
openapi/components/schemas/common/UsdAccountInfo.yaml Flattened from allOf pattern; adds bankName and phoneNumber as new required fields (breaking change) and adds MOBILE_MONEY to paymentRails enum (unusual for USD)
openapi/components/schemas/common/AedAccountInfo.yaml New AED schema with IBAN and SWIFT fields; clean structure with proper regex validation
openapi/components/schemas/common/GhsAccountInfo.yaml New GHS schema supporting both BANK_TRANSFER and MOBILE_MONEY rails; requires bankName, accountNumber, and phoneNumber
openapi/components/schemas/common/KesAccountInfo.yaml New KES mobile money schema; phone number constrained to Kenyan prefix (+254) with 9-digit suffix
openapi/components/schemas/common/KesBeneficiary.yaml New beneficiary schema (one of several identical INDIVIDUAL beneficiary schemas added in this PR)
openapi/components/schemas/common/PaymentInstructions.yaml New currencies added to oneOf list and discriminator mapping; all new entries have matching discriminator keys
mintlify/openapi.yaml Bundled spec updated to reflect all schema changes including the flattening, new currencies, and the UsdAccountInfo breaking-change additions
openapi/components/schemas/common/MxnAccountInfo.yaml Flattened from allOf pattern; no new required fields, only structural simplification
openapi/components/schemas/common/BwpBeneficiary.yaml New beneficiary schema, identical structure to all other new *Beneficiary files (INDIVIDUAL type only)

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    PI[PaymentInstructions.yaml\noneOf + discriminator] --> USD[PaymentUsdAccountInfo]
    PI --> MXN[PaymentMxnAccountInfo]
    PI --> EUR[PaymentEurAccountInfo]
    PI --> GBP[PaymentGbpAccountInfo]
    PI --> NGN[PaymentNgnAccountInfo]
    PI --> KES[PaymentKesAccountInfo]
    PI --> NEW["New Corridors\nAED, BDT, BWP, COP, EGP\nGHS, GTQ, HTG, JMD, MWK\nMYR, PKR, RWF, SGD, THB, VND\nXAF, ZAR, ZMW ..."]

    USD -->|allOf| UsdBase[UsdAccountInfo\n⚠️ bankName + phoneNumber\nnow REQUIRED]
    MXN -->|allOf| MxnBase[MxnAccountInfo\nflattened]
    KES -->|allOf| KesBase[KesAccountInfo\n+254 phone regex]

    KES -.->|beneficiary| KesBen[KesBeneficiary\nINDIVIDUAL only]
    NGN -.->|beneficiary| NgnBen[NgnBeneficiary\nINDIVIDUAL only]
    NEW -.->|beneficiary| NewBen["*Beneficiary schemas\n(BWP/MWK/RWF/TZS/UGX\nXAF/XOF/ZAR/ZMW)\nall identical structure"]
Loading

Fix All in Claude Code

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

Comment:
**Breaking change: `bankName` and `phoneNumber` now required**

`bankName` and `phoneNumber` have been added to the `required` list of `UsdAccountInfo`. Previously only `accountType`, `paymentRails`, `accountNumber`, and `routingNumber` were required. Any existing API consumer that constructs or validates a `UsdAccountInfo` payload without these two fields will now fail schema validation.

Additionally, `phoneNumber` in a USD bank account context (ACH / WIRE / RTP / FedNow) is unusual — it makes sense for the `MOBILE_MONEY` rail but not for the standard domestic banking rails. If `phoneNumber` is only needed when the payment rail is `MOBILE_MONEY`, consider making it conditionally required (e.g., via `if/then` in JSON Schema) rather than unconditionally required.

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

---

This is a comment left during a code review.
Path: openapi/components/schemas/common/UsdAccountInfo.yaml
Line: 17-24

Comment:
**`MOBILE_MONEY` rail in USD schema is unexpected**

`MOBILE_MONEY` is included in the `paymentRails` enum for `UsdAccountInfo`. USD transfers are typically ACH, WIRE, RTP, or FedNow — `MOBILE_MONEY` is primarily associated with African/Asian mobile payment networks. If this is intentional (e.g., for a specific USD-denominated mobile money corridor), it may be worth adding a comment or description to clarify the use case so API consumers understand when to set this value.

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

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

Comment on lines +1 to +8
type: object
required:
- accountType
- paymentRails
- accountNumber
- routingNumber
- bankName
- phoneNumber
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 and phoneNumber now required

bankName and phoneNumber have been added to the required list of UsdAccountInfo. Previously only accountType, paymentRails, accountNumber, and routingNumber were required. Any existing API consumer that constructs or validates a UsdAccountInfo payload without these two fields will now fail schema validation.

Additionally, phoneNumber in a USD bank account context (ACH / WIRE / RTP / FedNow) is unusual — it makes sense for the MOBILE_MONEY rail but not for the standard domestic banking rails. If phoneNumber is only needed when the payment rail is MOBILE_MONEY, consider making it conditionally required (e.g., via if/then in JSON Schema) rather than unconditionally required.

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

Comment:
**Breaking change: `bankName` and `phoneNumber` now required**

`bankName` and `phoneNumber` have been added to the `required` list of `UsdAccountInfo`. Previously only `accountType`, `paymentRails`, `accountNumber`, and `routingNumber` were required. Any existing API consumer that constructs or validates a `UsdAccountInfo` payload without these two fields will now fail schema validation.

Additionally, `phoneNumber` in a USD bank account context (ACH / WIRE / RTP / FedNow) is unusual — it makes sense for the `MOBILE_MONEY` rail but not for the standard domestic banking rails. If `phoneNumber` is only needed when the payment rail is `MOBILE_MONEY`, consider making it conditionally required (e.g., via `if/then` in JSON Schema) rather than unconditionally required.

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

Fix in Claude Code

Comment on lines +17 to +24
type: string
enum:
- ACH
- WIRE
- RTP
- FEDNOW
- BANK_TRANSFER
- MOBILE_MONEY
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 MOBILE_MONEY rail in USD schema is unexpected

MOBILE_MONEY is included in the paymentRails enum for UsdAccountInfo. USD transfers are typically ACH, WIRE, RTP, or FedNow — MOBILE_MONEY is primarily associated with African/Asian mobile payment networks. If this is intentional (e.g., for a specific USD-denominated mobile money corridor), it may be worth adding a comment or description to clarify the use case so API consumers understand when to set this value.

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

Comment:
**`MOBILE_MONEY` rail in USD schema is unexpected**

`MOBILE_MONEY` is included in the `paymentRails` enum for `UsdAccountInfo`. USD transfers are typically ACH, WIRE, RTP, or FedNow — `MOBILE_MONEY` is primarily associated with African/Asian mobile payment networks. If this is intentional (e.g., for a specific USD-denominated mobile money corridor), it may be worth adding a comment or description to clarify the use case so API consumers understand when to set this value.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants