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
| When | Result | HTTP | Time | Price |
|---|---|---|---|---|
| 19 min ago | Amount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units | 402 | 563 ms | $0.005 |
| 5 h ago | Amount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units | 402 | 604 ms | $0.005 |
| 9 h ago | Amount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units | 402 | 564 ms | $0.005 |
| 13 h ago | Amount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units | 402 | 519 ms | $0.005 |
| 18 h ago | Amount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units | 402 | 502 ms | $0.005 |
| 22 h ago | Amount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units | 402 | 549 ms | $0.005 |
| 26 h ago | Amount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units | 402 | 480 ms | $0.005 |
| 30 h ago | Amount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units | 402 | 545 ms | $0.005 |
| 35 h ago | Amount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units | 402 | 603 ms | $0.005 |
| 39 h ago | Amount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units | 402 | 491 ms | $0.005 |
| 43 h ago | Amount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units | 402 | 590 ms | $0.005 |
| 47 h ago | Amount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units | 402 | 463 ms | $0.005 |
| 2 days ago | Amount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units | 402 | 450 ms | $0.005 |
| 2 days ago | Amount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units | 402 | 497 ms | $0.005 |
| 2 days ago | Amount "0.005000" is not in atomic token units; Amount "0.005000" is not in atomic token units | 402 | 495 ms | $0.005 |