Skip to content

chore: Sync account schemas - #388

Merged
JasonCWang merged 1 commit into
mainfrom
auto/sync-grid-schemas-20260423-220919
Apr 23, 2026
Merged

chore: Sync account schemas#388
JasonCWang merged 1 commit into
mainfrom
auto/sync-grid-schemas-20260423-220919

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

vercelBot commented Apr 23, 2026

Copy link
Copy Markdown

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

ProjectDeploymentActionsUpdated (UTC)
grid-flow-builderReadyReadyPreview, CommentApr 23, 2026 10:09pm

Request Review

@github-actions

github-actionsBot 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

feat(api): add bankName fields, add bankAccountType to GTQ, remove phoneNumber, update types

openapi

fix(types): update required fields across USD/GTQ/COP/PEN account and beneficiary types

python

fix(types): update field requirements across beneficiaries, add bank_name to account types

typescript

fix(types): add bankName to BDT/EGP/GHS/GTQ/JMD/PKR, update USD/COP/GTQ requirements
⚠️grid-openapistudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗

⚠️grid-kotlinstudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗build ✅lint ✅test ✅

⚠️grid-typescriptstudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗build ✅lint ✅test ✅

npm install https://pkg.stainless.com/s/grid-typescript/2bfab9677b43bb5b8c553c15d414ed4bd5f97618/dist.tar.gz
⚠️grid-pythonstudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗build ✅lint ✅test ✅

pip install https://pkg.stainless.com/s/grid-python/2a57a42725c5b8104a22ffd19e1df2af321d5ea2/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 22:44:01 UTC

@greptile-apps

greptile-appsBot commented Apr 23, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This auto-synced PR updates 42 account schema files, adding schema-level example blocks across all currency AccountInfoBase schemas and making several structural changes to required fields and enums sourced from sparkcore's VASP adapter definitions.

The bulk of the changes (example additions, new bankName required fields for BDT, EGP, GHS, JMD, PKR, COP, GTQ) are additive and straightforward, but a few changes represent breaking API contracts that existing integrators may not be prepared for:

  • UsdAccountInfoBase: bankAccountType (CHECKING/SAVINGS, previously noted as "Required for certain corridors e.g. El Salvador") is removed with no replacement.
  • UsdBeneficiary: address, birthDate, and nationality are now required — existing payloads omitting these will fail validation.
  • CopBeneficiary: documentNumber and documentType are now required; countryOfResidence is no longer required.
  • UsdAccountInfo, CopAccountInfo, GtqAccountInfo: BANK_TRANSFER / MOBILE_MONEY enum values removed.

Confidence Score: 4/5

Safe to merge if the backend already reflects these breaking changes; needs human confirmation that corridor migrations (especially USD/El Salvador bankAccountType) are handled.

Three P1 findings cover breaking schema changes to required fields and enum values across USD, COP, and GTQ schemas. The changes are intentional (generated from sparkcore), but the removal of bankAccountType from UsdAccountInfoBase in particular needs explicit confirmation that no active corridor relies on it.

UsdAccountInfoBase.yaml, UsdBeneficiary.yaml, and CopBeneficiary.yaml carry the highest-impact breaking changes and warrant explicit sign-off.

Important Files Changed

FilenameOverview
openapi/components/schemas/common/UsdAccountInfoBase.yamlRemoves bankAccountType (CHECKING/SAVINGS) field previously described as required for certain corridors (e.g., El Salvador); adds schema-level example.
openapi/components/schemas/common/UsdAccountInfo.yamlRemoves BANK_TRANSFER from the payment method enum — a breaking change for any client currently using that value.
openapi/components/schemas/common/UsdBeneficiary.yamlAdds address, birthDate, and nationality to the required list — breaking change for existing USD beneficiary payloads.
openapi/components/schemas/common/CopBeneficiary.yamlSwaps countryOfResidence out of required in favour of documentNumber and documentType; reorders address and document fields — breaking change for existing integrations.
openapi/components/schemas/common/CopAccountInfoBase.yamlRemoves phoneNumber field entirely and reorders required fields; adds bankName with length constraints and a schema-level example.
openapi/components/schemas/common/CopAccountInfo.yamlRemoves MOBILE_MONEY from the payment method enum for COP accounts.
openapi/components/schemas/common/GtqAccountInfoBase.yamlReplaces phoneNumber with bankAccountType (CHECKING/SAVINGS enum) and adds required bankName; significantly changes the schema shape for GTQ accounts.
openapi/components/schemas/common/GtqAccountInfo.yamlRemoves MOBILE_MONEY from the payment method enum for GTQ accounts, aligned with the GTQ account info restructure.
openapi/components/schemas/common/GtqBeneficiary.yamlAdds phoneNumber to the required list — breaking change for existing GTQ beneficiary payloads that omit phone.
openapi/components/schemas/common/EgpAccountInfoBase.yamlAdds required bankName field; inline IBAN example uses a German IBAN rather than an Egypt-specific one.
openapi/components/schemas/common/PkrAccountInfoBase.yamlAdds required bankName; the optional iban property example uses a German IBAN despite Pakistan not using the IBAN system.
openapi.yamlGenerated bundle — reflects all source schema changes; includes the same breaking changes (bankAccountType removal, UsdBeneficiary new required fields, CopBeneficiary required swap, enum removals).

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
subgraph Removed["⛔ Removed / Breaking"]
A["UsdAccountInfoBase\n– bankAccountType field removed\n(was: CHECKING | SAVINGS)"]
B["UsdAccountInfo\n– BANK_TRANSFER enum removed"]
C["CopAccountInfo / GtqAccountInfo\n– MOBILE_MONEY enum removed"]
D["CopAccountInfoBase\n– phoneNumber field removed"]
end
subgraph AddedRequired["⚠️ New Required Fields"]
E["UsdBeneficiary\n+ address, birthDate, nationality"]
F["CopBeneficiary\n+ documentNumber, documentType\n– countryOfResidence (no longer required)"]
G["GtqBeneficiary\n+ phoneNumber"]
H["BDT / EGP / GHS / GTQ / JMD / PKR / COP\n+ bankName (required)"]
end
subgraph AddedOptional["✅ Additive / Examples"]
I["30+ AccountInfoBase schemas\n+ schema-level example block"]
J["GtqAccountInfoBase\nphoneNumber → bankAccountType enum"]
end
Removed --> AddedRequired
AddedRequired --> AddedOptional
Loading

Comments Outside Diff (5)

  1. openapi/components/schemas/common/UsdAccountInfoBase.yaml, line 1-27 (link)

    P1bankAccountType removed without replacement

    The bankAccountType field (CHECKING/SAVINGS) was previously described as "Required for certain corridors (e.g., El Salvador)" and has been removed entirely. Clients using USD accounts for corridors that depend on this distinction now have no way to express the account type, which may silently break routing for those corridors unless the backend now derives it differently.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/UsdAccountInfoBase.yaml
    Line: 1-27
    Comment:
    **`bankAccountType` removed without replacement**
    The `bankAccountType` field (CHECKING/SAVINGS) was previously described as "Required for certain corridors (e.g., El Salvador)" and has been removed entirely. Clients using USD accounts for corridors that depend on this distinction now have no way to express the account type, which may silently break routing for those corridors unless the backend now derives it differently.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  2. openapi/components/schemas/common/UsdBeneficiary.yaml, line 1-8 (link)

    P1Three new fields added to required

    address, birthDate, and nationality are now required for UsdBeneficiary. Any existing API consumer that builds a USD beneficiary payload without these fields will receive a validation error after this sync, making this a breaking change for in-flight integrations targeting the USD corridor.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/UsdBeneficiary.yaml
    Line: 1-8
    Comment:
    **Three new fields added to `required`**`address`, `birthDate`, and `nationality` are now required for `UsdBeneficiary`. Any existing API consumer that builds a USD beneficiary payload without these fields will receive a validation error after this sync, making this a breaking change for in-flight integrations targeting the USD corridor.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  3. openapi/components/schemas/common/CopBeneficiary.yaml, line 1-7 (link)

    P1Required fields replaced — countryOfResidence dropped, documentNumber/documentType added

    countryOfResidence is no longer required while documentNumber and documentType are now mandatory. Existing clients that omit document fields but supply countryOfResidence will begin failing validation. Please confirm this matches the live backend requirement change and that a migration path or communication to existing integrators is planned.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/CopBeneficiary.yaml
    Line: 1-7
    Comment:
    **Required fields replaced — `countryOfResidence` dropped, `documentNumber`/`documentType` added**`countryOfResidence` is no longer required while `documentNumber` and `documentType` are now mandatory. Existing clients that omit document fields but supply `countryOfResidence` will begin failing validation. Please confirm this matches the live backend requirement change and that a migration path or communication to existing integrators is planned.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  4. openapi/components/schemas/common/EgpAccountInfoBase.yaml, line 21-39 (link)

    P2German IBAN used as inline example for an Egyptian account

    Both the iban property-level example (line 24) and the schema-level example block reference DE89370400440532013000, which is a German IBAN. Egyptian IBANs begin with EG and are 29 characters long; using a German IBAN may confuse integrators. Consider substituting a realistic EGP IBAN (e.g., EG380019000500000000263180002).

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/EgpAccountInfoBase.yaml
    Line: 21-39
    Comment:
    **German IBAN used as inline example for an Egyptian account**
    Both the `iban` property-level example (line 24) and the schema-level `example` block reference `DE89370400440532013000`, which is a German IBAN. Egyptian IBANs begin with `EG` and are 29 characters long; using a German IBAN may confuse integrators. Consider substituting a realistic EGP IBAN (e.g., `EG380019000500000000263180002`).
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  5. openapi/components/schemas/common/PkrAccountInfoBase.yaml, line 22-28 (link)

    P2German IBAN used as example; Pakistan does not use IBAN

    The inline property example for iban (line 25) is DE89370400440532013000, a German IBAN. Pakistan is not part of the IBAN scheme, so this field and its example may mislead integrators. If the field is legacy/optional for edge cases, a comment or description clarifying the context would help.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/PkrAccountInfoBase.yaml
    Line: 22-28
    Comment:
    **German IBAN used as example; Pakistan does not use IBAN**
    The inline property `example` for `iban` (line 25) is `DE89370400440532013000`, a German IBAN. Pakistan is not part of the IBAN scheme, so this field and its example may mislead integrators. If the field is legacy/optional for edge cases, a comment or description clarifying the context would help.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

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/UsdAccountInfoBase.yaml
Line: 1-27
Comment:
**`bankAccountType` removed without replacement**
The `bankAccountType` field (CHECKING/SAVINGS) was previously described as "Required for certain corridors (e.g., El Salvador)" and has been removed entirely. Clients using USD accounts for corridors that depend on this distinction now have no way to express the account type, which may silently break routing for those corridors unless the backend now derives it differently.
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/UsdBeneficiary.yaml
Line: 1-8
Comment:
**Three new fields added to `required`**`address`, `birthDate`, and `nationality` are now required for `UsdBeneficiary`. Any existing API consumer that builds a USD beneficiary payload without these fields will receive a validation error after this sync, making this a breaking change for in-flight integrations targeting the USD corridor.
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: 1-7
Comment:
**Required fields replaced — `countryOfResidence` dropped, `documentNumber`/`documentType` added**`countryOfResidence` is no longer required while `documentNumber` and `documentType` are now mandatory. Existing clients that omit document fields but supply `countryOfResidence` will begin failing validation. Please confirm this matches the live backend requirement change and that a migration path or communication to existing integrators is planned.
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/EgpAccountInfoBase.yaml
Line: 21-39
Comment:
**German IBAN used as inline example for an Egyptian account**
Both the `iban` property-level example (line 24) and the schema-level `example` block reference `DE89370400440532013000`, which is a German IBAN. Egyptian IBANs begin with `EG` and are 29 characters long; using a German IBAN may confuse integrators. Consider substituting a realistic EGP IBAN (e.g., `EG380019000500000000263180002`).
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/PkrAccountInfoBase.yaml
Line: 22-28
Comment:
**German IBAN used as example; Pakistan does not use IBAN**
The inline property `example` for `iban` (line 25) is `DE89370400440532013000`, a German IBAN. Pakistan is not part of the IBAN scheme, so this field and its example may mislead integrators. If the field is legacy/optional for edge cases, a comment or description clarifying the context would help.
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

@JasonCWang
JasonCWang merged commit a230551 into mainApr 23, 2026
7 checks passed
@JasonCWang
JasonCWang deleted the auto/sync-grid-schemas-20260423-220919 branch April 23, 2026 22:37
shreyav added a commit that referenced this pull request Apr 24, 2026
Sign up for freeto 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

@JasonCWang
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
chore: Sync account schemas by lightspark-copybara[bot] · Pull Request #388 · lightsparkdev/grid-api · GitHub
Skip to content

chore: Sync account schemas - #388

Merged
JasonCWang merged 1 commit into
mainfrom
auto/sync-grid-schemas-20260423-220919
Apr 23, 2026
Merged

chore: Sync account schemas#388
JasonCWang merged 1 commit into
mainfrom
auto/sync-grid-schemas-20260423-220919

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

vercelBot commented Apr 23, 2026

Copy link
Copy Markdown

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

ProjectDeploymentActionsUpdated (UTC)
grid-flow-builderReadyReadyPreview, CommentApr 23, 2026 10:09pm

Request Review

@github-actions

github-actionsBot 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

feat(api): add bankName fields, add bankAccountType to GTQ, remove phoneNumber, update types

openapi

fix(types): update required fields across USD/GTQ/COP/PEN account and beneficiary types

python

fix(types): update field requirements across beneficiaries, add bank_name to account types

typescript

fix(types): add bankName to BDT/EGP/GHS/GTQ/JMD/PKR, update USD/COP/GTQ requirements
⚠️grid-openapistudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗

⚠️grid-kotlinstudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗build ✅lint ✅test ✅

⚠️grid-typescriptstudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗build ✅lint ✅test ✅

npm install https://pkg.stainless.com/s/grid-typescript/2bfab9677b43bb5b8c553c15d414ed4bd5f97618/dist.tar.gz
⚠️grid-pythonstudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗build ✅lint ✅test ✅

pip install https://pkg.stainless.com/s/grid-python/2a57a42725c5b8104a22ffd19e1df2af321d5ea2/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 22:44:01 UTC

@greptile-apps

greptile-appsBot commented Apr 23, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This auto-synced PR updates 42 account schema files, adding schema-level example blocks across all currency AccountInfoBase schemas and making several structural changes to required fields and enums sourced from sparkcore's VASP adapter definitions.

The bulk of the changes (example additions, new bankName required fields for BDT, EGP, GHS, JMD, PKR, COP, GTQ) are additive and straightforward, but a few changes represent breaking API contracts that existing integrators may not be prepared for:

  • UsdAccountInfoBase: bankAccountType (CHECKING/SAVINGS, previously noted as "Required for certain corridors e.g. El Salvador") is removed with no replacement.
  • UsdBeneficiary: address, birthDate, and nationality are now required — existing payloads omitting these will fail validation.
  • CopBeneficiary: documentNumber and documentType are now required; countryOfResidence is no longer required.
  • UsdAccountInfo, CopAccountInfo, GtqAccountInfo: BANK_TRANSFER / MOBILE_MONEY enum values removed.

Confidence Score: 4/5

Safe to merge if the backend already reflects these breaking changes; needs human confirmation that corridor migrations (especially USD/El Salvador bankAccountType) are handled.

Three P1 findings cover breaking schema changes to required fields and enum values across USD, COP, and GTQ schemas. The changes are intentional (generated from sparkcore), but the removal of bankAccountType from UsdAccountInfoBase in particular needs explicit confirmation that no active corridor relies on it.

UsdAccountInfoBase.yaml, UsdBeneficiary.yaml, and CopBeneficiary.yaml carry the highest-impact breaking changes and warrant explicit sign-off.

Important Files Changed

FilenameOverview
openapi/components/schemas/common/UsdAccountInfoBase.yamlRemoves bankAccountType (CHECKING/SAVINGS) field previously described as required for certain corridors (e.g., El Salvador); adds schema-level example.
openapi/components/schemas/common/UsdAccountInfo.yamlRemoves BANK_TRANSFER from the payment method enum — a breaking change for any client currently using that value.
openapi/components/schemas/common/UsdBeneficiary.yamlAdds address, birthDate, and nationality to the required list — breaking change for existing USD beneficiary payloads.
openapi/components/schemas/common/CopBeneficiary.yamlSwaps countryOfResidence out of required in favour of documentNumber and documentType; reorders address and document fields — breaking change for existing integrations.
openapi/components/schemas/common/CopAccountInfoBase.yamlRemoves phoneNumber field entirely and reorders required fields; adds bankName with length constraints and a schema-level example.
openapi/components/schemas/common/CopAccountInfo.yamlRemoves MOBILE_MONEY from the payment method enum for COP accounts.
openapi/components/schemas/common/GtqAccountInfoBase.yamlReplaces phoneNumber with bankAccountType (CHECKING/SAVINGS enum) and adds required bankName; significantly changes the schema shape for GTQ accounts.
openapi/components/schemas/common/GtqAccountInfo.yamlRemoves MOBILE_MONEY from the payment method enum for GTQ accounts, aligned with the GTQ account info restructure.
openapi/components/schemas/common/GtqBeneficiary.yamlAdds phoneNumber to the required list — breaking change for existing GTQ beneficiary payloads that omit phone.
openapi/components/schemas/common/EgpAccountInfoBase.yamlAdds required bankName field; inline IBAN example uses a German IBAN rather than an Egypt-specific one.
openapi/components/schemas/common/PkrAccountInfoBase.yamlAdds required bankName; the optional iban property example uses a German IBAN despite Pakistan not using the IBAN system.
openapi.yamlGenerated bundle — reflects all source schema changes; includes the same breaking changes (bankAccountType removal, UsdBeneficiary new required fields, CopBeneficiary required swap, enum removals).

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
subgraph Removed["⛔ Removed / Breaking"]
A["UsdAccountInfoBase\n– bankAccountType field removed\n(was: CHECKING | SAVINGS)"]
B["UsdAccountInfo\n– BANK_TRANSFER enum removed"]
C["CopAccountInfo / GtqAccountInfo\n– MOBILE_MONEY enum removed"]
D["CopAccountInfoBase\n– phoneNumber field removed"]
end
subgraph AddedRequired["⚠️ New Required Fields"]
E["UsdBeneficiary\n+ address, birthDate, nationality"]
F["CopBeneficiary\n+ documentNumber, documentType\n– countryOfResidence (no longer required)"]
G["GtqBeneficiary\n+ phoneNumber"]
H["BDT / EGP / GHS / GTQ / JMD / PKR / COP\n+ bankName (required)"]
end
subgraph AddedOptional["✅ Additive / Examples"]
I["30+ AccountInfoBase schemas\n+ schema-level example block"]
J["GtqAccountInfoBase\nphoneNumber → bankAccountType enum"]
end
Removed --> AddedRequired
AddedRequired --> AddedOptional
Loading

Comments Outside Diff (5)

  1. openapi/components/schemas/common/UsdAccountInfoBase.yaml, line 1-27 (link)

    P1bankAccountType removed without replacement

    The bankAccountType field (CHECKING/SAVINGS) was previously described as "Required for certain corridors (e.g., El Salvador)" and has been removed entirely. Clients using USD accounts for corridors that depend on this distinction now have no way to express the account type, which may silently break routing for those corridors unless the backend now derives it differently.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/UsdAccountInfoBase.yaml
    Line: 1-27
    Comment:
    **`bankAccountType` removed without replacement**
    The `bankAccountType` field (CHECKING/SAVINGS) was previously described as "Required for certain corridors (e.g., El Salvador)" and has been removed entirely. Clients using USD accounts for corridors that depend on this distinction now have no way to express the account type, which may silently break routing for those corridors unless the backend now derives it differently.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  2. openapi/components/schemas/common/UsdBeneficiary.yaml, line 1-8 (link)

    P1Three new fields added to required

    address, birthDate, and nationality are now required for UsdBeneficiary. Any existing API consumer that builds a USD beneficiary payload without these fields will receive a validation error after this sync, making this a breaking change for in-flight integrations targeting the USD corridor.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/UsdBeneficiary.yaml
    Line: 1-8
    Comment:
    **Three new fields added to `required`**`address`, `birthDate`, and `nationality` are now required for `UsdBeneficiary`. Any existing API consumer that builds a USD beneficiary payload without these fields will receive a validation error after this sync, making this a breaking change for in-flight integrations targeting the USD corridor.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  3. openapi/components/schemas/common/CopBeneficiary.yaml, line 1-7 (link)

    P1Required fields replaced — countryOfResidence dropped, documentNumber/documentType added

    countryOfResidence is no longer required while documentNumber and documentType are now mandatory. Existing clients that omit document fields but supply countryOfResidence will begin failing validation. Please confirm this matches the live backend requirement change and that a migration path or communication to existing integrators is planned.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/CopBeneficiary.yaml
    Line: 1-7
    Comment:
    **Required fields replaced — `countryOfResidence` dropped, `documentNumber`/`documentType` added**`countryOfResidence` is no longer required while `documentNumber` and `documentType` are now mandatory. Existing clients that omit document fields but supply `countryOfResidence` will begin failing validation. Please confirm this matches the live backend requirement change and that a migration path or communication to existing integrators is planned.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  4. openapi/components/schemas/common/EgpAccountInfoBase.yaml, line 21-39 (link)

    P2German IBAN used as inline example for an Egyptian account

    Both the iban property-level example (line 24) and the schema-level example block reference DE89370400440532013000, which is a German IBAN. Egyptian IBANs begin with EG and are 29 characters long; using a German IBAN may confuse integrators. Consider substituting a realistic EGP IBAN (e.g., EG380019000500000000263180002).

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/EgpAccountInfoBase.yaml
    Line: 21-39
    Comment:
    **German IBAN used as inline example for an Egyptian account**
    Both the `iban` property-level example (line 24) and the schema-level `example` block reference `DE89370400440532013000`, which is a German IBAN. Egyptian IBANs begin with `EG` and are 29 characters long; using a German IBAN may confuse integrators. Consider substituting a realistic EGP IBAN (e.g., `EG380019000500000000263180002`).
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  5. openapi/components/schemas/common/PkrAccountInfoBase.yaml, line 22-28 (link)

    P2German IBAN used as example; Pakistan does not use IBAN

    The inline property example for iban (line 25) is DE89370400440532013000, a German IBAN. Pakistan is not part of the IBAN scheme, so this field and its example may mislead integrators. If the field is legacy/optional for edge cases, a comment or description clarifying the context would help.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/PkrAccountInfoBase.yaml
    Line: 22-28
    Comment:
    **German IBAN used as example; Pakistan does not use IBAN**
    The inline property `example` for `iban` (line 25) is `DE89370400440532013000`, a German IBAN. Pakistan is not part of the IBAN scheme, so this field and its example may mislead integrators. If the field is legacy/optional for edge cases, a comment or description clarifying the context would help.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

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/UsdAccountInfoBase.yaml
Line: 1-27
Comment:
**`bankAccountType` removed without replacement**
The `bankAccountType` field (CHECKING/SAVINGS) was previously described as "Required for certain corridors (e.g., El Salvador)" and has been removed entirely. Clients using USD accounts for corridors that depend on this distinction now have no way to express the account type, which may silently break routing for those corridors unless the backend now derives it differently.
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/UsdBeneficiary.yaml
Line: 1-8
Comment:
**Three new fields added to `required`**`address`, `birthDate`, and `nationality` are now required for `UsdBeneficiary`. Any existing API consumer that builds a USD beneficiary payload without these fields will receive a validation error after this sync, making this a breaking change for in-flight integrations targeting the USD corridor.
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: 1-7
Comment:
**Required fields replaced — `countryOfResidence` dropped, `documentNumber`/`documentType` added**`countryOfResidence` is no longer required while `documentNumber` and `documentType` are now mandatory. Existing clients that omit document fields but supply `countryOfResidence` will begin failing validation. Please confirm this matches the live backend requirement change and that a migration path or communication to existing integrators is planned.
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/EgpAccountInfoBase.yaml
Line: 21-39
Comment:
**German IBAN used as inline example for an Egyptian account**
Both the `iban` property-level example (line 24) and the schema-level `example` block reference `DE89370400440532013000`, which is a German IBAN. Egyptian IBANs begin with `EG` and are 29 characters long; using a German IBAN may confuse integrators. Consider substituting a realistic EGP IBAN (e.g., `EG380019000500000000263180002`).
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/PkrAccountInfoBase.yaml
Line: 22-28
Comment:
**German IBAN used as example; Pakistan does not use IBAN**
The inline property `example` for `iban` (line 25) is `DE89370400440532013000`, a German IBAN. Pakistan is not part of the IBAN scheme, so this field and its example may mislead integrators. If the field is legacy/optional for edge cases, a comment or description clarifying the context would help.
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

@JasonCWang
JasonCWang merged commit a230551 into mainApr 23, 2026
7 checks passed
@JasonCWang
JasonCWang deleted the auto/sync-grid-schemas-20260423-220919 branch April 23, 2026 22:37
shreyav added a commit that referenced this pull request Apr 24, 2026
Sign up for freeto 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

@JasonCWang
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' chore: Sync account schemas by lightspark-copybara[bot] · Pull Request #388 · lightsparkdev/grid-api · GitHub
Skip to content

chore: Sync account schemas - #388

Merged
JasonCWang merged 1 commit into
mainfrom
auto/sync-grid-schemas-20260423-220919
Apr 23, 2026
Merged

chore: Sync account schemas#388
JasonCWang merged 1 commit into
mainfrom
auto/sync-grid-schemas-20260423-220919

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

vercelBot commented Apr 23, 2026

Copy link
Copy Markdown

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

ProjectDeploymentActionsUpdated (UTC)
grid-flow-builderReadyReadyPreview, CommentApr 23, 2026 10:09pm

Request Review

@github-actions

github-actionsBot 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

feat(api): add bankName fields, add bankAccountType to GTQ, remove phoneNumber, update types

openapi

fix(types): update required fields across USD/GTQ/COP/PEN account and beneficiary types

python

fix(types): update field requirements across beneficiaries, add bank_name to account types

typescript

fix(types): add bankName to BDT/EGP/GHS/GTQ/JMD/PKR, update USD/COP/GTQ requirements
⚠️grid-openapistudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗

⚠️grid-kotlinstudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗build ✅lint ✅test ✅

⚠️grid-typescriptstudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗build ✅lint ✅test ✅

npm install https://pkg.stainless.com/s/grid-typescript/2bfab9677b43bb5b8c553c15d414ed4bd5f97618/dist.tar.gz
⚠️grid-pythonstudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗build ✅lint ✅test ✅

pip install https://pkg.stainless.com/s/grid-python/2a57a42725c5b8104a22ffd19e1df2af321d5ea2/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 22:44:01 UTC

@greptile-apps

greptile-appsBot commented Apr 23, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This auto-synced PR updates 42 account schema files, adding schema-level example blocks across all currency AccountInfoBase schemas and making several structural changes to required fields and enums sourced from sparkcore's VASP adapter definitions.

The bulk of the changes (example additions, new bankName required fields for BDT, EGP, GHS, JMD, PKR, COP, GTQ) are additive and straightforward, but a few changes represent breaking API contracts that existing integrators may not be prepared for:

  • UsdAccountInfoBase: bankAccountType (CHECKING/SAVINGS, previously noted as "Required for certain corridors e.g. El Salvador") is removed with no replacement.
  • UsdBeneficiary: address, birthDate, and nationality are now required — existing payloads omitting these will fail validation.
  • CopBeneficiary: documentNumber and documentType are now required; countryOfResidence is no longer required.
  • UsdAccountInfo, CopAccountInfo, GtqAccountInfo: BANK_TRANSFER / MOBILE_MONEY enum values removed.

Confidence Score: 4/5

Safe to merge if the backend already reflects these breaking changes; needs human confirmation that corridor migrations (especially USD/El Salvador bankAccountType) are handled.

Three P1 findings cover breaking schema changes to required fields and enum values across USD, COP, and GTQ schemas. The changes are intentional (generated from sparkcore), but the removal of bankAccountType from UsdAccountInfoBase in particular needs explicit confirmation that no active corridor relies on it.

UsdAccountInfoBase.yaml, UsdBeneficiary.yaml, and CopBeneficiary.yaml carry the highest-impact breaking changes and warrant explicit sign-off.

Important Files Changed

FilenameOverview
openapi/components/schemas/common/UsdAccountInfoBase.yamlRemoves bankAccountType (CHECKING/SAVINGS) field previously described as required for certain corridors (e.g., El Salvador); adds schema-level example.
openapi/components/schemas/common/UsdAccountInfo.yamlRemoves BANK_TRANSFER from the payment method enum — a breaking change for any client currently using that value.
openapi/components/schemas/common/UsdBeneficiary.yamlAdds address, birthDate, and nationality to the required list — breaking change for existing USD beneficiary payloads.
openapi/components/schemas/common/CopBeneficiary.yamlSwaps countryOfResidence out of required in favour of documentNumber and documentType; reorders address and document fields — breaking change for existing integrations.
openapi/components/schemas/common/CopAccountInfoBase.yamlRemoves phoneNumber field entirely and reorders required fields; adds bankName with length constraints and a schema-level example.
openapi/components/schemas/common/CopAccountInfo.yamlRemoves MOBILE_MONEY from the payment method enum for COP accounts.
openapi/components/schemas/common/GtqAccountInfoBase.yamlReplaces phoneNumber with bankAccountType (CHECKING/SAVINGS enum) and adds required bankName; significantly changes the schema shape for GTQ accounts.
openapi/components/schemas/common/GtqAccountInfo.yamlRemoves MOBILE_MONEY from the payment method enum for GTQ accounts, aligned with the GTQ account info restructure.
openapi/components/schemas/common/GtqBeneficiary.yamlAdds phoneNumber to the required list — breaking change for existing GTQ beneficiary payloads that omit phone.
openapi/components/schemas/common/EgpAccountInfoBase.yamlAdds required bankName field; inline IBAN example uses a German IBAN rather than an Egypt-specific one.
openapi/components/schemas/common/PkrAccountInfoBase.yamlAdds required bankName; the optional iban property example uses a German IBAN despite Pakistan not using the IBAN system.
openapi.yamlGenerated bundle — reflects all source schema changes; includes the same breaking changes (bankAccountType removal, UsdBeneficiary new required fields, CopBeneficiary required swap, enum removals).

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
subgraph Removed["⛔ Removed / Breaking"]
A["UsdAccountInfoBase\n– bankAccountType field removed\n(was: CHECKING | SAVINGS)"]
B["UsdAccountInfo\n– BANK_TRANSFER enum removed"]
C["CopAccountInfo / GtqAccountInfo\n– MOBILE_MONEY enum removed"]
D["CopAccountInfoBase\n– phoneNumber field removed"]
end
subgraph AddedRequired["⚠️ New Required Fields"]
E["UsdBeneficiary\n+ address, birthDate, nationality"]
F["CopBeneficiary\n+ documentNumber, documentType\n– countryOfResidence (no longer required)"]
G["GtqBeneficiary\n+ phoneNumber"]
H["BDT / EGP / GHS / GTQ / JMD / PKR / COP\n+ bankName (required)"]
end
subgraph AddedOptional["✅ Additive / Examples"]
I["30+ AccountInfoBase schemas\n+ schema-level example block"]
J["GtqAccountInfoBase\nphoneNumber → bankAccountType enum"]
end
Removed --> AddedRequired
AddedRequired --> AddedOptional
Loading

Comments Outside Diff (5)

  1. openapi/components/schemas/common/UsdAccountInfoBase.yaml, line 1-27 (link)

    P1bankAccountType removed without replacement

    The bankAccountType field (CHECKING/SAVINGS) was previously described as "Required for certain corridors (e.g., El Salvador)" and has been removed entirely. Clients using USD accounts for corridors that depend on this distinction now have no way to express the account type, which may silently break routing for those corridors unless the backend now derives it differently.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/UsdAccountInfoBase.yaml
    Line: 1-27
    Comment:
    **`bankAccountType` removed without replacement**
    The `bankAccountType` field (CHECKING/SAVINGS) was previously described as "Required for certain corridors (e.g., El Salvador)" and has been removed entirely. Clients using USD accounts for corridors that depend on this distinction now have no way to express the account type, which may silently break routing for those corridors unless the backend now derives it differently.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  2. openapi/components/schemas/common/UsdBeneficiary.yaml, line 1-8 (link)

    P1Three new fields added to required

    address, birthDate, and nationality are now required for UsdBeneficiary. Any existing API consumer that builds a USD beneficiary payload without these fields will receive a validation error after this sync, making this a breaking change for in-flight integrations targeting the USD corridor.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/UsdBeneficiary.yaml
    Line: 1-8
    Comment:
    **Three new fields added to `required`**`address`, `birthDate`, and `nationality` are now required for `UsdBeneficiary`. Any existing API consumer that builds a USD beneficiary payload without these fields will receive a validation error after this sync, making this a breaking change for in-flight integrations targeting the USD corridor.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  3. openapi/components/schemas/common/CopBeneficiary.yaml, line 1-7 (link)

    P1Required fields replaced — countryOfResidence dropped, documentNumber/documentType added

    countryOfResidence is no longer required while documentNumber and documentType are now mandatory. Existing clients that omit document fields but supply countryOfResidence will begin failing validation. Please confirm this matches the live backend requirement change and that a migration path or communication to existing integrators is planned.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/CopBeneficiary.yaml
    Line: 1-7
    Comment:
    **Required fields replaced — `countryOfResidence` dropped, `documentNumber`/`documentType` added**`countryOfResidence` is no longer required while `documentNumber` and `documentType` are now mandatory. Existing clients that omit document fields but supply `countryOfResidence` will begin failing validation. Please confirm this matches the live backend requirement change and that a migration path or communication to existing integrators is planned.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  4. openapi/components/schemas/common/EgpAccountInfoBase.yaml, line 21-39 (link)

    P2German IBAN used as inline example for an Egyptian account

    Both the iban property-level example (line 24) and the schema-level example block reference DE89370400440532013000, which is a German IBAN. Egyptian IBANs begin with EG and are 29 characters long; using a German IBAN may confuse integrators. Consider substituting a realistic EGP IBAN (e.g., EG380019000500000000263180002).

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/EgpAccountInfoBase.yaml
    Line: 21-39
    Comment:
    **German IBAN used as inline example for an Egyptian account**
    Both the `iban` property-level example (line 24) and the schema-level `example` block reference `DE89370400440532013000`, which is a German IBAN. Egyptian IBANs begin with `EG` and are 29 characters long; using a German IBAN may confuse integrators. Consider substituting a realistic EGP IBAN (e.g., `EG380019000500000000263180002`).
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  5. openapi/components/schemas/common/PkrAccountInfoBase.yaml, line 22-28 (link)

    P2German IBAN used as example; Pakistan does not use IBAN

    The inline property example for iban (line 25) is DE89370400440532013000, a German IBAN. Pakistan is not part of the IBAN scheme, so this field and its example may mislead integrators. If the field is legacy/optional for edge cases, a comment or description clarifying the context would help.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/PkrAccountInfoBase.yaml
    Line: 22-28
    Comment:
    **German IBAN used as example; Pakistan does not use IBAN**
    The inline property `example` for `iban` (line 25) is `DE89370400440532013000`, a German IBAN. Pakistan is not part of the IBAN scheme, so this field and its example may mislead integrators. If the field is legacy/optional for edge cases, a comment or description clarifying the context would help.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

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/UsdAccountInfoBase.yaml
Line: 1-27
Comment:
**`bankAccountType` removed without replacement**
The `bankAccountType` field (CHECKING/SAVINGS) was previously described as "Required for certain corridors (e.g., El Salvador)" and has been removed entirely. Clients using USD accounts for corridors that depend on this distinction now have no way to express the account type, which may silently break routing for those corridors unless the backend now derives it differently.
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/UsdBeneficiary.yaml
Line: 1-8
Comment:
**Three new fields added to `required`**`address`, `birthDate`, and `nationality` are now required for `UsdBeneficiary`. Any existing API consumer that builds a USD beneficiary payload without these fields will receive a validation error after this sync, making this a breaking change for in-flight integrations targeting the USD corridor.
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: 1-7
Comment:
**Required fields replaced — `countryOfResidence` dropped, `documentNumber`/`documentType` added**`countryOfResidence` is no longer required while `documentNumber` and `documentType` are now mandatory. Existing clients that omit document fields but supply `countryOfResidence` will begin failing validation. Please confirm this matches the live backend requirement change and that a migration path or communication to existing integrators is planned.
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/EgpAccountInfoBase.yaml
Line: 21-39
Comment:
**German IBAN used as inline example for an Egyptian account**
Both the `iban` property-level example (line 24) and the schema-level `example` block reference `DE89370400440532013000`, which is a German IBAN. Egyptian IBANs begin with `EG` and are 29 characters long; using a German IBAN may confuse integrators. Consider substituting a realistic EGP IBAN (e.g., `EG380019000500000000263180002`).
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/PkrAccountInfoBase.yaml
Line: 22-28
Comment:
**German IBAN used as example; Pakistan does not use IBAN**
The inline property `example` for `iban` (line 25) is `DE89370400440532013000`, a German IBAN. Pakistan is not part of the IBAN scheme, so this field and its example may mislead integrators. If the field is legacy/optional for edge cases, a comment or description clarifying the context would help.
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

@JasonCWang
JasonCWang merged commit a230551 into mainApr 23, 2026
7 checks passed
@JasonCWang
JasonCWang deleted the auto/sync-grid-schemas-20260423-220919 branch April 23, 2026 22:37
shreyav added a commit that referenced this pull request Apr 24, 2026
Sign up for freeto 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

@JasonCWang
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' chore: Sync account schemas by lightspark-copybara[bot] · Pull Request #388 · lightsparkdev/grid-api · GitHub
Skip to content

chore: Sync account schemas - #388

Merged
JasonCWang merged 1 commit into
mainfrom
auto/sync-grid-schemas-20260423-220919
Apr 23, 2026
Merged

chore: Sync account schemas#388
JasonCWang merged 1 commit into
mainfrom
auto/sync-grid-schemas-20260423-220919

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

vercelBot commented Apr 23, 2026

Copy link
Copy Markdown

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

ProjectDeploymentActionsUpdated (UTC)
grid-flow-builderReadyReadyPreview, CommentApr 23, 2026 10:09pm

Request Review

@github-actions

github-actionsBot 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

feat(api): add bankName fields, add bankAccountType to GTQ, remove phoneNumber, update types

openapi

fix(types): update required fields across USD/GTQ/COP/PEN account and beneficiary types

python

fix(types): update field requirements across beneficiaries, add bank_name to account types

typescript

fix(types): add bankName to BDT/EGP/GHS/GTQ/JMD/PKR, update USD/COP/GTQ requirements
⚠️grid-openapistudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗

⚠️grid-kotlinstudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗build ✅lint ✅test ✅

⚠️grid-typescriptstudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗build ✅lint ✅test ✅

npm install https://pkg.stainless.com/s/grid-typescript/2bfab9677b43bb5b8c553c15d414ed4bd5f97618/dist.tar.gz
⚠️grid-pythonstudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗build ✅lint ✅test ✅

pip install https://pkg.stainless.com/s/grid-python/2a57a42725c5b8104a22ffd19e1df2af321d5ea2/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 22:44:01 UTC

@greptile-apps

greptile-appsBot commented Apr 23, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This auto-synced PR updates 42 account schema files, adding schema-level example blocks across all currency AccountInfoBase schemas and making several structural changes to required fields and enums sourced from sparkcore's VASP adapter definitions.

The bulk of the changes (example additions, new bankName required fields for BDT, EGP, GHS, JMD, PKR, COP, GTQ) are additive and straightforward, but a few changes represent breaking API contracts that existing integrators may not be prepared for:

  • UsdAccountInfoBase: bankAccountType (CHECKING/SAVINGS, previously noted as "Required for certain corridors e.g. El Salvador") is removed with no replacement.
  • UsdBeneficiary: address, birthDate, and nationality are now required — existing payloads omitting these will fail validation.
  • CopBeneficiary: documentNumber and documentType are now required; countryOfResidence is no longer required.
  • UsdAccountInfo, CopAccountInfo, GtqAccountInfo: BANK_TRANSFER / MOBILE_MONEY enum values removed.

Confidence Score: 4/5

Safe to merge if the backend already reflects these breaking changes; needs human confirmation that corridor migrations (especially USD/El Salvador bankAccountType) are handled.

Three P1 findings cover breaking schema changes to required fields and enum values across USD, COP, and GTQ schemas. The changes are intentional (generated from sparkcore), but the removal of bankAccountType from UsdAccountInfoBase in particular needs explicit confirmation that no active corridor relies on it.

UsdAccountInfoBase.yaml, UsdBeneficiary.yaml, and CopBeneficiary.yaml carry the highest-impact breaking changes and warrant explicit sign-off.

Important Files Changed

FilenameOverview
openapi/components/schemas/common/UsdAccountInfoBase.yamlRemoves bankAccountType (CHECKING/SAVINGS) field previously described as required for certain corridors (e.g., El Salvador); adds schema-level example.
openapi/components/schemas/common/UsdAccountInfo.yamlRemoves BANK_TRANSFER from the payment method enum — a breaking change for any client currently using that value.
openapi/components/schemas/common/UsdBeneficiary.yamlAdds address, birthDate, and nationality to the required list — breaking change for existing USD beneficiary payloads.
openapi/components/schemas/common/CopBeneficiary.yamlSwaps countryOfResidence out of required in favour of documentNumber and documentType; reorders address and document fields — breaking change for existing integrations.
openapi/components/schemas/common/CopAccountInfoBase.yamlRemoves phoneNumber field entirely and reorders required fields; adds bankName with length constraints and a schema-level example.
openapi/components/schemas/common/CopAccountInfo.yamlRemoves MOBILE_MONEY from the payment method enum for COP accounts.
openapi/components/schemas/common/GtqAccountInfoBase.yamlReplaces phoneNumber with bankAccountType (CHECKING/SAVINGS enum) and adds required bankName; significantly changes the schema shape for GTQ accounts.
openapi/components/schemas/common/GtqAccountInfo.yamlRemoves MOBILE_MONEY from the payment method enum for GTQ accounts, aligned with the GTQ account info restructure.
openapi/components/schemas/common/GtqBeneficiary.yamlAdds phoneNumber to the required list — breaking change for existing GTQ beneficiary payloads that omit phone.
openapi/components/schemas/common/EgpAccountInfoBase.yamlAdds required bankName field; inline IBAN example uses a German IBAN rather than an Egypt-specific one.
openapi/components/schemas/common/PkrAccountInfoBase.yamlAdds required bankName; the optional iban property example uses a German IBAN despite Pakistan not using the IBAN system.
openapi.yamlGenerated bundle — reflects all source schema changes; includes the same breaking changes (bankAccountType removal, UsdBeneficiary new required fields, CopBeneficiary required swap, enum removals).

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
subgraph Removed["⛔ Removed / Breaking"]
A["UsdAccountInfoBase\n– bankAccountType field removed\n(was: CHECKING | SAVINGS)"]
B["UsdAccountInfo\n– BANK_TRANSFER enum removed"]
C["CopAccountInfo / GtqAccountInfo\n– MOBILE_MONEY enum removed"]
D["CopAccountInfoBase\n– phoneNumber field removed"]
end
subgraph AddedRequired["⚠️ New Required Fields"]
E["UsdBeneficiary\n+ address, birthDate, nationality"]
F["CopBeneficiary\n+ documentNumber, documentType\n– countryOfResidence (no longer required)"]
G["GtqBeneficiary\n+ phoneNumber"]
H["BDT / EGP / GHS / GTQ / JMD / PKR / COP\n+ bankName (required)"]
end
subgraph AddedOptional["✅ Additive / Examples"]
I["30+ AccountInfoBase schemas\n+ schema-level example block"]
J["GtqAccountInfoBase\nphoneNumber → bankAccountType enum"]
end
Removed --> AddedRequired
AddedRequired --> AddedOptional
Loading

Comments Outside Diff (5)

  1. openapi/components/schemas/common/UsdAccountInfoBase.yaml, line 1-27 (link)

    P1bankAccountType removed without replacement

    The bankAccountType field (CHECKING/SAVINGS) was previously described as "Required for certain corridors (e.g., El Salvador)" and has been removed entirely. Clients using USD accounts for corridors that depend on this distinction now have no way to express the account type, which may silently break routing for those corridors unless the backend now derives it differently.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/UsdAccountInfoBase.yaml
    Line: 1-27
    Comment:
    **`bankAccountType` removed without replacement**
    The `bankAccountType` field (CHECKING/SAVINGS) was previously described as "Required for certain corridors (e.g., El Salvador)" and has been removed entirely. Clients using USD accounts for corridors that depend on this distinction now have no way to express the account type, which may silently break routing for those corridors unless the backend now derives it differently.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  2. openapi/components/schemas/common/UsdBeneficiary.yaml, line 1-8 (link)

    P1Three new fields added to required

    address, birthDate, and nationality are now required for UsdBeneficiary. Any existing API consumer that builds a USD beneficiary payload without these fields will receive a validation error after this sync, making this a breaking change for in-flight integrations targeting the USD corridor.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/UsdBeneficiary.yaml
    Line: 1-8
    Comment:
    **Three new fields added to `required`**`address`, `birthDate`, and `nationality` are now required for `UsdBeneficiary`. Any existing API consumer that builds a USD beneficiary payload without these fields will receive a validation error after this sync, making this a breaking change for in-flight integrations targeting the USD corridor.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  3. openapi/components/schemas/common/CopBeneficiary.yaml, line 1-7 (link)

    P1Required fields replaced — countryOfResidence dropped, documentNumber/documentType added

    countryOfResidence is no longer required while documentNumber and documentType are now mandatory. Existing clients that omit document fields but supply countryOfResidence will begin failing validation. Please confirm this matches the live backend requirement change and that a migration path or communication to existing integrators is planned.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/CopBeneficiary.yaml
    Line: 1-7
    Comment:
    **Required fields replaced — `countryOfResidence` dropped, `documentNumber`/`documentType` added**`countryOfResidence` is no longer required while `documentNumber` and `documentType` are now mandatory. Existing clients that omit document fields but supply `countryOfResidence` will begin failing validation. Please confirm this matches the live backend requirement change and that a migration path or communication to existing integrators is planned.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  4. openapi/components/schemas/common/EgpAccountInfoBase.yaml, line 21-39 (link)

    P2German IBAN used as inline example for an Egyptian account

    Both the iban property-level example (line 24) and the schema-level example block reference DE89370400440532013000, which is a German IBAN. Egyptian IBANs begin with EG and are 29 characters long; using a German IBAN may confuse integrators. Consider substituting a realistic EGP IBAN (e.g., EG380019000500000000263180002).

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/EgpAccountInfoBase.yaml
    Line: 21-39
    Comment:
    **German IBAN used as inline example for an Egyptian account**
    Both the `iban` property-level example (line 24) and the schema-level `example` block reference `DE89370400440532013000`, which is a German IBAN. Egyptian IBANs begin with `EG` and are 29 characters long; using a German IBAN may confuse integrators. Consider substituting a realistic EGP IBAN (e.g., `EG380019000500000000263180002`).
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  5. openapi/components/schemas/common/PkrAccountInfoBase.yaml, line 22-28 (link)

    P2German IBAN used as example; Pakistan does not use IBAN

    The inline property example for iban (line 25) is DE89370400440532013000, a German IBAN. Pakistan is not part of the IBAN scheme, so this field and its example may mislead integrators. If the field is legacy/optional for edge cases, a comment or description clarifying the context would help.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/PkrAccountInfoBase.yaml
    Line: 22-28
    Comment:
    **German IBAN used as example; Pakistan does not use IBAN**
    The inline property `example` for `iban` (line 25) is `DE89370400440532013000`, a German IBAN. Pakistan is not part of the IBAN scheme, so this field and its example may mislead integrators. If the field is legacy/optional for edge cases, a comment or description clarifying the context would help.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

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/UsdAccountInfoBase.yaml
Line: 1-27
Comment:
**`bankAccountType` removed without replacement**
The `bankAccountType` field (CHECKING/SAVINGS) was previously described as "Required for certain corridors (e.g., El Salvador)" and has been removed entirely. Clients using USD accounts for corridors that depend on this distinction now have no way to express the account type, which may silently break routing for those corridors unless the backend now derives it differently.
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/UsdBeneficiary.yaml
Line: 1-8
Comment:
**Three new fields added to `required`**`address`, `birthDate`, and `nationality` are now required for `UsdBeneficiary`. Any existing API consumer that builds a USD beneficiary payload without these fields will receive a validation error after this sync, making this a breaking change for in-flight integrations targeting the USD corridor.
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: 1-7
Comment:
**Required fields replaced — `countryOfResidence` dropped, `documentNumber`/`documentType` added**`countryOfResidence` is no longer required while `documentNumber` and `documentType` are now mandatory. Existing clients that omit document fields but supply `countryOfResidence` will begin failing validation. Please confirm this matches the live backend requirement change and that a migration path or communication to existing integrators is planned.
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/EgpAccountInfoBase.yaml
Line: 21-39
Comment:
**German IBAN used as inline example for an Egyptian account**
Both the `iban` property-level example (line 24) and the schema-level `example` block reference `DE89370400440532013000`, which is a German IBAN. Egyptian IBANs begin with `EG` and are 29 characters long; using a German IBAN may confuse integrators. Consider substituting a realistic EGP IBAN (e.g., `EG380019000500000000263180002`).
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/PkrAccountInfoBase.yaml
Line: 22-28
Comment:
**German IBAN used as example; Pakistan does not use IBAN**
The inline property `example` for `iban` (line 25) is `DE89370400440532013000`, a German IBAN. Pakistan is not part of the IBAN scheme, so this field and its example may mislead integrators. If the field is legacy/optional for edge cases, a comment or description clarifying the context would help.
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

@JasonCWang
JasonCWang merged commit a230551 into mainApr 23, 2026
7 checks passed
@JasonCWang
JasonCWang deleted the auto/sync-grid-schemas-20260423-220919 branch April 23, 2026 22:37
shreyav added a commit that referenced this pull request Apr 24, 2026
Sign up for freeto 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

@JasonCWang
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' chore: Sync account schemas by lightspark-copybara[bot] · Pull Request #388 · lightsparkdev/grid-api · GitHub
Skip to content

chore: Sync account schemas - #388

Merged
JasonCWang merged 1 commit into
mainfrom
auto/sync-grid-schemas-20260423-220919
Apr 23, 2026
Merged

chore: Sync account schemas#388
JasonCWang merged 1 commit into
mainfrom
auto/sync-grid-schemas-20260423-220919

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

vercelBot commented Apr 23, 2026

Copy link
Copy Markdown

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

ProjectDeploymentActionsUpdated (UTC)
grid-flow-builderReadyReadyPreview, CommentApr 23, 2026 10:09pm

Request Review

@github-actions

github-actionsBot 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

feat(api): add bankName fields, add bankAccountType to GTQ, remove phoneNumber, update types

openapi

fix(types): update required fields across USD/GTQ/COP/PEN account and beneficiary types

python

fix(types): update field requirements across beneficiaries, add bank_name to account types

typescript

fix(types): add bankName to BDT/EGP/GHS/GTQ/JMD/PKR, update USD/COP/GTQ requirements
⚠️grid-openapistudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗

⚠️grid-kotlinstudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗build ✅lint ✅test ✅

⚠️grid-typescriptstudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗build ✅lint ✅test ✅

npm install https://pkg.stainless.com/s/grid-typescript/2bfab9677b43bb5b8c553c15d414ed4bd5f97618/dist.tar.gz
⚠️grid-pythonstudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗build ✅lint ✅test ✅

pip install https://pkg.stainless.com/s/grid-python/2a57a42725c5b8104a22ffd19e1df2af321d5ea2/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 22:44:01 UTC

@greptile-apps

greptile-appsBot commented Apr 23, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This auto-synced PR updates 42 account schema files, adding schema-level example blocks across all currency AccountInfoBase schemas and making several structural changes to required fields and enums sourced from sparkcore's VASP adapter definitions.

The bulk of the changes (example additions, new bankName required fields for BDT, EGP, GHS, JMD, PKR, COP, GTQ) are additive and straightforward, but a few changes represent breaking API contracts that existing integrators may not be prepared for:

  • UsdAccountInfoBase: bankAccountType (CHECKING/SAVINGS, previously noted as "Required for certain corridors e.g. El Salvador") is removed with no replacement.
  • UsdBeneficiary: address, birthDate, and nationality are now required — existing payloads omitting these will fail validation.
  • CopBeneficiary: documentNumber and documentType are now required; countryOfResidence is no longer required.
  • UsdAccountInfo, CopAccountInfo, GtqAccountInfo: BANK_TRANSFER / MOBILE_MONEY enum values removed.

Confidence Score: 4/5

Safe to merge if the backend already reflects these breaking changes; needs human confirmation that corridor migrations (especially USD/El Salvador bankAccountType) are handled.

Three P1 findings cover breaking schema changes to required fields and enum values across USD, COP, and GTQ schemas. The changes are intentional (generated from sparkcore), but the removal of bankAccountType from UsdAccountInfoBase in particular needs explicit confirmation that no active corridor relies on it.

UsdAccountInfoBase.yaml, UsdBeneficiary.yaml, and CopBeneficiary.yaml carry the highest-impact breaking changes and warrant explicit sign-off.

Important Files Changed

FilenameOverview
openapi/components/schemas/common/UsdAccountInfoBase.yamlRemoves bankAccountType (CHECKING/SAVINGS) field previously described as required for certain corridors (e.g., El Salvador); adds schema-level example.
openapi/components/schemas/common/UsdAccountInfo.yamlRemoves BANK_TRANSFER from the payment method enum — a breaking change for any client currently using that value.
openapi/components/schemas/common/UsdBeneficiary.yamlAdds address, birthDate, and nationality to the required list — breaking change for existing USD beneficiary payloads.
openapi/components/schemas/common/CopBeneficiary.yamlSwaps countryOfResidence out of required in favour of documentNumber and documentType; reorders address and document fields — breaking change for existing integrations.
openapi/components/schemas/common/CopAccountInfoBase.yamlRemoves phoneNumber field entirely and reorders required fields; adds bankName with length constraints and a schema-level example.
openapi/components/schemas/common/CopAccountInfo.yamlRemoves MOBILE_MONEY from the payment method enum for COP accounts.
openapi/components/schemas/common/GtqAccountInfoBase.yamlReplaces phoneNumber with bankAccountType (CHECKING/SAVINGS enum) and adds required bankName; significantly changes the schema shape for GTQ accounts.
openapi/components/schemas/common/GtqAccountInfo.yamlRemoves MOBILE_MONEY from the payment method enum for GTQ accounts, aligned with the GTQ account info restructure.
openapi/components/schemas/common/GtqBeneficiary.yamlAdds phoneNumber to the required list — breaking change for existing GTQ beneficiary payloads that omit phone.
openapi/components/schemas/common/EgpAccountInfoBase.yamlAdds required bankName field; inline IBAN example uses a German IBAN rather than an Egypt-specific one.
openapi/components/schemas/common/PkrAccountInfoBase.yamlAdds required bankName; the optional iban property example uses a German IBAN despite Pakistan not using the IBAN system.
openapi.yamlGenerated bundle — reflects all source schema changes; includes the same breaking changes (bankAccountType removal, UsdBeneficiary new required fields, CopBeneficiary required swap, enum removals).

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
subgraph Removed["⛔ Removed / Breaking"]
A["UsdAccountInfoBase\n– bankAccountType field removed\n(was: CHECKING | SAVINGS)"]
B["UsdAccountInfo\n– BANK_TRANSFER enum removed"]
C["CopAccountInfo / GtqAccountInfo\n– MOBILE_MONEY enum removed"]
D["CopAccountInfoBase\n– phoneNumber field removed"]
end
subgraph AddedRequired["⚠️ New Required Fields"]
E["UsdBeneficiary\n+ address, birthDate, nationality"]
F["CopBeneficiary\n+ documentNumber, documentType\n– countryOfResidence (no longer required)"]
G["GtqBeneficiary\n+ phoneNumber"]
H["BDT / EGP / GHS / GTQ / JMD / PKR / COP\n+ bankName (required)"]
end
subgraph AddedOptional["✅ Additive / Examples"]
I["30+ AccountInfoBase schemas\n+ schema-level example block"]
J["GtqAccountInfoBase\nphoneNumber → bankAccountType enum"]
end
Removed --> AddedRequired
AddedRequired --> AddedOptional
Loading

Comments Outside Diff (5)

  1. openapi/components/schemas/common/UsdAccountInfoBase.yaml, line 1-27 (link)

    P1bankAccountType removed without replacement

    The bankAccountType field (CHECKING/SAVINGS) was previously described as "Required for certain corridors (e.g., El Salvador)" and has been removed entirely. Clients using USD accounts for corridors that depend on this distinction now have no way to express the account type, which may silently break routing for those corridors unless the backend now derives it differently.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/UsdAccountInfoBase.yaml
    Line: 1-27
    Comment:
    **`bankAccountType` removed without replacement**
    The `bankAccountType` field (CHECKING/SAVINGS) was previously described as "Required for certain corridors (e.g., El Salvador)" and has been removed entirely. Clients using USD accounts for corridors that depend on this distinction now have no way to express the account type, which may silently break routing for those corridors unless the backend now derives it differently.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  2. openapi/components/schemas/common/UsdBeneficiary.yaml, line 1-8 (link)

    P1Three new fields added to required

    address, birthDate, and nationality are now required for UsdBeneficiary. Any existing API consumer that builds a USD beneficiary payload without these fields will receive a validation error after this sync, making this a breaking change for in-flight integrations targeting the USD corridor.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/UsdBeneficiary.yaml
    Line: 1-8
    Comment:
    **Three new fields added to `required`**`address`, `birthDate`, and `nationality` are now required for `UsdBeneficiary`. Any existing API consumer that builds a USD beneficiary payload without these fields will receive a validation error after this sync, making this a breaking change for in-flight integrations targeting the USD corridor.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  3. openapi/components/schemas/common/CopBeneficiary.yaml, line 1-7 (link)

    P1Required fields replaced — countryOfResidence dropped, documentNumber/documentType added

    countryOfResidence is no longer required while documentNumber and documentType are now mandatory. Existing clients that omit document fields but supply countryOfResidence will begin failing validation. Please confirm this matches the live backend requirement change and that a migration path or communication to existing integrators is planned.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/CopBeneficiary.yaml
    Line: 1-7
    Comment:
    **Required fields replaced — `countryOfResidence` dropped, `documentNumber`/`documentType` added**`countryOfResidence` is no longer required while `documentNumber` and `documentType` are now mandatory. Existing clients that omit document fields but supply `countryOfResidence` will begin failing validation. Please confirm this matches the live backend requirement change and that a migration path or communication to existing integrators is planned.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  4. openapi/components/schemas/common/EgpAccountInfoBase.yaml, line 21-39 (link)

    P2German IBAN used as inline example for an Egyptian account

    Both the iban property-level example (line 24) and the schema-level example block reference DE89370400440532013000, which is a German IBAN. Egyptian IBANs begin with EG and are 29 characters long; using a German IBAN may confuse integrators. Consider substituting a realistic EGP IBAN (e.g., EG380019000500000000263180002).

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/EgpAccountInfoBase.yaml
    Line: 21-39
    Comment:
    **German IBAN used as inline example for an Egyptian account**
    Both the `iban` property-level example (line 24) and the schema-level `example` block reference `DE89370400440532013000`, which is a German IBAN. Egyptian IBANs begin with `EG` and are 29 characters long; using a German IBAN may confuse integrators. Consider substituting a realistic EGP IBAN (e.g., `EG380019000500000000263180002`).
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  5. openapi/components/schemas/common/PkrAccountInfoBase.yaml, line 22-28 (link)

    P2German IBAN used as example; Pakistan does not use IBAN

    The inline property example for iban (line 25) is DE89370400440532013000, a German IBAN. Pakistan is not part of the IBAN scheme, so this field and its example may mislead integrators. If the field is legacy/optional for edge cases, a comment or description clarifying the context would help.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/PkrAccountInfoBase.yaml
    Line: 22-28
    Comment:
    **German IBAN used as example; Pakistan does not use IBAN**
    The inline property `example` for `iban` (line 25) is `DE89370400440532013000`, a German IBAN. Pakistan is not part of the IBAN scheme, so this field and its example may mislead integrators. If the field is legacy/optional for edge cases, a comment or description clarifying the context would help.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

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/UsdAccountInfoBase.yaml
Line: 1-27
Comment:
**`bankAccountType` removed without replacement**
The `bankAccountType` field (CHECKING/SAVINGS) was previously described as "Required for certain corridors (e.g., El Salvador)" and has been removed entirely. Clients using USD accounts for corridors that depend on this distinction now have no way to express the account type, which may silently break routing for those corridors unless the backend now derives it differently.
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/UsdBeneficiary.yaml
Line: 1-8
Comment:
**Three new fields added to `required`**`address`, `birthDate`, and `nationality` are now required for `UsdBeneficiary`. Any existing API consumer that builds a USD beneficiary payload without these fields will receive a validation error after this sync, making this a breaking change for in-flight integrations targeting the USD corridor.
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: 1-7
Comment:
**Required fields replaced — `countryOfResidence` dropped, `documentNumber`/`documentType` added**`countryOfResidence` is no longer required while `documentNumber` and `documentType` are now mandatory. Existing clients that omit document fields but supply `countryOfResidence` will begin failing validation. Please confirm this matches the live backend requirement change and that a migration path or communication to existing integrators is planned.
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/EgpAccountInfoBase.yaml
Line: 21-39
Comment:
**German IBAN used as inline example for an Egyptian account**
Both the `iban` property-level example (line 24) and the schema-level `example` block reference `DE89370400440532013000`, which is a German IBAN. Egyptian IBANs begin with `EG` and are 29 characters long; using a German IBAN may confuse integrators. Consider substituting a realistic EGP IBAN (e.g., `EG380019000500000000263180002`).
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/PkrAccountInfoBase.yaml
Line: 22-28
Comment:
**German IBAN used as example; Pakistan does not use IBAN**
The inline property `example` for `iban` (line 25) is `DE89370400440532013000`, a German IBAN. Pakistan is not part of the IBAN scheme, so this field and its example may mislead integrators. If the field is legacy/optional for edge cases, a comment or description clarifying the context would help.
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

@JasonCWang
JasonCWang merged commit a230551 into mainApr 23, 2026
7 checks passed
@JasonCWang
JasonCWang deleted the auto/sync-grid-schemas-20260423-220919 branch April 23, 2026 22:37
shreyav added a commit that referenced this pull request Apr 24, 2026
Sign up for freeto 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

@JasonCWang
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' chore: Sync account schemas by lightspark-copybara[bot] · Pull Request #388 · lightsparkdev/grid-api · GitHub
Skip to content

chore: Sync account schemas - #388

Merged
JasonCWang merged 1 commit into
mainfrom
auto/sync-grid-schemas-20260423-220919
Apr 23, 2026
Merged

chore: Sync account schemas#388
JasonCWang merged 1 commit into
mainfrom
auto/sync-grid-schemas-20260423-220919

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

vercelBot commented Apr 23, 2026

Copy link
Copy Markdown

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

ProjectDeploymentActionsUpdated (UTC)
grid-flow-builderReadyReadyPreview, CommentApr 23, 2026 10:09pm

Request Review

@github-actions

github-actionsBot 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

feat(api): add bankName fields, add bankAccountType to GTQ, remove phoneNumber, update types

openapi

fix(types): update required fields across USD/GTQ/COP/PEN account and beneficiary types

python

fix(types): update field requirements across beneficiaries, add bank_name to account types

typescript

fix(types): add bankName to BDT/EGP/GHS/GTQ/JMD/PKR, update USD/COP/GTQ requirements
⚠️grid-openapistudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗

⚠️grid-kotlinstudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗build ✅lint ✅test ✅

⚠️grid-typescriptstudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗build ✅lint ✅test ✅

npm install https://pkg.stainless.com/s/grid-typescript/2bfab9677b43bb5b8c553c15d414ed4bd5f97618/dist.tar.gz
⚠️grid-pythonstudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗build ✅lint ✅test ✅

pip install https://pkg.stainless.com/s/grid-python/2a57a42725c5b8104a22ffd19e1df2af321d5ea2/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 22:44:01 UTC

@greptile-apps

greptile-appsBot commented Apr 23, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This auto-synced PR updates 42 account schema files, adding schema-level example blocks across all currency AccountInfoBase schemas and making several structural changes to required fields and enums sourced from sparkcore's VASP adapter definitions.

The bulk of the changes (example additions, new bankName required fields for BDT, EGP, GHS, JMD, PKR, COP, GTQ) are additive and straightforward, but a few changes represent breaking API contracts that existing integrators may not be prepared for:

  • UsdAccountInfoBase: bankAccountType (CHECKING/SAVINGS, previously noted as "Required for certain corridors e.g. El Salvador") is removed with no replacement.
  • UsdBeneficiary: address, birthDate, and nationality are now required — existing payloads omitting these will fail validation.
  • CopBeneficiary: documentNumber and documentType are now required; countryOfResidence is no longer required.
  • UsdAccountInfo, CopAccountInfo, GtqAccountInfo: BANK_TRANSFER / MOBILE_MONEY enum values removed.

Confidence Score: 4/5

Safe to merge if the backend already reflects these breaking changes; needs human confirmation that corridor migrations (especially USD/El Salvador bankAccountType) are handled.

Three P1 findings cover breaking schema changes to required fields and enum values across USD, COP, and GTQ schemas. The changes are intentional (generated from sparkcore), but the removal of bankAccountType from UsdAccountInfoBase in particular needs explicit confirmation that no active corridor relies on it.

UsdAccountInfoBase.yaml, UsdBeneficiary.yaml, and CopBeneficiary.yaml carry the highest-impact breaking changes and warrant explicit sign-off.

Important Files Changed

FilenameOverview
openapi/components/schemas/common/UsdAccountInfoBase.yamlRemoves bankAccountType (CHECKING/SAVINGS) field previously described as required for certain corridors (e.g., El Salvador); adds schema-level example.
openapi/components/schemas/common/UsdAccountInfo.yamlRemoves BANK_TRANSFER from the payment method enum — a breaking change for any client currently using that value.
openapi/components/schemas/common/UsdBeneficiary.yamlAdds address, birthDate, and nationality to the required list — breaking change for existing USD beneficiary payloads.
openapi/components/schemas/common/CopBeneficiary.yamlSwaps countryOfResidence out of required in favour of documentNumber and documentType; reorders address and document fields — breaking change for existing integrations.
openapi/components/schemas/common/CopAccountInfoBase.yamlRemoves phoneNumber field entirely and reorders required fields; adds bankName with length constraints and a schema-level example.
openapi/components/schemas/common/CopAccountInfo.yamlRemoves MOBILE_MONEY from the payment method enum for COP accounts.
openapi/components/schemas/common/GtqAccountInfoBase.yamlReplaces phoneNumber with bankAccountType (CHECKING/SAVINGS enum) and adds required bankName; significantly changes the schema shape for GTQ accounts.
openapi/components/schemas/common/GtqAccountInfo.yamlRemoves MOBILE_MONEY from the payment method enum for GTQ accounts, aligned with the GTQ account info restructure.
openapi/components/schemas/common/GtqBeneficiary.yamlAdds phoneNumber to the required list — breaking change for existing GTQ beneficiary payloads that omit phone.
openapi/components/schemas/common/EgpAccountInfoBase.yamlAdds required bankName field; inline IBAN example uses a German IBAN rather than an Egypt-specific one.
openapi/components/schemas/common/PkrAccountInfoBase.yamlAdds required bankName; the optional iban property example uses a German IBAN despite Pakistan not using the IBAN system.
openapi.yamlGenerated bundle — reflects all source schema changes; includes the same breaking changes (bankAccountType removal, UsdBeneficiary new required fields, CopBeneficiary required swap, enum removals).

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
subgraph Removed["⛔ Removed / Breaking"]
A["UsdAccountInfoBase\n– bankAccountType field removed\n(was: CHECKING | SAVINGS)"]
B["UsdAccountInfo\n– BANK_TRANSFER enum removed"]
C["CopAccountInfo / GtqAccountInfo\n– MOBILE_MONEY enum removed"]
D["CopAccountInfoBase\n– phoneNumber field removed"]
end
subgraph AddedRequired["⚠️ New Required Fields"]
E["UsdBeneficiary\n+ address, birthDate, nationality"]
F["CopBeneficiary\n+ documentNumber, documentType\n– countryOfResidence (no longer required)"]
G["GtqBeneficiary\n+ phoneNumber"]
H["BDT / EGP / GHS / GTQ / JMD / PKR / COP\n+ bankName (required)"]
end
subgraph AddedOptional["✅ Additive / Examples"]
I["30+ AccountInfoBase schemas\n+ schema-level example block"]
J["GtqAccountInfoBase\nphoneNumber → bankAccountType enum"]
end
Removed --> AddedRequired
AddedRequired --> AddedOptional
Loading

Comments Outside Diff (5)

  1. openapi/components/schemas/common/UsdAccountInfoBase.yaml, line 1-27 (link)

    P1bankAccountType removed without replacement

    The bankAccountType field (CHECKING/SAVINGS) was previously described as "Required for certain corridors (e.g., El Salvador)" and has been removed entirely. Clients using USD accounts for corridors that depend on this distinction now have no way to express the account type, which may silently break routing for those corridors unless the backend now derives it differently.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/UsdAccountInfoBase.yaml
    Line: 1-27
    Comment:
    **`bankAccountType` removed without replacement**
    The `bankAccountType` field (CHECKING/SAVINGS) was previously described as "Required for certain corridors (e.g., El Salvador)" and has been removed entirely. Clients using USD accounts for corridors that depend on this distinction now have no way to express the account type, which may silently break routing for those corridors unless the backend now derives it differently.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  2. openapi/components/schemas/common/UsdBeneficiary.yaml, line 1-8 (link)

    P1Three new fields added to required

    address, birthDate, and nationality are now required for UsdBeneficiary. Any existing API consumer that builds a USD beneficiary payload without these fields will receive a validation error after this sync, making this a breaking change for in-flight integrations targeting the USD corridor.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/UsdBeneficiary.yaml
    Line: 1-8
    Comment:
    **Three new fields added to `required`**`address`, `birthDate`, and `nationality` are now required for `UsdBeneficiary`. Any existing API consumer that builds a USD beneficiary payload without these fields will receive a validation error after this sync, making this a breaking change for in-flight integrations targeting the USD corridor.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  3. openapi/components/schemas/common/CopBeneficiary.yaml, line 1-7 (link)

    P1Required fields replaced — countryOfResidence dropped, documentNumber/documentType added

    countryOfResidence is no longer required while documentNumber and documentType are now mandatory. Existing clients that omit document fields but supply countryOfResidence will begin failing validation. Please confirm this matches the live backend requirement change and that a migration path or communication to existing integrators is planned.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/CopBeneficiary.yaml
    Line: 1-7
    Comment:
    **Required fields replaced — `countryOfResidence` dropped, `documentNumber`/`documentType` added**`countryOfResidence` is no longer required while `documentNumber` and `documentType` are now mandatory. Existing clients that omit document fields but supply `countryOfResidence` will begin failing validation. Please confirm this matches the live backend requirement change and that a migration path or communication to existing integrators is planned.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  4. openapi/components/schemas/common/EgpAccountInfoBase.yaml, line 21-39 (link)

    P2German IBAN used as inline example for an Egyptian account

    Both the iban property-level example (line 24) and the schema-level example block reference DE89370400440532013000, which is a German IBAN. Egyptian IBANs begin with EG and are 29 characters long; using a German IBAN may confuse integrators. Consider substituting a realistic EGP IBAN (e.g., EG380019000500000000263180002).

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/EgpAccountInfoBase.yaml
    Line: 21-39
    Comment:
    **German IBAN used as inline example for an Egyptian account**
    Both the `iban` property-level example (line 24) and the schema-level `example` block reference `DE89370400440532013000`, which is a German IBAN. Egyptian IBANs begin with `EG` and are 29 characters long; using a German IBAN may confuse integrators. Consider substituting a realistic EGP IBAN (e.g., `EG380019000500000000263180002`).
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  5. openapi/components/schemas/common/PkrAccountInfoBase.yaml, line 22-28 (link)

    P2German IBAN used as example; Pakistan does not use IBAN

    The inline property example for iban (line 25) is DE89370400440532013000, a German IBAN. Pakistan is not part of the IBAN scheme, so this field and its example may mislead integrators. If the field is legacy/optional for edge cases, a comment or description clarifying the context would help.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/PkrAccountInfoBase.yaml
    Line: 22-28
    Comment:
    **German IBAN used as example; Pakistan does not use IBAN**
    The inline property `example` for `iban` (line 25) is `DE89370400440532013000`, a German IBAN. Pakistan is not part of the IBAN scheme, so this field and its example may mislead integrators. If the field is legacy/optional for edge cases, a comment or description clarifying the context would help.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

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/UsdAccountInfoBase.yaml
Line: 1-27
Comment:
**`bankAccountType` removed without replacement**
The `bankAccountType` field (CHECKING/SAVINGS) was previously described as "Required for certain corridors (e.g., El Salvador)" and has been removed entirely. Clients using USD accounts for corridors that depend on this distinction now have no way to express the account type, which may silently break routing for those corridors unless the backend now derives it differently.
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/UsdBeneficiary.yaml
Line: 1-8
Comment:
**Three new fields added to `required`**`address`, `birthDate`, and `nationality` are now required for `UsdBeneficiary`. Any existing API consumer that builds a USD beneficiary payload without these fields will receive a validation error after this sync, making this a breaking change for in-flight integrations targeting the USD corridor.
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: 1-7
Comment:
**Required fields replaced — `countryOfResidence` dropped, `documentNumber`/`documentType` added**`countryOfResidence` is no longer required while `documentNumber` and `documentType` are now mandatory. Existing clients that omit document fields but supply `countryOfResidence` will begin failing validation. Please confirm this matches the live backend requirement change and that a migration path or communication to existing integrators is planned.
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/EgpAccountInfoBase.yaml
Line: 21-39
Comment:
**German IBAN used as inline example for an Egyptian account**
Both the `iban` property-level example (line 24) and the schema-level `example` block reference `DE89370400440532013000`, which is a German IBAN. Egyptian IBANs begin with `EG` and are 29 characters long; using a German IBAN may confuse integrators. Consider substituting a realistic EGP IBAN (e.g., `EG380019000500000000263180002`).
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/PkrAccountInfoBase.yaml
Line: 22-28
Comment:
**German IBAN used as example; Pakistan does not use IBAN**
The inline property `example` for `iban` (line 25) is `DE89370400440532013000`, a German IBAN. Pakistan is not part of the IBAN scheme, so this field and its example may mislead integrators. If the field is legacy/optional for edge cases, a comment or description clarifying the context would help.
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

@JasonCWang
JasonCWang merged commit a230551 into mainApr 23, 2026
7 checks passed
@JasonCWang
JasonCWang deleted the auto/sync-grid-schemas-20260423-220919 branch April 23, 2026 22:37
shreyav added a commit that referenced this pull request Apr 24, 2026
Sign up for freeto 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

@JasonCWang
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' chore: Sync account schemas by lightspark-copybara[bot] · Pull Request #388 · lightsparkdev/grid-api · GitHub
Skip to content

chore: Sync account schemas - #388

Merged
JasonCWang merged 1 commit into
mainfrom
auto/sync-grid-schemas-20260423-220919
Apr 23, 2026
Merged

chore: Sync account schemas#388
JasonCWang merged 1 commit into
mainfrom
auto/sync-grid-schemas-20260423-220919

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

vercelBot commented Apr 23, 2026

Copy link
Copy Markdown

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

ProjectDeploymentActionsUpdated (UTC)
grid-flow-builderReadyReadyPreview, CommentApr 23, 2026 10:09pm

Request Review

@github-actions

github-actionsBot 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

feat(api): add bankName fields, add bankAccountType to GTQ, remove phoneNumber, update types

openapi

fix(types): update required fields across USD/GTQ/COP/PEN account and beneficiary types

python

fix(types): update field requirements across beneficiaries, add bank_name to account types

typescript

fix(types): add bankName to BDT/EGP/GHS/GTQ/JMD/PKR, update USD/COP/GTQ requirements
⚠️grid-openapistudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗

⚠️grid-kotlinstudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗build ✅lint ✅test ✅

⚠️grid-typescriptstudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗build ✅lint ✅test ✅

npm install https://pkg.stainless.com/s/grid-typescript/2bfab9677b43bb5b8c553c15d414ed4bd5f97618/dist.tar.gz
⚠️grid-pythonstudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗build ✅lint ✅test ✅

pip install https://pkg.stainless.com/s/grid-python/2a57a42725c5b8104a22ffd19e1df2af321d5ea2/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 22:44:01 UTC

@greptile-apps

greptile-appsBot commented Apr 23, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This auto-synced PR updates 42 account schema files, adding schema-level example blocks across all currency AccountInfoBase schemas and making several structural changes to required fields and enums sourced from sparkcore's VASP adapter definitions.

The bulk of the changes (example additions, new bankName required fields for BDT, EGP, GHS, JMD, PKR, COP, GTQ) are additive and straightforward, but a few changes represent breaking API contracts that existing integrators may not be prepared for:

  • UsdAccountInfoBase: bankAccountType (CHECKING/SAVINGS, previously noted as "Required for certain corridors e.g. El Salvador") is removed with no replacement.
  • UsdBeneficiary: address, birthDate, and nationality are now required — existing payloads omitting these will fail validation.
  • CopBeneficiary: documentNumber and documentType are now required; countryOfResidence is no longer required.
  • UsdAccountInfo, CopAccountInfo, GtqAccountInfo: BANK_TRANSFER / MOBILE_MONEY enum values removed.

Confidence Score: 4/5

Safe to merge if the backend already reflects these breaking changes; needs human confirmation that corridor migrations (especially USD/El Salvador bankAccountType) are handled.

Three P1 findings cover breaking schema changes to required fields and enum values across USD, COP, and GTQ schemas. The changes are intentional (generated from sparkcore), but the removal of bankAccountType from UsdAccountInfoBase in particular needs explicit confirmation that no active corridor relies on it.

UsdAccountInfoBase.yaml, UsdBeneficiary.yaml, and CopBeneficiary.yaml carry the highest-impact breaking changes and warrant explicit sign-off.

Important Files Changed

FilenameOverview
openapi/components/schemas/common/UsdAccountInfoBase.yamlRemoves bankAccountType (CHECKING/SAVINGS) field previously described as required for certain corridors (e.g., El Salvador); adds schema-level example.
openapi/components/schemas/common/UsdAccountInfo.yamlRemoves BANK_TRANSFER from the payment method enum — a breaking change for any client currently using that value.
openapi/components/schemas/common/UsdBeneficiary.yamlAdds address, birthDate, and nationality to the required list — breaking change for existing USD beneficiary payloads.
openapi/components/schemas/common/CopBeneficiary.yamlSwaps countryOfResidence out of required in favour of documentNumber and documentType; reorders address and document fields — breaking change for existing integrations.
openapi/components/schemas/common/CopAccountInfoBase.yamlRemoves phoneNumber field entirely and reorders required fields; adds bankName with length constraints and a schema-level example.
openapi/components/schemas/common/CopAccountInfo.yamlRemoves MOBILE_MONEY from the payment method enum for COP accounts.
openapi/components/schemas/common/GtqAccountInfoBase.yamlReplaces phoneNumber with bankAccountType (CHECKING/SAVINGS enum) and adds required bankName; significantly changes the schema shape for GTQ accounts.
openapi/components/schemas/common/GtqAccountInfo.yamlRemoves MOBILE_MONEY from the payment method enum for GTQ accounts, aligned with the GTQ account info restructure.
openapi/components/schemas/common/GtqBeneficiary.yamlAdds phoneNumber to the required list — breaking change for existing GTQ beneficiary payloads that omit phone.
openapi/components/schemas/common/EgpAccountInfoBase.yamlAdds required bankName field; inline IBAN example uses a German IBAN rather than an Egypt-specific one.
openapi/components/schemas/common/PkrAccountInfoBase.yamlAdds required bankName; the optional iban property example uses a German IBAN despite Pakistan not using the IBAN system.
openapi.yamlGenerated bundle — reflects all source schema changes; includes the same breaking changes (bankAccountType removal, UsdBeneficiary new required fields, CopBeneficiary required swap, enum removals).

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
subgraph Removed["⛔ Removed / Breaking"]
A["UsdAccountInfoBase\n– bankAccountType field removed\n(was: CHECKING | SAVINGS)"]
B["UsdAccountInfo\n– BANK_TRANSFER enum removed"]
C["CopAccountInfo / GtqAccountInfo\n– MOBILE_MONEY enum removed"]
D["CopAccountInfoBase\n– phoneNumber field removed"]
end
subgraph AddedRequired["⚠️ New Required Fields"]
E["UsdBeneficiary\n+ address, birthDate, nationality"]
F["CopBeneficiary\n+ documentNumber, documentType\n– countryOfResidence (no longer required)"]
G["GtqBeneficiary\n+ phoneNumber"]
H["BDT / EGP / GHS / GTQ / JMD / PKR / COP\n+ bankName (required)"]
end
subgraph AddedOptional["✅ Additive / Examples"]
I["30+ AccountInfoBase schemas\n+ schema-level example block"]
J["GtqAccountInfoBase\nphoneNumber → bankAccountType enum"]
end
Removed --> AddedRequired
AddedRequired --> AddedOptional
Loading

Comments Outside Diff (5)

  1. openapi/components/schemas/common/UsdAccountInfoBase.yaml, line 1-27 (link)

    P1bankAccountType removed without replacement

    The bankAccountType field (CHECKING/SAVINGS) was previously described as "Required for certain corridors (e.g., El Salvador)" and has been removed entirely. Clients using USD accounts for corridors that depend on this distinction now have no way to express the account type, which may silently break routing for those corridors unless the backend now derives it differently.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/UsdAccountInfoBase.yaml
    Line: 1-27
    Comment:
    **`bankAccountType` removed without replacement**
    The `bankAccountType` field (CHECKING/SAVINGS) was previously described as "Required for certain corridors (e.g., El Salvador)" and has been removed entirely. Clients using USD accounts for corridors that depend on this distinction now have no way to express the account type, which may silently break routing for those corridors unless the backend now derives it differently.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  2. openapi/components/schemas/common/UsdBeneficiary.yaml, line 1-8 (link)

    P1Three new fields added to required

    address, birthDate, and nationality are now required for UsdBeneficiary. Any existing API consumer that builds a USD beneficiary payload without these fields will receive a validation error after this sync, making this a breaking change for in-flight integrations targeting the USD corridor.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/UsdBeneficiary.yaml
    Line: 1-8
    Comment:
    **Three new fields added to `required`**`address`, `birthDate`, and `nationality` are now required for `UsdBeneficiary`. Any existing API consumer that builds a USD beneficiary payload without these fields will receive a validation error after this sync, making this a breaking change for in-flight integrations targeting the USD corridor.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  3. openapi/components/schemas/common/CopBeneficiary.yaml, line 1-7 (link)

    P1Required fields replaced — countryOfResidence dropped, documentNumber/documentType added

    countryOfResidence is no longer required while documentNumber and documentType are now mandatory. Existing clients that omit document fields but supply countryOfResidence will begin failing validation. Please confirm this matches the live backend requirement change and that a migration path or communication to existing integrators is planned.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/CopBeneficiary.yaml
    Line: 1-7
    Comment:
    **Required fields replaced — `countryOfResidence` dropped, `documentNumber`/`documentType` added**`countryOfResidence` is no longer required while `documentNumber` and `documentType` are now mandatory. Existing clients that omit document fields but supply `countryOfResidence` will begin failing validation. Please confirm this matches the live backend requirement change and that a migration path or communication to existing integrators is planned.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  4. openapi/components/schemas/common/EgpAccountInfoBase.yaml, line 21-39 (link)

    P2German IBAN used as inline example for an Egyptian account

    Both the iban property-level example (line 24) and the schema-level example block reference DE89370400440532013000, which is a German IBAN. Egyptian IBANs begin with EG and are 29 characters long; using a German IBAN may confuse integrators. Consider substituting a realistic EGP IBAN (e.g., EG380019000500000000263180002).

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/EgpAccountInfoBase.yaml
    Line: 21-39
    Comment:
    **German IBAN used as inline example for an Egyptian account**
    Both the `iban` property-level example (line 24) and the schema-level `example` block reference `DE89370400440532013000`, which is a German IBAN. Egyptian IBANs begin with `EG` and are 29 characters long; using a German IBAN may confuse integrators. Consider substituting a realistic EGP IBAN (e.g., `EG380019000500000000263180002`).
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  5. openapi/components/schemas/common/PkrAccountInfoBase.yaml, line 22-28 (link)

    P2German IBAN used as example; Pakistan does not use IBAN

    The inline property example for iban (line 25) is DE89370400440532013000, a German IBAN. Pakistan is not part of the IBAN scheme, so this field and its example may mislead integrators. If the field is legacy/optional for edge cases, a comment or description clarifying the context would help.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/PkrAccountInfoBase.yaml
    Line: 22-28
    Comment:
    **German IBAN used as example; Pakistan does not use IBAN**
    The inline property `example` for `iban` (line 25) is `DE89370400440532013000`, a German IBAN. Pakistan is not part of the IBAN scheme, so this field and its example may mislead integrators. If the field is legacy/optional for edge cases, a comment or description clarifying the context would help.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

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/UsdAccountInfoBase.yaml
Line: 1-27
Comment:
**`bankAccountType` removed without replacement**
The `bankAccountType` field (CHECKING/SAVINGS) was previously described as "Required for certain corridors (e.g., El Salvador)" and has been removed entirely. Clients using USD accounts for corridors that depend on this distinction now have no way to express the account type, which may silently break routing for those corridors unless the backend now derives it differently.
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/UsdBeneficiary.yaml
Line: 1-8
Comment:
**Three new fields added to `required`**`address`, `birthDate`, and `nationality` are now required for `UsdBeneficiary`. Any existing API consumer that builds a USD beneficiary payload without these fields will receive a validation error after this sync, making this a breaking change for in-flight integrations targeting the USD corridor.
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: 1-7
Comment:
**Required fields replaced — `countryOfResidence` dropped, `documentNumber`/`documentType` added**`countryOfResidence` is no longer required while `documentNumber` and `documentType` are now mandatory. Existing clients that omit document fields but supply `countryOfResidence` will begin failing validation. Please confirm this matches the live backend requirement change and that a migration path or communication to existing integrators is planned.
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/EgpAccountInfoBase.yaml
Line: 21-39
Comment:
**German IBAN used as inline example for an Egyptian account**
Both the `iban` property-level example (line 24) and the schema-level `example` block reference `DE89370400440532013000`, which is a German IBAN. Egyptian IBANs begin with `EG` and are 29 characters long; using a German IBAN may confuse integrators. Consider substituting a realistic EGP IBAN (e.g., `EG380019000500000000263180002`).
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/PkrAccountInfoBase.yaml
Line: 22-28
Comment:
**German IBAN used as example; Pakistan does not use IBAN**
The inline property `example` for `iban` (line 25) is `DE89370400440532013000`, a German IBAN. Pakistan is not part of the IBAN scheme, so this field and its example may mislead integrators. If the field is legacy/optional for edge cases, a comment or description clarifying the context would help.
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

@JasonCWang
JasonCWang merged commit a230551 into mainApr 23, 2026
7 checks passed
@JasonCWang
JasonCWang deleted the auto/sync-grid-schemas-20260423-220919 branch April 23, 2026 22:37
shreyav added a commit that referenced this pull request Apr 24, 2026
Sign up for freeto 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

@JasonCWang
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); chore: Sync account schemas by lightspark-copybara[bot] · Pull Request #388 · lightsparkdev/grid-api · GitHub
Skip to content

chore: Sync account schemas - #388

Merged
JasonCWang merged 1 commit into
mainfrom
auto/sync-grid-schemas-20260423-220919
Apr 23, 2026
Merged

chore: Sync account schemas#388
JasonCWang merged 1 commit into
mainfrom
auto/sync-grid-schemas-20260423-220919

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

vercelBot commented Apr 23, 2026

Copy link
Copy Markdown

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

ProjectDeploymentActionsUpdated (UTC)
grid-flow-builderReadyReadyPreview, CommentApr 23, 2026 10:09pm

Request Review

@github-actions

github-actionsBot 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

feat(api): add bankName fields, add bankAccountType to GTQ, remove phoneNumber, update types

openapi

fix(types): update required fields across USD/GTQ/COP/PEN account and beneficiary types

python

fix(types): update field requirements across beneficiaries, add bank_name to account types

typescript

fix(types): add bankName to BDT/EGP/GHS/GTQ/JMD/PKR, update USD/COP/GTQ requirements
⚠️grid-openapistudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗

⚠️grid-kotlinstudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗build ✅lint ✅test ✅

⚠️grid-typescriptstudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗build ✅lint ✅test ✅

npm install https://pkg.stainless.com/s/grid-typescript/2bfab9677b43bb5b8c553c15d414ed4bd5f97618/dist.tar.gz
⚠️grid-pythonstudio · code

Your SDK build had at least one "error" diagnostic.
generate ❗build ✅lint ✅test ✅

pip install https://pkg.stainless.com/s/grid-python/2a57a42725c5b8104a22ffd19e1df2af321d5ea2/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 22:44:01 UTC

@greptile-apps

greptile-appsBot commented Apr 23, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This auto-synced PR updates 42 account schema files, adding schema-level example blocks across all currency AccountInfoBase schemas and making several structural changes to required fields and enums sourced from sparkcore's VASP adapter definitions.

The bulk of the changes (example additions, new bankName required fields for BDT, EGP, GHS, JMD, PKR, COP, GTQ) are additive and straightforward, but a few changes represent breaking API contracts that existing integrators may not be prepared for:

  • UsdAccountInfoBase: bankAccountType (CHECKING/SAVINGS, previously noted as "Required for certain corridors e.g. El Salvador") is removed with no replacement.
  • UsdBeneficiary: address, birthDate, and nationality are now required — existing payloads omitting these will fail validation.
  • CopBeneficiary: documentNumber and documentType are now required; countryOfResidence is no longer required.
  • UsdAccountInfo, CopAccountInfo, GtqAccountInfo: BANK_TRANSFER / MOBILE_MONEY enum values removed.

Confidence Score: 4/5

Safe to merge if the backend already reflects these breaking changes; needs human confirmation that corridor migrations (especially USD/El Salvador bankAccountType) are handled.

Three P1 findings cover breaking schema changes to required fields and enum values across USD, COP, and GTQ schemas. The changes are intentional (generated from sparkcore), but the removal of bankAccountType from UsdAccountInfoBase in particular needs explicit confirmation that no active corridor relies on it.

UsdAccountInfoBase.yaml, UsdBeneficiary.yaml, and CopBeneficiary.yaml carry the highest-impact breaking changes and warrant explicit sign-off.

Important Files Changed

FilenameOverview
openapi/components/schemas/common/UsdAccountInfoBase.yamlRemoves bankAccountType (CHECKING/SAVINGS) field previously described as required for certain corridors (e.g., El Salvador); adds schema-level example.
openapi/components/schemas/common/UsdAccountInfo.yamlRemoves BANK_TRANSFER from the payment method enum — a breaking change for any client currently using that value.
openapi/components/schemas/common/UsdBeneficiary.yamlAdds address, birthDate, and nationality to the required list — breaking change for existing USD beneficiary payloads.
openapi/components/schemas/common/CopBeneficiary.yamlSwaps countryOfResidence out of required in favour of documentNumber and documentType; reorders address and document fields — breaking change for existing integrations.
openapi/components/schemas/common/CopAccountInfoBase.yamlRemoves phoneNumber field entirely and reorders required fields; adds bankName with length constraints and a schema-level example.
openapi/components/schemas/common/CopAccountInfo.yamlRemoves MOBILE_MONEY from the payment method enum for COP accounts.
openapi/components/schemas/common/GtqAccountInfoBase.yamlReplaces phoneNumber with bankAccountType (CHECKING/SAVINGS enum) and adds required bankName; significantly changes the schema shape for GTQ accounts.
openapi/components/schemas/common/GtqAccountInfo.yamlRemoves MOBILE_MONEY from the payment method enum for GTQ accounts, aligned with the GTQ account info restructure.
openapi/components/schemas/common/GtqBeneficiary.yamlAdds phoneNumber to the required list — breaking change for existing GTQ beneficiary payloads that omit phone.
openapi/components/schemas/common/EgpAccountInfoBase.yamlAdds required bankName field; inline IBAN example uses a German IBAN rather than an Egypt-specific one.
openapi/components/schemas/common/PkrAccountInfoBase.yamlAdds required bankName; the optional iban property example uses a German IBAN despite Pakistan not using the IBAN system.
openapi.yamlGenerated bundle — reflects all source schema changes; includes the same breaking changes (bankAccountType removal, UsdBeneficiary new required fields, CopBeneficiary required swap, enum removals).

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
subgraph Removed["⛔ Removed / Breaking"]
A["UsdAccountInfoBase\n– bankAccountType field removed\n(was: CHECKING | SAVINGS)"]
B["UsdAccountInfo\n– BANK_TRANSFER enum removed"]
C["CopAccountInfo / GtqAccountInfo\n– MOBILE_MONEY enum removed"]
D["CopAccountInfoBase\n– phoneNumber field removed"]
end
subgraph AddedRequired["⚠️ New Required Fields"]
E["UsdBeneficiary\n+ address, birthDate, nationality"]
F["CopBeneficiary\n+ documentNumber, documentType\n– countryOfResidence (no longer required)"]
G["GtqBeneficiary\n+ phoneNumber"]
H["BDT / EGP / GHS / GTQ / JMD / PKR / COP\n+ bankName (required)"]
end
subgraph AddedOptional["✅ Additive / Examples"]
I["30+ AccountInfoBase schemas\n+ schema-level example block"]
J["GtqAccountInfoBase\nphoneNumber → bankAccountType enum"]
end
Removed --> AddedRequired
AddedRequired --> AddedOptional
Loading

Comments Outside Diff (5)

  1. openapi/components/schemas/common/UsdAccountInfoBase.yaml, line 1-27 (link)

    P1bankAccountType removed without replacement

    The bankAccountType field (CHECKING/SAVINGS) was previously described as "Required for certain corridors (e.g., El Salvador)" and has been removed entirely. Clients using USD accounts for corridors that depend on this distinction now have no way to express the account type, which may silently break routing for those corridors unless the backend now derives it differently.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/UsdAccountInfoBase.yaml
    Line: 1-27
    Comment:
    **`bankAccountType` removed without replacement**
    The `bankAccountType` field (CHECKING/SAVINGS) was previously described as "Required for certain corridors (e.g., El Salvador)" and has been removed entirely. Clients using USD accounts for corridors that depend on this distinction now have no way to express the account type, which may silently break routing for those corridors unless the backend now derives it differently.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  2. openapi/components/schemas/common/UsdBeneficiary.yaml, line 1-8 (link)

    P1Three new fields added to required

    address, birthDate, and nationality are now required for UsdBeneficiary. Any existing API consumer that builds a USD beneficiary payload without these fields will receive a validation error after this sync, making this a breaking change for in-flight integrations targeting the USD corridor.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/UsdBeneficiary.yaml
    Line: 1-8
    Comment:
    **Three new fields added to `required`**`address`, `birthDate`, and `nationality` are now required for `UsdBeneficiary`. Any existing API consumer that builds a USD beneficiary payload without these fields will receive a validation error after this sync, making this a breaking change for in-flight integrations targeting the USD corridor.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  3. openapi/components/schemas/common/CopBeneficiary.yaml, line 1-7 (link)

    P1Required fields replaced — countryOfResidence dropped, documentNumber/documentType added

    countryOfResidence is no longer required while documentNumber and documentType are now mandatory. Existing clients that omit document fields but supply countryOfResidence will begin failing validation. Please confirm this matches the live backend requirement change and that a migration path or communication to existing integrators is planned.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/CopBeneficiary.yaml
    Line: 1-7
    Comment:
    **Required fields replaced — `countryOfResidence` dropped, `documentNumber`/`documentType` added**`countryOfResidence` is no longer required while `documentNumber` and `documentType` are now mandatory. Existing clients that omit document fields but supply `countryOfResidence` will begin failing validation. Please confirm this matches the live backend requirement change and that a migration path or communication to existing integrators is planned.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  4. openapi/components/schemas/common/EgpAccountInfoBase.yaml, line 21-39 (link)

    P2German IBAN used as inline example for an Egyptian account

    Both the iban property-level example (line 24) and the schema-level example block reference DE89370400440532013000, which is a German IBAN. Egyptian IBANs begin with EG and are 29 characters long; using a German IBAN may confuse integrators. Consider substituting a realistic EGP IBAN (e.g., EG380019000500000000263180002).

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/EgpAccountInfoBase.yaml
    Line: 21-39
    Comment:
    **German IBAN used as inline example for an Egyptian account**
    Both the `iban` property-level example (line 24) and the schema-level `example` block reference `DE89370400440532013000`, which is a German IBAN. Egyptian IBANs begin with `EG` and are 29 characters long; using a German IBAN may confuse integrators. Consider substituting a realistic EGP IBAN (e.g., `EG380019000500000000263180002`).
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

  5. openapi/components/schemas/common/PkrAccountInfoBase.yaml, line 22-28 (link)

    P2German IBAN used as example; Pakistan does not use IBAN

    The inline property example for iban (line 25) is DE89370400440532013000, a German IBAN. Pakistan is not part of the IBAN scheme, so this field and its example may mislead integrators. If the field is legacy/optional for edge cases, a comment or description clarifying the context would help.

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: openapi/components/schemas/common/PkrAccountInfoBase.yaml
    Line: 22-28
    Comment:
    **German IBAN used as example; Pakistan does not use IBAN**
    The inline property `example` for `iban` (line 25) is `DE89370400440532013000`, a German IBAN. Pakistan is not part of the IBAN scheme, so this field and its example may mislead integrators. If the field is legacy/optional for edge cases, a comment or description clarifying the context would help.
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

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/UsdAccountInfoBase.yaml
Line: 1-27
Comment:
**`bankAccountType` removed without replacement**
The `bankAccountType` field (CHECKING/SAVINGS) was previously described as "Required for certain corridors (e.g., El Salvador)" and has been removed entirely. Clients using USD accounts for corridors that depend on this distinction now have no way to express the account type, which may silently break routing for those corridors unless the backend now derives it differently.
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/UsdBeneficiary.yaml
Line: 1-8
Comment:
**Three new fields added to `required`**`address`, `birthDate`, and `nationality` are now required for `UsdBeneficiary`. Any existing API consumer that builds a USD beneficiary payload without these fields will receive a validation error after this sync, making this a breaking change for in-flight integrations targeting the USD corridor.
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: 1-7
Comment:
**Required fields replaced — `countryOfResidence` dropped, `documentNumber`/`documentType` added**`countryOfResidence` is no longer required while `documentNumber` and `documentType` are now mandatory. Existing clients that omit document fields but supply `countryOfResidence` will begin failing validation. Please confirm this matches the live backend requirement change and that a migration path or communication to existing integrators is planned.
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/EgpAccountInfoBase.yaml
Line: 21-39
Comment:
**German IBAN used as inline example for an Egyptian account**
Both the `iban` property-level example (line 24) and the schema-level `example` block reference `DE89370400440532013000`, which is a German IBAN. Egyptian IBANs begin with `EG` and are 29 characters long; using a German IBAN may confuse integrators. Consider substituting a realistic EGP IBAN (e.g., `EG380019000500000000263180002`).
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/PkrAccountInfoBase.yaml
Line: 22-28
Comment:
**German IBAN used as example; Pakistan does not use IBAN**
The inline property `example` for `iban` (line 25) is `DE89370400440532013000`, a German IBAN. Pakistan is not part of the IBAN scheme, so this field and its example may mislead integrators. If the field is legacy/optional for edge cases, a comment or description clarifying the context would help.
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

@JasonCWang
JasonCWang merged commit a230551 into mainApr 23, 2026
7 checks passed
@JasonCWang
JasonCWang deleted the auto/sync-grid-schemas-20260423-220919 branch April 23, 2026 22:37
shreyav added a commit that referenced this pull request Apr 24, 2026
Sign up for freeto 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

@JasonCWang