Skip to content

Unify individual customer identification on idType/identifier/countryOfIssuance - #832

Closed
ls-bolt[bot] wants to merge 1 commit into
mainfrom
08-13-remove-individual-taxid-fields
Closed

Unify individual customer identification on idType/identifier/countryOfIssuance#832
ls-bolt[bot] wants to merge 1 commit into
mainfrom
08-13-remove-individual-taxid-fields

Conversation

@ls-bolt

@ls-bolt ls-bolt Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

This PR has been claimed. The active PR is now #836.

Summary

Individual customers accepted two interchangeable identification vocabularies: taxIdType / taxIdentifier / taxIdCountryOfIssuance, and idType / identifier. Beneficial owners only ever had idType / identifier / countryOfIssuance. This drops the taxId* set so both resources speak one vocabulary.

Removed Replacement
taxIdType idType
taxIdentifier identifier
taxIdCountryOfIssuance countryOfIssuance

identifier now lives on the shared IndividualCustomerFields as writeOnly, which lets IndividualCustomerCreateRequest drop its duplicate declaration. taxIdentifier was not write-only, so the schema advertised a response field that is never populated; the unified field fixes that.

Other taxId-prefixed fields are untouched — BusinessInfo.taxId (EIN), BrlAccountInfoBase.taxId and BusinessBeneficiary.taxId (CPF/CNPJ) are a different concept with no idType counterpart.

No info.version bump: these fields have no integrator on them yet, and a bump would mean cutting a new dated servers.url path for a pre-adoption cleanup.

Changes

  • openapi/components/schemas/customers/IndividualCustomerFields.yaml — rename the three properties, mark identifier write-only
  • openapi/components/schemas/customers/IndividualCustomerCreateRequest.yaml — drop the now-duplicate idType / identifier block
  • openapi/components/schemas/errors/FieldError.yaml — example field name
  • mintlify/snippets/sandbox-verification.mdx — requirement prose, the RESOLVE_ERRORS sample, and the PATCH example
  • openapi.yaml, mintlify/openapi.yamlmake build output

Test plan

  • make build — exit 0, both bundles regenerated
  • make lint — exit 0, 0 errors; warning/info counts unchanged from main (658 problems, all pre-existing)
  • grep -rn "taxIdType\|taxIdentifier\|taxIdCountryOfIssuance" openapi/ mintlify/ — no matches

The consuming server change lands separately in webdev, which regenerates its Python models from this bundle. Merge this first.

Requested by @akanter

@mintlify

mintlify Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
Grid 🟢 Ready View Preview Aug 13, 2026, 11:49 PM

@vercel

vercel Bot commented Aug 13, 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 Aug 13, 2026 11:48pm
grid-wallet-demo Ignored Ignored Preview Aug 13, 2026 11:48pm

Request Review

@ls-bolt ls-bolt Bot added the bolt label Aug 13, 2026

Copy link
Copy Markdown

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

@github-actions

github-actions Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

✱ Stainless preview builds for grid

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

cli

fix(api): rename tax ID fields in customer create/update requests

go

feat(api): rename tax identification fields to generic ID fields in customer

kotlin

feat(api): rename tax ID fields to ID fields in IndividualCustomer

openapi

fix(api): rename tax ID fields to identifier/idType/countryOfIssuance in individual customers

php

feat(api): rename tax ID fields, add identifier/idType to individual customer

python

feat(api): rename tax ID fields in individual customer params and model

ruby

fix(types): rename tax_* to id_* fields in IndividualCustomer models

typescript

feat(api): rename tax ID fields to identifier/idType/countryOfIssuance in customers

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

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/3310586c7d8b1bef409e19c1035b90b951e5cac2/dist.tar.gz
grid-openapi studio · code · diff

Your SDK build had at least one "warning" 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-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@9a438ddbaa77e1aa5b10665bc97278a85badab75
grid-kotlin studio · code · diff

Your SDK build had at least one "warning" 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/451b12b271fc53e5ff738468255b5288e7e87820/grid-0.0.1-py3-none-any.whl
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-cli studio · code · diff

Your SDK build had at least one "warning" diagnostic, but this did not represent a regression.
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-08-13 23:53:22 UTC

@akanter akanter closed this Aug 14, 2026
akanter added a commit that referenced this pull request Aug 14, 2026
…OfIssuance (#836)

## Summary

Individual customers accepted two interchangeable identification
vocabularies: `taxIdType` / `taxIdentifier` / `taxIdCountryOfIssuance`,
and `idType` / `identifier`. Beneficial owners only ever had `idType` /
`identifier` / `countryOfIssuance`. This drops the `taxId*` set so both
resources speak one vocabulary.

| Removed | Replacement |
|---|---|
| `taxIdType` | `idType` |
| `taxIdentifier` | `identifier` |
| `taxIdCountryOfIssuance` | `countryOfIssuance` |

`identifier` now lives on the shared `IndividualCustomerFields` as
`writeOnly`, which lets `IndividualCustomerCreateRequest` drop its
duplicate declaration. `taxIdentifier` was not write-only, so the schema
advertised a response field that is never populated; the unified field
fixes that.

Other `taxId`-prefixed fields are untouched — `BusinessInfo.taxId`
(EIN), `BrlAccountInfoBase.taxId` and `BusinessBeneficiary.taxId`
(CPF/CNPJ) are a different concept with no `idType` counterpart.

No `info.version` bump: these fields have no integrator on them yet, and
a bump would mean cutting a new dated `servers.url` path for a
pre-adoption cleanup.

## Changes

- `openapi/components/schemas/customers/IndividualCustomerFields.yaml` —
rename the three properties, mark `identifier` write-only
-
`openapi/components/schemas/customers/IndividualCustomerCreateRequest.yaml`
— drop the now-duplicate `idType` / `identifier` block
- `openapi/components/schemas/errors/FieldError.yaml` — example field
name
- `mintlify/snippets/sandbox-verification.mdx` — requirement prose, the
`RESOLVE_ERRORS` sample, and the PATCH example
- `openapi.yaml`, `mintlify/openapi.yaml` — `make build` output

## Test plan

- `make build` — exit 0, both bundles regenerated
- `make lint` — exit 0, 0 errors; warning/info counts unchanged from
`main` (658 problems, all pre-existing)
- `grep -rn "taxIdType\|taxIdentifier\|taxIdCountryOfIssuance" openapi/
mintlify/` — no matches

The consuming server change lands separately in webdev, which
regenerates its Python models from this bundle. Merge this first.

Requested by @akanter

Original PR: #832
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants