Skip to content

docs: describe rule-based accounts in sandbox - #889

Closed
ls-bolt[bot] wants to merge 1 commit into
08-14-grid-rule-based-accounts-schemafrom
09-01-grid-api-sandbox-rule-based
Closed

docs: describe rule-based accounts in sandbox#889
ls-bolt[bot] wants to merge 1 commit into
08-14-grid-rule-based-accounts-schemafrom
09-01-grid-api-sandbox-rule-based

Conversation

@ls-bolt

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

Copy link
Copy Markdown
Contributor

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

Summary

Documents rule-based accounts in sandbox. Stacked on #835, which adds the endpoint and the sweep schemas.

No new paths, and no schema changes. Sandbox reuses the same surface: creation goes through POST /internal-accounts, and POST /sandbox/internal-accounts/{accountId}/fund already exists to stand in for a settled deposit. What was missing is a statement of which half of the flow is real, so an integrator knows what a green sandbox run has actually proved.

What changed

Two description blocks, +18 lines total:

  • POST /internal-accounts — notes that sandbox platforms can create rule-based accounts, that the account number is generated locally rather than issued by a partner bank, and that funding via the sandbox endpoint stands in for a deposit.
  • POST /sandbox/internal-accounts/{accountId}/fund — a "Funding a rule-based account" section: funding triggers the sweep exactly as a settled deposit does, and funding below the corridor minimum rehearses the BELOW_MINIMUM path that returns the deposit and delivers SWEEP.FAILED.

That second one is the point of the change. Below-minimum is the behaviour an integrator is most likely to hit without meaning to, and the one whose consequence — the deposit going back to the payer rather than onward — is least guessable from the happy path.

Edited at source, not in the bundle

openapi.yaml and mintlify/openapi.yaml are bundler outputmake build regenerates them from the openapi/ directory. The two description blocks therefore live in their source files:

  • openapi/paths/sandbox/sandbox_internal_accounts_{accountId}_fund.yaml
  • openapi/paths/internal_accounts.yaml

with both bundles rebuilt. An earlier revision of this PR edited the bundle directly, which would have been silently reverted by the next make build — worth knowing if you review the diff and wonder why three files carry the same prose.

The boundary this draws

Sandbox simulates the API contract and the routing decision, not the banking rails. The quote, the corridor bounds, the destination checks and the webhook are all real; the settlement legs behind them are not, so timings and failure modes that originate at a partner bank cannot be reproduced here.

This is a deliberate boundary rather than a shortfall. The alternative — registering real partner-bank entities for fictional sandbox customers — is precisely what the platform eligibility rules exist to prevent. Everything above the rails genuinely runs: the same rule lookup, balance read, corridor bounds, destination and rail validation, quote path and webhook that production uses.

@vercel

vercel Bot commented Sep 1, 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 2, 2026 12:10am UTC
grid-wallet-demo Ignored Ignored Preview Sep 2, 2026 12:10am UTC

Request Review

@ls-bolt ls-bolt Bot added the bolt label Sep 1, 2026

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.

@github-actions

github-actions Bot commented Sep 1, 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

go

docs(api): document rule-based funding for sandbox internal account

kotlin

docs(api): add rule-based account funding docs to sandbox internal accounts

openapi

docs(api): update internal accounts create and sandbox fund endpoint descriptions

php

docs(api): add rule-based account funding documentation to sandbox internal accounts

python

docs(api): document rule-based account funding in sandbox internal_accounts

ruby

docs(api): expand fund method documentation in sandbox internal_accounts

typescript

docs(api): update sandbox internal_accounts fund method documentation

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

grid-typescript studio
grid-openapi studio
grid-ruby studio
grid-kotlin studio
grid-go studio
grid-python studio
grid-php studio
grid-cli studio

⏳ 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.
If you push custom code to the preview branch, re-run this workflow to update the comment.
Last updated: 2026-09-02 00:21:26 UTC

@ls-bolt ls-bolt Bot changed the title docs: describe rule-based accounts in sandbox feat: rule-based accounts in sandbox, and the rule on the account response Sep 1, 2026
@ls-bolt
ls-bolt Bot force-pushed the 09-01-grid-api-sandbox-rule-based branch from c227351 to c324de7 Compare September 1, 2026 23:49
@ls-bolt ls-bolt Bot changed the title feat: rule-based accounts in sandbox, and the rule on the account response docs: describe rule-based accounts in sandbox Sep 1, 2026
Sandbox needs no new paths: creation reuses POST /internal-accounts and a
settled deposit is stood in for by the existing sandbox fund endpoint. What
it does need is saying which half is real, so an integrator knows what a
green sandbox run has actually proved.

Funding a rule-based account triggers its sweep, and funding below the
corridor minimum rehearses the BELOW_MINIMUM path that returns the deposit
and fires SWEEP.FAILED -- the behaviour most worth exercising before going
live. The quote, bounds, destination checks and webhook are real; the
settlement legs behind them are not.
@ls-bolt
ls-bolt Bot force-pushed the 08-14-grid-rule-based-accounts-schema branch from 82e6e81 to 0c1fe9f Compare September 2, 2026 00:10
@ls-bolt
ls-bolt Bot force-pushed the 09-01-grid-api-sandbox-rule-based branch from c324de7 to 97881e2 Compare September 2, 2026 00:10
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