InstantAngebot API

Inhalt

  1. Allgemeines
  2. Schema
    1. InstantAnfrage und InstantAngebot
    2. Leistung
      1. Ausstattungen
        1. Kaffeepausen
        2. Mahlzeiten
        3. Getränke
        4. Technik
      2. Bestuhlung
  3. InstantAngebot anfragen
    1. Endpunkt
    2. Argumente
    3. Antwort
  4. Beispiel: InstantAnfrage
  5. Beispiel: InstantAngebot
  6. 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
anbieterid
int
Anbieter ID JA Siehe Anbieter API
anreise
string
Anreise Datum
Format YYYY-MM-DD
JA In der Zukunft
abreise
string
Abreise Datum
Format YYYY-MM-DD
JA Max. Dauer der Veranstaltung 10 Tage
uhrzeitvon
string
Beginn der Veranstaltung
Format HH:MM
uhrzeitbis
string
Ende der Veranstaltung
Format HH:MM
leistungen
array[Leistung]
Array von Leistungen JA Min. ein Raum muss je Veranstaltungstag angefragt werden.
channel
string
Channel Name
buchbar
bool
Buchung/Angebot möglich JA Wenn false werden keine weitern InstantAngebot Eigenschaften übergeben, da keine Verfügbarkeit besteht.
waehrung
string
Währung des Angebotes JA Währung Code
ISO 4217
mwst
string
Preise verstehen sich inkl./zzgl. MwSt JA inklusive oder exklusive
gesamt
float
Gesamtkosten des Angebotes JA
ez
float
Preis EZ JA Pro Zimmer/Nacht exkl. Frühstück
dz
float
Preis DZ JA Pro Zimmer/Nacht exkl. Frühstück
fruehstueck
float
Preis Frühstück JA Pro Person
gesamtva
float
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
gesamtvatag
object
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}
mwstnormal
float
MwSt Satz auf Veranstaltungsleistungen JA
mwstzimmer
float
MwSt Satz auf Zimmer exkl. Frühstück JA
mwstfruehstueck
float
MwSt Satz auf Frühstück JA
kostenfreistornierbar
string
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
typ
string
Typ JA
Einer aus
raum: Tagungsraum
technik: Technik
kaffee: Begrüßungskaffee
kpv: Kaffeepause vormittags
kpn: Kaffeepause nachmittags
me: Mittagessen
ae: Abendessen
ez: Einzelzimmer
dz: Doppelzimmer
tagungsgetraenke: Tagungsgetränke
getraenke: Getränke zu einer Mahlzeiten
tag
int
Veranstaltungstag an dem die Leistung benötigt wird JA, wenn zulässig Anreisetag entspr. 1
Nur zulässig bei Typen raum, kaffee, kpv, kpn, me, ae, tagungsgetraenke und getraenke
anzahl
int
Angefragte Menge JA Min. 1
ausstattung
int
Ausstattung der Leistung JA, wenn zulässig Siehe Ausstattungen
Nur zulässig bei Typen kaffee, kpv, kpn, me, ae, tagungsgetraenke, getraenke und technik
pax
int
Anzahl Personen in Raum JA, wenn zulässig Min. 1
Nur zulässig bei Typ raum
bestuhlung
int
Bestuhlung JA, wenn zulässig Siehe Bestuhlung
Nur zulässig bei Typ raum
technik
array[Leistung]
Array von Leistungen vom Typ technik Darf nur Leistungen vom Typ technik enthalten
Nur zulässig bei Typ raum
raumid
int
(Wunsch-) Tagungsraum ID Siehe Anbieter API
Wenn leer, wird der günstigste Raum gewählt
Nur zulässig bei Typ raum
Im InstantAgebot wird dieser Wert mit der ID des angebotenen Raumes ergänzt.
anreise
string
Zimmer Anreise JA, wenn zulässig In der Zukunft
Nur zulässig bei Typ ez oder dz
abreise
string
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
instantanfrage
string
InstantAnfrage als JSON String JA
callback
string
JSONP callback
_jsonp
string
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-----