Wiki
Clone wikiAPI-2.0 / Create_booking
API method DEPRECATED, please use Create booking as non-logged-in to create booking as non-logged-in user, please use Create booking for customer to create booking as logged-in customer
Method: POST
Path: /api/bookings
Create new booking.
Without customer login
If request does not contain X-Authentication header, request JSON must have "user" object with user email, first and last names, new Customer will be automatically created and new booking will be assigned to them.
Additionally, if client has 'stripe' as payment method, request JSON must have "stripe" object with transaction stripe token.
Example request JSON
{"booking":{ "service_date":"2015-08-15T13:00", "services":[{ "id":1, "extras":[{ "extra_id":1, "quantity":1 }], "pricing_parameters":[{ "pricing_parameter_id":1, "quantity":1 }] },{ "id":2, "extras":[], "pricing_parameters":[] }], "flexibility":0, "address":"595 Market St", "city":"San Francisco", "state":"CA", "zip":"94105", "phone":"462-485-0790", "payment_method":"stripe", "discount_code":null, "customer_comments":null, "sms_notifications":false, "frequency_id":1, "custom_fields":{ "custom_text":"text", "custom_dropdown":{"values":"1"}, "custom_radio":{"values":"2"} } }, "user":{ "email":"ned_marvin@lockman.info", "first_name":"Candelario", "last_name":"Kutch" }, "stripe":{ "token":"XXXXXX" }}
Example response JSON
{"booking":{ "id":55, "user_id":5, "service_date":"2015-08-15T13:00", "services":[{ "id":1, "extras":[{ "extra_id":1, "quantity":1 }], "pricing_parameters":[{ "pricing_parameter_id":1, "quantity":1 }], "service_maids":1, "service_minutes":60 },{ "id":2, "extras":[], "pricing_parameters":[], "service_maids":1, "service_minutes":120 }], "frequency_id":1, "address":"595 Market St", "city":"San Francisco", "state":"CA", "zip":"94105", "phone":"462-485-0790", "price":"202.0", "final_price":"202.0", "completed":false, "payment_method":"stripe", "active":true, "discount_code":null, "customer_comments":null, "sms_notifications":false, "flexibility":0, "custom_fields":{ "custom_text":"text", "custom_dropdown":{"values":"1"}, "custom_radio":{"values":"2"} } }}
Example request:
For production, replace https://acme-sandbox.l27.co
with https://<your subdomain>.launch27.com
curl -H "X-API-Key: test_8kBFkhmf8TA7TZyQBh" \ -H "Content-Type: application/json" \ -H "Accept: application/launch27.v2" \ -X POST -k \ -d '{"booking":{"service_date":"2015-08-15T13:00", "services":[{"id":1, "extras":[{"extra_id":1, "quantity":1 }], "pricing_parameters":[{"pricing_parameter_id":1, "quantity":1 }] },{"id":2, "extras":[], "pricing_parameters":[] }], "flexibility":0, "address":"595 Market St", "city":"San Francisco", "state":"CA", "zip":"94105", "phone":"462-485-0790", "payment_method":"stripe", "discount_code":null, "customer_comments":null, "sms_notifications":false, "frequency_id":1, "custom_fields":{"custom_text":"text", "custom_dropdown":{"values":"1"}, "custom_radio":{"values":"2"}}}, "user":{"email":"ned_marvin@lockman.info", "first_name":"Candelario", "last_name":"Kutch"}, "stripe":{"token":"XXXXXX"}}' \ https://acme-sandbox.l27.co/api/bookings
With customer login
If request contains X-Authentication header, it should have valid email and single_access_token of existing active and confirmed Customer (returned by Login endpoint). WIth auth info, "user" object is not required (and will be ignored if provided).
Additionally, if client has 'stripe' as payment method, request JSON must have "stripe" object with transaction stripe token.
Example request JSON
{"booking":{ "service_date":"2015-08-15T13:00", "services":[{ "id":1, "extras":[{ "extra_id":1, "quantity":1 }], "pricing_parameters":[{ "pricing_parameter_id":1, "quantity":1 }] },{ "id":2, "extras":[], "pricing_parameters":[] }], "flexibility":0, "address":"595 Market St", "city":"San Francisco", "state":"CA", "zip":"94105", "phone":"462-485-0790", "payment_method":"stripe", "discount_code":null, "customer_comments":null, "sms_notifications":false, "frequency_id":1, "custom_fields":{ "custom_text":"text", "custom_dropdown":{"values":"1"}, "custom_radio":{"values":"2"} } }, "stripe":{ "token":"XXXXXX" }}
Example response JSON
{"booking":{ "id":50, "user_id":2, "service_date":"2015-08-15T13:00", "services":[{ "id":1, "extras":[{ "extra_id":1, "quantity":1 }], "pricing_parameters":[{ "pricing_parameter_id":1, "quantity":1 }], "service_maids":1, "service_minutes":60 },{ "id":2, "extras":[], "pricing_parameters":[], "service_maids":1, "service_minutes":120 }], "frequency_id":1, "address":"595 Market St", "city":"San Francisco", "state":"CA", "zip":"94105", "phone":"462-485-0790", "price":"202.0", "final_price":"202.0", "completed":false, "payment_method":"stripe", "active":true, "discount_code":null, "customer_comments":null, "sms_notifications":false, "flexibility":0, "custom_fields":{ "custom_text":"text", "custom_dropdown":{"values":"1"}, "custom_radio":{"values":"2"} } }}
Example requests:
For production, replace https://acme-sandbox.l27.co
with https://<your subdomain>.launch27.com
(1) First, get auth token for user@email.com:
curl -H "X-API-Key: test_8kBFkhmf8TA7TZyQBh" \ -H "Content-Type: application/json" \ -X POST -k \ -d '{"auth": {"email": "user@email.com", "password":"trustno1"}}' \ https://acme-sandbox.l27.co/api/auth
{"user":{ "id":2, "email":"user@email.com", "single_access_token":"JZR39nBOtg89JyyqmeI", "first_name":"First", "last_name":"Last" }}
curl -H "X-API-Key: test_8kBFkhmf8TA7TZyQBh" \ -H "X-Authentication: user@email.com:JZR39nBOtg89JyyqmeI" \ -H "Content-Type: application/json" \ -H "Accept: application/launch27.v2" \ -X POST -k \ -d '{"booking":{"service_date":"2015-08-15T13:00", "services":[{"id":1, "extras":[{"extra_id":1, "quantity":1 }], "pricing_parameters":[{"pricing_parameter_id":1, "quantity":1 }] },{"id":2, "extras":[], "pricing_parameters":[] }], "flexibility":0, "address":"595 Market St", "city":"San Francisco", "state":"CA", "zip":"94105", "phone":"462-485-0790", "payment_method":"stripe", "discount_code":null, "customer_comments":null, "sms_notifications":false, "frequency_id":1, "custom_fields":{"custom_text":"text", "custom_dropdown":{"values":"1"}, "custom_radio":{"values":"2"}}}, "stripe":{"token":"XXXXXX"}}' \ https://acme-sandbox.l27.co/api/bookings
Updated