chore: Sync account schemas - #384
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 36
Confidence Score: 3/5Hold for confirmation — three P1 breaking changes to payment rails and required beneficiary fields need explicit sign-off before merging. Three distinct P1 findings involve dropped/replaced enum values in payment rails (USD, COP, GTQ) and newly required fields in beneficiary schemas (COP, GTQ) that will break existing client integrations without a migration window. These changes may be intentional syncs from sparkcore, but need explicit confirmation. UsdAccountInfo.yaml, CopAccountInfo.yaml, GtqAccountInfo.yaml, CopBeneficiary.yaml, GtqBeneficiary.yaml
|
| Filename | Overview |
|---|---|
| openapi/components/schemas/common/UsdAccountInfo.yaml | Refactored from allOf/ref pattern to inline schema; BANK_TRANSFER removed from payment rails and MOBILE_MONEY added — potentially breaking change |
| openapi/components/schemas/common/CopBeneficiary.yaml | documentNumber and documentType added as required fields while countryOfResidence dropped from required — breaking change for existing COP beneficiary creation |
| openapi/components/schemas/common/CopAccountInfo.yaml | MOBILE_MONEY removed from COP payment rails enum; schema fully inlined from allOf/ref |
| openapi/components/schemas/common/GtqAccountInfo.yaml | MOBILE_MONEY removed from GTQ payment rails; schema fully inlined from allOf/ref |
| openapi/components/schemas/common/GtqBeneficiary.yaml | phoneNumber added as a required field — breaking change for existing GTQ beneficiary creation |
| openapi/components/schemas/common/PkrAccountInfo.yaml | Schema inlined correctly; iban example uses an incorrect German IBAN placeholder instead of a PK-prefixed example |
| openapi/components/schemas/common/EgpAccountInfo.yaml | Schema inlined correctly; iban example uses a German IBAN placeholder instead of an EG-prefixed example |
| openapi/components/schemas/common/DkkAccountInfo.yaml | Schema inlined correctly; iban example uses a German IBAN placeholder instead of a DK-prefixed example |
| openapi/components/schemas/common/EurAccountInfo.yaml | Cleanly inlined; iban and swiftCode fields added with correct validation patterns and examples |
| openapi/components/schemas/common/GbpAccountInfo.yaml | Cleanly inlined; sortCode and accountNumber added with correct UK-specific patterns |
| openapi/components/schemas/common/AedAccountInfo.yaml | Cleanly inlined; iban and swiftCode fields added with UAE-specific pattern and correct examples |
| openapi/components/schemas/common/BrlAccountInfo.yaml | Cleanly inlined; pixKey, pixKeyType, and taxId fields added with correct Brazilian payment patterns |
| openapi/components/schemas/common/KesAccountInfo.yaml | Cleanly inlined; Kenya-specific phone pattern and provider field added correctly |
| openapi.yaml | Bundled OpenAPI spec updated to reflect all schema changes including USD BANK_TRANSFER → MOBILE_MONEY and COP/GTQ payment rail removals |
| mintlify/openapi.yaml | Mintlify docs bundle mirrors openapi.yaml changes; same P1 concerns apply |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[sparkcore VASP adapter definitions] -->|auto-sync| B[common/ AccountInfo schemas]
A -->|auto-sync| C[common/ Beneficiary schemas]
B --> D[external_accounts/ schemas]
B --> E[openapi.yaml / mintlify/openapi.yaml]
C --> E
subgraph Breaking Changes
F[UsdAccountInfo BANK_TRANSFER removed, MOBILE_MONEY added]
G[CopAccountInfo and GtqAccountInfo MOBILE_MONEY removed]
H[CopBeneficiary documentNumber + documentType now required]
I[GtqBeneficiary phoneNumber now required]
end
B --> F
B --> G
C --> H
C --> I
Prompt To Fix All With AI
This is a comment left during a code review.
Path: openapi/components/schemas/common/PkrAccountInfo.yaml
Line: 21-28
Comment:
**Incorrect IBAN example for PKR**
The `iban` field uses `DE89370400440532013000` as its example value, which is a well-known German IBAN. Pakistani IBANs start with `PK` followed by 2 check digits, a 4-character bank code, and 16 digits (24 characters total). An example like `PK36SCBL0000001123456702` would be accurate. Using a German example misleads API consumers integrating with PKR accounts.
```suggestion
iban:
type: string
description: The IBAN of the bank account
example: PK36SCBL0000001123456702
minLength: 15
maxLength: 34
pattern: ^[A-Z]{2}[0-9]{2}[A-Za-z0-9]{11,30}$
```
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/EgpAccountInfo.yaml
Line: 28-35
Comment:
**Incorrect IBAN example for EGP**
The `iban` field shows `DE89370400440532013000`, which is a German IBAN. Egyptian IBANs follow the format `EG` + 2 check digits + 25 alphanumeric characters (29 chars total). The same German placeholder also appears in `DkkAccountInfo.yaml` (DKK IBANs start with `DK`). Using country-appropriate examples improves clarity for integrators.
```suggestion
iban:
type: string
description: The IBAN of the bank account
example: EG800002000156789012345180002
minLength: 15
maxLength: 34
pattern: ^[A-Z]{2}[0-9]{2}[A-Za-z0-9]{11,30}$
```
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: 16-23
Comment:
**`BANK_TRANSFER` removed and `MOBILE_MONEY` added to USD payment rails**
The previous schema listed `BANK_TRANSFER` among the allowed USD payment rails; this PR removes it and adds `MOBILE_MONEY` instead. `MOBILE_MONEY` is an unusual rail for USD and could break existing integrations that pass `BANK_TRANSFER` for USD accounts. Is this intentional — i.e., does the USD adapter in sparkcore actually support mobile money but no longer supports generic bank transfer?
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: 3-7
Comment:
**Breaking required-field change in `CopBeneficiary`**
`countryOfResidence` is dropped from `required` and `documentNumber` + `documentType` are added as required. Any existing client that creates a COP beneficiary without providing a document number/type will now receive a validation error. Similarly, `GtqBeneficiary` gains `phoneNumber` as a new required field. If existing integrations are in production, this is a breaking API change that warrants a version bump or a migration window.
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/CopAccountInfo.yaml
Line: 15-18
Comment:
**`MOBILE_MONEY` removed from COP and GTQ payment rails**
Both `CopAccountInfo` and `GtqAccountInfo` previously allowed `MOBILE_MONEY` alongside `BANK_TRANSFER`; the new schemas only list `BANK_TRANSFER`. Clients that currently submit COP or GTQ payments via `MOBILE_MONEY` will fail schema validation after this change. Please confirm whether the corresponding sparkcore adapters have intentionally dropped this rail.
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
| type: string | ||
| description: The name of the bank | ||
| minLength: 1 | ||
| maxLength: 255 | ||
| accountNumber: | ||
| type: string | ||
| description: The account number of the bank | ||
| minLength: 1 |
There was a problem hiding this comment.
Incorrect IBAN example for PKR
The iban field uses DE89370400440532013000 as its example value, which is a well-known German IBAN. Pakistani IBANs start with PK followed by 2 check digits, a 4-character bank code, and 16 digits (24 characters total). An example like PK36SCBL0000001123456702 would be accurate. Using a German example misleads API consumers integrating with PKR accounts.
| type: string | |
| description: The name of the bank | |
| minLength: 1 | |
| maxLength: 255 | |
| accountNumber: | |
| type: string | |
| description: The account number of the bank | |
| minLength: 1 | |
| iban: | |
| type: string | |
| description: The IBAN of the bank account | |
| example: PK36SCBL0000001123456702 | |
| minLength: 15 | |
| maxLength: 34 | |
| pattern: ^[A-Z]{2}[0-9]{2}[A-Za-z0-9]{11,30}$ |
Prompt To Fix With AI
This is a comment left during a code review.
Path: openapi/components/schemas/common/PkrAccountInfo.yaml
Line: 21-28
Comment:
**Incorrect IBAN example for PKR**
The `iban` field uses `DE89370400440532013000` as its example value, which is a well-known German IBAN. Pakistani IBANs start with `PK` followed by 2 check digits, a 4-character bank code, and 16 digits (24 characters total). An example like `PK36SCBL0000001123456702` would be accurate. Using a German example misleads API consumers integrating with PKR accounts.
```suggestion
iban:
type: string
description: The IBAN of the bank account
example: PK36SCBL0000001123456702
minLength: 15
maxLength: 34
pattern: ^[A-Z]{2}[0-9]{2}[A-Za-z0-9]{11,30}$
```
How can I resolve this? If you propose a fix, please make it concise.| iban: | ||
| type: string | ||
| description: The IBAN of the bank account | ||
| example: DE89370400440532013000 | ||
| minLength: 15 | ||
| maxLength: 34 | ||
| pattern: ^[A-Z]{2}[0-9]{2}[A-Za-z0-9]{11,30}$ | ||
| swiftCode: |
There was a problem hiding this comment.
Incorrect IBAN example for EGP
The iban field shows DE89370400440532013000, which is a German IBAN. Egyptian IBANs follow the format EG + 2 check digits + 25 alphanumeric characters (29 chars total). The same German placeholder also appears in DkkAccountInfo.yaml (DKK IBANs start with DK). Using country-appropriate examples improves clarity for integrators.
| iban: | |
| type: string | |
| description: The IBAN of the bank account | |
| example: DE89370400440532013000 | |
| minLength: 15 | |
| maxLength: 34 | |
| pattern: ^[A-Z]{2}[0-9]{2}[A-Za-z0-9]{11,30}$ | |
| swiftCode: | |
| iban: | |
| type: string | |
| description: The IBAN of the bank account | |
| example: EG800002000156789012345180002 | |
| minLength: 15 | |
| maxLength: 34 | |
| pattern: ^[A-Z]{2}[0-9]{2}[A-Za-z0-9]{11,30}$ |
Prompt To Fix With AI
This is a comment left during a code review.
Path: openapi/components/schemas/common/EgpAccountInfo.yaml
Line: 28-35
Comment:
**Incorrect IBAN example for EGP**
The `iban` field shows `DE89370400440532013000`, which is a German IBAN. Egyptian IBANs follow the format `EG` + 2 check digits + 25 alphanumeric characters (29 chars total). The same German placeholder also appears in `DkkAccountInfo.yaml` (DKK IBANs start with `DK`). Using country-appropriate examples improves clarity for integrators.
```suggestion
iban:
type: string
description: The IBAN of the bank account
example: EG800002000156789012345180002
minLength: 15
maxLength: 34
pattern: ^[A-Z]{2}[0-9]{2}[A-Za-z0-9]{11,30}$
```
How can I resolve this? If you propose a fix, please make it concise.| type: string | ||
| enum: | ||
| - ACH | ||
| - WIRE | ||
| - RTP | ||
| - FEDNOW | ||
| - MOBILE_MONEY | ||
| accountNumber: |
There was a problem hiding this comment.
BANK_TRANSFER removed and MOBILE_MONEY added to USD payment rails
The previous schema listed BANK_TRANSFER among the allowed USD payment rails; this PR removes it and adds MOBILE_MONEY instead. MOBILE_MONEY is an unusual rail for USD and could break existing integrations that pass BANK_TRANSFER for USD accounts. Is this intentional — i.e., does the USD adapter in sparkcore actually support mobile money but no longer supports generic bank transfer?
Prompt To Fix With AI
This is a comment left during a code review.
Path: openapi/components/schemas/common/UsdAccountInfo.yaml
Line: 16-23
Comment:
**`BANK_TRANSFER` removed and `MOBILE_MONEY` added to USD payment rails**
The previous schema listed `BANK_TRANSFER` among the allowed USD payment rails; this PR removes it and adds `MOBILE_MONEY` instead. `MOBILE_MONEY` is an unusual rail for USD and could break existing integrations that pass `BANK_TRANSFER` for USD accounts. Is this intentional — i.e., does the USD adapter in sparkcore actually support mobile money but no longer supports generic bank transfer?
How can I resolve this? If you propose a fix, please make it concise.| required: | ||
| - beneficiaryType | ||
| - countryOfResidence | ||
| - documentNumber | ||
| - documentType | ||
| - fullName |
There was a problem hiding this comment.
Breaking required-field change in
CopBeneficiary
countryOfResidence is dropped from required and documentNumber + documentType are added as required. Any existing client that creates a COP beneficiary without providing a document number/type will now receive a validation error. Similarly, GtqBeneficiary gains phoneNumber as a new required field. If existing integrations are in production, this is a breaking API change that warrants a version bump or a migration window.
Prompt To Fix With AI
This is a comment left during a code review.
Path: openapi/components/schemas/common/CopBeneficiary.yaml
Line: 3-7
Comment:
**Breaking required-field change in `CopBeneficiary`**
`countryOfResidence` is dropped from `required` and `documentNumber` + `documentType` are added as required. Any existing client that creates a COP beneficiary without providing a document number/type will now receive a validation error. Similarly, `GtqBeneficiary` gains `phoneNumber` as a new required field. If existing integrations are in production, this is a breaking API change that warrants a version bump or a migration window.
How can I resolve this? If you propose a fix, please make it concise.| items: | ||
| type: string | ||
| enum: | ||
| - BANK_TRANSFER |
There was a problem hiding this comment.
MOBILE_MONEY removed from COP and GTQ payment rails
Both CopAccountInfo and GtqAccountInfo previously allowed MOBILE_MONEY alongside BANK_TRANSFER; the new schemas only list BANK_TRANSFER. Clients that currently submit COP or GTQ payments via MOBILE_MONEY will fail schema validation after this change. Please confirm whether the corresponding sparkcore adapters have intentionally dropped this rail.
Prompt To Fix With AI
This is a comment left during a code review.
Path: openapi/components/schemas/common/CopAccountInfo.yaml
Line: 15-18
Comment:
**`MOBILE_MONEY` removed from COP and GTQ payment rails**
Both `CopAccountInfo` and `GtqAccountInfo` previously allowed `MOBILE_MONEY` alongside `BANK_TRANSFER`; the new schemas only list `BANK_TRANSFER`. Clients that currently submit COP or GTQ payments via `MOBILE_MONEY` will fail schema validation after this change. Please confirm whether the corresponding sparkcore adapters have intentionally dropped this rail.
How can I resolve this? If you propose a fix, please make it concise.|
Superseded by #385 |
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.