/apps/accounting/v1/stripe-connectThe workspace's Stripe Connect status and Vision's fee. With `confirm`, first finishes a Connect started by this same signed-in person.
The approved contract does not provide a longer purpose statement for this operation.
- App
- Accounting
- Contract
- Accounting API 0.32.0
- Lifecycle
- preview
- Runtime
- not-public
- Operation ID
- getStripeConnectStatus
- Canonical origin
- https://accounting.runonvision.com
Availability: This is a preview contract with runtime status not-public. Publication documents an approved interface; it does not imply public production access.
Purpose and use cases
The workspace's Stripe Connect status and Vision's fee. With `confirm`, first finishes a Connect started by this same signed-in person.
The owning App is Vision Accounting. Accounting owns financial records, exact arithmetic, approvals, audit evidence, workspace grants, and ledger invariants.
Business use cases and out-of-scope behavior are not yet declared in the approved OpenAPI description.
Request
GET https://accounting.runonvision.com/apps/accounting/v1/stripe-connect
Authentication and authorization
Send a Vision-issued bearer token for the exact App audience. The token must include the accounting entitlement and satisfy the aws-… accounting workspace required binding.
- Required scope:
accounting:providers:read
Human roles are not declared in OpenAPI. Record-level and business permission checks remain the owning App's authority.
Headers
Authorization: Bearer <access-token>— required.Accept: application/json— recommended where a JSON response is declared.
Undeclared tracing, idempotency, conditional-request, and version headers are not assumed on this page.
Path and query parameters
| Name | Location | Type | Rules | Description |
|---|---|---|---|---|
| confirm | query | string | optional; pattern ^AWS-[A-Z0-9]{12}\.[A-Za-z0-9_-]{43}$ | The confirmation token Stripe's return put on Settings › Online payments. Links the account only when the caller is the person who pressed Connect; anyone else burns it and nothing is linked. |
Request body
This operation declares no request body.
Runnable examples
Placeholder values are generated from the approved schema and are not live credentials or customer data. Replace every angle-bracket or shell variable value. Examples cannot be run until the App has a routed base URL and your client has the required grant.
curl 'https://accounting.runonvision.com/apps/accounting/v1/stripe-connect' \
--request GET \
--header 'authorization: Bearer ${ACCESS_TOKEN}' \
--header 'accept: application/json'const response = await fetch('https://accounting.runonvision.com/apps/accounting/v1/stripe-connect', {
method: 'GET',
headers: {
authorization: `Bearer ${ACCESS_TOKEN}`,
accept: 'application/json',
},
}
if (!response.ok) throw new Error(`Vision API ${response.status}`)
const result = await response.json()import json
import urllib.parse
import urllib.request
request = urllib.request.Request(
'https://accounting.runonvision.com/apps/accounting/v1/stripe-connect',
data=None,
headers={
"Accept": "application/json",
"Authorization": "Bearer <ACCESS_TOKEN>"
},
method='GET',
)
with urllib.request.urlopen(request, timeout=30) as response:
result = json.load(response)The current TypeScript reference client covers Platform token exchange and core reads. No native SDK helper is declared for this operation; use the HTTP contract directly and follow the SDK guidance.
Responses
| Status | Meaning | Schema |
|---|---|---|
| 200 | Status | object |
| 401 | Safe Accounting error | object |
| 403 | Safe Accounting error | object |
| 503 | Safe Accounting error | object |
Success response schema
| Field | Type | Rules | Description |
|---|---|---|---|
| schemaVersion | "vision-accounting-stripe-connect-status.v1" | required | Not described in the contract. |
| available | boolean | required | Not described in the contract. |
| mode | test | live | optional | Not described in the contract. |
| connected | boolean | required | Not described in the contract. |
| statusLabel | string | required | One plain sentence for people about the status. While `available` is false it reads "Online payments aren't turned on for your account yet." |
| accountReference | string | null | optional; pattern ^acct_[A-Za-z0-9]+$ | Not described in the contract. |
| accountName | string | null | optional | The account's name, or its masked acct_ id (acct_…X7Q2) while Stripe has none. Null only when not connected. |
| finishSetupUrl | string | null · uri | optional | Where the account's owner finishes setting it up in Stripe; null once Stripe has what it needs. |
| country | string | null | optional | Not described in the contract. |
| defaultCurrency | string | null | optional | Not described in the contract. |
| chargesEnabled | boolean | optional | Not described in the contract. |
| payoutsEnabled | boolean | optional | Not described in the contract. |
| detailsSubmitted | boolean | optional | Not described in the contract. |
| connectedAt | string | null · date-time | optional | Not described in the contract. |
| legacyRestrictedKey | boolean | optional | A restricted key saved before Connect is on file. It cannot take payments; connect with Stripe to replace it. |
| feeDisplay | string | optional | Not described in the contract. |
| feeBasisPoints | integer | optional; minimum 0; maximum 10000 | Not described in the contract. |
| feeCapMinorUnits | string | optional; pattern ^[0-9]+$ | Not described in the contract. |
| feeCurrency | string | optional; pattern ^[A-Z]{3}$ | Not described in the contract. |
| poweredByVision | boolean | optional | Not described in the contract. |
| chargesLabel | string | optional | Not described in the contract. |
| payoutsLabel | string | optional | Not described in the contract. |
| poweredByVisionLabel | string | optional | Not described in the contract. |
| modeLabel | string | optional | Not described in the contract. |
| reason | string | optional | Only while `available` is false: why online payments are off. "online_payments_not_set_up" (no Stripe platform configured), "live_stripe_not_enabled" (a live key without live Stripe turned on) or "stripe_config_invalid" (a platform value is malformed). |
{
"schemaVersion": "vision-accounting-stripe-connect-status.v1",
"available": true,
"mode": "test",
"connected": true,
"statusLabel": "<statusLabel>",
"accountReference": "<accountReference>",
"accountName": "<accountName>",
"finishSetupUrl": "<finishSetupUrl>",
"country": "<country>",
"defaultCurrency": "<defaultCurrency>",
"chargesEnabled": true,
"payoutsEnabled": true,
"detailsSubmitted": true,
"connectedAt": "2026-08-21T18:00:00Z",
"legacyRestrictedKey": true,
"feeDisplay": "<feeDisplay>",
"feeBasisPoints": 0,
"feeCapMinorUnits": "<feeCapMinorUnits>",
"feeCurrency": "<feeCurrency>",
"poweredByVision": true,
"chargesLabel": "<chargesLabel>",
"payoutsLabel": "<payoutsLabel>",
"poweredByVisionLabel": "<poweredByVisionLabel>",
"modeLabel": "<modeLabel>",
"reason": "<reason>"
}Errors and troubleshooting
Error bodies and codes are shown only where the approved contract declares them. Use status, the declared error schema, and any correlation identifier returned by the App; do not infer that two Apps share one envelope.
401— Safe Accounting error403— Safe Accounting error503— Safe Accounting error
Collection behavior
Pagination: not declared. Filtering/search: not declared. Sorting: not declared.
Cursor lifetime, cursor binding, stable ordering, maximum traversal, and unknown-filter behavior are not assumed unless stated by a parameter description or schema constraint above.
Operational behavior
- Rate limit: No operation-specific limit or 429 response is declared.
- Retry: Retry only when the documented error model or response headers authorize it. Timeout and backoff values are not declared by this operation.
- Idempotency: No idempotency header or replay window is declared.
- Concurrency: No ETag, If-Match, or optimistic-version header is declared.
Security and privacy
- Keep client credentials and bearer tokens on trusted servers.
- Send only to the exact approved HTTPS origin and audience.
- Treat response data according to the owning App's classification and retention policy; the OpenAPI contract does not itself grant data access.
- Do not log credentials, tokens, complete private payloads, or secrets.
Edge cases and known documentation gaps
- No detailed operation description.
- Business roles, timeout, retry budget, rate value, idempotency window, and concurrency behavior are absent unless explicitly stated above.
Related operations and workflows
- GET /apps/accounting/v1/meta — No summary declared
- GET /apps/accounting/v1/ready — No summary declared
- GET /apps/accounting/v1/actor — No summary declared
- GET /apps/accounting/v1/overview — No summary declared
- GET /apps/accounting/v1/counterparties — No summary declared
- POST /apps/accounting/v1/counterparties — No summary declared
- GET /apps/accounting/v1/invoices — No summary declared
- POST /apps/accounting/v1/invoice-drafts — No summary declared
Contract history and evidence
- Contract version:
0.32.0 - Approved snapshot SHA-256:
4dd988e12dc08be93bc7f1ebb4d725c40646c46f3d63a380a48a439077d53eea - Approval: Anthony, 2026-11-03T01:23:28.091Z (anthony-docs-live-20261102)
- Download the authoritative OpenAPI 3.1 snapshot