Remove IMPS as payment rail for INR accounts#239
Conversation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
✱ Stainless preview buildsThis PR will update the kotlin openapi python typescript ✅ grid-python studio · code
✅ grid-kotlin studio · code
✅ grid-typescript studio · code
This comment is auto-generated by GitHub Actions and is automatically kept up to date as you push. |
Greptile SummaryThis PR removes IMPS as a supported payment rail for INR accounts, updating the OpenAPI schema source file, the two bundled Key points:
Confidence Score: 3/5
|
| Filename | Overview |
|---|---|
| openapi/components/schemas/common/InrAccountInfo.yaml | Removes IMPS from the paymentRails enum in the canonical INR account source schema, leaving only UPI as a valid rail. |
| openapi.yaml | Removes IMPS from the InrAccountInfo paymentRails enum in the bundled OpenAPI spec; consistent with the source schema change. |
| mintlify/openapi.yaml | Mirrors the same IMPS removal in the Mintlify copy of the OpenAPI spec; consistent with the other schema files. |
| mintlify/snippets/country-support.mdx | Updates the India row in the country-support table to display only UPI, removing the IMPS badge. |
| components/grid-visualizer/src/data/currencies.ts | Removes IMPS from INR's allRails array in the grid-visualizer frontend data; internally consistent since instantRails already had no IMPS entry. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[INR External Account Creation Request] --> B{paymentRails value?}
B -- UPI --> C[✅ Accepted - passes enum validation]
B -- IMPS --> D[❌ Rejected - removed from enum in this PR]
D --> E[Schema validation error returned to client]
F[InrAccountInfo source schema\nopenapi/components/schemas/common/InrAccountInfo.yaml] --> G[openapi.yaml bundled copy]
F --> H[mintlify/openapi.yaml bundled copy]
F --> I[InrExternalAccountInfo\nused in POST /external-accounts request body]
F --> J[PaymentInrAccountInfo\nused in GET payment response]
Last reviewed commit: 1f185d4
| type: string | ||
| enum: | ||
| - UPI |
There was a problem hiding this comment.
Breaking API change — no deprecation period
Removing IMPS from the paymentRails enum is a non-backwards-compatible change. InrAccountInfo is composed into both PaymentInrAccountInfo (response) and InrExternalAccountInfo (used in external-account creation request bodies at the /external-accounts endpoint). Any existing API clients that currently supply "IMPS" in the paymentRails array when creating or reading an INR external account will:
- Fail schema validation on requests that include
IMPS. - Receive unexpected responses if the backend still returns
IMPS(which isn't changed by this PR).
Before hard-removing the value, the standard approach would be to:
- Deprecate
IMPSin the schema (add a description/deprecated: trueannotation) and give integrators a migration window. - Only remove the value once all in-flight usage is confirmed to be zero.
If IMPS has already been sunset at the backend level and zero customers are using it, that context would be helpful to document here (e.g., a comment or PR note).
Prompt To Fix With AI
This is a comment left during a code review.
Path: openapi/components/schemas/common/InrAccountInfo.yaml
Line: 14-16
Comment:
**Breaking API change — no deprecation period**
Removing `IMPS` from the `paymentRails` enum is a non-backwards-compatible change. `InrAccountInfo` is composed into both `PaymentInrAccountInfo` (response) **and** `InrExternalAccountInfo` (used in external-account creation request bodies at the `/external-accounts` endpoint). Any existing API clients that currently supply `"IMPS"` in the `paymentRails` array when creating or reading an INR external account will:
1. Fail schema validation on requests that include `IMPS`.
2. Receive unexpected responses if the backend still returns `IMPS` (which isn't changed by this PR).
Before hard-removing the value, the standard approach would be to:
1. Deprecate `IMPS` in the schema (add a description/`deprecated: true` annotation) and give integrators a migration window.
2. Only remove the value once all in-flight usage is confirmed to be zero.
If IMPS has already been sunset at the backend level and zero customers are using it, that context would be helpful to document here (e.g., a comment or PR note).
How can I resolve this? If you propose a fix, please make it concise.
Merge activity
|
Summary
paymentRailsenum in the INR account OpenAPI schemaTest plan
make buildandmake lintpass🤖 Generated with Claude Code