Skip to content

Add KYB business-entity fields for Lead — NAICS, structured source of funds, counterparty countries (ENG-10687)#641

Closed
ls-bolt[bot] wants to merge 3 commits into
mainfrom
07-03-ENG-10687-kyb-business-info-fields
Closed

Add KYB business-entity fields for Lead — NAICS, structured source of funds, counterparty countries (ENG-10687)#641
ls-bolt[bot] wants to merge 3 commits into
mainfrom
07-03-ENG-10687-kyb-business-info-fields

Conversation

@ls-bolt

@ls-bolt ls-bolt Bot commented Jul 3, 2026

Copy link
Copy Markdown

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

Summary

Spec side of webdev ENG-10687 (KYB field gaps for Lead business entities). Companion to the webdev stack rooted at lightsparkdev/webdev#29776.

Adds to BusinessInfo / BusinessInfoUpdate / BusinessInfoResponse:

  • naicsCode — 2–6 digit NAICS code (Lead takes NAICS via business_details.industry)
  • sourceOfFundsCategories — array referencing the existing (previously unreferenced) SourceOfFunds enum, plus sourceOfFundsOtherDescription
  • purposeOfAccountOtherDescription — CDD 'other' description for purposeOfAccount: OTHER
  • expectedCounterpartyCountries — geographic-risk CDD field (distinct from send-side expectedRecipientJurisdictions)

Adds MISSING_CONTROL_PERSON and MISSING_GOOD_STANDING_DOCUMENT to VerificationErrorType (control person and Certificate of Good Standing are Lead KYB requirements; the webdev validator will emit these for Lead-partnered platforms).

make build re-bundled openapi.yaml + mintlify/openapi.yaml. make lint-openapi is baseline-equivalent (same single pre-existing error as main).

Test plan

  • Redocly bundle + lint (no new findings vs main)
  • webdev regen from this spec compiles and is exercised by the webdev stack's handler tests

🤖 fierce-nexus-2(#2) | Feedback

…funds, counterparty countries (ENG-10687)

Adds to BusinessInfo / BusinessInfoUpdate / BusinessInfoResponse:
- naicsCode (2-6 digit NAICS)
- sourceOfFundsCategories (references the existing SourceOfFunds enum) + sourceOfFundsOtherDescription
- purposeOfAccountOtherDescription
- expectedCounterpartyCountries

Adds MISSING_CONTROL_PERSON and MISSING_GOOD_STANDING_DOCUMENT verification error types.

Co-Authored-By: akanter <akanter@users.noreply.github.com>
@vercel

vercel Bot commented Jul 3, 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 Jul 3, 2026 4:03am
grid-wallet-demo Ignored Ignored Preview Jul 3, 2026 4:03am

Request Review

@ls-bolt ls-bolt Bot added the bolt label Jul 3, 2026

akanter commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Jul 3, 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

csharp

feat(api): add fields to business customer/info, verification error enum values

go

feat(api): add fields to business customer info, enum values to verification errors

kotlin

feat(api): add business info fields, verification error types, source of funds enum

openapi

feat(api): add source of funds, NAICS, counterparty fields to business, verification errors

php

feat(api): add BusinessInfo fields, SourceOfFundsCategory enum, VerificationError types

python

feat(api): add fields to business_customer, verification_error types

ruby

feat(api): add fields to business_customer models, enum values to verification_error

typescript

feat(api): add businessInfo fields to customers, verification error reasons

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

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 ✅ (prev: 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 ✅ (prev: build ⏭️) → lint ❗test ❗

go get github.com/stainless-sdks/grid-go@6a672339f40a59c12dcd3b8aefce7320cc4a4e01
grid-kotlin studio · code · diff

Your SDK build had at least one "warning" diagnostic, but this did not represent a regression.
generate ⚠️build ✅ (prev: build ⏭️) → lint ✅ (prev: lint ⏭️) → test ❗

⚠️ grid-typescript studio · code · diff

Your SDK build had a failure in the lint CI job, which is a regression from the base state.
generate ✅build ✅ (prev: build ⏭️) → lint ❗ (prev: lint ⏭️) → test ✅

npm install https://pkg.stainless.com/s/grid-typescript/ac513f34972514e6c7317b468b130bd88f5ce4eb/dist.tar.gz
grid-python studio · code

Your SDK build had a "fatal" conclusion in the base build, which improved to "note", but this did not represent a regression.
generate ✅build ✅lint ❗test ❗

pip install https://pkg.stainless.com/s/grid-python/0c17ecb858b8fe011b7dbbf60adb662f15b546f9/grid-0.0.1-py3-none-any.whl
New diagnostics (113 note)
💡 Schema/IsAmbiguous: Missing type for schema
💡 Schema/IsAmbiguous: Missing type for schema
💡 Schema/IsAmbiguous: Missing type for schema
💡 Schema/IsAmbiguous: Missing type for schema
💡 Schema/IsAmbiguous: Missing type for schema
💡 Schema/IsAmbiguous: Missing type for schema
💡 Schema/IsAmbiguous: Missing type for schema
💡 Schema/IsAmbiguous: Missing type for schema
💡 Schema/IsAmbiguous: Missing type for schema
💡 Schema/IsAmbiguous: Missing type for schema
⚠️ grid-csharp studio · code · diff

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

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-07-03 04:08:01 UTC

Bolt Agent added 2 commits July 3, 2026 03:55
The legacy free-text sourceOfFunds property coexists on BusinessInfo; a
sibling type named SourceOfFunds breaks the generated C# SDK (property /
type name collision flagged by the Stainless preview build).
@ls-bolt

ls-bolt Bot commented Jul 3, 2026

Copy link
Copy Markdown
Author

CI note: the preview job failure is the Stainless csharp SDK build. The same csharp failure occurred on the merge job of the previously merged schema-adding PR #637 (ENG-10686), so it appears to be a chronic pipeline state rather than a regression from this change. All spec-side checks (Lint, Breaking Changes, Docs Build) pass. I did rename the enum schema SourceOfFundsSourceOfFundsCategory along the way since a type named identically to the existing sourceOfFunds property is a real C# codegen hazard.


🤖 fierce-nexus(#2) | Feedback

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.

1 participant