Skip to content

chore: Sync account schemas - #374

Closed
lightspark-copybara[bot] wants to merge 2 commits into
mainfrom
auto/sync-grid-schemas-20260422-214338
Closed

chore: Sync account schemas#374
lightspark-copybara[bot] wants to merge 2 commits into
mainfrom
auto/sync-grid-schemas-20260422-214338

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

vercel Bot commented Apr 22, 2026

Copy link
Copy Markdown

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 22, 2026 11:06pm

Request Review

@github-actions

github-actions Bot commented Apr 22, 2026

Copy link
Copy Markdown
Contributor

✱ Stainless preview builds

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

kotlin

feat(api): add bankName to accounts, require nationality, remove helpers, update GTQ/USD fields

openapi

fix(types): flatten account schemas, require paymentRails, add bankName/phoneNumber/nationality

python

feat(api): add bank_name to accounts, update GTQ/USD, require nationality in beneficiaries

typescript

feat(api): add bankName/phoneNumber fields, update payment rails in 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 "error" diagnostic, but this did not represent a regression.
generate ❗

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 ✅ (prev: build ⏭️) → lint ✅ (prev: lint ⏭️) → test ✅

New diagnostics (60 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.
grid-python studio · code · diff

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

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

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

npm install https://pkg.stainless.com/s/grid-typescript/e258815b83067511e1d7c69ad355c660ed620554/dist.tar.gz

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-22 23:10:49 UTC

@greptile-apps

greptile-apps Bot commented Apr 22, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This auto-synced PR flattens all *AccountInfo schemas from allOf: [*AccountInfoBase, {paymentRails}] into self-contained type: object definitions, inlining full field definitions and validation constraints derived from sparkcore VASP adapter definitions. The *AccountInfoBase schemas remain unchanged and continue to be referenced by the *ExternalAccountCreateInfo schemas.

  • P1 — UsdAccountInfo new required fields: phoneNumber and bankName are now required; any existing USD payment instruction payload missing these fields will fail schema validation. MOBILE_MONEY is also newly added as a USD payment rail, which is unconventional — worth confirming this corridor is live and intentional.
  • P1 — Beneficiary nationality promoted to required: 10 beneficiary schemas (BwpBeneficiary, ZarBeneficiary, and 8 others) now require nationality. Existing callers that omit this field will break.

Confidence Score: 4/5

Safe to merge only after confirming the backend already enforces the new required fields and all API consumers are prepared for the breaking changes.

Two P1 concerns: new required fields on UsdAccountInfo (phoneNumber, bankName) and nationality promoted to required on 10 beneficiary schemas. Both are breaking changes for existing API consumers if the backend started enforcing these before clients updated. The rest of the changes (schema flattening, IBAN/SWIFT validation, rail additions for non-USD currencies) are well-structured and consistent.

openapi/components/schemas/common/UsdAccountInfo.yaml (MOBILE_MONEY rail + new required fields) and all 10 updated *Beneficiary.yaml files where nationality is now required.

Important Files Changed

Filename Overview
openapi/components/schemas/common/UsdAccountInfo.yaml Flattened from allOf+Base to a standalone schema; adds paymentRails, bankName, phoneNumber as required, and adds MOBILE_MONEY as a payment rail — notable for a USD schema.
openapi/components/schemas/common/BwpBeneficiary.yaml Promotes nationality to required — a breaking change for callers submitting BWP beneficiaries without this field. Same pattern applies to 9 other beneficiary schemas.
openapi/components/schemas/common/CopBeneficiary.yaml Reorders address before documentType/documentNumber — cosmetic property ordering change, no functional impact.
openapi.yaml Bundled spec updated in sync with component YAML changes; removes all *AccountInfoBase named schemas and flattens them into the *AccountInfo schemas. Mirrors mintlify/openapi.yaml exactly.
mintlify/openapi.yaml Kept in exact sync with openapi.yaml — no divergence detected.
openapi/components/schemas/common/BdtAccountInfo.yaml Flattened to standalone schema; adds bankName, accountNumber, branchCode (required), swiftCode (optional), phoneNumber (required), with correct regex patterns.
openapi/components/schemas/common/EgpAccountInfo.yaml Flattened to standalone schema; adds bankName, accountNumber (required), iban and swiftCode (optional) with correct IBAN and SWIFT regex patterns.
openapi/components/schemas/common/ZarBeneficiary.yaml Promotes nationality to required — breaking change for ZAR beneficiary submissions missing this field.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[sparkcore VASP adapter definitions] -->|auto-sync| B[common/*AccountInfo.yaml]
    A -->|auto-sync| C[common/*Beneficiary.yaml]
    B -->|used by| D[PaymentInstructions oneOf]
    C -->|used by| E[*ExternalAccountCreateInfo.yaml]
    F[common/*AccountInfoBase.yaml\nunchanged] -->|$ref| E
    E -->|bundled into| G[openapi.yaml]
    G -->|copied to| H[mintlify/openapi.yaml]
    B -->|flattened allOf removed| I["Before: allOf[*Base + paymentRails]"]
    B -->|now standalone| J["After: flat type:object with all fields"]
    style I fill:#f9a,stroke:#f00
    style J fill:#afa,stroke:#090
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: 19-26

Comment:
**`MOBILE_MONEY` added to USD payment rails**

`MOBILE_MONEY` has been added as a valid payment rail for `UsdAccountInfo`, alongside the existing US-specific rails (`ACH`, `WIRE`, `RTP`, `FEDNOW`, `BANK_TRANSFER`). USD + mobile money is an unusual pairing — traditional US dollar payments don't go over mobile money networks. If this is intended to cover specific corridors (e.g., El Salvador or other dollarized economies), it's worth confirming that the backend already supports this rail for USD and that the discriminator logic downstream handles it correctly.

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: 2-8

Comment:
**New required fields may be a breaking schema change**

`phoneNumber` and `bankName` are newly required in `UsdAccountInfo`. Previously, `UsdAccountInfo` (via `UsdAccountInfoBase` + `paymentRails`) did not mandate these fields. Any existing API consumer that reads or validates against `UsdAccountInfo` (e.g., in `PaymentInstructions`) without these fields will now fail schema validation. Please confirm the backend always returns both fields for USD account info payloads before merging, or consider making them optional for backward compatibility.

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/BwpBeneficiary.yaml
Line: 4-6

Comment:
**`nationality` promoted to required — potential breaking change**

`nationality` is now required on `BwpBeneficiary` (and similarly on `ZarBeneficiary`, `KesBeneficiary`, `MwkBeneficiary`, `NgnBeneficiary`, `RwfBeneficiary`, `TzsBeneficiary`, `UgxBeneficiary`, `XafBeneficiary`, `XofBeneficiary`, `ZmwBeneficiary`). This is a breaking change for callers creating or submitting beneficiaries for these currencies who don't currently send `nationality`. Please confirm the backend enforces this field and that all existing stored beneficiaries for these currencies will continue to pass validation.

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 +19 to +26
- ACH
- WIRE
- RTP
- FEDNOW
- BANK_TRANSFER
- MOBILE_MONEY
accountNumber:
type: string

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 added to USD payment rails

MOBILE_MONEY has been added as a valid payment rail for UsdAccountInfo, alongside the existing US-specific rails (ACH, WIRE, RTP, FEDNOW, BANK_TRANSFER). USD + mobile money is an unusual pairing — traditional US dollar payments don't go over mobile money networks. If this is intended to cover specific corridors (e.g., El Salvador or other dollarized economies), it's worth confirming that the backend already supports this rail for USD and that the discriminator logic downstream handles it correctly.

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

Comment:
**`MOBILE_MONEY` added to USD payment rails**

`MOBILE_MONEY` has been added as a valid payment rail for `UsdAccountInfo`, alongside the existing US-specific rails (`ACH`, `WIRE`, `RTP`, `FEDNOW`, `BANK_TRANSFER`). USD + mobile money is an unusual pairing — traditional US dollar payments don't go over mobile money networks. If this is intended to cover specific corridors (e.g., El Salvador or other dollarized economies), it's worth confirming that the backend already supports this rail for USD and that the discriminator logic downstream handles it correctly.

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 +2 to +8
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 New required fields may be a breaking schema change

phoneNumber and bankName are newly required in UsdAccountInfo. Previously, UsdAccountInfo (via UsdAccountInfoBase + paymentRails) did not mandate these fields. Any existing API consumer that reads or validates against UsdAccountInfo (e.g., in PaymentInstructions) without these fields will now fail schema validation. Please confirm the backend always returns both fields for USD account info payloads before merging, or consider making them optional for backward compatibility.

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

Comment:
**New required fields may be a breaking schema change**

`phoneNumber` and `bankName` are newly required in `UsdAccountInfo`. Previously, `UsdAccountInfo` (via `UsdAccountInfoBase` + `paymentRails`) did not mandate these fields. Any existing API consumer that reads or validates against `UsdAccountInfo` (e.g., in `PaymentInstructions`) without these fields will now fail schema validation. Please confirm the backend always returns both fields for USD account info payloads before merging, or consider making them optional for backward compatibility.

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

Fix in Claude Code

Comment on lines 4 to +6
- beneficiaryType
- fullName
- nationality

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 nationality promoted to required — potential breaking change

nationality is now required on BwpBeneficiary (and similarly on ZarBeneficiary, KesBeneficiary, MwkBeneficiary, NgnBeneficiary, RwfBeneficiary, TzsBeneficiary, UgxBeneficiary, XafBeneficiary, XofBeneficiary, ZmwBeneficiary). This is a breaking change for callers creating or submitting beneficiaries for these currencies who don't currently send nationality. Please confirm the backend enforces this field and that all existing stored beneficiaries for these currencies will continue to pass validation.

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

Comment:
**`nationality` promoted to required — potential breaking change**

`nationality` is now required on `BwpBeneficiary` (and similarly on `ZarBeneficiary`, `KesBeneficiary`, `MwkBeneficiary`, `NgnBeneficiary`, `RwfBeneficiary`, `TzsBeneficiary`, `UgxBeneficiary`, `XafBeneficiary`, `XofBeneficiary`, `ZmwBeneficiary`). This is a breaking change for callers creating or submitting beneficiaries for these currencies who don't currently send `nationality`. Please confirm the backend enforces this field and that all existing stored beneficiaries for these currencies will continue to pass validation.

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

Fix in Claude Code

- FEDNOW
- BANK_TRANSFER
type: object
required:

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.

@AaryamanBhute this looks fishy. I had to add some fields for colombia and other thunes corridors, but the el salvador ones (which transact in USD) are adding some things here. Im concerned these fields will be a breaking change, what do you think?

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.

as long as these are optional, I don't think they're a breaking chage. Looks like these are optional right?

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.

https://github.com/lightsparkdev/webdev/blob/9374a2634a00091b752dd12c06884a1aea633673/sparkcore/sparkcore/bridge/extend_integration/thunes_fields_provider.py#L43 yeah I think it's baed on these? I have to update it anyway though, el salvador is just going to use 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.

something wierd is going on with the generator, it shouldn't be inlining these objects - investigating

@AaryamanBhute AaryamanBhute left a comment

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.

wait for generator investigation

@lightspark-copybara

Copy link
Copy Markdown
Contributor Author

Superseded by #383

@lightspark-copybara
lightspark-copybara Bot deleted the auto/sync-grid-schemas-20260422-214338 branch April 23, 2026 17:51
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.

3 participants