Weav Docsv1

Guides / Webhooks

Event types

Weav sends a signed POST whenever something you need to know about happens. Set where it goes with PUT /v1/webhook-endpoint; see Where each webhook goes.

Event When data key
PAYMENT_COMPLETED The customer paid. payment
PAYMENT_FAILED The payment expired or was declined. payment
PAYMENT_CANCELLED The payment was canceled. payment
PAYMENT_REVERSED A completed payment was reversed after a chargeback, and the amount came off your balance. payment, reversal
PAYMENT_REFUNDED Weav recorded a refund, partial or full. payment.status says which. payment, refund
CHECKOUT_COMPLETED A checkout was paid. checkout.payment is the payment that paid it. checkout
CHECKOUT_EXPIRED A checkout ran out without being paid. A payment still in progress keeps it open until that payment ends. checkout
PAYMENT_METHOD_SAVED Your customer saved their card and their bank confirmed it. It’s ACTIVE: you can charge it. payment_method
PAYMENT_METHOD_FAILED The bank’s check failed, or the save link ran out. payment_method
PAYMENT_METHOD_REMOVED A saved card was removed. It can’t be charged again. payment_method
WITHDRAWAL_COMPLETED A withdrawal reached your bank. withdrawal
WITHDRAWAL_FAILED A withdrawal failed and the amount was returned to your balance. withdrawal

Delivery

  • Your URL must use HTTPS. Weav verifies your TLS certificate.
  • Webhooks come from two fixed addresses, 18.136.62.102 and 18.139.176.153. See IP addresses.
  • A delivery succeeds only when your endpoint answers with a 2xx within 10 seconds. Anything else is retried, for about 7 days. See Retries.
  • When retries run out, the delivery waits in the dashboard for you to repost it.
  • The dashboard shows every attempt, with its status code, response and duration.
  • The same event can arrive twice. Use the resource’s reference_id to make sure you handle it only once.
  • Events can arrive out of order. Trust the status in the body, or read the resource again.

Reply right away and do the work in a queue. A handler that runs longer than 10 seconds counts as failed, and you’ll receive the same event again.