Skip to content

docs(sandbox): correct KYC/KYB resolution timing in the sandbox snippets - #901

Open
ls-bolt[bot] wants to merge 6 commits into
mainfrom
09-05-sandbox-verification-snippets
Open

docs(sandbox): correct KYC/KYB resolution timing in the sandbox snippets#901
ls-bolt[bot] wants to merge 6 commits into
mainfrom
09-05-sandbox-verification-snippets

Conversation

@ls-bolt

@ls-bolt ls-bolt Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

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.mdx

  • The individual KYC section no longer claims the suffix resolves kycStatus "immediately at creation". It now splits the two paths explicitly: unregulated with the switch off (stays UNVERIFIED, RESOLVE_ERRORS on an incomplete submission, suffix applies once complete) versus regulated or switch-on (resolves at creation).
  • Suffix table column relabeled Resolved kycStatus, so readers scanning the table see that the values are eventual outcomes rather than creation-time statuses.
  • Added the finality rule: APPROVED/REJECTED are terminal, and a rename no longer re-derives them.

mintlify/snippets/kyc/kyb-sandbox-suffixes.mdx

  • Business customers never resolve at creation; the outcome lands on the first POST /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 incomplete 002 rejects rather than reporting errors). 001/003 require a complete packet either way.
  • Scoped the auto-approval <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.mdx

  • Four more places asserted instant or automatic approval with no qualification. Each now states when the result resolves and on which configuration. The payouts bullet also distinguishes individuals (resolve at creation on the no-packet paths) from businesses (always resolve on their first submission).

Terminal vs. submittable suffixes

  • On the no-packet paths, only terminal suffixes (002, and any value other than 001/003) resolve without documents. 001 and 003 land at PENDING/UNVERIFIED and 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.
  • The same distinction is applied to the payouts KYC bullet for businesses.

Walkthrough scoping

  • The fix-and-resubmit <Steps> walkthrough and the production-parity data requirements in sandbox-verification.mdx are scoped to the paths where a submission is actually required, rather than presented as universal — they were misleading for the skip-paperwork path.
  • The ramps on-ramp walkthrough creates a customer with no magic suffix and immediately uses it in Step 2, which is not executable on the default unregulated path. It now states its prerequisite up front: a regulated platform or Skip verification paperwork on, with a pointer to the verification flow otherwise.

mintlify/changelog.mdx

  • Restored the "fix-and-resubmit loop" link text now that the destination is accurate.
  • Corrected the Skip verification paperwork bullet, which said results come from the suffix "with no documents" for every suffix. That holds for terminal suffixes only; 001 and 003 still 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

  • The payouts page said sandbox customers must use /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 from main — none in the touched files.
  • Rendered /api-reference/sandbox-testing locally on mint@4.2.284; the revised sections render correctly and no longer contradict the changelog.
  • bolt-adversarial-review run each round. It caught four real errors in my own drafts: "auto-approved on the spot" (wrong for businesses under the skip flag), a registrationNumber reference attached to an INDIVIDUAL example, 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.mdx states the customer is "KYC-approved immediately". Nothing under global-accounts/ documents unregulated platforms, so that may still be accurate for that surface — left alone rather than guessed at.
  • The rewards page's "Sandbox KYB Flow" section is headed KYB but its example creates an INDIVIDUAL. Pre-existing mismatch, out of scope for this change.

@vercel

vercel Bot commented Sep 5, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

2 Skipped Deployments
Project Deployment Actions Updated
grid-flow-builder Ignored Ignored Preview Sep 5, 2026 1:13am UTC
grid-wallet-demo Ignored Ignored Preview Sep 5, 2026 1:13am UTC

Request Review

@ls-bolt ls-bolt Bot added the bolt label Sep 5, 2026
@ls-bolt
ls-bolt Bot force-pushed the 09-05-sandbox-verification-snippets branch from a64356c to e37f192 Compare September 5, 2026 00:21

Copy link
Copy Markdown

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.
Learn more

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

@pengying
pengying marked this pull request as ready for review September 5, 2026 00:23
Base automatically changed from 09-04-sandbox-verification-changelog to main September 5, 2026 00:24
@pengying
pengying force-pushed the 09-05-sandbox-verification-snippets branch from e37f192 to b7b83a9 Compare September 5, 2026 00:24
@mintlify

mintlify Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated
Grid 🟢 Ready View Preview Sep 5, 2026, 12:25 AM

@greptile-apps

greptile-apps Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This 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.

  • Corrects individual KYC timing across regulated, unregulated, and skip-paperwork configurations.
  • Clarifies that business suffix outcomes occur no earlier than first submission.
  • Documents validation ordering and terminal verification behavior.
  • Two documentation-consistency and table-clarity issues remain.

Confidence Score: 4/5

The 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

Important Files Changed

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

Comment thread mintlify/snippets/kyc/kyb-sandbox-suffixes.mdx Outdated
Comment thread mintlify/snippets/sandbox-verification.mdx Outdated
… guides

Co-Authored-By: pengying <pengying@users.noreply.github.com>
@ls-bolt

ls-bolt Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor Author

⚡ Review ledger

Round 1

  1. @greptile-apps — Hosted guidance remains stale (kyb-sandbox-suffixes.mdx:13) → FIXED: mintlify/snippets/kyc/kyc-unregulated.mdx:167 "on the spot" → "at its first verification submission".
  2. @greptile-apps — Status column hides timing (sandbox-verification.mdx:12) → FIXED: took the suggestion verbatim; column is now Resolved kycStatus.
  3. Found while sweeping for Update all of the overview images #1 (not reported) → FIXED: payouts-and-b2b/platform-tools/sandbox-testing.mdx and rewards/platform-tools/sandbox-testing.mdx both stated instant KYC/KYB unconditionally; both now state when the result resolves. Left snippets/global-accounts/walkthrough.mdx unchanged — same wording, but nothing under global-accounts/ documents unregulated platforms, so the claim may still be correct there.

Round 2

  1. Packet-first claim too broad (kyb-sandbox-suffixes.mdx, sandbox-verification.mdx) → FIXED — this was a real error, not just an overstatement: with the skip switch ON a final business suffix resolves BEFORE packet validation, so an incomplete 002 rejects rather than returning RESOLVE_ERRORS. Both paths now documented separately; 001/003 still need a complete packet either way.
  2. "Unregulated platforms" bullet ignores the switch-on case (sandbox-verification.mdx) → FIXED: scoped to the switch-off default, and now states that an incomplete submission returns RESOLVE_ERRORS first.
  3. Hosted-flow warning unscoped (kyc/kyc-unregulated.mdx) → FIXED: default path collects the packet; the no-documents case is scoped to skip-paperwork.
  4. "resolves once you submit" too broad for KYC (payouts-and-b2b/platform-tools/sandbox-testing.mdx) → FIXED: now "after a complete packet is submitted", with the switch-on exception retained.
  5. "Sandbox KYB Flow" still claims automatic approval (rewards/platform-tools/sandbox-testing.mdx) → FIXED and scoped. Note: that section's example creates an INDIVIDUAL under a KYB heading — pre-existing mismatch, left out of scope and noted in the PR description.
  6. Unqualified claim in ramps/platform-tools/sandbox-testing.mdx → FIXED: names the configuration that approves at creation and links the submission flow for the default path.
  7. Caught by adversarial review, not reported → FIXED: my first pass at the ramps and rewards pages cited a business registrationNumber on INDIVIDUAL examples (wrong identifier — individuals key off fullName), and left the ramps walkthrough mid-flow with an unverified customer.

Round 3

  1. P1 — configuration split not carried through the requirements and walkthrough (sandbox-verification.mdx) → FIXED: the production-parity data requirements are now scoped to "where a submission is required — the default unregulated path, and 001/003 on any path", and the fix-and-resubmit <Steps> states its configuration up front.
  2. P1 — ramp walkthrough not executable (ramps/platform-tools/sandbox-testing.mdx) → FIXED: the walkthrough's prerequisite (regulated platform, or Skip verification paperwork on) is now stated before Step 1, with a pointer to the verification flow for the default path. The prior fix documented the new state but left the example unrunnable.
  3. Caught by adversarial review, not reported → FIXED: the payouts bullet generalized "resolves at creation" across both customer types; that holds for individuals only — a business always resolves on its first submission.
  4. Looked at, deliberately unchanged → the payouts page says sandbox customers cannot use the hosted KYC link flow, but the sandbox does implement POST /customers/{customerId}/kyc-link. Predates this PR and the intent is unconfirmed, so it is noted in the description rather than changed on a guess.

Round 4

  1. "No documents required" overstated for 001/003 (sandbox-verification.mdx:9-10) → FIXED, with wording that differs from the suggestion: on the no-packet paths 001/003 do resolve at creation (to PENDING/UNVERIFIED); what distinguishes them is that those statuses are non-terminal, so the customer stays submittable and any submission carries the full requirements. The bullet now names the terminal suffixes explicitly rather than implying 001/003 skip creation-time resolution.
  2. Caught by adversarial review, not reported → FIXED: the payouts bullet said a business "always resolves on its first submission", which reads as definitively resolving. It never resolves at creation, but only a terminal registration-number suffix settles it on that submission; 001/003 still require a complete packet.

Round 5

  1. P2 — KYB table rows assert skipped validation without a qualifier (kyb-sandbox-suffixes.mdx:7-8) → FIXED: both 002 and Any other rows now name the configurations where validation is skipped. The individual KYC table was checked for the same defect and needs no change.
  2. Caught by adversarial review → FIXED: the KYB resolution sentence named only POST /verifications, but a hosted-flow submission resolves the outcome too; now covers both.
  3. Caught by adversarial review → FIXED: changelog.mdx carried the same "no documents" overstatement for every suffix. It shipped in docs(changelog): sandbox KYC/KYB now resolves from a submitted verification #900 and is partner-facing, so it is corrected here.
  4. Previously deferred, now resolved → FIXED: the payouts page claimed sandbox customers cannot use the hosted KYC link flow. Verified against the sandbox implementation — hosted KYC runs against a provider sandbox tenant with a stub fallback — so the claim was wrong and is removed.

@ls-bolt

ls-bolt Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor Author

Revision log — updated in place, latest first.

Revision 5

  • Qualified the KYB suffix table's 002 and Any other rows so the table no longer contradicts the prose beneath it.
  • Covered the hosted flow in the KYB resolution sentence, not just POST /verifications.
  • Corrected the same "no documents" overstatement in the merged changelog entry.
  • Removed the stale claim that sandbox customers cannot use the hosted KYC link flow, after verifying the sandbox implements it.
Earlier revisions (4)

Revision 4

  • Scoped "no documents required" on the regulated / skip-paperwork path to terminal suffixes; 001 and 003 resolve to non-terminal statuses there and remain submittable under the full requirements.
  • Applied the same terminal-vs-submittable distinction to the payouts KYC bullet for businesses.

Revision 3

  • Scoped the data requirements and fix-and-resubmit walkthrough in sandbox-verification.mdx to the paths where a submission is actually required.
  • Made the ramps on-ramp walkthrough executable: its configuration prerequisite is now stated before Step 1 rather than only described after the customer is created.
  • Corrected the payouts KYC bullet — "resolves at creation" applies to individuals; businesses always resolve on their first submission.

Revision 2

  • Corrected the packet-validation ordering: with Skip verification paperwork on, a final business suffix resolves before packet validation, so an incomplete 002 rejects instead of returning RESOLVE_ERRORS. My earlier text asserted the opposite.
  • Scoped every remaining create-time / automatic-approval claim to the configuration it actually applies to, across six files.
  • Fixed a wrong-identifier slip from my previous push (registrationNumber cited on INDIVIDUAL examples in the ramps and rewards pages).
  • Rewrote the PR description: it referenced internal PRs and service internals, which do not belong in a public repo.

Revision 1

  • Corrected the third copy of the stale "auto-approves on the spot" wording in kyc/kyc-unregulated.mdx, per @greptile-apps.
  • Relabeled the individual KYC suffix table column to Resolved kycStatus so the timing is visible to readers who scan the table without the preamble.
  • Swept the rest of mintlify/ for the same create-time assumption: fixed the "complete instantly" KYC/KYB bullets in the payouts and rewards sandbox-testing pages. Left the global-accounts walkthrough alone — that surface documents no unregulated platforms, so the claim may still hold there.
  • Rebased onto main now that docs(changelog): sandbox KYC/KYB now resolves from a submitted verification #900 has merged; this PR now targets main directly.

@greptile-apps

greptile-apps Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

One remaining overstatement is in both updated platform guides. mintlify/payouts-and-b2b/platform-tools/sandbox-testing.mdx says an unregulated KYC result “resolves once you submit,” and mintlify/rewards/platform-tools/sandbox-testing.mdx says KYB is “resolving at the first POST /verifications submission.” An incomplete packet can still return RESOLVE_ERRORS on that first submission (including an incomplete 002 business), so the suffix outcome does not apply until the submission is complete. Please qualify these as applying after a complete submission, or explicitly mention that validation errors can precede resolution.

@greptile-apps

greptile-apps Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

I found a few remaining documentation inconsistencies:

  • mintlify/snippets/sandbox-verification.mdx: the bullet beginning “Unregulated platforms” says the customer always remains UNVERIFIED until POST /verifications, but Skip verification paperwork is also an unregulated-platform configuration and individual suffixes resolve at creation when it is enabled. Scope that bullet to unregulated platforms with the switch off.

  • mintlify/snippets/kyc/kyb-sandbox-suffixes.mdx and mintlify/snippets/sandbox-verification.mdx: the packet-first statements are too broad. With Skip verification paperwork enabled, a business’s final suffix (002 or any other suffix) resolves on the first POST /verifications before packet validation; an incomplete packet therefore does not necessarily return RESOLVE_ERRORS. The packet-first behavior should be explicitly scoped to the switch-off/default path, with the switch-on behavior called out separately. For 001/003 under the switch-on path, packet validation still applies.

  • mintlify/snippets/kyc/kyc-unregulated.mdx: the business warning still says that a non-001/002/003 registration number leaves the hosted flow with nothing to verify and asks for no documents or UBOs. That is only true when paperwork is skipped (or on a regulated/no-packet path). On the default unregulated path, the hosted flow collects the packet and the suffix resolves after a complete submission. Scope the warning to the skip-paperwork case.

  • mintlify/payouts-and-b2b/platform-tools/sandbox-testing.mdx: “On an unregulated platform the result resolves once you submit” is too broad for KYC: with paperwork skipped, individual suffixes resolve at creation. The default switch-off case should say “after a complete packet is submitted,” with the switch-on exception retained.

  • mintlify/rewards/platform-tools/sandbox-testing.mdx: the earlier “Sandbox KYB Flow” section still says customers are automatically approved, while the page’s limitation bullet now says KYB resolves at the first submission. The flow section should be updated or scoped to the platform/configuration paths where automatic approval is actually available.

  • The same unqualified claim appears in mintlify/ramps/platform-tools/sandbox-testing.mdx (<Check>In sandbox, customers are automatically approved for testing.</Check>). Since the page does not identify a regulated or skip-paperwork configuration, this should also be corrected or explicitly scoped.

…ation

Co-Authored-By: pengying <pengying@users.noreply.github.com>
@ls-bolt

ls-bolt Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor Author

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 002 rejects outright rather than returning RESOLVE_ERRORS, which is the opposite of what I documented. kyb-sandbox-suffixes.mdx now splits the two paths explicitly and notes that 001/003 still require a complete packet either way.

The rest:

  • Unregulated KYC bullet — scoped to the switch-off default, and now says an incomplete submission returns RESOLVE_ERRORS before the suffix applies.
  • kyc-unregulated.mdx hosted-flow warning — scoped to the skip-paperwork case; the default path collects the packet and resolves after a complete submission.
  • payouts / rewards limitation bullets — both now say "after a complete packet is submitted" with the switch-on exception called out, rather than a bare "resolves once you submit."
  • rewards "Sandbox KYB Flow" — the automatic-approval line is corrected and scoped.
  • ramps <Check> — was an unqualified "customers are automatically approved"; now states which configuration approves at creation and points at the submission flow for the default path.

Two things your ramps/rewards findings surfaced that I want to flag rather than quietly fix:

  1. My first pass at both pages referred to a business registrationNumber on examples that create an INDIVIDUAL — wrong identifier; individuals key off fullName. Corrected.
  2. The rewards section headed Sandbox KYB Flow creates an INDIVIDUAL in its example. That mismatch predates this PR, so I have left it alone and noted it in the description rather than expanding scope.

I also left snippets/global-accounts/walkthrough.mdx untouched despite the same "KYC-approved immediately" wording — nothing under global-accounts/ documents unregulated platforms, so I could not confirm the claim is actually wrong there. Worth a look from someone who knows that surface.


🤖 incandescent-invoice(#1) | Feedback

@greptile-apps

greptile-apps Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

[P1] Complete the ramp walkthrough before using this customer

This example creates Alice Test without a magic suffix. On the default unregulated sandbox path, that customer remains UNVERIFIED until a complete POST /verifications, but Step 2 immediately uses the customer to create an external account and continues through the ramp flow. The updated <Check> only describes the new state; it does not make the walkthrough executable. Either add the verification steps before Step 2, or explicitly configure the example for a regulated platform / Skip verification paperwork so the customer is approved at creation.

@greptile-apps

greptile-apps Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

I found two remaining documentation issues:

  • P1 — mintlify/snippets/sandbox-verification.mdx: The configuration split is not carried through the generic requirements and fix-and-resubmit walkthrough. The preceding text says regulated platforms / Skip verification paperwork resolve an individual at creation with no documents, but the following paragraphs still say every submission has production data/document requirements and that the first POST /verifications returns RESOLVE_ERRORS with missing documents. That is misleading for the skip-paperwork path, especially for the 001 walkthrough. Scope the requirements and steps to the default unregulated, switch-off path, or document the alternate responses explicitly.

  • P1 — mintlify/ramps/platform-tools/sandbox-testing.mdx: The walkthrough still creates Alice Test (a non-special suffix) and immediately proceeds to Step 2 using that customer. On the default unregulated configuration, the new <Check> correctly says this customer remains UNVERIFIED until a complete verification is submitted, so the example is still not executable end-to-end. Either add the verification flow before Step 2 or make the regulated/skip-paperwork prerequisite explicit before creating the customer.

…tion

Co-Authored-By: pengying <pengying@users.noreply.github.com>
@ls-bolt

ls-bolt Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor Author

Both P1s were right, and they're different in kind — one was scoping, the other was a walkthrough I'd left broken.

sandbox-verification.mdx — requirements not carried through. You're right that I split the configuration at the top and then let the generic text below contradict it. The production-parity data requirements now open with "Where a submission is required — the default unregulated path, and 001/003 on any path", and the fix-and-resubmit <Steps> says up front that it's the default unregulated loop with the switch off. The 001 walkthrough does still hold where the suffix resolves at creation, since 001/003 always need a complete packet either way — that's now stated rather than left implied.

ramps — walkthrough not executable. This one I'd genuinely half-fixed: I documented the new state in the <Check> and left Step 2 using a customer that never got verified. Rather than bolt a verification detour into an on-ramp walkthrough, I made the prerequisite explicit before Step 1 — regulated platform or Skip verification paperwork on — with a pointer to the verification flow for the default path. The <Check> now just confirms Alice Test is APPROVED and ready for Step 2 under that stated configuration. Documenting a state without making the example runnable was the wrong half to fix, so thanks for pushing on it.

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 /customers "rather than using the KYC link flow." The sandbox does implement POST /customers/{customerId}/kyc-link, so the line looks stale — but it predates this PR and I couldn't confirm whether it reflects a real product constraint. Noted in the description instead of changing it on a guess.


🤖 incandescent-invoice(#1) | Feedback

@greptile-apps

greptile-apps Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

P2 The regulated/skip-paperwork individual path overstates the no-document behavior

In mintlify/snippets/sandbox-verification.mdx, the second configuration bullet says that the suffix resolves at creation “with no documents required” for every suffix. That conflicts with the later clarification that 001 and 003 still require a complete packet on those paths: 001 remains submittable/pending and 003 still requires a submission that produces the simulated document-quality outcome. Only terminal suffixes (002 and non-001/003 values) can resolve without a verification packet. Please scope the “no documents required” statement to those terminal suffixes, so users testing 001/003 are not told to skip the required document flow.

@greptile-apps

greptile-apps Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

One remaining inconsistency in mintlify/snippets/sandbox-verification.mdx:9-10: the regulated/Skip verification paperwork bullet says the suffix resolves the customer at creation “with no documents required,” but the later paragraph correctly says 001/003 still require a complete packet on every path. This could cause readers to skip the required submission for those suffixes.

- **Regulated platforms**, and unregulated platforms with **Skip verification paperwork** turned on in the sandbox dashboard's Configuration — terminal suffixes (`002` or any value other than `001`/`003`) resolve at creation with no documents required. `001` and `003` remain submittable and require the complete packet described below.

Co-Authored-By: pengying <pengying@users.noreply.github.com>
@ls-bolt

ls-bolt Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor Author

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 001/003 "remain submittable and require the complete packet" as an exception to resolving at creation. On that path they do resolve at creation — the suffix runs and lands them at PENDING and UNVERIFIED respectively. The distinction isn't whether resolution happens; it's whether the status it resolves to is terminal. 002 and non-001/003 values are terminal and finish there; 001/003 are non-terminal, so the customer stays submittable and any submission you then make carries the full requirements.

So the bullet now reads:

...the suffix resolves the customer at creation, with no documents required. 002 and any value other than 001/003 are terminal there. 001 and 003 land at PENDING and UNVERIFIED, which you can still submit for verification — and that submission carries the full data and document requirements below.

Same practical guidance you were after — nobody testing 001/003 is told to skip the document flow — without implying those suffixes are exempt from creation-time resolution.

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; 001/003 still need a complete packet. That bullet is now qualified the same way.

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.


🤖 incandescent-invoice(#1) | Feedback

@greptile-apps

greptile-apps Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Revision 4 addresses the remaining terminal-vs-submittable distinction consistently, including the payouts KYC bullet. I found no further issues in the changed documentation.

@greptile-apps

greptile-apps Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Found one remaining P2 in mintlify/snippets/kyc/kyb-sandbox-suffixes.mdx:7-8. The 002 and Any other table rows still say they skip data and document validation without a configuration qualifier. On the default unregulated path, the packet is validated first and an incomplete submission returns RESOLVE_ERRORS; only regulated platforms or Skip verification paperwork bypass that validation. The prose below the table explains this correctly, but the table is a standalone quick reference and currently contradicts it.

| **002** | `kybStatus: REJECTED` (`verificationStatus: REJECTED`); on regulated platforms or with **Skip verification paperwork** on, packet validation is skipped |
| **Any other** | `kybStatus: APPROVED` (`verificationStatus: APPROVED`); on regulated platforms or with **Skip verification paperwork** on, packet validation is skipped |

… claim

Co-Authored-By: pengying <pengying@users.noreply.github.com>
@ls-bolt

ls-bolt Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor Author

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 002 and Any other rows now carry the qualifier rather than asserting skipped validation flat.

I checked the individual KYC table in sandbox-verification.mdx for the same defect rather than wait for it to be flagged. It's fine: the Resolved kycStatus header and "once resolved" phrasing already avoid asserting timing, and it makes no skipped-validation claim.

Adversarial review then surfaced three more on this push, all valid:

  1. Hosted flow omitted. I'd written that a business outcome "lands on the first POST /verifications" — but line 1 of that same snippet covers the hosted KYB link, and a hosted submission resolves it too. Now reads "the first verification submission, whether you make it with POST /verifications or the applicant completes the hosted flow."
  2. The changelog had the same overstatement. The Skip verification paperwork bullet said results come from the suffix "with no documents" for every suffix. That shipped in docs(changelog): sandbox KYC/KYB now resolves from a submitted verification #900 and is the partner-facing artifact, so I corrected it here rather than leaving it — terminal suffixes resolve with no documents; 001/003 still need a complete packet.
  3. The stale link-flow claim — I've stopped deferring it. Two rounds ago I flagged that the payouts page says sandbox customers can't use the KYC link flow, and left it because I couldn't confirm intent. It's now been raised independently twice, and my own edits made the contradiction sharper. I checked the sandbox implementation directly: hosted KYC is routed through a real provider sandbox tenant with a stub fallback, so the claim is simply wrong. Removed — both onboarding paths work as in production.

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.


🤖 incandescent-invoice(#1) | Feedback

@greptile-apps

greptile-apps Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

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.

@greptile-apps

greptile-apps Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

No new issues found. The current revision consistently scopes KYC/KYB timing by platform configuration, distinguishes terminal suffixes from submittable 001/003 cases, covers both direct and hosted submissions, and keeps the walkthrough prerequisites aligned with those paths. The previously identified stale hosted-flow, payouts, rewards, ramps, and changelog claims are corrected.

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.

2 participants