You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
oasdiff reports 5 error / 54 warning changes to openapi.yaml.
This PR will need approval from an API reviewer before merge.
Errors (5)
POST webhook:agent-action — removed the enum value ACH_SAME_DAY of the request property allOf[subschema #2]/data/quote/allOf[#/components/schemas/Quote]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[subschema #2]/paymentRails/items/ [request-property-enum-value-removed].
POST webhook:agent-action — removed the enum value ACH_SAME_DAY of the request property allOf[subschema #2]/data/transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[subschema #2]/paymentRails/items/ [request-property-enum-value-removed].
POST webhook:external-account-status — removed the enum value ACH_SAME_DAY of the request property allOf[subschema #2]/data/allOf[subschema #1]/accountInfo/oneOf[subschema #31: USD Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[subschema #2]/paymentRails/items/ [request-property-enum-value-removed].
POST webhook:internal-account-status — removed the enum value ACH_SAME_DAY of the request property allOf[subschema #2]/data/fundingPaymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[subschema #2]/paymentRails/items/ [request-property-enum-value-removed].
POST webhook:outgoing-payment — removed the enum value ACH_SAME_DAY of the request property allOf[subschema #2]/data/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[subschema #2]/paymentRails/items/ [request-property-enum-value-removed].
Warnings (54)
Show sample
GET /agents/approvals — removed the optional property data/items/quote/allOf[#/components/schemas/Quote]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[subschema #2]/bankAccountType from the response with the 200 status [response-optional-property-removed].
GET /agents/approvals — removed the optional property data/items/transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[subschema #2]/bankAccountType from the response with the 200 status [response-optional-property-removed].
GET /agents/me/actions — removed the optional property data/items/quote/allOf[#/components/schemas/Quote]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[subschema #2]/bankAccountType from the response with the 200 status [response-optional-property-removed].
GET /agents/me/actions — removed the optional property data/items/transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[subschema #2]/bankAccountType from the response with the 200 status [response-optional-property-removed].
GET /agents/me/actions/{actionId} — removed the optional property quote/allOf[#/components/schemas/Quote]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[subschema #2]/bankAccountType from the response with the 200 status [response-optional-property-removed].
GET /agents/me/actions/{actionId} — removed the optional property transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[subschema #2]/bankAccountType from the response with the 200 status [response-optional-property-removed].
GET /agents/me/external-accounts — removed the optional property data/items/allOf[subschema #1]/accountInfo/oneOf[subschema #31: USD Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[subschema #2]/bankAccountType from the response with the 200 status [response-optional-property-removed].
POST /agents/me/external-accounts — removed the request property allOf[subschema #1]/accountInfo/oneOf[subschema #32: USD Account]/allOf[subschema #3]/bankAccountType [request-property-removed].
POST /agents/me/external-accounts — removed the optional property allOf[subschema #1]/accountInfo/oneOf[subschema #31: USD Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[subschema #2]/bankAccountType from the response with the 201 status [response-optional-property-removed].
GET /agents/me/external-accounts/{externalAccountId} — removed the optional property allOf[subschema #1]/accountInfo/oneOf[subschema #31: USD Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[subschema #2]/bankAccountType from the response with the 200 status [response-optional-property-removed].
GET /agents/me/internal-accounts — removed the optional property data/items/fundingPaymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[subschema #2]/bankAccountType from the response with the 200 status [response-optional-property-removed].
POST /agents/me/quotes — removed the optional property paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[subschema #2]/bankAccountType from the response with the 201 status [response-optional-property-removed].
GET /agents/me/quotes/{quoteId} — removed the optional property paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[subschema #2]/bankAccountType from the response with the 200 status [response-optional-property-removed].
POST /agents/me/quotes/{quoteId}/execute — removed the optional property quote/allOf[#/components/schemas/Quote]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[subschema #2]/bankAccountType from the response with the 200 status [response-optional-property-removed].
POST /agents/me/quotes/{quoteId}/execute — removed the optional property transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[subschema #2]/bankAccountType from the response with the 200 status [response-optional-property-removed].
GET /agents/me/transactions — removed the optional property data/items/oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[subschema #2]/bankAccountType from the response with the 200 status [response-optional-property-removed].
GET /agents/me/transactions/{transactionId} — removed the optional property oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[subschema #2]/bankAccountType from the response with the 200 status [response-optional-property-removed].
POST /agents/{agentId}/actions/{actionId}/approve — removed the optional property quote/allOf[#/components/schemas/Quote]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[subschema #2]/bankAccountType from the response with the 200 status [response-optional-property-removed].
POST /agents/{agentId}/actions/{actionId}/approve — removed the optional property transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[subschema #2]/bankAccountType from the response with the 200 status [response-optional-property-removed].
POST /agents/{agentId}/actions/{actionId}/reject — removed the optional property quote/allOf[#/components/schemas/Quote]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[subschema #2]/bankAccountType from the response with the 200 status [response-optional-property-removed].
POST /agents/{agentId}/actions/{actionId}/reject — removed the optional property transaction/allOf[#/components/schemas/TransactionOneOf]/oneOf[subschema #2: Outgoing Transaction]/allOf[subschema #2]/paymentInstructions/items/accountOrWalletInfo/oneOf[subschema #1: USD Bank Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[subschema #2]/bankAccountType from the response with the 200 status [response-optional-property-removed].
GET /customers/external-accounts — removed the optional property data/items/allOf[subschema #1]/accountInfo/oneOf[subschema #31: USD Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[subschema #2]/bankAccountType from the response with the 200 status [response-optional-property-removed].
POST /customers/external-accounts — removed the request property accountInfo/oneOf[subschema #32: USD Account]/allOf[subschema #3]/bankAccountType [request-property-removed].
POST /customers/external-accounts — removed the optional property allOf[subschema #1]/accountInfo/oneOf[subschema #31: USD Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[subschema #2]/bankAccountType from the response with the 201 status [response-optional-property-removed].
GET /customers/external-accounts/{externalAccountId} — removed the optional property allOf[subschema #1]/accountInfo/oneOf[subschema #31: USD Account]/allOf[#/components/schemas/UsdAccountInfo]/allOf[subschema #2]/bankAccountType from the response with the 200 status [response-optional-property-removed].
…and 29 more warnings.
Detected by oasdiff. Full report: job summary or the oasdiff-report artifact.
### Issue 1
openapi/components/schemas/external_accounts/UsdExternalAccountCreateInfo.yaml:6-7
Removing `bankAccountType` from this `required` list makes a USD external-account request without `CHECKING` or `SAVINGS` valid under the OpenAPI contract. The existing endpoint examples, integration guide, and changelog still require this value because Grid uses it to select the ACH transaction code. Generated clients will therefore allow incomplete requests that the API must reject or cannot route correctly. Keep the property in the shared base if needed, but require it here for `UsdExternalAccountCreateInfo`.
```suggestion required: - bankAccountType - beneficiary```---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.
Summary
This schema sync moves the USD bankAccountType property into the shared account base, removes ACH_SAME_DAY from returned USD account rails, refreshes generated OpenAPI bundles, and corrects business-beneficiary terminology in the corridor table.
The generated root and Mintlify contracts remain aligned with the modular schema sources.
Business-recipient rows now use “Legal name,” matching their beneficiary schemas.
USD external-account creation accidentally stops requiring bankAccountType, conflicting with the documented API requirement and allowing incomplete generated requests.
Diagram
%%{init: {'theme': 'neutral'}}%%
flowchart LR
Base[UsdAccountInfoBase<br/>bankAccountType optional] --> Read[UsdAccountInfo<br/>account responses]
Base --> Create[UsdExternalAccountCreateInfo<br/>create requests]
Create --> Generated[Generated SDK request<br/>bankAccountType optional]
Generated --> API[External-account creation<br/>requires ACH account type]
The reason will be displayed to describe this comment to others. Learn more.
Account type no longer required
Removing bankAccountType from this required list makes a USD external-account request without CHECKING or SAVINGS valid under the OpenAPI contract. The existing endpoint examples, integration guide, and changelog still require this value because Grid uses it to select the ACH transaction code. Generated clients will therefore allow incomplete requests that the API must reject or cannot route correctly. Keep the property in the shared base if needed, but require it here for UsdExternalAccountCreateInfo.
This is a comment left during a code review.
Path: openapi/components/schemas/external_accounts/UsdExternalAccountCreateInfo.yaml
Line: 6-7
Comment:
**Account type no longer required**
Removing `bankAccountType` from this `required` list makes a USD external-account request without `CHECKING` or `SAVINGS` valid under the OpenAPI contract. The existing endpoint examples, integration guide, and changelog still require this value because Grid uses it to select the ACH transaction code. Generated clients will therefore allow incomplete requests that the API must reject or cannot route correctly. Keep the property in the shared base if needed, but require it here for `UsdExternalAccountCreateInfo`.
```suggestion required: - bankAccountType - beneficiary```**Knowledge Base Used:**-[Grid API contract](https://app.greptile.com/lightspark/-/custom-context/knowledge-base/lightsparkdev/grid-api/-/docs/api-contract.md)-[Customers and accounts API](https://app.greptile.com/lightspark/-/custom-context/knowledge-base/lightsparkdev/grid-api/-/docs/customers-and-accounts-api.md)---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
breaking-changeIntroduces a breaking change to the OpenAPI spec
0 participants
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Auto-synced account schemas.
These schemas are generated from VASP adapter field definitions in sparkcore.
Synced schemas:
common/— per-currency account info, beneficiary, and payment account schemascommon/PaymentInstructions.yaml— payment instructions oneOf (new currencies added)external_accounts/— per-currency external account schemas (reference common/)mintlify/snippets/corridor-required-fields.mdx— per-corridor required fields tablemintlify/corridor-fields.js— filter script for that tablePlease review the changes before merging.