Skip to content

Add bankName as a required field to GTQ and JMD account types#632

Merged
mohamedwane merged 1 commit into
mainfrom
mohamed/gtq-jmd-add-bankname
Jun 29, 2026
Merged

Add bankName as a required field to GTQ and JMD account types#632
mohamedwane merged 1 commit into
mainfrom
mohamed/gtq-jmd-add-bankname

Conversation

@mohamedwane

Copy link
Copy Markdown
Contributor

Reason

GTQ (Guatemala) and JMD (Jamaica) corridors have multiple bank payers, so the destination bank must be disambiguated during payout discovery (same as PHP/NGN/IDR/etc.). The receiving side already advertises payeeBankName as required for these corridors, but the account schema had no bankName field — so callers couldn't supply it and quotes failed with "payeeBankName is not a sender key this API accepts."

Change

  • Add bankName (string, 1–255 chars) as a required field on GtqAccountInfoBase and JmdAccountInfoBase. Derived create/info types inherit it via allOf.
  • Rebundled openapi.yaml (+ mintlify copy).

Follow-up

After this merges, the webdev monorepo regenerates grid-api/grid_api/models/*.py (via update_schema.sh) so bank_name is parsed into the account model, paired with the sparkcore mapping in lightsparkdev/webdev#29480.

GTQ and JMD corridors have multiple bank payers, so bank_name is needed
to disambiguate the destination during payout discovery. Add bankName
(string, 1-255) as a required field on GtqAccountInfoBase and
JmdAccountInfoBase; derived create/info types inherit it via allOf.
Rebundled openapi.yaml.
@vercel

vercel Bot commented Jun 29, 2026

Copy link
Copy Markdown

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

2 Skipped Deployments
Project Deployment Actions Updated (UTC)
grid-flow-builder Ignored Ignored Jun 29, 2026 7:32pm
grid-wallet-demo Ignored Ignored Jun 29, 2026 7:32pm

Request Review

@github-actions github-actions Bot added the breaking-change Introduces a breaking change to the OpenAPI spec label Jun 29, 2026
@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Breaking OpenAPI changes detected

This PR introduces breaking changes to openapi.yaml:

API Changelog 2026-06-25 vs. 2026-06-25

API Changes

POST /agents/me/external-accounts

  • ⚠️ added the new required request property allOf[subschema #1]/accountInfo/oneOf[subschema #13: GTQ Account]/allOf[#/components/schemas/GtqAccountInfoBase]/bankName
  • ⚠️ added the new required request property allOf[subschema #1]/accountInfo/oneOf[subschema #18: JMD Account]/allOf[#/components/schemas/JmdAccountInfoBase]/bankName

POST /customers/external-accounts

  • ⚠️ added the new required request property allOf[subschema #1]/accountInfo/oneOf[subschema #13: GTQ Account]/allOf[#/components/schemas/GtqAccountInfoBase]/bankName
  • ⚠️ added the new required request property allOf[subschema #1]/accountInfo/oneOf[subschema #18: JMD Account]/allOf[#/components/schemas/JmdAccountInfoBase]/bankName

POST /platform/external-accounts

  • ⚠️ added the new required request property accountInfo/oneOf[subschema #13: GTQ Account]/allOf[#/components/schemas/GtqAccountInfoBase]/bankName
  • ⚠️ added the new required request property accountInfo/oneOf[subschema #18: JMD Account]/allOf[#/components/schemas/JmdAccountInfoBase]/bankName

POST webhook:agent-action

  • ⚠️ added the new required request property allOf[subschema #2]/data/quote/allOf[#/components/schemas/Quote]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #33: GTQ Account]/allOf[#/components/schemas/GtqAccountInfo]/allOf[#/components/schemas/GtqAccountInfoBase]/bankName
  • ⚠️ added the new required request property allOf[subschema #2]/data/quote/allOf[#/components/schemas/Quote]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #35: JMD Account]/allOf[#/components/schemas/JmdAccountInfo]/allOf[#/components/schemas/JmdAccountInfoBase]/bankName
  • ⚠️ added the new required request property allOf[subschema #2]/data/transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #33: GTQ Account]/allOf[#/components/schemas/GtqAccountInfo]/allOf[#/components/schemas/GtqAccountInfoBase]/bankName
  • ⚠️ added the new required request property allOf[subschema #2]/data/transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #35: JMD Account]/allOf[#/components/schemas/JmdAccountInfo]/allOf[#/components/schemas/JmdAccountInfoBase]/bankName

POST webhook:internal-account-status

  • ⚠️ added the new required request property allOf[subschema #2]/data/fundingPaymentInstructions/items/accountOrWalletInfo/oneOf[subschema #33: GTQ Account]/allOf[#/components/schemas/GtqAccountInfo]/allOf[#/components/schemas/GtqAccountInfoBase]/bankName
  • ⚠️ added the new required request property allOf[subschema #2]/data/fundingPaymentInstructions/items/accountOrWalletInfo/oneOf[subschema #35: JMD Account]/allOf[#/components/schemas/JmdAccountInfo]/allOf[#/components/schemas/JmdAccountInfoBase]/bankName

POST webhook:outgoing-payment

  • ⚠️ added the new required request property allOf[subschema #2]/data/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #33: GTQ Account]/allOf[#/components/schemas/GtqAccountInfo]/allOf[#/components/schemas/GtqAccountInfoBase]/bankName
  • ⚠️ added the new required request property allOf[subschema #2]/data/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #35: JMD Account]/allOf[#/components/schemas/JmdAccountInfo]/allOf[#/components/schemas/JmdAccountInfoBase]/bankName

Detected by oasdiff. This PR will need approval from an API reviewer before merge.

@github-actions

github-actions Bot commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

✱ Stainless preview builds for grid

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

cli

chore(internal): regenerate SDK with no functional changes

csharp

feat(api): add bank_name field to gtq and jmd external account models

go

feat(api): add BankName to GTQ and JMD external account create

kotlin

feat(api): add bankName field to GTQ/JMD external account models

openapi

feat(api): add bankName field to GtqAccountInfo and JmdAccountInfo models

php

feat(api): add bankName field to GTQ/JMD external account models

python

feat(api): add bank_name field to gtq/jmd external account create info

ruby

feat(api): add bank_name field to gtq/jmd account models

typescript

feat(api): add bankName field to GTQ/JMD external accounts
⚠️ grid-openapi studio · code

Your SDK build had at least one "warning" diagnostic.
generate ⚠️

grid-ruby studio · code

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

⚠️ grid-go studio · code

Your SDK build had a failure in the lint CI job, which is a regression from the base state.
generate ✅build ✅lint ❗test ❗

go get github.com/stainless-sdks/grid-go@a681dbfe12a6667e26ee91205a30e9ee5853c8b0
grid-typescript studio · code

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

npm install https://pkg.stainless.com/s/grid-typescript/5c5c59cb883e2a54f5bce2d64e1773b70fce8a1e/dist.tar.gz
⚠️ grid-kotlin studio · code

Your SDK build had a failure in the test CI job, which is a regression from the base state.
generate ⚠️build ✅lint ✅test ❗

⚠️ grid-python studio · code

Your SDK build had a failure in the lint CI job, which is a regression from the base state.
generate ✅build ✅lint ❗test ❗

pip install https://pkg.stainless.com/s/grid-python/e00310cc16df4e870f13b2d4a4dfa1a0ac24a0ac/grid-0.0.1-py3-none-any.whl
⚠️ grid-csharp studio · code

Your SDK build had a failure in the build CI job, which is a regression from the base state.
generate ⚠️build ❗lint ✅test ❗

grid-php studio · code

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

⚠️ grid-cli studio · code

Your SDK build had a failure in the test CI job, which is a regression from the base state.
generate ⚠️build ⏭️lint ⏭️test ❗


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-06-29 19:53:01 UTC

@greptile-apps

greptile-apps Bot commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR adds bankName as a required string field (1–255 chars) to GtqAccountInfoBase and JmdAccountInfoBase, then rebundles openapi.yaml and mintlify/openapi.yaml. The change aligns the GTQ/JMD account schemas with the backend's existing requirement for payeeBankName during payout discovery, unblocking callers who were seeing "payeeBankName is not a sender key this API accepts." errors.

  • bankName is defined consistently with existing multi-payer corridors (PHP, NGN, IDR): type: string, minLength: 1, maxLength: 255, description: The name of the bank, with a realistic bank-name example value in each corridor.
  • Both bundled YAML files (openapi.yaml and mintlify/openapi.yaml) are regenerated from the source schemas via make build, matching the project convention.
  • No MDX documentation pages reference GTQ or JMD accounts directly, so no additional docs updates are needed.

Confidence Score: 5/5

Safe to merge — the schema addition is intentional and unblocks calls that were already failing at runtime.

The new bankName field is defined consistently with existing multi-payer corridor schemas (PHP, NGN, IDR): same type, same constraints, same description. The bundled YAML files are correctly regenerated from the source. No MDX documentation pages reference GTQ or JMD accounts, so there are no docs gaps. The field being required matches what the backend already demands during payout discovery.

No files require special attention — all four changed files are straightforward and internally consistent.

Important Files Changed

Filename Overview
openapi/components/schemas/common/GtqAccountInfoBase.yaml Adds bankName as a required field with consistent definition (minLength: 1, maxLength: 255, description, example); matches the pattern used by PHP, NGN, and IDR schemas.
openapi/components/schemas/common/JmdAccountInfoBase.yaml Adds bankName as a required field with the same definition as GtqAccountInfoBase; consistent with other multi-payer corridor schemas.
openapi.yaml Rebundled output correctly reflects the source schema changes for both GtqAccountInfoBase and JmdAccountInfoBase; matches mintlify/openapi.yaml exactly.
mintlify/openapi.yaml Mintlify copy of the bundled spec correctly updated to include bankName for both GTQ and JMD schemas; identical to openapi.yaml changes.

Sequence Diagram

%%{init: {'theme': 'neutral'}}%%
sequenceDiagram
    participant Caller
    participant GridAPI as Grid API
    participant Payer as Bank Payer GTQ/JMD

    Caller->>GridAPI: POST /quotes (accountInfo with bankName)
    GridAPI->>GridAPI: Validate accountInfo schema
    Note over GridAPI: bankName now required in schema
    GridAPI->>Payer: Payout discovery using payeeBankName
    Note over Payer: Multiple payers exist, bankName disambiguates
    Payer-->>GridAPI: Payer selected, quote created
    GridAPI-->>Caller: 200 OK quote response
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
sequenceDiagram
    participant Caller
    participant GridAPI as Grid API
    participant Payer as Bank Payer GTQ/JMD

    Caller->>GridAPI: POST /quotes (accountInfo with bankName)
    GridAPI->>GridAPI: Validate accountInfo schema
    Note over GridAPI: bankName now required in schema
    GridAPI->>Payer: Payout discovery using payeeBankName
    Note over Payer: Multiple payers exist, bankName disambiguates
    Payer-->>GridAPI: Payer selected, quote created
    GridAPI-->>Caller: 200 OK quote response
Loading

Reviews (1): Last reviewed commit: "Add bankName as a required field to GTQ ..." | Re-trigger Greptile

@mohamedwane mohamedwane merged commit 95ded8a into main Jun 29, 2026
10 checks passed
@mohamedwane mohamedwane deleted the mohamed/gtq-jmd-add-bankname branch June 29, 2026 19:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking-change Introduces a breaking change to the OpenAPI spec

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants