Add optional primary contact name to business info - #805
Conversation
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.
✱ Stainless preview builds for gridThis PR will update the cli go kotlin openapi php python ruby typescript ✅ grid-ruby studio · code
|
Greptile SummaryLET THE NAMED CONTACT RIDE THROUGH THE GATES OF ONBOARDING. Adds optional primary-contact first and last names across business customer creation, updates, and responses.
Confidence Score: 5/5The 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.
|
| 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

Summary
Adds two optional properties —
primaryContactFirstNameandprimaryContactLastName— toBusinessInfo,BusinessInfoUpdate, andBusinessInfoResponse.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
primaryContactobjectThe customer's existing top-level
emailandphoneNumberalready 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 toopenapi.yaml+mintlify/openapi.yamlnpx spectral lint openapi.yaml --fail-severity=error— 0 errors, and no new findings against the added propertiesoasdiff breaking <main> <head> --fail-on ERR— "No breaking changes to report", so noinfo.versionbumpRequested by @jklein24
Original PR: #804