Api Endpoint

sicher.halowerk.com

Providers each build their signing string differently — some sign only the body, others prepend a timestamp, an id, or a version marker in a fixed order — and getting that order wrong produces a mismatch that looks exactly like an attack. This checks the signature the way the named provider actually specifies, with constant-time comparison, and returns the string that was signed so a mismatch can be debugged instead of guessed at.

Open interactive test console

Offering

Provider
sicher.halowerk.com
Method
POST
Offering type
Api Endpoint
Transport type
http
Category
Security
Delivery
Not provided
Pricing model
Not provided
x402 version
2

Endpoint context

URL
https://sicher.halowerk.com/v1/webhook-signature
MIME type
Not provided
First seen
2026-10-16T01:54:06.400Z
Last seen
Tags
None supplied

Payment pricing

x402 payment terms are the authoritative price for calling this endpoint.

Payment option 1
0.002 USDC
Atomic price: 2000 · Network: eip155:8453 · Asset: USDC · Scheme: exact
Raw x402 terms
[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "2000",
    "payTo": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E"
  }
]

Observed health

Status
Healthy
Latest latency
317 ms
Average latency
539 ms
HTTP status
204
Last checked
Reachability
100% over 7 checks

Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.

Input schema

{
  "additionalProperties": false,
  "properties": {
    "body": {
      "additionalProperties": false,
      "properties": {
        "body": {
          "description": "The raw request body exactly as received, not re-serialised.",
          "maxLength": 200000,
          "type": "string"
        },
        "headers": {
          "description": "All request headers; the right one is picked by provider.",
          "type": "object"
        },
        "message_id": {
          "description": "Message id for schemes that sign one, e.g. Svix.",
          "maxLength": 200,
          "type": "string"
        },
        "provider": {
          "description": "Which provider signed the request.",
          "enum": [
            "github",
            "stripe",
            "shopify",
            "slack",
            "svix",
            "generic_hmac"
          ],
          "type": "string"
        },
        "secret": {
          "description": "The signing secret.",
          "maxLength": 2000,
          "minLength": 1,
          "type": "string"
        },
        "signature": {
          "description": "The signature header value. Required unless headers is given.",
          "maxLength": 2000,
          "type": "string"
        },
        "timestamp": {
          "description": "Timestamp, if the provider signs one and it is not in the headers.",
          "maxLength": 40,
          "type": "string"
        },
        "tolerance_seconds": {
          "default": 300,
          "description": "How old a signed timestamp may be.",
          "maximum": 86400,
          "minimum": 1,
          "type": "integer"
        }
      },
      "required": [
        "provider",
        "body",
        "secret"
      ],
      "type": "object"
    },
    "bodyType": {
      "enum": [
        "json",
        "form-data",
        "text"
      ],
      "type": "string"
    },
    "method": {
      "enum": [
        "POST",
        "PUT",
        "PATCH"
      ],
      "type": "string"
    },
    "type": {
      "const": "http",
      "type": "string"
    }
  },
  "required": [
    "type",
    "method",
    "bodyType",
    "body"
  ],
  "type": "object"
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "body": {
          "additionalProperties": false,
          "properties": {
            "body": {
              "description": "The raw request body exactly as received, not re-serialised.",
              "maxLength": 200000,
              "type": "string"
            },
            "headers": {
              "description": "All request headers; the right one is picked by provider.",
              "type": "object"
            },
            "message_id": {
              "description": "Message id for schemes that sign one, e.g. Svix.",
              "maxLength": 200,
              "type": "string"
            },
            "provider": {
              "description": "Which provider signed the request.",
              "enum": [
                "github",
                "stripe",
                "shopify",
                "slack",
                "svix",
                "generic_hmac"
              ],
              "type": "string"
            },
            "secret": {
              "description": "The signing secret.",
              "maxLength": 2000,
              "minLength": 1,
              "type": "string"
            },
            "signature": {
              "description": "The signature header value. Required unless headers is given.",
              "maxLength": 2000,
              "type": "string"
            },
            "timestamp": {
              "description": "Timestamp, if the provider signs one and it is not in the headers.",
              "maxLength": 40,
              "type": "string"
            },
            "tolerance_seconds": {
              "default": 300,
              "description": "How old a signed timestamp may be.",
              "maximum": 86400,
              "minimum": 1,
              "type": "integer"
            }
          },
          "required": [
            "provider",
            "body",
            "secret"
          ],
          "type": "object"
        },
        "bodyType": {
          "enum": [
            "json",
            "form-data",
            "text"
          ],
          "type": "string"
        },
        "method": {
          "enum": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "type": "string"
        },
        "type": {
          "const": "http",
          "type": "string"
        }
      },
      "required": [
        "type",
        "method",
        "bodyType",
        "body"
      ],
      "type": "object"
    }
  },
  "required": [
    "input"
  ],
  "type": "object"
}