/apps/accounting/v1/people/offboarding/abortabortAccountingPeopleOffboarding
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
- abortAccountingPeopleOffboarding
- 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
POST /apps/accounting/v1/people/offboarding/abort
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
POST https://accounting.runonvision.com/apps/accounting/v1/people/offboarding/abort
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.people:offboarding
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.Content-Type: application/json— required for the documented request representation.
Undeclared tracing, idempotency, conditional-request, and version headers are not assumed on this page.
Path and query parameters
This operation declares no path or query parameters.
Request body
Media type: application/json. The body is required.
| Field | Type | Rules | Description |
|---|---|---|---|
| schemaVersion | "vision-people-lifecycle.abort-request.v1" | required | Not described in the contract. |
| operationId | string · uuid | required; pattern ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ | Not described in the contract. |
| appId | "accounting" | required | Not described in the contract. |
| installationId | string | required; minimum length 1; maximum length 200 | Not described in the contract. |
| organizationId | string · uuid | required; pattern ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ | Not described in the contract. |
| personReference | string | required; pattern ^person_[a-f0-9]{32}$ | Not described in the contract. |
| intendedFinalState | "offboarded" | required | Not described in the contract. |
| proposalVersion | string · date-time | required; pattern ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$ | Not described in the contract. |
| personFingerprint | string | required; pattern ^[a-f0-9]{64}$ | Not described in the contract. |
| contractVersion | "accounting-people.v1.0.0" | required | Not described in the contract. |
| contractDigest | "f3667fe8655c830d3448bae1cbd503a1f457fc215d790ea58c38898378a3a977" | required | Not described in the contract. |
| preparationId | string | required; pattern ^prep_[A-Za-z0-9_-]{16,}$ | Not described in the contract. |
| snapshotVersion | string | required; minimum length 1; maximum length 200 | Not described in the contract. |
| deadline | string · date-time | required; pattern ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$ | Not described in the contract. |
| expiresAt | string · date-time | required; pattern ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$ | Not described in the contract. |
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/people/offboarding/abort' \
--request POST \
--header 'authorization: Bearer ${ACCESS_TOKEN}' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '{
"schemaVersion": "vision-people-lifecycle.abort-request.v1",
"operationId": "00000000-0000-4000-8000-000000000001",
"appId": "accounting",
"installationId": "<installationId>",
"organizationId": "00000000-0000-4000-8000-000000000001",
"personReference": "<personReference>",
"intendedFinalState": "offboarded",
"proposalVersion": "2026-08-21T18:00:00Z",
"personFingerprint": "<personFingerprint>",
"contractVersion": "accounting-people.v1.0.0",
"contractDigest": "f3667fe8655c830d3448bae1cbd503a1f457fc215d790ea58c38898378a3a977",
"preparationId": "<preparationId>",
"snapshotVersion": "<snapshotVersion>",
"deadline": "2026-08-21T18:00:00Z",
"expiresAt": "2026-08-21T18:00:00Z"
}'const response = await fetch('https://accounting.runonvision.com/apps/accounting/v1/people/offboarding/abort', {
method: 'POST',
headers: {
authorization: `Bearer ${ACCESS_TOKEN}`,
accept: 'application/json',
'content-type': 'application/json',
},
body: JSON.stringify({
"schemaVersion": "vision-people-lifecycle.abort-request.v1",
"operationId": "00000000-0000-4000-8000-000000000001",
"appId": "accounting",
"installationId": "<installationId>",
"organizationId": "00000000-0000-4000-8000-000000000001",
"personReference": "<personReference>",
"intendedFinalState": "offboarded",
"proposalVersion": "2026-08-21T18:00:00Z",
"personFingerprint": "<personFingerprint>",
"contractVersion": "accounting-people.v1.0.0",
"contractDigest": "f3667fe8655c830d3448bae1cbd503a1f457fc215d790ea58c38898378a3a977",
"preparationId": "<preparationId>",
"snapshotVersion": "<snapshotVersion>",
"deadline": "2026-08-21T18:00:00Z",
"expiresAt": "2026-08-21T18:00:00Z"
}),
}
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/people/offboarding/abort',
data=json.dumps({"schemaVersion":"vision-people-lifecycle.abort-request.v1","operationId":"00000000-0000-4000-8000-000000000001","appId":"accounting","installationId":"<installationId>","organizationId":"00000000-0000-4000-8000-000000000001","personReference":"<personReference>","intendedFinalState":"offboarded","proposalVersion":"2026-08-21T18:00:00Z","personFingerprint":"<personFingerprint>","contractVersion":"accounting-people.v1.0.0","contractDigest":"f3667fe8655c830d3448bae1cbd503a1f457fc215d790ea58c38898378a3a977","preparationId":"<preparationId>","snapshotVersion":"<snapshotVersion>","deadline":"2026-08-21T18:00:00Z","expiresAt":"2026-08-21T18:00:00Z"}).encode(),
headers={
"Accept": "application/json",
"Authorization": "Bearer <ACCESS_TOKEN>",
"Content-Type": "application/json"
},
method='POST',
)
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 | Aborted uncommitted preparation | object |
| 400 | Safe Accounting error | object |
| 401 | Safe Accounting error | object |
| 403 | Safe Accounting error | object |
| 409 | Safe typed Accounting People lifecycle conflict | object |
| 503 | Safe Accounting error | object |
Success response schema
| Field | Type | Rules | Description |
|---|---|---|---|
| schemaVersion | "vision-people-lifecycle.abort-response.v1" | required | Not described in the contract. |
| operationId | string · uuid | required; pattern ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ | Not described in the contract. |
| appId | "accounting" | required | Not described in the contract. |
| installationId | string | required; minimum length 1; maximum length 200 | Not described in the contract. |
| organizationId | string · uuid | required; pattern ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ | Not described in the contract. |
| personReference | string | required; pattern ^person_[a-f0-9]{32}$ | Not described in the contract. |
| intendedFinalState | "offboarded" | required | Not described in the contract. |
| proposalVersion | string · date-time | required; pattern ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$ | Not described in the contract. |
| personFingerprint | string | required; pattern ^[a-f0-9]{64}$ | Not described in the contract. |
| contractVersion | "accounting-people.v1.0.0" | required | Not described in the contract. |
| contractDigest | "f3667fe8655c830d3448bae1cbd503a1f457fc215d790ea58c38898378a3a977" | required | Not described in the contract. |
| preparationId | string | required; pattern ^prep_[A-Za-z0-9_-]{16,}$ | Not described in the contract. |
| snapshotVersion | string | required; minimum length 1; maximum length 200 | Not described in the contract. |
| deadline | string · date-time | required; pattern ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$ | Not described in the contract. |
| expiresAt | string · date-time | required; pattern ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$ | Not described in the contract. |
| status | "aborted" | required | Not described in the contract. |
{
"schemaVersion": "vision-people-lifecycle.abort-response.v1",
"operationId": "00000000-0000-4000-8000-000000000001",
"appId": "accounting",
"installationId": "<installationId>",
"organizationId": "00000000-0000-4000-8000-000000000001",
"personReference": "<personReference>",
"intendedFinalState": "offboarded",
"proposalVersion": "2026-08-21T18:00:00Z",
"personFingerprint": "<personFingerprint>",
"contractVersion": "accounting-people.v1.0.0",
"contractDigest": "f3667fe8655c830d3448bae1cbd503a1f457fc215d790ea58c38898378a3a977",
"preparationId": "<preparationId>",
"snapshotVersion": "<snapshotVersion>",
"deadline": "2026-08-21T18:00:00Z",
"expiresAt": "2026-08-21T18:00:00Z",
"status": "aborted"
}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.
400— Safe Accounting error401— Safe Accounting error403— Safe Accounting error409— Safe typed Accounting People lifecycle conflict503— 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.
- The request body has no purpose or conditional-rule description.
- Business roles, timeout, retry budget, rate value, idempotency window, and concurrency behavior are absent unless explicitly stated above.
Related operations and workflows
- POST /apps/accounting/v1/people/offboarding/prepare — No summary declared
- POST /apps/accounting/v1/people/offboarding/commit — 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