Discovery & Ops

Create a caller-local deny receipt

Changed on

Notarize a caller's own local deny (e.g. spend_policy_denied). This is not a TWZRD wash verdict. Domain TWZRD:REFUSE_RECEIPT_V0; same Ed25519 v2 key as V6, different domain. Replay of the same natural key returns the same signed object for 90 days; after that a remint gets a new issued_at_unix and a new leaf. Requires X-Twzrd-Caller matching body.caller_id for the legacy format (202). Alternatively submit challenge_hash, issued_at_unix, resource, reason, payer_pubkey, signature for a free caller-signed declaration (200 logged, receipt_id, witness_signature). No caller header or payment required for this format. Ed25519 base58 signature over UTF-8 TWZRD:SIGNED_REFUSAL_V1 + LF + compact, sorted-key, ensure_ascii JSON of all five non-signature fields. issued_at_unix must be within 300s of server time. Optionally include quoted_price: this selects TWZRD:SIGNED_REFUSAL_V2 and signs all six non-signature fields, including the complete quote object. The witness receipt adds ingested_at_unix, the server ingestion time, bound into the witness leaf and distinct from the caller-signed issued_at_unix. Reasons and challenge provenance are caller claims. Invalid or stale signature returns 422 INVALID_REFUSAL_SIGNATURE.

post/v1/intel/refuse-receipt

Request

  • Base URL
    https://intel.twzrd.xyz
  • Auth
    API key in header X-Twzrd-Caller

Headers

X-Twzrd-Callerstring required

Opt-in self-declared caller identity so a later client-side wash refuse can be joined. Preferred: <integration>@<version> (e.g. clawrouter@0.9.4) or <package>/<version> (e.g. twzrd-x402-gate/0.8.6). Control characters stripped; empty/whitespace ignored. Fallback: X-TWZRD-Client only when this header is absent. Free; no auth. A well-formed token is recorded and acknowledged as caller_recorded=true plus response header X-Twzrd-Caller-Recorded: 1. The raw token is never echoed. Required for the legacy refuse-receipt mint; omit only when posting a signed-refusal body.

Request body

OR

Response

OK (JSON).

Changes

    • breaking

      the header request parameter X-Twzrd-Caller became required

    • info

      the endpoint scheme security twzrdCaller was added to the API

    • info

      added the non-success response with the status

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added the new optional request property

    • info

      added subschema #1 subschema #2 to the request body oneOf list

    • info

      the request property became optional

    • info

      the request property became optional

    • info

      the request property became optional

    • info

      the request property became optional

    • info

      the request property became optional

    • info

      the request property became optional

    • info

      added the non-success response with the status

    • info

      added the non-success response with the status

    • info

      added the non-success response with the status

    • info

      added the success response with the status