Inhalt
- Allgemeines
- Schema
- InstantAnfrage und InstantAngebot
- Leistung
- Ausstattungen
- Kaffeepausen
- Mahlzeiten
- Getränke
- Technik
- Bestuhlung
- Ausstattungen
- InstantAngebot anfragen
- Endpunkt
- Argumente
- Antwort
- Beispiel: InstantAnfrage
- Beispiel: InstantAngebot
- Public Key
Version: 01.12.2017
Allgemeines
Mittels der InstantAngebot API können Preise und Verfügbarkeiten eines Anbieters ermittelt werden. Dazu wird eine InstantAnfrage als JSON-Objekt an die InstantAngebot API übergeben. Die Antwort enthält ein InstantAngebot Objekt. Dieses entspricht dem InstantAnfrage Objekt ergänzt um Verfügbarkeits-, Preis-, Steuer und Stornofristinformationen.
Nutzer können diese API vollkommen kostenfrei abfragen und - sofern nutzerseitig entsprechende Vereinbarungen mit den Anbietern bestehen - Buchungen generieren. Durch die Nutzung der API zur Generierung von Buchungen leitet Aloom keinerlei finanziellen Ansprüche (z.B. Kommissionen) an den Nutzer oder den Anbieter her. Ebenso können Nutzer keine Ansprüche an Aloom stellen. Es bleibt dem Nutzer freigestellt eigene Vereinbarungen mit den Anbietern zu treffen.
Wenn Sie unabhängig von Aloom über Ihre eigenen IT Systeme Direktbuchungen mit Anbietern durchführen, können Sie über info@aloom.de einen eigenen Channel Namen kostenfrei anfordern. Sie haben dann die Sicherheit, dass der Anbieter mit Ihnen zusammenarbeiten möchte und dass das InstantAngebot auch Ihren Vereinbarungen entspricht.
Die Antwort der API erfolgt in Form eines kryptografisch signierten JSON Web Tokens und ist mit einem Zeitstempel versehen. Wir empfehlen den Token bei Buchung zu speichern. Mittels unseres unten aufgeführten Public Keys können Nutzer und Anbieter die Unverfälschtheit des InstantAngebotes überprüfen.
Schema
InstantAnfrage und InstantAngebot
Ein InstantAngebot Objekt entspricht einem InstantAnfrage Objekt ergänzt um weitere angebotsspezifische Eigenschaften. Im InstantAngebot werden Eigenschaften ohne Wert ausgelassen (undefined, z.B. keine Zimmerpreise, falls nicht angefragt).
| Name | Beschreibung | Pflicht | Instant-Angebot | Hinweis |
|---|---|---|---|---|
anbieteridint |
Anbieter ID | JA | Siehe Anbieter API | |
anreisestring |
Anreise Datum Format YYYY-MM-DD |
JA | In der Zukunft | |
abreisestring |
Abreise Datum Format YYYY-MM-DD |
JA | Max. Dauer der Veranstaltung 10 Tage | |
uhrzeitvonstring |
Beginn der Veranstaltung Format HH:MM |
|||
uhrzeitbisstring |
Ende der Veranstaltung Format HH:MM |
|||
leistungenarray[Leistung] |
Array von Leistungen | JA | Min. ein Raum muss je Veranstaltungstag angefragt werden. | |
channelstring |
Channel Name | |||
buchbarbool |
Buchung/Angebot möglich | JA | Wenn false werden keine weitern InstantAngebot Eigenschaften übergeben, da keine Verfügbarkeit besteht. |
|
waehrungstring |
Währung des Angebotes | JA | Währung Code ISO 4217 |
|
mwststring |
Preise verstehen sich inkl./zzgl. MwSt | JA | inklusive oder exklusive |
|
gesamtfloat |
Gesamtkosten des Angebotes | JA | ||
ezfloat |
Preis EZ | JA | Pro Zimmer/Nacht exkl. Frühstück | |
dzfloat |
Preis DZ | JA | Pro Zimmer/Nacht exkl. Frühstück | |
fruehstueckfloat |
Preis Frühstück | JA | Pro Person | |
gesamtvafloat |
Gesamtkosten aller Veranstaltungsleistungen (Räume, Technik, F&B) | JA | Enthält die Kosten aller angefragten Leistungen vom Typ raum, technik, kaffee, kpv, kpn, me, ae, tagungsgetraenke, getraenke |
|
gesamtvatagobject |
Kosten aller Veranstaltungsleistungen (Räume, Technik, F&B) gesplittet nach Tagen | JA | z.B. 2-tägige Veranstaltung mit gesamtva 250:{'1': 150, '2': 100} |
|
mwstnormalfloat |
MwSt Satz auf Veranstaltungsleistungen | JA | ||
mwstzimmerfloat |
MwSt Satz auf Zimmer exkl. Frühstück | JA | ||
mwstfruehstueckfloat |
MwSt Satz auf Frühstück | JA | ||
kostenfreistornierbarstring |
Datum bis zu dem einschließlich eine Buchung dieses InstantAngebotes kostenfrei storniert werden könnte Format YYYY-MM-DD |
JA | Wenn nicht aufgeführt (undefined) keine kostenfreie Stornierung (mehr) möglich |
Leistung
| Name | Beschreibung | Pflicht | Hinweis |
|---|---|---|---|
typstring |
Typ | JA | Einer aus raum: Tagungsraumtechnik: Technikkaffee: Begrüßungskaffeekpv: Kaffeepause vormittagskpn: Kaffeepause nachmittagsme: Mittagessenae: Abendessenez: Einzelzimmerdz: Doppelzimmertagungsgetraenke: Tagungsgetränkegetraenke: Getränke zu einer Mahlzeiten |
tagint |
Veranstaltungstag an dem die Leistung benötigt wird | JA, wenn zulässig | Anreisetag entspr. 1Nur zulässig bei Typen raum, kaffee, kpv, kpn, me, ae, tagungsgetraenke und getraenke |
anzahlint |
Angefragte Menge | JA | Min. 1 |
ausstattungint |
Ausstattung der Leistung | JA, wenn zulässig | Siehe Ausstattungen Nur zulässig bei Typen kaffee, kpv, kpn, me, ae, tagungsgetraenke, getraenke und technik |
paxint |
Anzahl Personen in Raum | JA, wenn zulässig | Min. 1Nur zulässig bei Typ raum |
bestuhlungint |
Bestuhlung | JA, wenn zulässig | Siehe Bestuhlung Nur zulässig bei Typ raum |
technikarray[Leistung] |
Array von Leistungen vom Typ technik |
Darf nur Leistungen vom Typ technik enthaltenNur zulässig bei Typ raum |
|
raumidint |
(Wunsch-) Tagungsraum ID | Siehe Anbieter API Wenn leer, wird der günstigste Raum gewählt Nur zulässig bei Typ raumIm InstantAgebot wird dieser Wert mit der ID des angebotenen Raumes ergänzt. |
|
anreisestring |
Zimmer Anreise | JA, wenn zulässig | In der Zukunft Nur zulässig bei Typ ez oder dz |
abreisestring |
Zimmer Abreise | JA, wenn zulässig | Später als Zimmer Anreise Nur zulässig bei Typ ez oder dz |
Ausstattungen
Kaffeepausen: kaffee, kpv, kpn
| Ausstattung | Beschreibung |
|---|---|
1 |
nur Kaffee/Tee |
2 |
mit Obst |
3 |
mit Joghurt, Müsli und Obst |
4 |
mit Kuchen |
5 |
mit herzhafter Beilage |
6 |
mit süßer Beilage |
7 |
ein Glas Sekt / Sekt-Orange |
8 |
mit halben belegten Brötchen |
9 |
mit Butterbrezeln |
10 |
mit Kekse |
11 |
mit Fingerfood |
Mahlzeiten: me, ae
| Ausstattung | Beschreibung |
|---|---|
1 |
Tellergericht |
2 |
2-Gang Menü o. Buffet |
3 |
3-Gang Menü o. Buffet |
4 |
4-Gang Menü |
5 |
5-Gang Menü |
6 |
Buffet |
7 |
Suppe und halbe belegte Brötchen |
8 |
Imbiß |
9 |
Fingerfood-Buffet |
Getränke: tagungsgetraenke, getraenke
| Ausstattung | Beschreibung |
|---|---|
1 |
Wasser unlimited |
2 |
Wasser und Saft unlimited |
3 |
Wasser, Saft und Softs unlimited |
4 |
Wasser und Kaffee/Tee unlimited |
5 |
Wasser, Saft und Kaffee/Tee unlimited |
6 |
Wasser, Saft, Softs und Kaffee/Tee unlimited |
7 |
1x0,2l pro Person, alkoholfrei |
8 |
1x0,2l Wasser, Saft, Bier oder Wein |
9 |
1x0,3l Softgetränk |
Technik
| Ausstattung | Beschreibung |
|---|---|
1 |
Beamer inkl. Beamertisch |
2 |
Leinwand |
3 |
Flipchart |
4 |
Pinnwand |
5 |
Moderatorenkoffer |
6 |
Handmikrofon |
7 |
Ansteckmikrofon |
8 |
Beschallungsanlage |
9 |
Internetzugang |
10 |
Telefonanschluss |
Bestuhlung
| Bestuhlung | Beschreibung |
|---|---|
1 |
Bankett |
2 |
Block |
3 |
Parlament |
4 |
Stuhlreihen |
5 |
U-Form |
6 |
Stuhlkreis |
InstantAngebot anfragen
Endpunkt
GET https://mice.aloom.de/api/v1/instantangebot
Argumente
| Name | Beschreibung | Pflicht |
|---|---|---|
instantanfragestring |
InstantAnfrage als JSON String | JA |
callbackstring |
JSONP callback | |
_jsonpstring |
JSONP callback |
Antwort
Die Antwort erfolgt in Form eines JSON Web Token (HS256) mit den Claims iat (Zeitstempel) und instantangebot (InstantAngebot Objekt) mit dem Content Type text/plain und dem CORS Header Access-Control-Allow-Origin: *.
Der JWT Token kann browserseitig mittels jwt-decode (https://github.com/auth0/jwt-decode) ohne Verifizierung dekodiert werden. Ggf. möchten Sie den Token im weiteren Prozess verifizieren und speichern.
Im ersten Schritt sollte anhand der Eigenschaft buchbar ermittelt werden, ob eine Verfügbarkeit besteht. Sofern keine Verfügbarkeit der angefragten Leistungen besteht, werden keine weiteren InstantAngebot Eigenschaften übergeben.
Beispiel: InstantAnfrage
{
"anbieterid": 193,
"channel": "ALOOM",
"anreise": "2017-12-02",
"abreise": "2017-12-03",
"leistungen": [{
"typ": "raum",
"tag": "1",
"anzahl": 1,
"pax": 10,
"bestuhlung": "5",
"technik": [{
"typ": "technik",
"anzahl": 1,
"ausstattung": 1
}, {
"typ": "technik",
"anzahl": 1,
"ausstattung": 2
}, {
"typ": "technik",
"anzahl": 1,
"ausstattung": 3
}, {
"typ": "technik",
"anzahl": 1,
"ausstattung": 4
}]
}, {
"typ": "raum",
"tag": "2",
"anzahl": 1,
"pax": 10,
"bestuhlung": "5",
"technik": [{
"typ": "technik",
"anzahl": 1,
"ausstattung": 1
}, {
"typ": "technik",
"anzahl": 1,
"ausstattung": 2
}, {
"typ": "technik",
"anzahl": 1,
"ausstattung": 3
}, {
"typ": "technik",
"anzahl": 1,
"ausstattung": 4
}]
}, {
"typ": "kpv",
"anzahl": 10,
"tag": 1,
"ausstattung": 1
}, {
"typ": "me",
"anzahl": 10,
"tag": 1,
"ausstattung": 3
}, {
"typ": "kpn",
"anzahl": 10,
"tag": 1,
"ausstattung": 6
}, {
"typ": "tagungsgetraenke",
"anzahl": 10,
"tag": 1,
"ausstattung": 2
}, {
"typ": "kpv",
"anzahl": 10,
"tag": 2,
"ausstattung": 1
}, {
"typ": "me",
"anzahl": 10,
"tag": 2,
"ausstattung": 3
}, {
"typ": "kpn",
"anzahl": 10,
"tag": 2,
"ausstattung": 6
}, {
"typ": "tagungsgetraenke",
"anzahl": 10,
"tag": 2,
"ausstattung": 2
}, {
"typ": "ez",
"anzahl": 1,
"anreise": "2017-12-01",
"abreise": "2017-12-03"
}, {
"typ": "ez",
"anzahl": 4,
"anreise": "2017-12-02",
"abreise": "2017-12-03"
}, {
"typ": "dz",
"anzahl": 1,
"anreise": "2017-12-02",
"abreise": "2017-12-03"
}]
};
Beispiel: InstantAngebot
Als JSON Web Token:
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpYXQiOjE1MTIwNTYzODksImluc3RhbnRhbmdlYm90Ijp7ImFuYmlldGVyaWQiOjE5MywiY2hhbm5lbCI6IkFMT09NIiwiYW5yZWlzZSI6IjIwMTctMTItMDIiLCJhYnJlaXNlIjoiMjAxNy0xMi0wMyIsImxlaXN0dW5nZW4iOlt7InR5cCI6InJhdW0iLCJ0YWciOiIxIiwiYW56YWhsIjoxLCJwYXgiOjEwLCJiZXN0dWhsdW5nIjoiNSIsInRlY2huaWsiOlt7InR5cCI6InRlY2huaWsiLCJhbnphaGwiOjEsImF1c3N0YXR0dW5nIjoxfSx7InR5cCI6InRlY2huaWsiLCJhbnphaGwiOjEsImF1c3N0YXR0dW5nIjoyfSx7InR5cCI6InRlY2huaWsiLCJhbnphaGwiOjEsImF1c3N0YXR0dW5nIjozfSx7InR5cCI6InRlY2huaWsiLCJhbnphaGwiOjEsImF1c3N0YXR0dW5nIjo0fV0sInJhdW1pZCI6Ijk1NCJ9LHsidHlwIjoicmF1bSIsInRhZyI6IjIiLCJhbnphaGwiOjEsInBheCI6MTAsImJlc3R1aGx1bmciOiI1IiwidGVjaG5payI6W3sidHlwIjoidGVjaG5payIsImFuemFobCI6MSwiYXVzc3RhdHR1bmciOjF9LHsidHlwIjoidGVjaG5payIsImFuemFobCI6MSwiYXVzc3RhdHR1bmciOjJ9LHsidHlwIjoidGVjaG5payIsImFuemFobCI6MSwiYXVzc3RhdHR1bmciOjN9LHsidHlwIjoidGVjaG5payIsImFuemFobCI6MSwiYXVzc3RhdHR1bmciOjR9XSwicmF1bWlkIjoiOTU0In0seyJ0eXAiOiJrcHYiLCJhbnphaGwiOjEwLCJ0YWciOjEsImF1c3N0YXR0dW5nIjoxfSx7InR5cCI6Im1lIiwiYW56YWhsIjoxMCwidGFnIjoxLCJhdXNzdGF0dHVuZyI6M30seyJ0eXAiOiJrcG4iLCJhbnphaGwiOjEwLCJ0YWciOjEsImF1c3N0YXR0dW5nIjo2fSx7InR5cCI6InRhZ3VuZ3NnZXRyYWVua2UiLCJhbnphaGwiOjEwLCJ0YWciOjEsImF1c3N0YXR0dW5nIjoyfSx7InR5cCI6ImtwdiIsImFuemFobCI6MTAsInRhZyI6MiwiYXVzc3RhdHR1bmciOjF9LHsidHlwIjoibWUiLCJhbnphaGwiOjEwLCJ0YWciOjIsImF1c3N0YXR0dW5nIjozfSx7InR5cCI6ImtwbiIsImFuemFobCI6MTAsInRhZyI6MiwiYXVzc3RhdHR1bmciOjZ9LHsidHlwIjoidGFndW5nc2dldHJhZW5rZSIsImFuemFobCI6MTAsInRhZyI6MiwiYXVzc3RhdHR1bmciOjJ9LHsidHlwIjoiZXoiLCJhbnphaGwiOjEsImFucmVpc2UiOiIyMDE3LTEyLTAxIiwiYWJyZWlzZSI6IjIwMTctMTItMDMifSx7InR5cCI6ImV6IiwiYW56YWhsIjo0LCJhbnJlaXNlIjoiMjAxNy0xMi0wMiIsImFicmVpc2UiOiIyMDE3LTEyLTAzIn0seyJ0eXAiOiJkeiIsImFuemFobCI6MSwiYW5yZWlzZSI6IjIwMTctMTItMDIiLCJhYnJlaXNlIjoiMjAxNy0xMi0wMyJ9XSwiYnVjaGJhciI6dHJ1ZSwid2FlaHJ1bmciOiJFVVIiLCJtd3N0IjoiaW5rbHVzaXZlIiwiZ2VzYW10IjoyMTU3LCJleiI6ODcsImR6Ijo4NywiZnJ1ZWhzdHVlY2siOjExLCJnZXNhbXR2YSI6MTQ2MCwiZ2VzYW10dmF0YWciOnsiMSI6NzMwLCIyIjo3MzB9LCJnZXNhbXR6aW1tZXIiOjYwOSwiZ2VzYW10ZnJ1ZWhzdHVlY2siOjg4LCJtd3N0bm9ybWFsIjoxOSwibXdzdHppbW1lciI6NywibXdzdGZydWVoc3R1ZWNrIjoxOX19.EtUY1xURCW7FaD8EgWnp9YwRbwLyq0zcQCGNX9_O5qb9pp_BGgZnWWY4EwKGVrAt-BcXQbXl-JRgLl9dsy53627O0FDA4h3G6U3GtHVOLBF5nDc-yF63MoQSaAruJTKHDt98WyJ0vInOjeKYrWu0ChHLs11PrT_lf0eVIARfHo37C9ZKp5aVxJ7s9Omd_RZuM0gJdjoE46PPA0Gp8SKXSBC5ZHfN2AYJbyvcfPeCbI18fNk2HN9fezbxo7jfeBcUPMUSQEOePXPo_RSkKuUFuvnKuCAuwfr5wiqnx8HBsQCZ8ubKi9rFI9AkPx18QJCRD3eiNnbLaUjhmNFBcYGt6hTsoVoSQQHa4lUgqura-AdV1hnJUuo1OVaL0I9_r26odj9c6ictY05PxWyyjC0BdhYexjsXbYAaidW9D6_SZyQuOTzPVMwG6GVPq5k7Gzt8k8OW3wgo_Qhnm7GXIqhROS2qk22skGdAI4EFUmpZRY77CuVXh1r8sHDMAt2xfqHaEStoaUKTJUVOOfnClGLC3V3K2Bnjj194pIqvJ5o_7TeoCvZSHVeE1AFWgPpqwJGXWoYwMbADUBDJ2M8xKGoMwp25OVAH4XxKU0aSHMiKoHJdUmkCvFjLV0Bcjy-KybZGBiP30EUbuNCpznZUf5KoyQKX_XVA7KtRK6PQvBDaYt8
Als InstantAngebot:
{
"anbieterid": 193,
"channel": "ALOOM",
"anreise": "2017-12-02",
"abreise": "2017-12-03",
"leistungen": [{
"typ": "raum",
"tag": "1",
"anzahl": 1,
"pax": 10,
"bestuhlung": "5",
"technik": [{
"typ": "technik",
"anzahl": 1,
"ausstattung": 1
}, {
"typ": "technik",
"anzahl": 1,
"ausstattung": 2
}, {
"typ": "technik",
"anzahl": 1,
"ausstattung": 3
}, {
"typ": "technik",
"anzahl": 1,
"ausstattung": 4
}],
"raumid": "954"
}, {
"typ": "raum",
"tag": "2",
"anzahl": 1,
"pax": 10,
"bestuhlung": "5",
"technik": [{
"typ": "technik",
"anzahl": 1,
"ausstattung": 1
}, {
"typ": "technik",
"anzahl": 1,
"ausstattung": 2
}, {
"typ": "technik",
"anzahl": 1,
"ausstattung": 3
}, {
"typ": "technik",
"anzahl": 1,
"ausstattung": 4
}],
"raumid": "954"
}, {
"typ": "kpv",
"anzahl": 10,
"tag": 1,
"ausstattung": 1
}, {
"typ": "me",
"anzahl": 10,
"tag": 1,
"ausstattung": 3
}, {
"typ": "kpn",
"anzahl": 10,
"tag": 1,
"ausstattung": 6
}, {
"typ": "tagungsgetraenke",
"anzahl": 10,
"tag": 1,
"ausstattung": 2
}, {
"typ": "kpv",
"anzahl": 10,
"tag": 2,
"ausstattung": 1
}, {
"typ": "me",
"anzahl": 10,
"tag": 2,
"ausstattung": 3
}, {
"typ": "kpn",
"anzahl": 10,
"tag": 2,
"ausstattung": 6
}, {
"typ": "tagungsgetraenke",
"anzahl": 10,
"tag": 2,
"ausstattung": 2
}, {
"typ": "ez",
"anzahl": 1,
"anreise": "2017-12-01",
"abreise": "2017-12-03"
}, {
"typ": "ez",
"anzahl": 4,
"anreise": "2017-12-02",
"abreise": "2017-12-03"
}, {
"typ": "dz",
"anzahl": 1,
"anreise": "2017-12-02",
"abreise": "2017-12-03"
}],
"buchbar": true,
"waehrung": "EUR",
"mwst": "inklusive",
"gesamt": 2157,
"ez": 87,
"dz": 87,
"fruehstueck": 11,
"gesamtva": 1460,
"gesamtvatag": {
"1": 730,
"2": 730
},
"gesamtzimmer": 609,
"gesamtfruehstueck": 88,
"mwstnormal": 19,
"mwstzimmer": 7,
"mwstfruehstueck": 19
};
Public Key
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA7rwuF9IQZuESlQfxjSwL
BCZlguKCTBerwK1VVzo2QLRX4SA4j5H0u3LLWCeKWo+zsJlj2pvRiwbafns9bIpO
k1wl8WpzGGJCaGS2w1dIKauqJtT2E9k83QuP13ZQV/WwcOUiR4hccxs/L06G7xP3
Mr8NJ455TorgRCGgj0EWarL15d9WJMeyKt0tCTGfeOfqHYtyAAWkqRbUODU8aofU
5H3bP+tDGnjHKqzx4vrcF05oueQ+UL2Z9Z1mue7+9nL4hh0epGQYHT+Lopm0wiFn
LhlNhbdLihtO9I3oBRJVXuu9PHDvTNXaxJYX7uQaiJGwvQNvuZ8OYv14KYxX/mKU
9BqPqVL2NsrJO2D9nVwzJARSEobhB4CfcimQK6EdD+sitfUPoYI5CZYgE0UYDz5G
8c1pJfPxfjzF5+fJuclkv43030wUKuOMH1kbdwDlUlh8uEmt3OBhg6uDJtiqwS7L
kSlIF1BU537HYq+n2jTtBMKcTWItCPczrDva9+Oxpg3nEhoXlX4nwt4ETa579WWg
3jXf8xDFK0gq8P1mn8Mq7bJzA/S14y08wYJGAySznsBugzBnFmYVQHLYIH4WX+pc
hlueBDcO1PswHmGXJ3XBiHF5dQfvoGvSPzrpfO8i394jOIVUEKwWB6Z77LFywKBi
UzEWIrkRkWP0rrIvMx5QN7UCAwEAAQ==
-----END PUBLIC KEY-----