Okay
  Public Ticket #3355872
How to create an appointment via API
Closed

Comments

  • lananas1 started the conversation

    New ticket (as requested) associated to ticket - 1899844

    Thanks Milos, 

    I updated to version 6.2.3 and purged cache, it didn't work.
    If you could pass on that would be great, any documentation on how to make the call for this version would be really helpful at this stage !


  •  1,562
    Marko replied

    Hello,

    We have forwarded your ticket to our level 2 agents and as soon as we get some feedback from them we will contact you immediately. 

    Kind Regards, 

    Marko Davidovic
    [email protected]

    Rate my support

    wpDataTables: FAQ | Facebook | Twitter | InstagramFront-end and back-end demo | Docs

    Amelia: FAQ | Facebook | Twitter | InstagramAmelia demo sites | Docs | Discord Community

    You can try wpDataTables add-ons before purchasing on these sandbox sites:

    Powerful Filters | Gravity Forms Integration for wpDataTables | Formidable Forms Integration for wpDataTables | Master-Detail Tables

  •  1,562
    Marko replied

    Hello,

    We just got the feedback from our colleagues and they have told us that since then we have added the parameter ameliaNonce, required by WordPress for security reasons, for all backend API calls. Therefore it is not possible to use these endpoints as APIs at the moment. We are developing our official API, where you can make any call with an API key. For now, I suggest trying out the /bookings endpoint since it is called on the frontend and doesn't need any authorization to pass.

    Data in request:

    {     "type": "appointment",     "bookings": [         {             "customFields": {},             "deposit": true,             "locale": "en_US",             "utcOffset": null,             "customerId": null,             "customer": {                 "id": null,                 "firstName": "Amelia",                 "lastName": "Test",                 "email": "[email protected]",                 "phone": "",                 "countryPhoneIso": "",                 "externalId": null             },             "extras": [],             "persons": 1,             "duration": 1800         }     ],     "payment": {         "gateway": "onSite",         "currency": "USD",         "data": {}     },     "recaptcha": null,     "locale": "en_US",     "timeZone": "Europe/Belgrade",     "componentProps": null,     "returnUrl": "http://localhost/amelia/index.php/booking/",     "couponCode": null,     "notifyParticipants": 1,     "isCart": false,     "recurring": [],     "package": [],     "serviceId": 1,     "providerId": 14,     "locationId": 1,     "bookingStart": "2023-05-23 09:00",     "utcOffset": null,     "extras": [],     "persons": 1,     "duration": 1800 }

    However, you need to call another endpoint for post-booking actions (emails, calendars, zoom...):

    /bookings/success/{{booking_id}}

    Other data in this request:

    {     "type": "appointment",     "appointmentStatusChanged": false,     "recurring": [],     "packageId": null,     "customer": {         "id": 11,         "firstName": "Amelia",         "lastName": "Test",         "birthday": null,         "email": "[email protected]",         "phone": null,         "type": "customer",         "status": null,         "note": null,         "zoomUserId": null,         "countryPhoneIso": null,         "externalId": null,         "pictureFullPath": null,         "pictureThumbPath": null,         "translations": "{\"defaultLanguage\":\"en_US\"}",         "gender": null,         "locale": "en_US",         "timeZone": "Europe/Belgrade"     },     "paymentId": 320,     "packageCustomerId": null }

    You can also comment out the ameliaNonce validation in Controller.php (src/Application/Controller/Controller.php), lines 110-112:

    if (!$command->validateNonce($request)) {
     return $response->withStatus(self::STATUS_FORBIDDEN);
    }

    However, that will revert after every update from Amelia.

    If you have any more questions please open a new separate ticket for each question and we will gladly help you there.

    We wish you all the best.

    Have a nice day. 


    Kind Regards, 

    Marko Davidovic
    [email protected]

    Rate my support

    wpDataTables: FAQ | Facebook | Twitter | InstagramFront-end and back-end demo | Docs

    Amelia: FAQ | Facebook | Twitter | InstagramAmelia demo sites | Docs | Discord Community

    You can try wpDataTables add-ons before purchasing on these sandbox sites:

    Powerful Filters | Gravity Forms Integration for wpDataTables | Formidable Forms Integration for wpDataTables | Master-Detail Tables