Webhooks
Webhooks deliver real-time events from Pricifi to your server the moment they happen — no polling required. We sign every payload so you can verify it came from us.
Example payload
{
"id": "evt_1A2b3C4d5E",
"type": "payment.succeeded",
"created": "2026-08-05T09:41:00Z",
"data": {
"paymentId": "pay_9xK2",
"amount": 25000,
"currency": "NGN",
"method": "paystack",
"orderId": "ord_7M4"
}
}Event types
Payments
Know the moment a customer pays, a charge fails, or a dispute is opened.
payment.succeededpayment.failedpayment.disputedpayout.sentOrders
React to new orders and track them through to fulfilment and dispatch.
order.createdorder.status_changedorder.fulfilledConversations
Build notifications or analytics on top of buyer conversations.
conversation.createdconversation.message_receivedconversation.repliedCatalog & Inventory
Keep your own systems in sync the moment stock or catalogs change.
catalog.syncedinventory.low_stockinventory.out_of_stockVerifying signatures
Each request includes a signature in the X-Pricifi-Signature header — an HMAC-SHA256 of the raw body using your webhook secret. Verify it before trusting the payload.
const expected = crypto
.createHmac('sha256', WEBHOOK_SECRET)
.update(rawBody)
.digest('hex');
if (expected !== signature) throw new Error('invalid signature');Retries & ordering
We retry failed deliveries with exponential backoff for up to 24 hours. Respond with 200 OK as quickly as possible — handle the work asynchronously. Events are delivered in order per resource and each event has a unique id you can use for idempotency.