All integrations
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.io/api/webhooks/inbound \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"action": "process_refund",
"summary": "Refund £500 for order #12345",
"details": {
"orderId": "12345",
"amount": 500,
"currency": "GBP",
"customerEmail": "user@example.com"
},
"riskLevel": "high",
"webhookUrl": "https://yourapp.com/webhook/cheqpoint"
}'
# Response:
# { "id": "req_abc123", "status": "PENDING" }curl -X POST https://app.cheqpoint.io/api/webhooks/inbound \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"action": "process_refund",
"summary": "Refund £500 for order #12345",
"details": {
"orderId": "12345",
"amount": 500,
"currency": "GBP",
"customerEmail": "user@example.com"
},
"riskLevel": "high",
"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)
"riskLevel": "low" | "medium" | "high", // default: "medium"
"priority": "low" | "normal" | "urgent", // default: "normal"
"webhookUrl": string, // optional - your endpoint to receive the decision
"agentName": string, // optional - overrides the API key's agent name
"metadata": object // optional - arbitrary key/value pairs
}{
"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)
"riskLevel": "low" | "medium" | "high", // default: "medium"
"priority": "low" | "normal" | "urgent", // default: "normal"
"webhookUrl": string, // optional - your endpoint to receive the decision
"agentName": string, // optional - overrides the API key's agent 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"
}{
"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.io/api/approvals/req_abc123 \
-H "x-api-key: YOUR_API_KEY"
# PENDING:
# { "id": "req_abc123", "status": "PENDING" }
# Decided:
# {
# "id": "req_abc123",
# "status": "APPROVED",
# "decisionNote": "Looks good",
# "decidedAt": "2025-03-18T14:32:00.000Z"
# }# Poll GET /api/approvals/:id until status changes from PENDING
curl https://app.cheqpoint.io/api/approvals/req_abc123 \
-H "x-api-key: YOUR_API_KEY"
# 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.io/api/webhooks/inbound
Method: POST
Headers:
x-api-key: {{YOUR_API_KEY}}
Content-Type: application/json
Body type: Raw
Content type: JSON (application/json)
Request content:
{
"action": "{{action}}",
"summary": "{{summary}}",
"details": {{details}},
"riskLevel": "high"
}Module: HTTP - Make a request
URL: https://app.cheqpoint.io/api/webhooks/inbound
Method: POST
Headers:
x-api-key: {{YOUR_API_KEY}}
Content-Type: application/json
Body type: Raw
Content type: JSON (application/json)
Request content:
{
"action": "{{action}}",
"summary": "{{summary}}",
"details": {{details}},
"riskLevel": "high"
}