OUTCOME · Create or advance
What changes
Creates or idempotently confirms the active Identity-owned device-key binding and returns a signed 30-day device credential. It grants messaging identity only and never grants notification preference, business-state, payment, settlement, trading, ingress, publisher, market, or traffic authority.
WHY IT MATTERS
- Gives people and agents a contract-backed way to advance messaging device keys.
- Separates subject identity, consent, evidence, provider output, review, issuer credentials, and relying-party acceptance instead of collapsing them into a universal trust score.
ISOLATION + AUTHORITY
Bearer subject, tenant, purpose, policy version, role, issuer, reviewer, provider, and relying-party boundaries remain distinct. The response or transition grants no payment, custody, settlement, publisher, matching, or trading authority and must not expose regulated evidence beyond the live schema.
BEFORE YOU CALL
- Authenticate at the documented boundary: bearer+scope.
- Supply the required statement.deviceId (body), statement.encryptionPublicKey (body), statement.keyEpoch (body), statement.protocolVersion (body), statement.signingPublicKey (body), proofValue (body) exactly as defined by the live contract.
- Use one Idempotency-Key only for retries of the same byte-equivalent logical mutation.
- Resolve the applicable purpose, policy version, consent or role basis, and required assurance before relying on this result.
WHAT TO DO NEXT
- Re-read messaging device keys using the canonical identifier returned by this operation.
- Reconcile an ambiguous response with the same idempotency key before attempting another mutation.
- Use the returned lifecycle state and policy version to choose the next least-privilege trust action; do not infer a missing stage.
AGENT GUIDANCE
- Use messaging device keys only for the purpose and lifecycle stage described by this operation; do not treat it as authority for an adjacent action.
- Supply the required statement.deviceId (body), statement.encryptionPublicKey (body), statement.keyEpoch (body), statement.protocolVersion (body), statement.signingPublicKey (body), proofValue (body) exactly as defined by the live contract.
- Treat policy availability, consent, evidence capture, completed checks, review, decision, credential issuance, validity, and relying-party acceptance as separate facts.
- After a timeout or conflict, read authoritative state before deciding whether an equivalent retry is safe.