nr_test_*
Break things here. Not in production.
Simulate bookings, payments, identity checks, deposits, pickup, late rentals, returns, charges, disputes, and webhook deliveries without touching live customers or rental operations.
Test data stays test data.
The sandbox should mirror the shape of Net Rentals without sharing the live business state your customers and operations depend on.
nr_live_*
Move a rental through the lifecycle on command.
Instead of waiting hours or days for a real rental to reach a specific condition, create the condition directly.
200
Payment succeeds
Move a test booking into a successful payment state.
POST /payment/succeed
402
Payment fails
Test failed-payment UI, notifications, and retry logic.
POST /payment/fail
VERIFIED
Identity verified
Satisfy the identity gate for a test booking.
POST /identity/verify
SECURED
Deposit secured
Simulate a completed security-deposit requirement.
POST /deposit/secure
ACTIVE
Start rental
Advance a ready booking into the active rental state.
POST /pickup
LATE
Make rental late
Trigger late-rental behavior without waiting on the clock.
POST /make-late
SUBMITTED
Submit return
Test the transition from active rental into return review.
POST /return
FAILED
Charge fails
Simulate collection failure and downstream recovery behavior.
POST /charges/{id}/fail
OPEN
Create dispute
Test dispute locks and post-trip collection behavior.
POST /charges/{id}/dispute
Change test state with a request.
Sandbox-only endpoints can create conditions developers need to verify without exposing those controls in production.
POST
POST /v1/test/bookings/bkg_test_8041/make-late
Authorization: Bearer nr_test_sk_••••••••
Content-Type: application/json
{
"id": "bkg_test_8041",
"state": "late",
"event": "rental.late"
}
The controls behind the scenario runner.
/v1/test/bookings
Create a test booking.
/v1/test/bookings/{booking_id}/payment/succeed
Successful payment.
/v1/test/bookings/{booking_id}/payment/fail
Failed payment.
/v1/test/bookings/{booking_id}/identity/verify
Approved identity.
/v1/test/bookings/{booking_id}/identity/fail
Failed identity.
/v1/test/bookings/{booking_id}/agreement/sign
Signed agreement.
/v1/test/bookings/{booking_id}/deposit/secure
Secured deposit.
/v1/test/bookings/{booking_id}/pickup
Start test rental.
/v1/test/bookings/{booking_id}/make-late
Force late state.
/v1/test/bookings/{booking_id}/return
Submit return.
/v1/test/charges/{charge_id}/succeed
Successful post-trip charge.
/v1/test/charges/{charge_id}/fail
Failed post-trip charge.
/v1/test/charges/{charge_id}/dispute
Open a test dispute.
/v1/test/webhooks/{endpoint_id}/send
Send a test webhook.
Test the transitions, not just the endpoints.
A rental is a connected state machine. Sandbox testing should make it easy to validate what becomes possible or blocked after each change.
booking.created
deposit.secured
pickup.ready
rental.started
return.submitted
rental.completed
Successful paths are the easy part.
A useful sandbox should make the ugly conditions easy to reproduce: payment failure, identity rejection, collection failure, late rentals, webhook errors, and disputes.
payment.failed
identity.rejected
charge.failed
delivery.retrying
Generate the event you need to debug.
Fire a test event into a registered sandbox endpoint, inspect the response, and retry deliveries without creating live activity.
Read the webhook docs →
https://example.com/webhooks/net-rentals
See every test action in one timeline.
POST /v1/test/bookings
201
booking.created
emitted
POST /payment/succeed
200
payment.succeeded
emitted
POST /deposit/secure
200
deposit.secured → example.com
204
Run it again.
Test environments are useful because they are disposable. Reset the scenario and repeat the workflow until your integration behaves correctly.
Test the same rental logic. Never risk the same rental data.
Build it. Break it. Reset it.
Validate your integration against the rental lifecycle before production depends on it.