Webhooks
Receive real-time notifications when events happen in your Paymavo account. Webhooks are managed in Settings → Developer.
Payload format
JSON
{
"event": "invoice.paid",
"timestamp": "2026-03-10T15:30:00.000Z",
"data": {
"id": "clx...",
"invoiceNumber": "INV-2026-0042",
"status": "PAID",
"totalWithTax": 574750
}
}Signature verification
Every request includes a X-Signature header — HMAC-SHA256 of the raw body signed with your webhook secret.
TYPESCRIPT
import crypto from "crypto";
function verifyWebhook(body: string, signature: string, secret: string) {
const expected = crypto
.createHmac("sha256", secret)
.update(body)
.digest("hex");
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expected)
);
}Events
| Event | Triggered when |
|---|---|
| invoice.created | A new invoice is created via API or dashboard |
| invoice.sent | An invoice is sent to the customer by email |
| invoice.paid | An invoice is marked as paid |
| invoice.deleted | An invoice is deleted |
| customer.created | A new customer is created |
| customer.updated | A customer's details are updated |
| customer.deleted | A customer is deleted |
| quote.created | A new quote is created |
Retry policy
If your endpoint returns a non-2xx response, Paymavo retries up to 3 times with progressive delays (immediately, then after 5s, then 30s). Delivery logs are visible in Settings → Developer → Webhooks.