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

EventTriggered when
invoice.createdA new invoice is created via API or dashboard
invoice.sentAn invoice is sent to the customer by email
invoice.paidAn invoice is marked as paid
invoice.deletedAn invoice is deleted
customer.createdA new customer is created
customer.updatedA customer's details are updated
customer.deletedA customer is deleted
quote.createdA 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.