ACR referenceAccount product actions

prepareAccountSoulMessageBudget

ACR Dashboard
POST
/v1/account/actions/prepareAccountSoulMessageBudget

Prices/catalog/current ownership and commercial dependencies remain genuine native owner validation; no invented prices. Account Personal only; current actor, canonical surface and ownership remain authoritative. Explicit Team selection is rejected without fallback. No automatic mutation retry or invented replay journal. Preparation persists or replaces a canonical quote without committing a wallet debit. Prepare and commit use the SAME funding-intent UUID. Commit must echo the genuine quote including action/entity/terms; never automatically accept a replacement quote.

Authorization

bearerAuth
AuthorizationBearer <token>

Organization-scoped bearer credential. Credentials are scoped, revocable, and never represented by a Soul or operation ID.

In: header

Header Parameters

Idempotency-Key*string

Canonical action UUID; mutation retries reuse this key. Reads also require a UUID at the machine transport boundary.

Formatuuid
X-Kallfi-Workspace-ID?string

Untrusted explicit workspace UUID. Omitted selects Personal. Workspace commands require current membership, role, surface and grant; explicit denied selection never falls back. Account-owned commands reject a nonpersonal selected workspace. One Account surface key spans currently authorized workspaces; selecting a workspace never issues another key.

Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://acr.kallfi.red/v1/account/actions/prepareAccountSoulMessageBudget" \  -H "Idempotency-Key: 497f6eca-6276-4993-bfeb-53cbbbba6f08" \  -H "Content-Type: application/json" \  -d '{    "body": {      "entityId": "string",      "messageCount": 1    }  }'
{  "quote": {    "actionId": "string",    "quoteId": "string",    "entityId": "string",    "webSurface": "nsfw-disabled",    "messageCount": 1,    "configuredValueCents": 1,    "chargeValueCents": 1,    "visibleGems": 1,    "visibleGemHalfUnits": 1,    "termsVersion": 1,    "budgetVersion": 0,    "operationCostValueCents": 1,    "operationCostPolicyVersionId": "string",    "gemValueVersionId": "string",    "gemValueVersion": 1,    "centsPerGemSnapshot": 1,    "roundingPolicy": {      "visible": "half_gem_ceil",      "charge": "round_half_up"    },    "resolvedAt": "string",    "expiresAt": "string",    "dependencyFingerprint": "string",    "maxMessageCount": 1  }}