Skip to content

Add optional primary contact name to business info - #805

Merged
jklein24 merged 1 commit into
mainfrom
08-05-business-primary-contact-name
Aug 6, 2026
Merged

Add optional primary contact name to business info#805
jklein24 merged 1 commit into
mainfrom
08-05-business-primary-contact-name

Conversation

@jklein24

@jklein24 jklein24 commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds two optional properties — primaryContactFirstName and primaryContactLastName — to BusinessInfo, BusinessInfoUpdate, and BusinessInfoResponse.

Businesses onboarding in regions that verify a named individual against the business (the EU, for example) have to identify their registered director or authorised representative. Today the business info schemas carry no way to name that person, so there is nowhere for an integrator to send it.

Why two plain properties rather than a primaryContact object

The customer's existing top-level email and phoneNumber already are that person's contact details — they're documented as "Required in regions that verify the email address before identity verification". Nesting a fresh contact object with its own email and phone would create a second, competing pair of channels for the same human, and the verification endpoints (POST /customers/{id}/verify-email, /verify-phone) verify the customer-level ones. Only the name was missing, so only the name is added.

Both fields are optional, so existing integrations are unaffected.

Test plan

  • make build — bundles cleanly to openapi.yaml + mintlify/openapi.yaml
  • npx spectral lint openapi.yaml --fail-severity=error — 0 errors, and no new findings against the added properties
  • oasdiff breaking <main> <head> --fail-on ERR — "No breaking changes to report", so no info.version bump

Requested by @jklein24

Original PR: #804

Businesses onboarding in regions that verify a named individual against the
business (e.g. the EU) need to identify their registered director or authorised
representative. Adds optional primaryContactFirstName / primaryContactLastName
to the business info request, update, and response schemas; the customer's
existing email and phoneNumber are that person's contact details.
@ls-bolt ls-bolt Bot added the bolt label Aug 6, 2026
@jklein24
jklein24 marked this pull request as ready for review August 6, 2026 00:40
@jklein24
jklein24 requested a review from shreyav August 6, 2026 00:41

Copy link
Copy Markdown

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

@github-actions

github-actions Bot commented Aug 6, 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

go

feat(api): add primaryContactFirstName/LastName to business customer operations

kotlin

feat(api): add primaryContactFirstName/primaryContactLastName to BusinessInfo

openapi

feat(api): add primary contact name fields to business customer

php

feat(api): add primaryContactFirstName and primaryContactLastName to BusinessInfo

python

feat(api): add primary contact name fields to business customer

ruby

feat(api): add primary_contact_first_name/last_name fields to business_customer

typescript

feat(api): add primaryContactFirstName/primaryContactLastName to business customers
⚠️ grid-openapi studio · code

Your SDK build had at least one "warning" diagnostic.
generate ⚠️

grid-ruby studio · code

Your SDK build had at least one "note" diagnostic.
generate ✅build ✅lint ✅test ✅

⚠️ grid-go studio · code

Your SDK build had a failure in the lint CI job, which is a regression from the base state.
generate ✅build ✅lint ❗test ❗

go get github.com/stainless-sdks/grid-go@1e02664e80f91157870e84b5eef8733ae20a8595
⚠️ grid-kotlin studio · code

Your SDK build had a failure in the test CI job, which is a regression from the base state.
generate ⚠️build ✅lint ✅test ❗

⚠️ grid-python studio · code

Your SDK build had a failure in the lint CI job, which is a regression from the base state.
generate ✅build ✅lint ❗test ❗

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

Your SDK build had at least one "note" diagnostic.
generate ✅lint ✅test ✅

grid-typescript studio · conflict

Your SDK build had at least one note diagnostic.

⚠️ grid-cli studio · code

Your SDK build had a failure in the test CI job, which is a regression from the base state.
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-06 03:59:31 UTC

@greptile-apps

greptile-apps Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

           ⚡      ☠      ⚡
        __/|  GRIDFÖRGE  |\__
       / _ |============| _ \
      /_/ \|  KYB METAL |/ \_\
           \m/        \m/

LET THE NAMED CONTACT RIDE THROUGH THE GATES OF ONBOARDING.

Adds optional primary-contact first and last names across business customer creation, updates, and responses.

  • Defines both length-bounded fields in the three modular BusinessInfo schemas.
  • Regenerates the root and Mintlify OpenAPI bundles with matching definitions.
  • Preserves backward compatibility by leaving both properties optional.

Confidence Score: 5/5

The PR appears safe to merge; the optional fields are consistently represented across create, update, response, and generated OpenAPI artifacts.

The three source schemas expose matching optional string properties, their existing composition chains cover customer creation, updates, and responses, and both generated bundles remain synchronized.

Important Files Changed

Filename Overview
openapi/components/schemas/customers/BusinessInfo.yaml Adds both optional contact-name fields to business customer creation with descriptions, examples, and 250-character limits.
openapi/components/schemas/customers/BusinessInfoUpdate.yaml Adds the same optional fields to the business information update contract.
openapi/components/schemas/customers/BusinessInfoResponse.yaml Exposes the same optional fields in business customer responses.
openapi.yaml The generated root bundle consistently contains the new properties in all three resolved schemas.
mintlify/openapi.yaml The generated Mintlify bundle remains synchronized with the root bundle and modular source schemas.

Reviews (1): Last reviewed commit: "Add optional primary contact name to bus..." | Re-trigger Greptile

@jklein24
jklein24 enabled auto-merge (squash) August 6, 2026 01:10
@jklein24
jklein24 merged commit 8215169 into main Aug 6, 2026
17 of 18 checks passed
@jklein24
jklein24 deleted the 08-05-business-primary-contact-name branch August 6, 2026 03:53
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.

3 participants