From 97881e2c48161c2d6eed7503cd060ccdc1a90dd4 Mon Sep 17 00:00:00 2001 From: Brian Date: Wed, 2 Sep 2026 00:10:25 +0000 Subject: [PATCH] docs: describe rule-based accounts in sandbox 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. --- mintlify/openapi.yaml | 9 +++++++++ openapi.yaml | 9 +++++++++ openapi/paths/internal_accounts.yaml | 6 ++++++ ...andbox_internal_accounts_{accountId}_fund.yaml | 15 +++++++++++++++ 4 files changed, 39 insertions(+) diff --git a/mintlify/openapi.yaml b/mintlify/openapi.yaml index 5c077e0d4..6d046a002 100644 --- a/mintlify/openapi.yaml +++ b/mintlify/openapi.yaml @@ -2105,6 +2105,12 @@ paths: in `USD` for individual customers, and must be enabled for your platform before this endpoint accepts requests. + Sandbox platforms can create rule-based accounts and exercise the whole + flow. The account number is generated locally rather than issued by a + partner bank, and `POST /sandbox/internal-accounts/{accountId}/fund` stands + in for a settled deposit — funding the account triggers its sweep just as a + real deposit would. + Creating an account mints a new account number that cannot be reversed, so an `Idempotency-Key` header is required. A retry carrying the same key returns the account created by the first request with a `200` instead of a @@ -5412,6 +5418,9 @@ paths: description: | Simulate receiving funds into an internal account in the sandbox environment. This is useful for testing scenarios where you need to add funds to a customer's or platform's internal account without going through a real bank transfer or following payment instructions. This endpoint is only for the sandbox environment and will fail for production platforms/keys. + ### Funding a rule-based account + Funding a `RULE_BASED` account triggers its sweep, exactly as a settled deposit does in production: the balance is forwarded to the rule's destination and the account is left at zero. A balance below the corridor minimum is returned to the payer instead, and `SWEEP.FAILED` is delivered with `reason: BELOW_MINIMUM` — fund a rule-based account with a small amount to rehearse that path. + 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. operationId: sandboxFundInternalAccount tags: - Sandbox diff --git a/openapi.yaml b/openapi.yaml index 5c077e0d4..6d046a002 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -2105,6 +2105,12 @@ paths: in `USD` for individual customers, and must be enabled for your platform before this endpoint accepts requests. + Sandbox platforms can create rule-based accounts and exercise the whole + flow. The account number is generated locally rather than issued by a + partner bank, and `POST /sandbox/internal-accounts/{accountId}/fund` stands + in for a settled deposit — funding the account triggers its sweep just as a + real deposit would. + Creating an account mints a new account number that cannot be reversed, so an `Idempotency-Key` header is required. A retry carrying the same key returns the account created by the first request with a `200` instead of a @@ -5412,6 +5418,9 @@ paths: description: | Simulate receiving funds into an internal account in the sandbox environment. This is useful for testing scenarios where you need to add funds to a customer's or platform's internal account without going through a real bank transfer or following payment instructions. This endpoint is only for the sandbox environment and will fail for production platforms/keys. + ### Funding a rule-based account + Funding a `RULE_BASED` account triggers its sweep, exactly as a settled deposit does in production: the balance is forwarded to the rule's destination and the account is left at zero. A balance below the corridor minimum is returned to the payer instead, and `SWEEP.FAILED` is delivered with `reason: BELOW_MINIMUM` — fund a rule-based account with a small amount to rehearse that path. + 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. operationId: sandboxFundInternalAccount tags: - Sandbox diff --git a/openapi/paths/internal_accounts.yaml b/openapi/paths/internal_accounts.yaml index 4c9850576..5d98587fc 100644 --- a/openapi/paths/internal_accounts.yaml +++ b/openapi/paths/internal_accounts.yaml @@ -18,6 +18,12 @@ post: in `USD` for individual customers, and must be enabled for your platform before this endpoint accepts requests. + Sandbox platforms can create rule-based accounts and exercise the whole + flow. The account number is generated locally rather than issued by a + partner bank, and `POST /sandbox/internal-accounts/{accountId}/fund` stands + in for a settled deposit — funding the account triggers its sweep just as a + real deposit would. + Creating an account mints a new account number that cannot be reversed, so an `Idempotency-Key` header is required. A retry carrying the same key returns the account created by the first request with a `200` instead of a diff --git a/openapi/paths/sandbox/sandbox_internal_accounts_{accountId}_fund.yaml b/openapi/paths/sandbox/sandbox_internal_accounts_{accountId}_fund.yaml index a25767b17..d607bc58b 100644 --- a/openapi/paths/sandbox/sandbox_internal_accounts_{accountId}_fund.yaml +++ b/openapi/paths/sandbox/sandbox_internal_accounts_{accountId}_fund.yaml @@ -8,6 +8,21 @@ post: This endpoint is only for the sandbox environment and will fail for production platforms/keys. + + ### Funding a rule-based account + + Funding a `RULE_BASED` account triggers its sweep, exactly as a settled + deposit does in production: the balance is forwarded to the rule's + destination and the account is left at zero. A balance below the corridor + minimum is returned to the payer instead, and `SWEEP.FAILED` is delivered + with `reason: BELOW_MINIMUM` — fund a rule-based account with a small + amount to rehearse that path. + + 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. operationId: sandboxFundInternalAccount tags: - Sandbox