A booking, payment, rental, return, or another supported resource changes.
Know when something changes.
Net Rentals webhooks can notify your systems when bookings, payments, deposits, rentals, returns, charges, disputes, messages, and fleet state change.
Your system reacts. Net Rentals keeps moving.
Webhooks let external systems respond to the rental lifecycle without repeatedly polling Net Rentals for changes.
Net Rentals creates an event representing what happened.
The event is delivered to your registered HTTPS endpoint.
Return a 2xx quickly, then process the event within your own infrastructure.
Tell us where to send events.
Register an HTTPS endpoint and subscribe only to the event types your integration needs.
Production webhook endpoints should use HTTPS and validate the Net Rentals signature before trusting the payload.
/v1/developers/webhooks
{
"url": "https://example.com/net-rentals/webhook",
"events": [
"booking.created",
"payment.succeeded",
"rental.started",
"return.completed"
]
}
One event envelope. Different rental objects.
A consistent outer envelope gives integrations stable
event metadata while the resource that changed stays
inside data.object.
id
Use it to deduplicate deliveries.
type
Describes the lifecycle change that occurred.
created_at
UTC timestamp for the event.
livemode
Separates live events from sandbox activity.
business_id
Identifies the rental business associated with the event.
data.object
Contains the object associated with the event.
booking.created
{
"id": "evt_01JXYZ",
"type": "booking.created",
"created_at": "2026-08-08T22:14:03Z",
"livemode": true,
"business_id": "biz_123",
"api_version": "2026-08-01",
"data": {
"object": {
"id": "booking_123"
}
}
}
Verify before you trust.
Webhook deliveries should be signed so your application can verify that a request came from Net Rentals and that its body was not modified.
HMAC-SHA256(timestamp + "." + raw_request_body)
Net-Rentals-Event-Id
evt_01JXYZ
Net-Rentals-Signature
t=1786227243,v1=abcdef123456
Net-Rentals-Api-Version
2026-08-01
See what happened after we sent it.
Delivery history should make failed integrations debuggable without requiring access to Net Rentals internal logs.
booking.created
1
200
payment.succeeded
1
204
return.completed
3
503
charge.failed
7
500
Temporary failure should not lose an event.
Failed deliveries can be retried on an increasing schedule before the delivery is finally marked failed.
Subscribe to the parts of the rental lifecycle you care about.
Booking
10 events
booking.created
booking.updated
booking.approved
booking.rejected
booking.canceled
booking.refunded
booking.extended
booking.ready_for_pickup
booking.completed
booking.problem
Payment
7 events
payment.created
payment.pending
payment.succeeded
payment.failed
payment.retrying
payment.refunded
payment.partially_refunded
Security deposit
12 events
deposit.required
deposit.created
deposit.authorized
deposit.secured
deposit.capture_required
deposit.captured
deposit.partially_captured
deposit.released
deposit.canceled
deposit.refunded
deposit.failed
Identity
7 events
identity.started
identity.pending
identity.verified
identity.rejected
identity.failed
identity.expired
Agreement
7 events
agreement.created
agreement.sent
agreement.viewed
agreement.signed
agreement.completed
agreement.expired
agreement.voided
Insurance
5 events
insurance.required
insurance.submitted
insurance.approved
insurance.rejected
insurance.expired
Pickup
6 events
pickup.ready
pickup.access_opened
pickup.started
pickup.photo_uploaded
pickup.mileage_recorded
pickup.completed
Vehicle access
5 events
vehicle_access.configured
vehicle_access.scheduled
vehicle_access.released
vehicle_access.opened
vehicle_access.revoked
Rental lifecycle
7 events
rental.started
rental.extended
rental.due_soon
rental.late
rental.return_window_open
rental.returned
rental.completed
Return
6 events
return.started
return.photo_uploaded
return.mileage_recorded
return.submitted
return.in_review
return.completed
Mileage
4 events
mileage.out_recorded
mileage.in_recorded
mileage.overage_detected
mileage.fee_created
Post-trip charges
10 events
charge.created
charge.updated
charge.evidence_added
charge.collection_started
charge.succeeded
charge.failed
charge.retry_scheduled
charge.retrying
charge.waived
charge.refunded
Disputes
7 events
dispute.created
dispute.updated
dispute.evidence_added
dispute.message_created
dispute.approved
dispute.denied
dispute.closed
Customers
4 events
customer.created
customer.updated
customer.identity_updated
customer.payment_method_updated
Messages
5 events
message.received
message.sent
message.delivered
message.failed
message.read
Fleet
10 events
vehicle.created
vehicle.updated
vehicle.archived
vehicle.available
vehicle.unavailable
vehicle.blackout_created
vehicle.blackout_removed
maintenance.created
maintenance.started
maintenance.completed
Website & domain
8 events
website.updated
website.published
domain.added
domain.verification_required
domain.verified
domain.ssl_provisioning
domain.ssl_active
domain.failed
Team
4 events
team.invitation_created
team.member_joined
team.member_updated
team.member_removed
Start with the events integrations actually need.
The full rental architecture can support a broad event catalog, but a first public release should stay focused.
booking.created
booking.approved
booking.canceled
payment.succeeded
payment.failed
deposit.secured
deposit.released
identity.verified
agreement.signed
rental.started
rental.late
return.completed
charge.created
charge.succeeded
charge.failed
dispute.created
dispute.closed
message.received
Fire events without touching a live rental.
Use the sandbox to create lifecycle conditions and send test webhook deliveries while building an integration.
Explore the developer sandbox →
/v1/test/webhooks/{endpoint_id}/send
{
"event": "rental.started",
"business_id": "biz_test_123"
}
Build around what happens next.
Connect your own infrastructure to the rental lifecycle without rebuilding the rental engine.