HYBRID-CHAINDEVELOPERS
DOCUMENTATIONv2
POST

Developer access

Create step up authorization

/api/v2/security/step-up
AUTHENTICATIONBearer token · security:writeAUTHORITATIVE OWNERdeveloper-platformCONTRACT AUTHORITYGenerated Rust OpenAPISTATUSSource ready · production listed

PURPOSE + BUSINESS CONTEXT

Verify a fresh authenticator code and issue a five-minute purpose-bound authorization.

WHEN THIS CALL IS USEFUL

Call this immediately before a sensitive operation that explicitly requires a fresh purpose-bound step-up grant; the returned authorization is short-lived and cannot be reused for another purpose.

OUTCOME · Create or advance

What changes

Creates or advances only the step-up authorization resource described by this contract after authorization, validation, policy, and idempotency gates pass.

WHY IT MATTERS

  • Gives people and agents a contract-backed way to advance step-up authorization.
  • Gives human and agentic integrations one discoverable path from service identity and reference data to executable OpenAPI, capability ownership, guides, SDK status, and request-signing controls.

ISOLATION + AUTHORITY

Public service metadata, the OpenAPI document, the capability registry, guides, SDK listings, bearer credentials, step-up grants, and request-signing keys are separate artifacts. Discovery metadata grants no tenant, wallet, custody, payment, settlement, publisher, matching, or trading authority; public signing-key metadata never includes private key material.

BEFORE YOU CALL

  • Authenticate at the documented boundary: bearer+scope.
  • Supply the required purpose (body), authenticator_code (body) exactly as defined by the live contract.
  • Resolve whether the caller needs public discovery, bearer authorization, purpose-bound step-up, or RFC 9421 request signing; do not substitute one mechanism for another.

WHAT TO DO NEXT

  • Re-read the signing-key inventory or target key and confirm the resulting lifecycle state before sending another sensitive request.
  • After an ambiguous response, reconcile state before retrying; a step-up grant remains bound to its declared purpose and expiry.

AGENT GUIDANCE

  • Use step-up authorization only for the purpose and lifecycle stage described by this operation; do not treat it as authority for an adjacent action.
  • Supply the required purpose (body), authenticator_code (body) exactly as defined by the live contract.
  • Treat deployment identity, OpenAPI schema, capability readiness, guide narrative, SDK publication, bearer authorization, step-up authorization, and request-signing proof as distinct inputs; none substitutes for another.
  • After a timeout or conflict, read authoritative state before deciding whether an equivalent retry is safe.
MACHINE CONTRACT

The exact deployed parameters, schemas, responses, security requirements, and Hybrid-Chain agent metadata are authoritative at this operation's production OpenAPI JSON Pointer. The readable tables below add integration guidance; the deployed OpenAPI controls if guidance and the machine contract ever differ.

Open the authoritative production contract

EXTENDED INTEGRATION GUIDANCE

Readable request and response reference

Examples illustrate integration intent; the referenced OpenAPI operation and component schemas define the executable shape.

PARAMETERS

Headers, path, query, and body

NAMELOCATIONPRESENCETYPE / RULES / PURPOSE
AuthorizationheaderRequired

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

purposebodyRequired

purpose enumExact sensitive operation this five-minute authorization may approve, including signing-key, authenticator, password, session, federation, workload-client, platform-policy, or account lifecycle actions.

authenticator_codebodyRequired

6-digit TOTPFresh second-factor code; never retained by the gateway.

REQUEST

JSON body example

{
  "purpose": "API_SIGNING_KEY_REGISTRATION",
  "authenticator_code": "123456"
}

STABLE ERROR CODES

Branch on the code, then follow the recovery action

These codes are published by the authoritative gateway contract for this endpoint. Treat message as safe diagnostic text; integrations should branch on code and HTTP status.

STATUSCODEMEANING
400invalid_jsonThe JSON body is malformed or fails the published identity-security schema.
400invalid_security_requestThe session, scope, public key, proof, or purpose-bound security request is invalid.
401invalid_credentialsThe bearer, client assertion, or proof-of-possession credential is invalid.
403step_up_requiredFresh purpose-bound authenticator verification or stronger authority is required.
404signing_key_not_foundThe requested signing-key or workload-client resource was not found.
409security_conflictThe requested identity-security transition conflicts with current state.
503identity_security_unavailableThe authoritative Identity security service is temporarily unavailable.

RESPONSES

Status and payload examples

201Five-minute, one-use, purpose-bound step-up authorization.Mutation completed · JSON RESPONSE+
{
  "step_up_token": "hcsu_…",
  "authorization_id": "9ad33a4fa6d846d88ba00c01c58ed710",
  "expires_in": 300,
  "expires_at": "2026-08-10T21:05:00Z"
}
INTEGRATION DECISION
CALLER ACTION
Accept the returned representation or receipt, then re-read the signing-key inventory or target key and confirm the resulting lifecycle state before sending another sensitive request.
RETRY SAFETY
Do not repeat a successful mutation merely to confirm it. This mutation has no documented idempotent replay contract. Reconcile state before considering another attempt.
STATE RECONCILIATION
Persist returned identifiers, versions, commitments, and receipts. Refresh the application, credential or callback record; compare scope, key identifier, secret-display state, version, and revocation or rotation receipt.
400The purpose or authenticator code is malformed.Request must change · JSON RESPONSE+
{
  "code": "invalid_security_request",
  "message": "The purpose or authenticator code is malformed."
}
INTEGRATION DECISIONinvalid_security_request
CALLER ACTION
Rebuild the request from the live OpenAPI operation and correct the rejected method, media type, header, parameter, or body field.
RETRY SAFETY
Do not retry the same invalid request. This mutation has no documented idempotent replay contract. Reconcile state before considering another attempt.
STATE RECONCILIATION
Compare the submitted values with the documented constraints before another call. Refresh the application, credential or callback record; compare scope, key identifier, secret-display state, version, and revocation or rotation receipt.
ESCALATE WHEN
Escalate when a secret-bearing result was lost, key or callback state is ambiguous, or least-privilege scope cannot be established.
401The bearer credential or authenticator code is invalid.Authentication required · JSON RESPONSE+
{
  "code": "invalid_credentials",
  "message": "The bearer credential or authenticator code is invalid."
}
INTEGRATION DECISIONinvalid_credentials
CALLER ACTION
Discard the rejected credential, complete the documented authentication or reassertion flow, and rebuild any request signature with fresh timestamps and nonces.
RETRY SAFETY
Retry only with a newly valid credential and fresh replay-protection values. This mutation has no documented idempotent replay contract. Reconcile state before considering another attempt.
STATE RECONCILIATION
Assume the outcome is unknown only when the connection failed after transmission; otherwise authentication failed before domain work. Refresh the application, credential or callback record; compare scope, key identifier, secret-display state, version, and revocation or rotation receipt.
ESCALATE WHEN
Escalate when a secret-bearing result was lost, key or callback state is ambiguous, or least-privilege scope cannot be established.
503Identity security is unavailable.Dependency unavailable or outcome uncertain · JSON RESPONSE+
{
  "code": "identity_security_unavailable",
  "message": "Identity security is unavailable."
}
INTEGRATION DECISIONidentity_security_unavailable
CALLER ACTION
Preserve the exact request and treat the outcome as uncertain until authoritative state proves whether it committed.
RETRY SAFETY
Reconcile before retrying. This mutation has no documented idempotent replay contract. Reconcile state before considering another attempt. Use bounded backoff with jitter.
STATE RECONCILIATION
Refresh the application, credential or callback record; compare scope, key identifier, secret-display state, version, and revocation or rotation receipt.
ESCALATE WHEN
Escalate when a secret-bearing result was lost, key or callback state is ambiguous, or least-privilege scope cannot be established.

OPERATIONAL NOTES

Security and lifecycle guarantees

  • The step-up token cannot replace the bearer token and is consumed only by its exact purpose.
  • Workload-client registration, revocation, and key rotation use WORKLOAD_CLIENT_REGISTRATION, WORKLOAD_CLIENT_REVOCATION, and WORKLOAD_CLIENT_KEY_ROTATION respectively.
  • TRADING_ORDER remains a recognized security purpose for compatibility, but this route does not enable order ingress, traffic, market state, publisher activity, matching authority, or any frozen trading capability.
DOCUMENTATION STATUS

This route is implemented in canonical gateway source and appears in the production OpenAPI snapshot observed 2026-09-11T06:35:11.572Z. Authentication, tenant, feature, venue, and market policy still apply.

Verify the exact production OpenAPI operation Return to the V2 directory