GET/api/v1/reservations/{ref}Get a reservation
One reservation by its reference, in any case.
Scope: reservations:read
Parameters of getReservation| Parameter | In | Description |
|---|
refrequired | path | The reservation's reference |
Example request
curl -s "https://orvorental.app/api/v1/reservations/RES-2026-00042" \
-H "Authorization: Bearer $API_KEY"
Answer 200
The reservation
{
"id": "cm4bok0000000000000000001",
"reference": "RES-2026-00042",
"externalRef": "PARTNER-778812",
"status": "PENDING",
"source": "PARTNER",
"userName": "Ana Hoxha",
"contactNumber": "+355 69 485 2518",
"email": "[email protected]",
"location": "Airport",
"pickUpDate": "2026-12-10",
"pickUpTime": "10:00",
"dropOffDate": "2026-12-14",
"dropOffTime": "10:00",
"pickupAt": "2026-12-10T09:00:00.000Z",
"returnAt": "2026-12-14T09:00:00.000Z",
"carId": "cm4car0000000000000000001",
"carSnapshot": "Volkswagen Golf (2021)",
"version": 1,
"totals": {
"totalMinor": 18000,
"currency": "EUR"
},
"ledger": {
"paidMinor": 0,
"refundedMinor": 0,
"heldMinor": 0,
"balanceMinor": 18000,
"paymentStatus": "UNPAID"
},
"createdAt": "2026-11-02T08:30:00.000Z",
"updatedAt": "2026-11-02T08:30:00.000Z"
}
POST/api/v1/reservationsCreate a reservation
A reservation, created as the back office creates one: priced by the agency's rules, the vehicle checked free for the exact window (with the turnaround buffer) in a serializable transaction, its history written as the API key. `source` defaults to PARTNER and `status` to PENDING (confirm it with POST /reservations/{ref}/confirm). `externalRef` is your own reference, stored and searchable. No mail is sent on creation.
Scope: reservations:write · takes an Idempotency-Key
Body fields: carId*, location*, returnLocation, pickUpDate*, pickUpTime, dropOffDate*, dropOffTime, extras, protectionCode, promoCode, driverAge, userName*, contactNumber*, email, locale, customerId, rentalType, deliveryAddress, customerNotes, internalNotes, notes, source, status, externalRef (* required)
Example request
curl -s -X POST "https://orvorental.app/api/v1/reservations" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"carId":"cm4car0000000000000000001","userName":"Ana Hoxha","contactNumber":"+355 69 485 2518","email":"[email protected]","location":"Airport","pickUpDate":"2026-12-10","pickUpTime":"10:00","dropOffDate":"2026-12-14","dropOffTime":"10:00","source":"PARTNER","externalRef":"PARTNER-778812"}'
Answer 201
The reservation
{
"id": "cm4bok0000000000000000001",
"reference": "RES-2026-00042",
"externalRef": "PARTNER-778812",
"status": "PENDING",
"source": "PARTNER",
"userName": "Ana Hoxha",
"contactNumber": "+355 69 485 2518",
"email": "[email protected]",
"location": "Airport",
"pickUpDate": "2026-12-10",
"pickUpTime": "10:00",
"dropOffDate": "2026-12-14",
"dropOffTime": "10:00",
"pickupAt": "2026-12-10T09:00:00.000Z",
"returnAt": "2026-12-14T09:00:00.000Z",
"carId": "cm4car0000000000000000001",
"carSnapshot": "Volkswagen Golf (2021)",
"version": 1,
"totals": {
"totalMinor": 18000,
"currency": "EUR"
},
"ledger": {
"paidMinor": 0,
"refundedMinor": 0,
"heldMinor": 0,
"balanceMinor": 18000,
"paymentStatus": "UNPAID"
},
"createdAt": "2026-11-02T08:30:00.000Z",
"updatedAt": "2026-11-02T08:30:00.000Z"
}
POST/api/v1/reservations/{ref}/confirmConfirm a reservation
Confirms a QUOTE or PENDING reservation (the vehicle checked free again). `version` is the version you read: when the reservation changed since, the answer is 409 STALE with the version now; without it, the version stored now. The customer gets the confirmation mail when an e-mail is on file.
Scope: reservations:write · takes an Idempotency-Key
Parameters of confirmReservation| Parameter | In | Description |
|---|
refrequired | path | The reservation's reference |
Body fields: version
Example request
curl -s -X POST "https://orvorental.app/api/v1/reservations/RES-2026-00042/confirm" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"version":1}'
Answer 200
The reservation after the step
POST/api/v1/reservations/{ref}/cancelCancel a reservation
Cancels the reservation, with an optional reason (stored). `version` as for confirm. The customer gets the cancellation mail when an e-mail is on file.
Scope: reservations:write · takes an Idempotency-Key
Parameters of cancelReservation| Parameter | In | Description |
|---|
refrequired | path | The reservation's reference |
Body fields: version, reason
Example request
curl -s -X POST "https://orvorental.app/api/v1/reservations/RES-2026-00042/cancel" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"version":2,"reason":"Cancelled by the customer on the partner's site"}'
Answer 200
The reservation after the step