HYBRID-CHAINDEVELOPERS
DOCUMENTATIONv2
POST

Merchant commerce

Settle rotational wallet

/api/v2/commerce/rotational-wallets/{wallet_uuid}/settlements
AUTHENTICATIONBearer token · commerce:writeAUTHORITATIVE OWNERcommerce-serviceCONTRACT AUTHORITYCapability registry · plannedSTATUSPlanned · not executable
PLANNING CONTRACT · NOT CALLABLE

This page describes intended capability and integration boundaries so people and agents can prepare safely. Do not send this request or register it as an executable tool. Wait until the capability registry marks it implemented-contract, then re-fetch the deployed OpenAPI document and build the request from that machine contract.

PURPOSE + BUSINESS CONTEXT

Planned capability: authorize fee-aware settlement of one rotational wallet into its merchant destination.

WHEN THIS CALL IS USEFUL

Do not call or register this operation as an executable agent tool yet. Use this page to plan the future settle rotational wallet workflow; enable it only after the status becomes implemented-contract and the exact operation appears in deployed OpenAPI.

OUTCOME · Planned · Create or advance

What changes

None today: this route is not executable. Its intended behavior is: no executable public mutation exists. A future HTTP 202 would create a settlement intent and retained commitments only; it would not prove MPC authorization, signing, submission, broadcast, confirmation, treasury credit, invoice payment, fulfillment, or final settlement.

WHY IT MATTERS

  • Lets people and agents prepare for settle rotational wallet without falsely presenting roadmap scope as a live capability.
  • Gives people and agents a contract-backed way to advance settle rotational wallet.
  • Connects catalog and invoice operations to payment collection and treasury reconciliation without making presentation state or a reserved address proof of payment.

ISOLATION + AUTHORITY

Tenant, workspace, merchant, product, customer, invoice, checkout, collection wallet, payment, custody, treasury settlement, tax or compliance policy, and finality remain distinct. Merchant configuration or invoice state cannot authorize wallet signing, move funds, prove settlement, or grant publisher, matching, or trading authority. This planning record grants no runtime authority, and only deployed OpenAPI can define an executable public contract.

BEFORE YOU CALL

  • First confirm that this operation is marked implemented-contract and exists in the currently deployed OpenAPI document; until then, no production request is valid.
  • Its capability-registry profile is provisional integration guidance, not an executable request schema.
  • Authenticate at the documented boundary: bearer+scope.
  • Treat the proposed wallet_uuid (path), expected_wallet_version (body), expected_available_balance (body), settlement_currency (body), destination_reference (body), fee_policy (body), reason (body), step_up_token (body) as planning input only; re-generate the request from deployed OpenAPI before making a call.
  • Use one Idempotency-Key only for retries of the same byte-equivalent logical mutation.

WHAT TO DO NEXT

  • Keep this operation disabled in clients, agents, SDKs, and workflow automation while it remains planned-contract.
  • Use the stated owner, lifecycle, authority boundary, and provisional settle rotational wallet profile to prepare requirements and conformance tests without sending a request.
  • Monitor the capability registry for implemented-contract, then re-fetch deployed OpenAPI and validate its exact security, parameters, schemas, responses, and agent metadata before enabling the integration.

AGENT GUIDANCE

  • Never call this planned contract, include it in an executable tool registry, or infer runtime availability from this readable page.
  • Its capability-registry profile is provisional integration guidance, not an executable request schema.
  • Use settle rotational wallet only for the purpose and lifecycle stage described by this operation; do not treat it as authority for an adjacent action.
  • Treat the proposed wallet_uuid (path), expected_wallet_version (body), expected_available_balance (body), settlement_currency (body), destination_reference (body), fee_policy (body), reason (body), step_up_token (body) as planning input only; re-generate the request from deployed OpenAPI before making a call.
  • Distinguish merchant readiness, product availability, invoice issuance, checkout presentation, payment observation, wallet synchronization, treasury settlement, cancellation, and reconciliation.
  • After a timeout or conflict, read authoritative state before deciding whether an equivalent retry is safe.
  • When implementation lands, discard generated requests based on this planning record and rebuild them from the deployed OpenAPI operation.
MACHINE CONTRACT

This operation is a non-executable planning contract. Its capability-registry record defines the intended owner, parameters, responses, and integration boundary until an implemented Rust OpenAPI operation replaces it.

EXTENDED INTEGRATION GUIDANCE

Readable request and response reference

Examples describe the reviewed planning contract and remain non-executable until promoted into OpenAPI.

PARAMETERS

Headers, path, query, and body

NAMELOCATIONPRESENCETYPE / RULES / PURPOSE
AuthorizationheaderRequired

Bearer tokenCredential containing the commerce:write scope.EXAMPLEBearer hc_live_…

Idempotency-KeyheaderRequired

ASCII string · 1–128Caller-generated key reused for every retry of the same logical mutation.EXAMPLElaunch-treasury-v1-001

Content-TypeheaderRequired

application/jsonSigned mutations accept canonical JSON only.EXAMPLEapplication/json

Content-DigestheaderRequired

RFC 9530 SHA-256 digestDigest of the exact transmitted body bytes.EXAMPLEsha-256=:47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=:

Signature-InputheaderRequired

RFC 9421 signature parametersCovers @method, @path, content-digest, content-type, and idempotency-key; includes keyid, nonce, created, and expires.EXAMPLEsig1=("@method" "@path" "content-digest" "content-type" "idempotency-key");created=1786582800;expires=1786583100;nonce="01J…";keyid="machine-prod"

SignatureheaderRequired

Ed25519 HTTP Message SignatureSignature made by an active public key registered to the authenticated client.EXAMPLEsig1=:base64-signature:

wallet_uuidpathRequired

merchant rotational-wallet identifierExact settlement-eligible owner-scoped wallet.EXAMPLErotational-wallet-01

expected_wallet_versionbodyRequired

integer · ≥1Current version used for optimistic concurrency.EXAMPLE7

expected_available_balancebodyRequired

non-negative exact decimal stringLast-read balance eligible after confirmed observations, reservations, fees, and pending settlements.EXAMPLE250.00000000

settlement_currencybodyRequired

uppercase asset or ISO currencyExact wallet denomination admitted by merchant policy.EXAMPLETHYB

destination_referencebodyRequired

approved merchant destination referenceOpaque destination already bound to the merchant.EXAMPLEmerchant-destination-01

fee_policybodyRequired

MINIMUM_CONFIRMED | EXACT_QUOTEFee treatment; EXACT_QUOTE requires fee_quote_reference.EXAMPLEMINIMUM_CONFIRMED

fee_quote_referencebodyOptional

owner-issued fee quote identifierRequired only with EXACT_QUOTE.

reasonbodyRequired

string · 8–500Non-secret settlement rationale retained with evidence.EXAMPLEScheduled merchant treasury sweep.

step_up_tokenbodyRequired

purpose-bound tokenFresh MERCHANT_ROTATIONAL_WALLET_SETTLEMENT authorization.EXAMPLEhcsu_…

REQUEST

JSON body example

{
  "expected_wallet_version": 7,
  "expected_available_balance": "250.00000000",
  "settlement_currency": "THYB",
  "destination_reference": "merchant-destination-01",
  "fee_policy": "MINIMUM_CONFIRMED",
  "reason": "Scheduled merchant treasury sweep.",
  "step_up_token": "hcsu_…"
}

RESPONSES

Status and payload examples

202Settlement intent admitted with exact commitments; no signing, broadcast, confirmation, or treasury credit is implied.Not executable · JSON RESPONSE+
{
  "settlement_uuid": "settlement-01",
  "wallet_uuid": "rotational-wallet-01",
  "status": "AUTHORIZATION_PENDING",
  "amount": "250.00000000",
  "currency": "THYB",
  "destination_reference": "merchant-destination-01",
  "funds_moved": false,
  "next_required_action": "MPC_AUTHORIZATION"
}
INTEGRATION DECISION
CALLER ACTION
Do not send this request or register it as an executable agent tool. Use the implemented alternatives linked by the module guide.
RETRY SAFETY
Do not retry on a timer. Re-fetch production OpenAPI and proceed only after this exact operation appears there.
STATE RECONCILIATION
No runtime state exists to reconcile for this planning contract. Continue from owner-scoped wallet inventory, custody policy, balances, intents, reservations, transactions, and receipts through an implemented operation.
ESCALATE WHEN
Escalate when funds, reservations, transaction digests, or MPC state remain ambiguous after authoritative wallet and network reconciliation.
200Equivalent pending or completed settlement request replayed idempotently.Not executable · JSON RESPONSE+
{
  "settlement_uuid": "settlement-01",
  "status": "AUTHORIZATION_PENDING",
  "idempotent_replay": true,
  "funds_moved": false
}
INTEGRATION DECISION
CALLER ACTION
Do not send this request or register it as an executable agent tool. Use the implemented alternatives linked by the module guide.
RETRY SAFETY
Do not retry on a timer. Re-fetch production OpenAPI and proceed only after this exact operation appears there.
STATE RECONCILIATION
No runtime state exists to reconcile for this planning contract. Continue from owner-scoped wallet inventory, custody policy, balances, intents, reservations, transactions, and receipts through an implemented operation.
ESCALATE WHEN
Escalate when funds, reservations, transaction digests, or MPC state remain ambiguous after authoritative wallet and network reconciliation.
400A version, balance, currency, destination, fee policy, reason, signed header, step-up token, or Idempotency-Key is malformed.Not executable · JSON RESPONSE+
{
  "code": "invalid_merchant_settlement",
  "message": "A version, balance, currency, destination, fee policy, reason, signed header, step-up token, or Idempotency-Key is malformed."
}
INTEGRATION DECISIONinvalid_merchant_settlement
CALLER ACTION
Do not send this request or register it as an executable agent tool. Use the implemented alternatives linked by the module guide.
RETRY SAFETY
Do not retry on a timer. Re-fetch production OpenAPI and proceed only after this exact operation appears there.
STATE RECONCILIATION
No runtime state exists to reconcile for this planning contract. Continue from owner-scoped wallet inventory, custody policy, balances, intents, reservations, transactions, and receipts through an implemented operation.
ESCALATE WHEN
Escalate when funds, reservations, transaction digests, or MPC state remain ambiguous after authoritative wallet and network reconciliation.
401The bearer credential is invalid.Not executable · JSON RESPONSE+
{
  "code": "invalid_credentials",
  "message": "The bearer credential is invalid."
}
INTEGRATION DECISIONinvalid_credentials
CALLER ACTION
Do not send this request or register it as an executable agent tool. Use the implemented alternatives linked by the module guide.
RETRY SAFETY
Do not retry on a timer. Re-fetch production OpenAPI and proceed only after this exact operation appears there.
STATE RECONCILIATION
No runtime state exists to reconcile for this planning contract. Continue from owner-scoped wallet inventory, custody policy, balances, intents, reservations, transactions, and receipts through an implemented operation.
ESCALATE WHEN
Escalate when funds, reservations, transaction digests, or MPC state remain ambiguous after authoritative wallet and network reconciliation.
403The principal lacks commerce:write, destination authority, settlement authority, or fresh step-up.Not executable · JSON RESPONSE+
{
  "code": "merchant_settlement_forbidden",
  "message": "The principal lacks commerce:write, destination authority, settlement authority, or fresh step-up."
}
INTEGRATION DECISIONmerchant_settlement_forbidden
CALLER ACTION
Do not send this request or register it as an executable agent tool. Use the implemented alternatives linked by the module guide.
RETRY SAFETY
Do not retry on a timer. Re-fetch production OpenAPI and proceed only after this exact operation appears there.
STATE RECONCILIATION
No runtime state exists to reconcile for this planning contract. Continue from owner-scoped wallet inventory, custody policy, balances, intents, reservations, transactions, and receipts through an implemented operation.
ESCALATE WHEN
Escalate when funds, reservations, transaction digests, or MPC state remain ambiguous after authoritative wallet and network reconciliation.
404The wallet, destination, or quote is not owner-visible.Not executable · JSON RESPONSE+
{
  "code": "merchant_settlement_resource_not_found",
  "message": "The wallet, destination, or quote is not owner-visible."
}
INTEGRATION DECISIONmerchant_settlement_resource_not_found
CALLER ACTION
Do not send this request or register it as an executable agent tool. Use the implemented alternatives linked by the module guide.
RETRY SAFETY
Do not retry on a timer. Re-fetch production OpenAPI and proceed only after this exact operation appears there.
STATE RECONCILIATION
No runtime state exists to reconcile for this planning contract. Continue from owner-scoped wallet inventory, custody policy, balances, intents, reservations, transactions, and receipts through an implemented operation.
ESCALATE WHEN
Escalate when funds, reservations, transaction digests, or MPC state remain ambiguous after authoritative wallet and network reconciliation.
409Version, balance, observations, destination, quote, active settlement, or Idempotency-Key conflicts.Not executable · JSON RESPONSE+
{
  "code": "merchant_settlement_conflict",
  "message": "Version, balance, observations, destination, quote, active settlement, or Idempotency-Key conflicts."
}
INTEGRATION DECISIONmerchant_settlement_conflict
CALLER ACTION
Do not send this request or register it as an executable agent tool. Use the implemented alternatives linked by the module guide.
RETRY SAFETY
Do not retry on a timer. Re-fetch production OpenAPI and proceed only after this exact operation appears there.
STATE RECONCILIATION
No runtime state exists to reconcile for this planning contract. Continue from owner-scoped wallet inventory, custody policy, balances, intents, reservations, transactions, and receipts through an implemented operation.
ESCALATE WHEN
Escalate when funds, reservations, transaction digests, or MPC state remain ambiguous after authoritative wallet and network reconciliation.
422Invoice association, reservation, finality, fee, dust, currency, network, compliance, custody, or settlement policy rejected admission.Not executable · JSON RESPONSE+
{
  "code": "merchant_settlement_rejected",
  "message": "Invoice association, reservation, finality, fee, dust, currency, network, compliance, custody, or settlement policy rejected admission."
}
INTEGRATION DECISIONmerchant_settlement_rejected
CALLER ACTION
Do not send this request or register it as an executable agent tool. Use the implemented alternatives linked by the module guide.
RETRY SAFETY
Do not retry on a timer. Re-fetch production OpenAPI and proceed only after this exact operation appears there.
STATE RECONCILIATION
No runtime state exists to reconcile for this planning contract. Continue from owner-scoped wallet inventory, custody policy, balances, intents, reservations, transactions, and receipts through an implemented operation.
ESCALATE WHEN
Escalate when funds, reservations, transaction digests, or MPC state remain ambiguous after authoritative wallet and network reconciliation.
503Commerce, wallet, observer, compliance, MPC, network, or evidence ownership is unavailable; no settlement intent is created.Not executable · JSON RESPONSE+
{
  "code": "merchant_settlement_unavailable",
  "message": "Commerce, wallet, observer, compliance, MPC, network, or evidence ownership is unavailable; no settlement intent is created."
}
INTEGRATION DECISIONmerchant_settlement_unavailable
CALLER ACTION
Do not send this request or register it as an executable agent tool. Use the implemented alternatives linked by the module guide.
RETRY SAFETY
Do not retry on a timer. Re-fetch production OpenAPI and proceed only after this exact operation appears there.
STATE RECONCILIATION
No runtime state exists to reconcile for this planning contract. Continue from owner-scoped wallet inventory, custody policy, balances, intents, reservations, transactions, and receipts through an implemented operation.
ESCALATE WHEN
Escalate when funds, reservations, transaction digests, or MPC state remain ambiguous after authoritative wallet and network reconciliation.

OPERATIONAL NOTES

Security and lifecycle guarantees

  • This route remains deliberately planned and frozen. Do not call it unless it later appears in live production OpenAPI after the separate value-movement approval boundary is satisfied.
  • HTTP 202 would mean intent admission only. It is not MPC authorization, signing, submission, broadcast, confirmation, destination credit, invoice payment, or settlement finality.
  • Never submit a password, password hash, authenticator code, seed, private key, MPC share, signing nonce, processor secret, banking credential, raw custody identifier, or caller-authored fee.
  • After ambiguity, re-read the wallet, settlement intent, authorization, signing, network, and destination-credit evidence before retrying the same Idempotency-Key and exact body.
DOCUMENTATION STATUS

This planned contract now defines its public parameters, authorization boundary, replay behavior, responses, and authoritative owner. It remains non-executable until its owner adapter and conformance tests are promoted into the Rust gateway.

Return to the V2 directory