Unify individual customer identification on idType/identifier/countryOfIssuance - #836
Conversation
|
This stack of pull requests is managed by Graphite. Learn more about stacking. |
✱ Stainless preview builds for gridThis PR will update the cli go kotlin openapi php python ruby typescript ✅ grid-ruby studio · code
|
Greptile SummaryThe PR consolidates individual-customer identification onto
Confidence Score: 5/5The PR appears safe to merge with the source schemas, generated bundles, and documentation consistently using the unified identification vocabulary. The shared schema continues to support both create and update requests, intentionally excludes the sensitive identifier from responses, and the generated artifacts match the source changes.
|
| Filename | Overview |
|---|---|
| openapi/components/schemas/customers/IndividualCustomerFields.yaml | Unifies the individual identification fields and correctly marks the sensitive identifier as write-only. |
| openapi/components/schemas/customers/IndividualCustomerCreateRequest.yaml | Removes the now-redundant create-only declarations after moving them into the shared fields schema. |
| mintlify/snippets/sandbox-verification.mdx | Updates verification requirements, errors, and the corrective PATCH example to the unified vocabulary. |
| openapi/components/schemas/errors/FieldError.yaml | Updates the example field path to the replacement identifier name. |
| openapi.yaml | Generated bundle consistently reflects the source-schema changes. |
| mintlify/openapi.yaml | Generated Mintlify bundle remains synchronized with the root OpenAPI bundle. |
Reviews (1): Last reviewed commit: "Unify individual customer identification..." | Re-trigger Greptile
The description said countryOfIssuance was required for NON_US_TAX_ID, but the individual endpoints reject that type outright, so the documented combination could never be submitted. Describe what individuals actually get: SSN and ITIN are US-issued, so the field defaults to US and any other value is rejected. Co-Authored-By: akanter <akanter@users.noreply.github.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub. 2 Skipped Deployments
|

Summary
Individual customers accepted two interchangeable identification vocabularies:
taxIdType/taxIdentifier/taxIdCountryOfIssuance, andidType/identifier. Beneficial owners only ever hadidType/identifier/countryOfIssuance. This drops thetaxId*set so both resources speak one vocabulary.taxIdTypeidTypetaxIdentifieridentifiertaxIdCountryOfIssuancecountryOfIssuanceidentifiernow lives on the sharedIndividualCustomerFieldsaswriteOnly, which letsIndividualCustomerCreateRequestdrop its duplicate declaration.taxIdentifierwas 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.taxIdandBusinessBeneficiary.taxId(CPF/CNPJ) are a different concept with noidTypecounterpart.No
info.versionbump: these fields have no integrator on them yet, and a bump would mean cutting a new datedservers.urlpath for a pre-adoption cleanup.Changes
openapi/components/schemas/customers/IndividualCustomerFields.yaml— rename the three properties, markidentifierwrite-onlyopenapi/components/schemas/customers/IndividualCustomerCreateRequest.yaml— drop the now-duplicateidType/identifierblockopenapi/components/schemas/errors/FieldError.yaml— example field namemintlify/snippets/sandbox-verification.mdx— requirement prose, theRESOLVE_ERRORSsample, and the PATCH exampleopenapi.yaml,mintlify/openapi.yaml—make buildoutputTest plan
make build— exit 0, both bundles regeneratedmake lint— exit 0, 0 errors; warning/info counts unchanged frommain(658 problems, all pre-existing)grep -rn "taxIdType\|taxIdentifier\|taxIdCountryOfIssuance" openapi/ mintlify/— no matchesThe consuming server change lands separately in webdev, which regenerates its Python models from this bundle. Merge this first.
Requested by @akanter
Original PR: #832