API: foglalások
Időpont-, esemény- és csomagfoglalás létrehozása, a foglalás utáni műveletek futtatása, átütemezés, lemondás és törlés az API-val.
A foglalások végpontjaival külső rendszerből (egyedi alkalmazásból, CRM-ből vagy köztes szolgáltatásból) hozhatsz létre időpont-, esemény- és csomagfoglalást, ütemezhetsz át, mondhatsz le és törölhetsz foglalásokat.
Az API az Elite licenchez tartozik, használatához programozási ismeret kell, a szokásos támogatás nem terjed ki rá. A hitelesítés az Amelia fejlécben küldött API-kulccsal történik (részletek). Az alap útvonal: {{az_oldalad_URL-je}}/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1.
| Művelet | Metódus | Útvonal |
|---|---|---|
| Foglalás létrehozása | POST |
/bookings |
| Foglalás utáni műveletek futtatása | POST |
/bookings/success/{{foglalas_id}} |
| Átütemezés | POST |
/bookings/reassign/{{foglalas_id}} |
| Lemondás | POST |
/bookings/cancel/{{foglalas_id}} |
| Törlés | POST |
/bookings/delete/{{foglalas_id}} |
Időpontfoglalás létrehozása
Szekció neve “Időpontfoglalás létrehozása”A type mező értéke appointment.
Kötelező tulajdonságok
| Tulajdonság | Típus | Leírás |
|---|---|---|
type |
szöveg | A foglalás típusa: appointment, event vagy package. |
bookings |
tömb | Egyelemű tömb: a foglalás objektuma a vásárló és az egyéni mezők adataival. |
bookingStart |
szöveg | Az időpont kezdete ÉÉÉÉ-HH-NN ÓÓ:PP formában. |
payment |
objektum | A fizetés adatai: gateway, currency, data. |
locationId |
egész | A helyszín azonosítója. |
providerId |
egész | A munkavállaló azonosítója. |
serviceId |
egész | A szolgáltatás azonosítója. |
Opcionális tulajdonságok
| Tulajdonság | Típus | Leírás |
|---|---|---|
locale |
szöveg | A vásárló nyelve, például hu_HU. |
timeZone |
szöveg | A vásárló időzónája, például Europe/Budapest. |
recurring |
tömb | Az ismétlődő időpontok, az első nélkül. |
couponCode |
szöveg | Kuponkód. |
runInstantPostBookingActions |
logikai | Lefussanak-e a foglalás utáni műveletek (e-mailek, Google és Outlook naptáresemény, Zoom-megbeszélés, webhookok) ugyanebben a hívásban. Alapértelmezetten false; ilyenkor utána a /bookings/success/{{foglalas_id}} végpontot kell meghívnod. |
Kérés:
curl --location 'https://pelda.hu/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/bookings' \--header 'Content-Type: application/json' \--header 'Amelia: AZ_API_KULCSOD' \--data-raw '{ "type": "appointment", "bookings": [ { "extras": [], "customFields": { "1": { "label": "text", "type": "text", "value": "Egyéni mező értéke" } }, "deposit": true, "locale": "hu_HU", "utcOffset": null, "persons": 1, "customerId": null, "customer": { "id": null, "firstName": "Anna", "lastName": "Minta", "email": "[email protected]", "phone": "", "countryPhoneIso": "", "externalId": null }, "duration": 1800 } ], "payment": { "gateway": "onSite", "currency": "HUF", "data": {} }, "bookingStart": "2026-02-12 13:00", "notifyParticipants": 1, "locationId": 2, "providerId": 1, "serviceId": 1}'A válasz message mezője „Successfully added booking”, a data objektum pedig a létrejött időpontot (appointment), a foglalást (booking), a vásárlót (customer), a szolgáltatást (bookable), a fizetést (payment, paymentId), az UTC-ben számolt idősávot (utcTime) és a vásárlói felület címét (customerCabinetUrl) tartalmazza.
Eseményfoglalás létrehozása
Szekció neve “Eseményfoglalás létrehozása”A type mező értéke event.
Kötelező tulajdonságok: type, bookings, payment (mint fent), valamint az eventId (egész), az esemény azonosítója.
Opcionális tulajdonságok: locale, timeZone, couponCode és runInstantPostBookingActions, ugyanúgy, mint az időpontfoglalásnál.
Ha az esemény nem használ jegyeket, a persons mezőben add meg a létszámot. Ha jegyeket használ, a foglalás objektumában a ticketsData tömböt töltsd ki: elemei a jegy azonosítóját (eventTicketId), a darabszámot (persons) és az árat (price) tartalmazzák.
curl --location 'https://pelda.hu/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/bookings' \--header 'Content-Type: application/json' \--header 'Amelia: AZ_API_KULCSOD' \--data-raw '{ "type": "event", "bookings": [ { "customer": { "email": "[email protected]", "externalId": null, "firstName": "Béla", "lastName": "Példa", "phone": "", "countryPhoneIso": "hu" }, "customFields": { "1": { "label": "text", "value": "", "type": "text" } }, "customerId": 0, "persons": 1, "ticketsData": [ { "eventTicketId": 25, "persons": 0, "price": 20 }, { "eventTicketId": 24, "persons": 2, "price": 10 } ], "utcOffset": null, "deposit": false } ], "payment": { "amount": "40.00", "gateway": "onSite", "currency": "HUF" }, "recaptcha": false, "locale": "hu_HU", "timeZone": "Europe/Budapest", "couponCode": "", "eventId": 54}'A válasz az esemény adatait (event, benne a foglalásokkal, időszakokkal és jegyekkel), a foglalást, a vásárlót és a fizetést adja vissza.
Csomagfoglalás létrehozása
Szekció neve “Csomagfoglalás létrehozása”A type mező értéke package.
Kötelező tulajdonságok: type, bookings, payment (mint fent), a packageId (egész, a csomag azonosítója) és a package (tömb: a csomagból lefoglalt időpontok).
Opcionális tulajdonságok:
| Tulajdonság | Típus | Leírás |
|---|---|---|
locale, timeZone, couponCode, runInstantPostBookingActions |
Mint az időpontfoglalásnál. | |
packageRules |
tömb | Az egyes szolgáltatásokhoz választott munkavállaló és helyszín. Ezeket használja a rendszer, amikor a vásárló a vásárlói felületen tovább foglal a csomagjából, és a munkavállaló kiválasztása ki van kapcsolva. |
A package tömb elemei egy-egy időpontot írnak le: bookingStart, serviceId, providerId, locationId, utcOffset, notifyParticipants.
curl --location 'https://pelda.hu/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/bookings' \--header 'Content-Type: application/json' \--header 'Amelia: AZ_API_KULCSOD' \--data-raw '{ "type": "package", "bookings": [ { "customFields": { "2": { "label": "Text", "type": "text", "value": "" } }, "deposit": true, "locale": "hu_HU", "utcOffset": null, "customerId": null, "customer": { "firstName": "Nóra", "lastName": "Teszt", "email": "[email protected]", "phone": "", "countryPhoneIso": "", "externalId": null, "translations": null }, "persons": 1 } ], "payment": { "gateway": "onSite", "currency": "HUF", "data": {} }, "locale": "hu_HU", "timeZone": "Europe/Budapest", "package": [ { "bookingStart": "2026-03-05 07:30", "serviceId": 1, "providerId": 4, "locationId": 8, "utcOffset": 120, "notifyParticipants": 1 }, { "bookingStart": "2026-03-04 10:00", "serviceId": 11, "providerId": 4, "locationId": 8, "utcOffset": 120, "notifyParticipants": 1 } ], "packageId": 1, "packageRules": [ { "serviceId": 1, "providerId": 2, "locationId": 1 }, { "serviceId": 11, "providerId": null, "locationId": null } ], "utcOffset": 120, "couponCode": null}'A válasz package tömbje a csomagból lefoglalt időpontokat tartalmazza, mellette a packageCustomerId a csomagvásárlás azonosítója.
Foglalás utáni műveletek futtatása
Szekció neve “Foglalás utáni műveletek futtatása”A /bookings/success/{{foglalas_id}} végpont lefuttatja azokat a műveleteket, amelyeket a foglalás létrehozásakor kihagytál: értesítések küldése, Google és Outlook naptáresemény létrehozása, Zoom-megbeszélés létrehozása, webhookok hívása.
| Tulajdonság | Típus | Leírás |
|---|---|---|
type |
szöveg | appointment, event vagy package. |
appointmentStatusChanged |
logikai | Megváltozott-e az időpont állapota a foglalás hozzáadása után. |
customerId |
egész | A vásárló azonosítója. |
paymentId |
egész | A fizetés azonosítója. |
packageCustomerId |
egész | A csomagvásárlás azonosítója, csomagfoglalásnál kötelező. |
packageId |
egész | A csomag azonosítója, csomagfoglalásnál kötelező. |
recurring |
tömb | Az ismétlődő időpontok, ismétlődő foglalásnál kötelező. |
curl --location 'https://pelda.hu/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/bookings/success/900' \--header 'Content-Type: application/json' \--header 'Amelia: AZ_API_KULCSOD' \--data '{ "type": "appointment", "appointmentStatusChanged": false, "recurring": [], "packageId": null, "customerId": 64, "paymentId": 916, "packageCustomerId": null}'Foglalás átütemezése
Szekció neve “Foglalás átütemezése”A /bookings/reassign/{{foglalas_id}} végpont egy időpont dátumát és időpontját módosítja.
| Tulajdonság | Típus | Leírás |
|---|---|---|
bookingStart |
szöveg | Kötelező. Az új kezdet ÉÉÉÉ-HH-NN ÓÓ:PP formában. |
utcOffset |
egész | Opcionális. Az UTC-eltolás percben. |
timeZone |
szöveg | Opcionális. Az időzóna, például Europe/Budapest. |
curl --location 'https://pelda.hu/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/bookings/reassign/975' \--header 'Content-Type: application/json' \--header 'Amelia: AZ_API_KULCSOD' \--data '{ "bookingStart": "2026-01-09 09:30", "utcOffset": null, "timeZone": "Europe/Budapest" }'A válasz tartalmazza a módosított foglalást (booking), a régi időpontot (oldAppointment), az új vagy már létező időpontot (newAppointment, existingAppointment) és az eredeti időpont adatait (initialAppointmentDateTime).
Foglalás lemondása
Szekció neve “Foglalás lemondása”A /bookings/cancel/{{foglalas_id}} végpont lemondja a foglalást. A kérés törzsében a type mezőt add meg.
curl --location 'https://pelda.hu/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/bookings/cancel/965' \--header 'Content-Type: application/json' \--header 'Amelia: AZ_API_KULCSOD' \--data '{ "type": "appointment" }'A válaszban a foglalás és az időpont állapota canceled.
Foglalás törlése
Szekció neve “Foglalás törlése”A /bookings/delete/{{foglalas_id}} végpont törli a foglalást.
curl --location --request POST 'https://pelda.hu/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/bookings/delete/974' \--header 'Amelia: AZ_API_KULCSOD'A válasz jelzi, hogy a foglalás (bookingDeleted) és az időpont (appointmentDeleted) törlődött-e.
Amire figyelj
Szekció neve “Amire figyelj”- Ha a
runInstantPostBookingActionsértékefalse, a foglalás értesítések, naptáresemények, Zoom-megbeszélés és webhookok nélkül jön létre. Ezeket a/bookings/success/{{foglalas_id}}hívással pótolhatod. - Eseményfoglalásnál jegyek nélküli eseményen a
persons, jegyes eseményen aticketsDatamezőt használd. - Mindig a saját Amelia-telepítésed valódi azonosítóit add meg (
serviceId,providerId,locationId,eventId,packageId). - Ha az integrációd több időzónában is dolgozik, a
timeZoneés azutcOffsetmezőt következetesen használd.
Készült: