Inbound Webhook
The no-SDK path. POST directly to /api/webhooks/inbound from any tool - Zapier, n8n, Make, custom scripts, or any HTTP client. No SDK installation required.
Submit a request
cURL
curl -X POST https://app.cheqpoint.co/api/webhooks/inbound \
-H "Content-Type: application/json" \
-H "x-connection-key: cq_live_xxxxxxxxxxxx" \
-d '{
"action": "process_refund",
"summary": "Refund $500 for order #12345",
"details": {
"orderId": "12345",
"amount": 500,
"currency": "USD",
"customerEmail": "user@example.com"
},
"riskScore": 0.8,
"webhookUrl": "https://yourapp.com/webhook/cheqpoint"
}'
# Response:
# { "id": "req_abc123", "status": "PENDING" }Request body schema
JSON Schema
{
"action": string, // required - e.g. "process_refund", "send_email"
"summary": string, // required - plain English description shown to reviewers
"details": object, // required - full payload (any JSON object)
"riskScore": number, // optional - 0.0 (low) to 1.0 (critical); >= 0.7 shows as High risk
"priority": "low" | "normal" | "urgent", // default: "normal"
"webhookUrl": string, // optional - your endpoint to receive the decision
"assistantName": string, // optional - overrides the Connection Key's name
"metadata": object // optional - arbitrary key/value pairs
}Webhook decision payload (sent to your webhookUrl)
JSON
{
"id": "req_abc123",
"status": "APPROVED", // APPROVED | REJECTED | MODIFIED
"action": "process_refund",
"summary": "Refund $500 for order #12345",
"details": { "orderId": "12345", "amount": 500 },
"modifiedDetails": null, // set if reviewer modified the payload
"responseNotes": "Verified", // reviewer's note (optional)
"decisionReasonCode": "verified_authorised",
"decidedAt": "2025-03-18T14:32:00.000Z"
}Poll for the decision (if no webhookUrl)
cURL
# Poll GET /api/approvals/:id until status changes from PENDING
curl https://app.cheqpoint.co/api/approvals/req_abc123 \
-H "x-connection-key: cq_live_xxxxxxxxxxxx"
# PENDING:
# { "id": "req_abc123", "status": "PENDING" }
# Decided:
# {
# "id": "req_abc123",
# "status": "APPROVED",
# "decisionNote": "Looks good",
# "decidedAt": "2025-03-18T14:32:00.000Z"
# }Make (Integromat) - HTTP module config
Configuration
Module: HTTP - Make a request
URL: https://app.cheqpoint.co/api/webhooks/inbound
Method: POST
Headers:
x-connection-key: cq_live_xxxxxxxxxxxx
Content-Type: application/json
Body type: Raw
Content type: JSON (application/json)
Request content:
{
"action": "{{action}}",
"summary": "{{summary}}",
"details": {{details}},
"riskScore": 0.8
}