Skip to content

Map SGD accounts to not require bank name#608

Closed
JasonCWang wants to merge 1 commit into
mainfrom
06-22-map_sgd_accounts_to_not_require_bank_name
Closed

Map SGD accounts to not require bank name#608
JasonCWang wants to merge 1 commit into
mainfrom
06-22-map_sgd_accounts_to_not_require_bank_name

Conversation

@JasonCWang

Copy link
Copy Markdown
Contributor

No description provided.

@vercel

vercel Bot commented Jun 22, 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 Preview Jun 22, 2026 4:56pm
grid-wallet-demo Ignored Ignored Preview Jun 22, 2026 4:56pm

Request Review

Copy link
Copy Markdown
Contributor Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

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

Copy link
Copy Markdown
Contributor

⚠️ Breaking OpenAPI changes detected

This PR introduces breaking changes to openapi.yaml:

API Changelog 2025-10-13 vs. 2025-10-13

API Changes

GET /agents/approvals

  • ⚠️ the response property data/items/quote/allOf[#/components/schemas/Quote]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200
  • ⚠️ the response property data/items/transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200

GET /agents/me/actions

  • ⚠️ the response property data/items/quote/allOf[#/components/schemas/Quote]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200
  • ⚠️ the response property data/items/transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200

GET /agents/me/actions/{actionId}

  • ⚠️ the response property quote/allOf[#/components/schemas/Quote]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200
  • ⚠️ the response property transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200

GET /agents/me/external-accounts

  • ⚠️ the response property data/items/allOf[subschema #1]/accountInfo/oneOf[subschema #26: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200

POST /agents/me/external-accounts

  • ⚠️ the response property allOf[subschema #1]/accountInfo/oneOf[subschema #26: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 201

GET /agents/me/external-accounts/{externalAccountId}

  • ⚠️ the response property allOf[subschema #1]/accountInfo/oneOf[subschema #26: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200

GET /agents/me/internal-accounts

  • ⚠️ the response property data/items/fundingPaymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200

POST /agents/me/quotes

  • ⚠️ the response property paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 201

GET /agents/me/quotes/{quoteId}

  • ⚠️ the response property paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200

POST /agents/me/quotes/{quoteId}/execute

  • ⚠️ the response property quote/allOf[#/components/schemas/Quote]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200
  • ⚠️ the response property transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200

GET /agents/me/transactions

  • ⚠️ the response property data/items/oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200

GET /agents/me/transactions/{transactionId}

  • ⚠️ the response property oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200

POST /agents/me/transfer-in

  • ⚠️ the response property quote/allOf[#/components/schemas/Quote]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 201
  • ⚠️ the response property transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 201

POST /agents/me/transfer-out

  • ⚠️ the response property quote/allOf[#/components/schemas/Quote]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 201
  • ⚠️ the response property transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 201

POST /agents/{agentId}/actions/{actionId}/approve

  • ⚠️ the response property quote/allOf[#/components/schemas/Quote]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200
  • ⚠️ the response property transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200

POST /agents/{agentId}/actions/{actionId}/reject

  • ⚠️ the response property quote/allOf[#/components/schemas/Quote]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200
  • ⚠️ the response property transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200

GET /customers/external-accounts

  • ⚠️ the response property data/items/allOf[subschema #1]/accountInfo/oneOf[subschema #26: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200

POST /customers/external-accounts

  • ⚠️ the response property allOf[subschema #1]/accountInfo/oneOf[subschema #26: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 201

GET /customers/external-accounts/{externalAccountId}

  • ⚠️ the response property allOf[subschema #1]/accountInfo/oneOf[subschema #26: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200

GET /customers/internal-accounts

  • ⚠️ the response property data/items/fundingPaymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200

PATCH /internal-accounts/{id}

  • ⚠️ the response property fundingPaymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200

GET /platform/external-accounts

  • ⚠️ the response property data/items/allOf[subschema #1]/accountInfo/oneOf[subschema #26: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200

POST /platform/external-accounts

  • ⚠️ the response property allOf[subschema #1]/accountInfo/oneOf[subschema #26: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 201

GET /platform/external-accounts/{externalAccountId}

  • ⚠️ the response property allOf[subschema #1]/accountInfo/oneOf[subschema #26: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200

GET /platform/internal-accounts

  • ⚠️ the response property data/items/fundingPaymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200

POST /quotes

  • ⚠️ the response property paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 201

GET /quotes/{quoteId}

  • ⚠️ the response property paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200

POST /quotes/{quoteId}/execute

  • ⚠️ the response property paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200

POST /sandbox/internal-accounts/{accountId}/fund

  • ⚠️ the response property fundingPaymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200

POST /sandbox/send

  • ⚠️ the response property allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200

GET /transactions

  • ⚠️ the response property data/items/oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200

GET /transactions/{transactionId}

  • ⚠️ the response property oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200

POST /transactions/{transactionId}/confirm

  • ⚠️ the response property oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 200

POST /transfer-in

  • ⚠️ the response property oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 201

POST /transfer-out

  • ⚠️ the response property oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #14: SGD Account]/allOf[#/components/schemas/SgdAccountInfo]/allOf[#/components/schemas/SgdAccountInfoBase]/bankName became optional for the status 201

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

@github-actions

github-actions Bot commented Jun 22, 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

fix(types): make BankName optional in SgdAccountInfo and SgdExternalAccountCreateInfo

go

fix(types): make bank_name optional in SgdExternalAccountCreateInfo

kotlin

fix(types): make bankName optional in SgdExternalAccountCreateInfo and SgdAccountInfo

openapi

fix(types): make bankName optional in bank account schema

php

fix(types): make bankName optional in SgdAccountInfo/SgdExternalAccountCreateInfo

python

fix(types): make bank_name optional in sgd_external_account_create_info

ruby

fix(types): make bank_name optional in SgdAccountInfo and SgdExternalAccountCreateInfo

typescript

fix(types): make bankName optional in SGD account types

Edit this comment to update them. They will appear in their respective SDK's changelogs.

grid-cli studio · code · diff

Your SDK build had at least one "warning" diagnostic, but this did not represent a regression.
generate ⚠️build ❗lint ❗test ❗

grid-go studio · code · diff

Your SDK build had at least one "note" diagnostic, but this did not represent a regression.
generate ✅build ✅lint ❗test ❗

go get github.com/stainless-sdks/grid-go@0332b0eb1faf108cb315abcdcd7c0c3a63838809
grid-openapi studio · code · diff

Your SDK build had at least one "note" diagnostic, but this did not represent a regression.
generate ✅

grid-ruby studio · code · diff

Your SDK build had at least one "note" diagnostic, but this did not represent a regression.
generate ✅build ✅lint ✅test ✅

grid-kotlin studio · code · diff

Your SDK build had at least one "note" diagnostic, but this did not represent a regression.
generate ✅build ✅lint ✅test ✅

grid-python studio · code · diff

Your SDK build had at least one "note" diagnostic, but this did not represent a regression.
generate ✅build ✅lint ❗test ❗

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

Your SDK build had at least one "warning" diagnostic, but this did not represent a regression.
generate ⚠️build ❗lint ✅test ❗

grid-php studio · code · diff

Your SDK build had at least one "note" diagnostic, but this did not represent a regression.
generate ✅lint ✅test ✅

grid-typescript studio · code · diff

Your SDK build had at least one "note" diagnostic, but this did not represent a regression.
generate ✅build ✅lint ✅test ✅

npm install https://pkg.stainless.com/s/grid-typescript/180211eec1539dd604a56358d5c51db32ae70f5d/dist.tar.gz

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-22 17:02:45 UTC

@JasonCWang JasonCWang marked this pull request as ready for review June 22, 2026 17:00
@greptile-apps

greptile-apps Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Relaxes the SgdAccountInfoBase schema by removing bankName from the required array, making it an optional field. The change is applied consistently across the source schema and both generated bundles (openapi.yaml and mintlify/openapi.yaml).

  • bankName remains defined in properties with its existing constraints (minLength: 1, maxLength: 255); it is simply no longer mandatory when submitting SGD account info.
  • All three files are in sync, indicating make build was run correctly after editing the source in openapi/.

Confidence Score: 5/5

This is a straightforward schema relaxation — removing a required field constraint — with no logic changes and all three files (source + both generated bundles) consistently updated.

The change is a single-field constraint removal applied identically across the source YAML and both generated bundles, confirming make build was executed. The field itself remains defined and usable as optional. No functional logic, auth, or data-path code is touched.

No files require special attention.

Important Files Changed

Filename Overview
openapi/components/schemas/common/SgdAccountInfoBase.yaml Removes bankName from the required array, making it an optional field; field definition and example remain unchanged.
openapi.yaml Generated bundle correctly reflects the source change — bankName removed from SgdAccountInfoBase.required.
mintlify/openapi.yaml Mintlify-specific generated bundle correctly reflects the same bankName requirement removal.

Class Diagram

%%{init: {'theme': 'neutral'}}%%
classDiagram
    class SgdAccountInfoBase {
        +string accountType (required)
        +string accountNumber (required)
        +string swiftCode (required)
        +string bankName (optional)
    }
    class SgdAccountInfo {
        +string[] paymentRails (required)
    }
    SgdAccountInfoBase <|-- SgdAccountInfo : allOf
    note for SgdAccountInfoBase "bankName was required\nnow it is optional"
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"}}}%%
classDiagram
    class SgdAccountInfoBase {
        +string accountType (required)
        +string accountNumber (required)
        +string swiftCode (required)
        +string bankName (optional)
    }
    class SgdAccountInfo {
        +string[] paymentRails (required)
    }
    SgdAccountInfoBase <|-- SgdAccountInfo : allOf
    note for SgdAccountInfoBase "bankName was required\nnow it is optional"
Loading

Reviews (1): Last reviewed commit: "Map SGD accounts to not require bank nam..." | Re-trigger Greptile

@JasonCWang JasonCWang closed this Jun 22, 2026
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.

1 participant