Tovább a tartalomhoz

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}}

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:

Terminál
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.

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.

Terminál
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.

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.

Terminál
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.

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ő.
Terminál
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
}'

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.
Terminál
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).

A /bookings/cancel/{{foglalas_id}} végpont lemondja a foglalást. A kérés törzsében a type mezőt add meg.

Terminál
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.

A /bookings/delete/{{foglalas_id}} végpont törli a foglalást.

Terminál
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.

  • Ha a runInstantPostBookingActions értéke false, 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 a ticketsData mező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 az utcOffset mezőt következetesen használd.

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások