Booking cancellation¶
This endpoint lets you cancel a booking you created.
URL¶
This api endpoint is accessible via /{lang}/bookingengine/cancel_booking/
(replace {lang}
with fr
or en
) via POST, using the sub_instance_url
(see the Rental api endpoint)
Expected fields¶
origin
: The name of your configured origin. Ask your Homeloc contact if you don’t have one already.reservation
: The id of the booking you created. You received it when you created the booking.
Response¶
The response is given in JSON form.
Valid response¶
Here is an example of a valid response:
{
'status': 'ok',
'paid_amount': '24.95'
}
The status
key indicates the call you made was valid and we were able to cancel the booking.
The paid_amount
shows how much was already paid for the booking (on our platform). If you handle the payments on your own you can safely ignore it.
Invalid response¶
{ 'status': 'error', 'code': 'already_cancelled', 'error': 'The booking is already cancelled' }
The status
is not ok
, you call you made was not valid (or we were not able to cancel the booking).
The code
contains a string telling you what the problem is. You should use this to handle the API’s response. See below for the possible values.
error
contains a string explaining what happened in more details.
Possible error codes¶
badly_filled_form
: This means some (at least one) of the fields were not properly filled. In this case, theerror
of the response contains a list of the badly filled fields.origin_unknown
: The origin you gave us does not match any origin on our side.wrong_origin
: The origin you gave us does not match the origin of the booking you specified.already_cancelled
: The booking you are trying to cancel is already cancelled.
Examples¶
Valid call that cancels a booking¶
curl¶
curl 'https://example.homelocpay.net/en/bookingengine/cancel_booking' --data 'reservation=221&origin=My+Partner+Name'
Python¶
import requests response = requests.post( 'https://example.homelocpay.net/en/bookingengine/cancel_booking', data={ 'reservation': 221, 'origin': 'My Partner Name', } )
API response¶
{ 'status': 'ok', 'paid_amount': '22.10' }
Origin is different from booking origin¶
curl¶
curl 'https://example.homelocpay.net/en/bookingengine/cancel_booking' --data 'reservation=221&origin=Some+Other+Origin'
Python¶
import requests response = requests.post( 'https://example.homelocpay.net/en/bookingengine/cancel_booking', data={ 'reservation': 221, 'origin': 'Some other origin', } )
API response¶
{ 'status': 'error', 'code': 'wrong_origin', 'error': 'You can only cancel reservations with the same origin as the one you provided' }