Webhooks & API
Outbound webhooks, inbound events, signature verification, and retry policies.
Outbound Webhook Events
Pet360 can notify your systems when events occur. Configure endpoints in Settings > Integrations > Webhooks.
| Event | Description |
|---|---|
| animal.enrolled | New animal created in ledger |
| animal.outcome.finalized | Adoption, transfer, or other outcome completed |
| custody.transferred | Animal transferred to new owner/org |
| billing.donation.received | Donation recorded |
| billing.payment.collected | Payment completed |
| medical.treatment.logged | Medical treatment recorded |
| safety.quarantine.initiated | Quarantine started |
Webhook Payload Structure
{
"id": "evt_abc123",
"type": "animal.enrolled",
"occurred_at": "2026-01-10T14:30:00Z",
"shelter_id": "shlt_xyz789",
"data": {
"animal_id": "anml_def456",
"species": "dog",
"name": "Buddy",
"intake_type": "stray"
},
"signature": "sha256=..."
}Signature Verification
Always verify webhook signatures to ensure requests are from Pet360.
// Verification example (Node.js)
const crypto = require('crypto');
function verifySignature(payload, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');
return `sha256=${expected}` === signature;
}Retry Policy
Failed webhooks are retried with exponential backoff. After 5 failures, the endpoint is marked as failing.
| Attempt | Delay | Timeout |
|---|---|---|
| 1 | Immediate | 30s |
| 2 | 1 minute | 30s |
| 3 | 5 minutes | 30s |
| 4 | 30 minutes | 30s |
| 5 | 2 hours | 30s |
Rate Limits
API Requests
1,000
requests per minute
Webhook Endpoints
10
per shelter
Batch Size
100
items per request