13trust / 100

Cdp Webhook Sig Verify

by app.heinrichstech.com in Security & trust

x402 APIFailing, checked 19 min ago

BitBooth Webhook Signature Verify: pay 0.005 USDC, verify a webhook signature against the provider's canonical HMAC scheme. Supports stripe, github, vercel, cdp, slack, and generic HMAC-SHA256. Constant-time compare, clock-skew tolerance on timestamp-bearing providers (Stripe / Slack / CDP). Stateless — caller supplies their secret in the request body, we never store it.

POST https://app.heinrichstech.com/v1/cdp/webhook-sig-verify

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
0.0%
Response time
- typical, - slowest 5%
Last check
19 min ago: Amount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units
Next check
in 41 min

How to call it

# bash or zsh: see the payment challenge (nothing is charged)
curl -g -i -X POST 'https://app.heinrichstech.com/v1/cdp/webhook-sig-verify' \
  -H 'content-type: application/json' \
  --data-raw '{"payload":"{\"id\":\"evt_test\",\"type\":\"checkout.session.completed\"}","provider":"stripe","secret":"whsec_test_secret","signature":"t=1640000000,v1=abc...","timestamp":"1640000000","toleranceSeconds":300}'
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client().register(
  "eip155:8453",
  new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);

// Not sure it's safe to pay? Preflight it first for $0.005:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fapp.heinrichstech.com%2Fv1%2Fcdp%2Fwebhook-sig-verify
const res = await pay("https://app.heinrichstech.com/v1/cdp/webhook-sig-verify", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: "{\"payload\":\"{\\\"id\\\":\\\"evt_test\\\",\\\"type\\\":\\\"checkout.session.completed\\\"}\",\"provider\":\"stripe\",\"secret\":\"whsec_test_secret\",\"signature\":\"t=1640000000,v1=abc...\",\"timestamp\":\"1640000000\",\"toleranceSeconds\":300}",
});
console.log(await res.json());

Example input

{
  "payload": "{\"id\":\"evt_test\",\"type\":\"checkout.session.completed\"}",
  "provider": "stripe",
  "secret": "whsec_test_secret",
  "signature": "t=1640000000,v1=abc...",
  "timestamp": "1640000000",
  "toleranceSeconds": 300
}

Example output

{
  "details": {
    "ageSeconds": 14,
    "checkedTolerance": true
  },
  "ok": true,
  "payment": {
    "network": "eip155:8453",
    "payer": "0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
    "transaction": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
  },
  "provider": "stripe",
  "scheme": "hmac-sha256-stripe",
  "valid": true
}

Security scan

  • No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTimePrice
19 min agoAmount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units402563 ms$0.005
5 h agoAmount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units402604 ms$0.005
9 h agoAmount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units402564 ms$0.005
13 h agoAmount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units402519 ms$0.005
18 h agoAmount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units402502 ms$0.005
22 h agoAmount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units402549 ms$0.005
26 h agoAmount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units402480 ms$0.005
30 h agoAmount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units402545 ms$0.005
35 h agoAmount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units402603 ms$0.005
39 h agoAmount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units402491 ms$0.005
43 h agoAmount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units402590 ms$0.005
47 h agoAmount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units402463 ms$0.005
2 days agoAmount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units402450 ms$0.005
2 days agoAmount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units402497 ms$0.005
2 days agoAmount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units402495 ms$0.005