Skip to content

chore: Sync account schemas - #383

Closed
lightspark-copybara[bot] wants to merge 1 commit into
mainfrom
auto/sync-grid-schemas-20260423-175120
Closed

chore: Sync account schemas#383
lightspark-copybara[bot] wants to merge 1 commit into
mainfrom
auto/sync-grid-schemas-20260423-175120

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 23, 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 23, 2026 5:52pm

Request Review

@github-actions

github-actions Bot commented Apr 23, 2026

Copy link
Copy Markdown
Contributor

✱ Stainless preview builds

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

kotlin

fix(types): make nationality required, add bankName fields, update USD/COP/GTQ account types

openapi

fix(types): add paymentRails/nationality required, restructure account schemas, update field reqs

python

fix(types): add bank_name to accounts, update field requirements in beneficiaries

typescript

fix(types): update field requirements in external account and beneficiary 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 (61 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-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/7f6d79df68e4362dbabab00d15cbe1184a4144e4/dist.tar.gz
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/a43b7fc02910c911c6d828fe3a93e9e97dd63da4/grid-0.0.1-py3-none-any.whl

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-23 17:57:18 UTC

@greptile-apps

greptile-apps Bot commented Apr 23, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR auto-syncs account and beneficiary schemas from sparkcore VASP adapter definitions, flattening the existing allOf+Base pattern into self-contained objects and adding field-level constraints (patterns, min/max lengths, examples) across ~30 currencies. The majority of changes look correct, but three P1 issues require review before merging:

  • UsdAccountInfo: phoneNumber is now required, BANK_TRANSFER is replaced by MOBILE_MONEY, and bankAccountType (CHECKING/SAVINGS, documented as needed for El Salvador corridors) is removed entirely — these changes could break existing USD bank-transfer integrations.
  • CopBeneficiary: required fields changed from countryOfResidence to documentNumber+documentType, which is a breaking change for existing payloads.
  • 12 beneficiary schemas (BwpBeneficiary, NgnBeneficiary, ZmwBeneficiary, and others): nationality added to required, which would invalidate any existing beneficiary record that omits it.

Confidence Score: 3/5

Not safe to merge without confirming the USD and beneficiary schema breaking changes are intentional and downstream callers are updated.

Three P1 findings — the USD account schema has multiple breaking changes (required phoneNumber, dropped BANK_TRANSFER/bankAccountType), CopBeneficiary swaps required fields, and 12 beneficiary schemas newly require nationality — all of which could silently break existing integrations or validation in production.

openapi/components/schemas/common/UsdAccountInfo.yaml, openapi/components/schemas/common/CopBeneficiary.yaml, and the 12 Beneficiary YAML files that now require nationality (BwpBeneficiary, NgnBeneficiary, ZmwBeneficiary, RwfBeneficiary, TzsBeneficiary, UgxBeneficiary, XafBeneficiary, XofBeneficiary, ZarBeneficiary, KesBeneficiary, MwkBeneficiary, GtqBeneficiary).

Important Files Changed

Filename Overview
openapi/components/schemas/common/UsdAccountInfo.yaml Breaking changes: phoneNumber made required, BANK_TRANSFER replaced with MOBILE_MONEY in payment rails, and bankAccountType (CHECKING/SAVINGS, needed for El Salvador) removed entirely.
openapi/components/schemas/common/CopBeneficiary.yaml Breaking required-field change: countryOfResidence replaced by documentNumber+documentType in required list; property ordering also changed.
openapi/components/schemas/common/BwpBeneficiary.yaml nationality added as required — same pattern applies to 11 other beneficiary schemas (Ngn, Zmw, Rwf, Tzs, Ugx, Xaf, Xof, Zar, Kes, Mwk, Gtq).
openapi/components/schemas/common/EurAccountInfo.yaml Flattened from allOf+Base ref to a standalone object; fields (accountType, paymentRails, iban, swiftCode) look correct for EUR/SEPA.
openapi/components/schemas/common/GbpAccountInfo.yaml Flattened schema; sortCode and accountNumber with correct UK patterns added; looks correct.
openapi/components/schemas/common/DkkAccountInfo.yaml Flattened schema; uses SEPA/SEPA_INSTANT rails for DKK — Denmark is not in the Eurozone but SEPA inclusion may be intentional.
openapi.yaml Consolidated bundle reflects all schema changes; same P1 issues present here as in the individual YAML files (USD phoneNumber required, BANK_TRANSFER→MOBILE_MONEY, bankAccountType removed).
mintlify/openapi.yaml Mirror of openapi.yaml for the Mintlify docs site; carries the same breaking changes.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[AccountInfo Schema Sync] --> B[AccountInfo Schemas ~30 currencies]
    A --> C[Beneficiary Schemas ~13 currencies]
    A --> D[openapi.yaml / mintlify/openapi.yaml Bundle rebuild]
    B --> B1[Flattened allOf+Base refs into standalone objects]
    B --> B2[accountType discriminator added as required]
    B --> B3[Payment-specific fields added]
    B3 --> USD[UsdAccountInfo ⚠️ phoneNumber now required, BANK_TRANSFER removed, bankAccountType removed]
    B3 --> EUR[EurAccountInfo ✅ IBAN + SEPA rails]
    B3 --> GBP[GbpAccountInfo ✅ sortCode + accountNumber]
    C --> C1[nationality added as required in 12 schemas ⚠️]
    C --> C2[CopBeneficiary ⚠️ countryOfResidence no longer required]
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: 5-7

Comment:
**`phoneNumber` required for all USD bank accounts**

`phoneNumber` is now in the `required` list alongside `accountNumber` and `routingNumber`. Standard USD bank transfers (ACH, WIRE, FEDNOW, RTP) do not require a phone number — this makes any USD account submission without a phone number invalid, which would break existing integrations. If `phoneNumber` is only needed for `MOBILE_MONEY` rails, it should be optional at the schema level or use a discriminated union rather than being universally required.

```suggestion
required:
- accountType
- paymentRails
- accountNumber
- routingNumber
```

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: 20-24

Comment:
**`BANK_TRANSFER` removed and `MOBILE_MONEY` added to USD payment rails**

`BANK_TRANSFER` was present in the previous schema and is now replaced by `MOBILE_MONEY`. USD is not a currency typically associated with mobile money rails, and any existing integrations using `BANK_TRANSFER` for USD will now receive a validation error. Additionally, the previous `bankAccountType` field (CHECKING/SAVINGS), described as "Required for certain corridors (e.g., El Salvador)", has been entirely removed from this schema — this will break USD El Salvador corridor flows.

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

Comment:
**Breaking change to required beneficiary fields**

`countryOfResidence` is no longer required and `documentNumber`+`documentType` are now required. Any existing COP beneficiary payload that includes `countryOfResidence` but not `documentNumber`/`documentType` will fail schema validation after this change. Please confirm this is intentional and that downstream callers have been updated.

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

Comment:
**`nationality` now required across multiple beneficiary schemas**

`nationality` has been added as a required field in `BwpBeneficiary.yaml` and follows the same pattern in `NgnBeneficiary.yaml`, `ZmwBeneficiary.yaml`, `RwfBeneficiary.yaml`, `TzsBeneficiary.yaml`, `UgxBeneficiary.yaml`, `XafBeneficiary.yaml`, `XofBeneficiary.yaml`, `ZarBeneficiary.yaml`, `KesBeneficiary.yaml`, `MwkBeneficiary.yaml`, and `GtqBeneficiary.yaml`. Any existing beneficiary record missing `nationality` will fail validation. If this is an intentional tightening of requirements, clients must be updated before this can safely be deployed.

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 +5 to +7
- accountNumber
- routingNumber
- 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 phoneNumber required for all USD bank accounts

phoneNumber is now in the required list alongside accountNumber and routingNumber. Standard USD bank transfers (ACH, WIRE, FEDNOW, RTP) do not require a phone number — this makes any USD account submission without a phone number invalid, which would break existing integrations. If phoneNumber is only needed for MOBILE_MONEY rails, it should be optional at the schema level or use a discriminated union rather than being universally required.

Suggested change
- accountNumber
- routingNumber
- phoneNumber
required:
- accountType
- paymentRails
- accountNumber
- routingNumber
Prompt To Fix With AI
This is a comment left during a code review.
Path: openapi/components/schemas/common/UsdAccountInfo.yaml
Line: 5-7

Comment:
**`phoneNumber` required for all USD bank accounts**

`phoneNumber` is now in the `required` list alongside `accountNumber` and `routingNumber`. Standard USD bank transfers (ACH, WIRE, FEDNOW, RTP) do not require a phone number — this makes any USD account submission without a phone number invalid, which would break existing integrations. If `phoneNumber` is only needed for `MOBILE_MONEY` rails, it should be optional at the schema level or use a discriminated union rather than being universally required.

```suggestion
required:
- accountType
- paymentRails
- accountNumber
- routingNumber
```

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

Fix in Claude Code

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.

hm, this one we may want to drop. this conflation of el salvador (which receives in USD) with usa is causing phone # to be required
we might need to make phone number optional instead, and have the business logic validate the SLV receiver paths. alternatively we can drop SLV for now

Comment on lines +20 to +24
- RTP
- FEDNOW
- 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.

P1 BANK_TRANSFER removed and MOBILE_MONEY added to USD payment rails

BANK_TRANSFER was present in the previous schema and is now replaced by MOBILE_MONEY. USD is not a currency typically associated with mobile money rails, and any existing integrations using BANK_TRANSFER for USD will now receive a validation error. Additionally, the previous bankAccountType field (CHECKING/SAVINGS), described as "Required for certain corridors (e.g., El Salvador)", has been entirely removed from this schema — this will break USD El Salvador corridor flows.

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

Comment:
**`BANK_TRANSFER` removed and `MOBILE_MONEY` added to USD payment rails**

`BANK_TRANSFER` was present in the previous schema and is now replaced by `MOBILE_MONEY`. USD is not a currency typically associated with mobile money rails, and any existing integrations using `BANK_TRANSFER` for USD will now receive a validation error. Additionally, the previous `bankAccountType` field (CHECKING/SAVINGS), described as "Required for certain corridors (e.g., El Salvador)", has been entirely removed from this schema — this will break USD El Salvador corridor flows.

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

Fix in Claude Code

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://app.graphite.com/github/pr/lightsparkdev/webdev/26611 mobile money is added for el salvador. is removing bank transfer correct? all the other rails are USA specific

Comment on lines 4 to +6
- beneficiaryType
- countryOfResidence
- documentNumber
- documentType

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 to required beneficiary fields

countryOfResidence is no longer required and documentNumber+documentType are now required. Any existing COP beneficiary payload that includes countryOfResidence but not documentNumber/documentType will fail schema validation after this change. Please confirm this is intentional and that downstream callers have been updated.

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

Comment:
**Breaking change to required beneficiary fields**

`countryOfResidence` is no longer required and `documentNumber`+`documentType` are now required. Any existing COP beneficiary payload that includes `countryOfResidence` but not `documentNumber`/`documentType` will fail schema validation after this change. Please confirm this is intentional and that downstream callers have been updated.

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

Fix in Claude Code

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.

this is fine, and correct for production accounts

@@ -3,6 +3,7 @@ type: object
required:
- beneficiaryType

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 now required across multiple beneficiary schemas

nationality has been added as a required field in BwpBeneficiary.yaml and follows the same pattern in NgnBeneficiary.yaml, ZmwBeneficiary.yaml, RwfBeneficiary.yaml, TzsBeneficiary.yaml, UgxBeneficiary.yaml, XafBeneficiary.yaml, XofBeneficiary.yaml, ZarBeneficiary.yaml, KesBeneficiary.yaml, MwkBeneficiary.yaml, and GtqBeneficiary.yaml. Any existing beneficiary record missing nationality will fail validation. If this is an intentional tightening of requirements, clients must be updated before this can safely be deployed.

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

Comment:
**`nationality` now required across multiple beneficiary schemas**

`nationality` has been added as a required field in `BwpBeneficiary.yaml` and follows the same pattern in `NgnBeneficiary.yaml`, `ZmwBeneficiary.yaml`, `RwfBeneficiary.yaml`, `TzsBeneficiary.yaml`, `UgxBeneficiary.yaml`, `XafBeneficiary.yaml`, `XofBeneficiary.yaml`, `ZarBeneficiary.yaml`, `KesBeneficiary.yaml`, `MwkBeneficiary.yaml`, and `GtqBeneficiary.yaml`. Any existing beneficiary record missing `nationality` will fail validation. If this is an intentional tightening of requirements, clients must be updated before this can safely be deployed.

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

Fix in Claude Code

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.

I think this is deliberate?

@lightspark-copybara

Copy link
Copy Markdown
Contributor Author

Superseded by #384

@lightspark-copybara
lightspark-copybara Bot deleted the auto/sync-grid-schemas-20260423-175120 branch April 23, 2026 18:02
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.

1 participant