Event Types
Verifying Signatures
Indic8 includes anX-Indic8-Signature header with each outbound request:
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
Receive outbound HTTP notifications when new transactions, refunds, or milestones occur.
| Event Name | Trigger Condition |
|---|---|
transaction.recorded | A new customer payment or subscription charge has settled |
transaction.refunded | A refund has been processed in any connected gateway |
milestone.unlocked | A workspace has crossed a major revenue or subscriber threshold |
subscription.churned | A recurring subscription has canceled or expired |
X-Indic8-Signature header with each outbound request:
X-Indic8-Signature: t=1726233600,v1=6a7b8c9d0e1f2a...
import crypto from 'crypto';
function verifyIndic8Webhook(
rawBody: string,
signatureHeader: string,
secret: string
): boolean {
const parts = signatureHeader.split(',');
const timestamp = parts.find((p) => p.startsWith('t='))?.slice(2);
const signature = parts.find((p) => p.startsWith('v1='))?.slice(3);
if (!timestamp || !signature) return false;
const expectedSignature = crypto
.createHmac('sha256', secret)
.update(`${timestamp}.${rawBody}`)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expectedSignature)
);
}