Add end-user terms consent customer APIs - #788
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 2 Skipped Deployments
|
✱ Stainless preview builds for gridThis PR will update the cli go kotlin openapi php python ruby typescript Edit this comment to update them. They will appear in their respective SDK's changelogs. ⏳ grid-typescript studio · code · diff
✅ grid-openapi studio · code · diff
✅ grid-go studio · code · diff
✅ grid-python studio · code · diff
✅ grid-cli studio · code · diff
⏳ These are partial results; builds are still running. This comment is auto-generated by GitHub Actions and is automatically kept up to date as you push. |
|
⚡ On it - adding the three new customer endpoints to the Stainless SDK configuration and validating the preview config. I’ll update here when it’s pushed. |
5ac5ae1 to
df1a8bc
Compare
Revision 2
|
|
Preview deployment for your docs. Learn more about Mintlify Previews.
|
|
📌 Bolt Status 2026-08-03 17:26:40 UTC — ⚡ Agent |
|
⚡ On it - evaluating whether consent status should be exposed on customer responses and checking the existing customer status model. I’ll update here with the resulting API change or rationale. |
df1a8bc to
e6b3505
Compare
Revision 3
|
Co-Authored-By: github-actions <github-actions@users.noreply.github.com> Co-Authored-By: jklein24 <jklein24@users.noreply.github.com>
e6b3505 to
585cb95
Compare
|
Revision update:
@faraday please re-review the latest revision. |
| @@ -0,0 +1,80 @@ | |||
| get: | |||
There was a problem hiding this comment.
do we need a whole new endpoint and resource for this, wondering if we can just put it on the customer
There was a problem hiding this comment.
I kept this customer-scoped resource intentionally. The common customer-read use case is covered by hasAcceptedEndUserTerms, so clients can see the account-opening prerequisite alongside the existing customer status without another request. The dedicated GET/PATCH is for the full acceptance evidence and its independent lifecycle: timestamp, terms version, method, and IP address. Embedding that object on every individual/business customer response and customer webhook would duplicate the schema and broaden exposure of audit/PII data, while we would still need a mutation surface to record re-acceptance. The original API requirement also explicitly calls for customer-ID-scoped get and update operations. My recommendation is therefore to keep the lightweight boolean on Customer and the full evidence behind /customers/{customerId}/end-user-terms-consent.
|
⚡ On it — reconciling the dedicated consent endpoint with the customer-object alternative and the existing API requirements. I’ll follow up in the review thread. |
|
Review follow-up complete: I kept the customer-scoped consent GET/PATCH and explained the tradeoff in the inline thread. |
Start the version identifier at V1 so future revisions increment to V2, V3, and so on, rather than encoding a release date. Co-Authored-By: bsiaotickchong <bsiaotickchong@users.noreply.github.com>
## Summary - add the full optional `endUserTermsConsent` object to customer create, update, and response schemas - expose the current Grid-hosted terms URL and version through `GET /customers/end-user-terms` - remove the redundant dedicated customer-consent GET/PATCH operations and the `hasAcceptedEndUserTerms` boolean - document consent requirements for unregulated platforms and the `END_USER_TERMS_NOT_ACCEPTED` quote error - identify terms versions sequentially (`V1`, then `V2`, `V3`, …) ## Validation - `make lint` Requested by @bsiaotickchong Original PR: #788 --------- Co-authored-by: jklein24 <jklein24@users.noreply.github.com> Co-authored-by: bsiaotickchong <bsiaotickchong@users.noreply.github.com>

Summary
hasAcceptedEndUserTermson customer responses so account-opening prerequisites are visibleV1, thenV2,V3, …) rather than release datesValidation
make lintRequested by @bsiaotickchong