Payout Events#

CasaPay sends webhook events for payout lifecycle changes.

Event Types#

EventDescription
payout.createdA new payout was created
payout.updatedA payout was updated
payout.paidA payout was successfully delivered
payout.failedA payout failed
payout.canceledA payout was canceled
balance.availableFunds became available in your balance

Event Object#

{
  "id": "evt_po_abc123",
  "object": "event",
  "type": "payout.paid",
  "data": {
    "object": {
      "id": "po_xyz789",
      "object": "payout",
      "amount": 1150000,
      "currency": "gbp",
      "status": "paid",
      "destination": "ba_abc123",
      "arrival_date": 1706572800
    }
  },
  "created": 1706572800
}

Handling Payout Events#

app.post('/webhooks/casapay', async (req, res) => {
  const event = req.body;

  switch (event.type) {
    case 'payout.paid':
      await notifyLandlord(event.data.object);
      break;
    case 'payout.failed':
      await investigateFailure(event.data.object);
      break;
  }

  res.status(200).send();
});