Wiki

Clone wiki

API-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
returns
{"user":{
  "id":2,
  "email":"user@email.com",
  "single_access_token":"JZR39nBOtg89JyyqmeI",
  "first_name":"First",
  "last_name":"Last"
}}
(2) And create booking for user@email.com Customer:
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