docs(sandbox): correct KYC/KYB resolution timing in the sandbox snippets - #901
docs(sandbox): correct KYC/KYB resolution timing in the sandbox snippets#901ls-bolt[bot] wants to merge 6 commits into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 2 Skipped Deployments
|
a64356c to
e37f192
Compare
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
e37f192 to
b7b83a9
Compare
|
Preview deployment for your docs. Learn more about Mintlify Previews.
|
Greptile SummaryThis PR updates sandbox verification documentation to distinguish creation-time and submission-time KYC/KYB resolution, explains packet validation and terminal statuses, and restores the changelog’s walkthrough link.
Confidence Score: 4/5The PR is safe to merge after considering two non-blocking documentation improvements concerning stale related guidance and an ambiguous table heading. The revised lifecycle behavior is consistent with related documentation, but one hosted-flow snippet retains the old timing language and the individual suffix table does not clearly distinguish resolved statuses from creation statuses. Files Needing Attention: mintlify/snippets/kyc/kyb-sandbox-suffixes.mdx; mintlify/snippets/sandbox-verification.mdx
|
| Filename | Overview |
|---|---|
| mintlify/changelog.mdx | Restores the sandbox-testing walkthrough link now that its destination describes the revised flow. |
| mintlify/snippets/kyc/kyb-sandbox-suffixes.mdx | Corrects business-resolution timing, but related hosted-flow guidance still contains the superseded creation-time wording. |
| mintlify/snippets/sandbox-verification.mdx | Correctly separates individual lifecycle branches, though the suffix table’s status column does not identify its values as eventual outcomes. |
Prompt To Fix All With AI
### Issue 1
mintlify/snippets/kyc/kyb-sandbox-suffixes.mdx:13
**Hosted guidance remains stale**
This warning correctly says that business auto-approval occurs at the first submission, but `mintlify/snippets/kyc/kyc-unregulated.mdx` still says a non-special registration number auto-approves a business “on the spot.” The conflicting guidance may cause hosted-flow users to expect approval when the customer is created rather than when verification is first submitted.
### Issue 2
mintlify/snippets/sandbox-verification.mdx:12
**Status column hides timing**
The `kycStatus` column lists eventual suffix outcomes, but every unregulated customer remains `UNVERIFIED` until verification is submitted. Calling these values simply `kycStatus` may lead readers scanning the table to interpret `PENDING`, `REJECTED`, and `APPROVED` as creation-time statuses. Label the column as the resolved status or outcome to make the timing clear.
```suggestion
| Suffix | Resolved `kycStatus` | Behavior on `POST /verifications` |
```
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.Reviews (1): Last reviewed commit: e37f192 | Re-trigger Greptile
… guides Co-Authored-By: pengying <pengying@users.noreply.github.com>
|
⚡ Review ledger Round 1
Round 2
Round 3
Round 4
Round 5
|
|
⚡ Revision log — updated in place, latest first. Revision 5
Earlier revisions (4)Revision 4
Revision 3
Revision 2
Revision 1
|
|
One remaining overstatement is in both updated platform guides. |
|
I found a few remaining documentation inconsistencies:
|
…ation Co-Authored-By: pengying <pengying@users.noreply.github.com>
|
Both rounds of findings were valid — all six are fixed, and one of them was a genuine error on my part rather than an overstatement. The real bug: I had written that on an unregulated platform "the packet is checked before any of these outcomes apply." That is only true with Skip verification paperwork off. With the switch on, a final business suffix resolves before packet validation — so an incomplete The rest:
Two things your
I also left |
|
[P1] Complete the ramp walkthrough before using this customer This example creates |
|
I found two remaining documentation issues:
|
…tion Co-Authored-By: pengying <pengying@users.noreply.github.com>
|
Both P1s were right, and they're different in kind — one was scoping, the other was a walkthrough I'd left broken.
Adversarial review then caught one more of mine on the payouts bullet: I'd written that regulated / skip-paperwork resolves "at creation" as a blanket statement, but that's individuals only — businesses always resolve on their first submission. Corrected. One thing I looked at and deliberately left alone: that same payouts bullet says sandbox customers must use |
|
One remaining inconsistency in |
Co-Authored-By: pengying <pengying@users.noreply.github.com>
|
Right that the bullet was wrong, and fixed — though I took a slightly different wording than your suggestion, because the underlying mechanism differs from what it implies. Your suggestion says So the bullet now reads:
Same practical guidance you were after — nobody testing Your P2 on the same push was also correct: I'd written that a business "always resolves on its first submission," which reads as definitively resolves. It never resolves at creation, but on the first submission only a terminal registration-number suffix settles it; Both of these are the same failure mode on my part, worth naming: I keep fixing the timing axis (create vs submit) and leaving the terminality axis (does this status settle) unqualified. They're independent, and prose that collapses them reads as universal. |
|
Revision 4 addresses the remaining terminal-vs-submittable distinction consistently, including the payouts KYC bullet. I found no further issues in the changed documentation. |
|
Found one remaining P2 in |
… claim Co-Authored-By: pengying <pengying@users.noreply.github.com>
|
Fixed — and it's the second time a table of mine has contradicted correct prose sitting right below it, which is the actual lesson here. Both I checked the individual KYC table in Adversarial review then surfaced three more on this push, all valid:
Deferring that one was the wrong call. "Predates my change" was a reason not to expand scope, not a reason to leave a claim standing that my own edits had just made more visibly false. |
|
No new issues found in the latest revision. The sandbox timing, terminal-vs-submittable suffix behavior, hosted-flow coverage, and remaining cross-page claims are now consistent. The existing checks are also passing. |
|
No new issues found. The current revision consistently scopes KYC/KYB timing by platform configuration, distinguishes terminal suffixes from submittable |

Summary
Corrects the sandbox verification docs, which described KYC/KYB as resolving at customer creation. That is no longer true by default: on an unregulated sandbox platform the result now resolves from a submitted verification, and only resolves at creation on a regulated platform or with Skip verification paperwork enabled.
Follow-up to the September 2026 changelog entry (#900, merged), whose link pointed at guidance that contradicted it.
What changed
mintlify/snippets/sandbox-verification.mdxkycStatus"immediately at creation". It now splits the two paths explicitly: unregulated with the switch off (staysUNVERIFIED,RESOLVE_ERRORSon an incomplete submission, suffix applies once complete) versus regulated or switch-on (resolves at creation).Resolved kycStatus, so readers scanning the table see that the values are eventual outcomes rather than creation-time statuses.APPROVED/REJECTEDare terminal, and a rename no longer re-derives them.mintlify/snippets/kyc/kyb-sandbox-suffixes.mdxPOST /verifications. Documented what that submission does on each path — packet validated first by default, versus a final suffix resolving before packet validation when paperwork is skipped (so an incomplete002rejects rather than reporting errors).001/003require a complete packet either way.<Warning>to the no-packet-validation cases.mintlify/snippets/kyc/kyc-unregulated.mdx,payouts-and-b2b/platform-tools/sandbox-testing.mdx,rewards/platform-tools/sandbox-testing.mdx,ramps/platform-tools/sandbox-testing.mdxTerminal vs. submittable suffixes
002, and any value other than001/003) resolve without documents.001and003land atPENDING/UNVERIFIEDand remain submittable, carrying the full data and document requirements — so "no documents required" is scoped to the terminal case rather than stated for every suffix.Walkthrough scoping
<Steps>walkthrough and the production-parity data requirements insandbox-verification.mdxare scoped to the paths where a submission is actually required, rather than presented as universal — they were misleading for the skip-paperwork path.mintlify/changelog.mdx001and003still require a complete packet. This line shipped in docs(changelog): sandbox KYC/KYB now resolves from a submitted verification #900 and is partner-facing, so it is corrected here rather than left for a later pass.Stale claim corrected
/customers"rather than using the KYC link flow". The sandbox does implement hosted KYC (POST /customers/{customerId}/kyc-link), so that line is removed; both onboarding paths work as in production.Verification
mint broken-links: 33 broken links in 14 files, unchanged frommain— none in the touched files./api-reference/sandbox-testinglocally onmint@4.2.284; the revised sections render correctly and no longer contradict the changelog.bolt-adversarial-reviewrun each round. It caught four real errors in my own drafts: "auto-approved on the spot" (wrong for businesses under the skip flag), aregistrationNumberreference attached to anINDIVIDUALexample, a walkthrough left mid-flow with an unverified customer, and a KYC/KYB generalization on the payouts bullet. All fixed; final round clean.Known gaps, not addressed here
snippets/global-accounts/walkthrough.mdxstates the customer is "KYC-approved immediately". Nothing underglobal-accounts/documents unregulated platforms, so that may still be accurate for that surface — left alone rather than guessed at.INDIVIDUAL. Pre-existing mismatch, out of scope for this change.