chore: Sync account schemas - #383
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
✱ Stainless preview buildsThis PR will update the kotlin openapi python typescript Edit this comment to update them. They will appear in their respective SDK's changelogs. ✅ grid-openapi studio · code · diff
✅ grid-kotlin studio · code · diff
✅ grid-typescript studio · code · diff
✅ grid-python studio · code · diff
This comment is auto-generated by GitHub Actions and is automatically kept up to date as you push. |
Greptile SummaryThis PR auto-syncs account and beneficiary schemas from sparkcore VASP adapter definitions, flattening the existing
Confidence Score: 3/5Not 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).
|
| 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]
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
| - accountNumber | ||
| - routingNumber | ||
| - phoneNumber |
There was a problem hiding this 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.
| - 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.There was a problem hiding this comment.
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
| - RTP | ||
| - FEDNOW | ||
| - MOBILE_MONEY | ||
| accountNumber: | ||
| type: string |
There was a problem hiding this 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.
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.There was a problem hiding this comment.
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
| - beneficiaryType | ||
| - countryOfResidence | ||
| - documentNumber | ||
| - documentType |
There was a problem hiding this 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.
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.There was a problem hiding this comment.
this is fine, and correct for production accounts
| @@ -3,6 +3,7 @@ type: object | |||
| required: | |||
| - beneficiaryType | |||
There was a problem hiding this 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.
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.There was a problem hiding this comment.
I think this is deliberate?
|
Superseded by #384 |
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 schemascommon/PaymentInstructions.yaml— payment instructions oneOf (new currencies added)external_accounts/— per-currency external account schemas (reference common/)Please review the changes before merging.