API-Dokumentation

Nutzen Sie unser API für Entwickler, um Ihre eigene Buchungsschnittstelle zu erstellen. Sie können jede Lösung erstellen, die Sie sich wünschen, vom einfachsten Widget zur multifunktionalen Applikation mit an Ihre Geschäftserfordernisse individuell angepassten Funktionalitäten.

Das SimplyBook.me Application Programming Interface nutzt das JSON-RPC 2.0 Protokoll.

Sehen Sie ein Beispiel einer API-basierten Buchungsschnittstelle und lesen Sie den Quellcode dieser Lösung.

Autorisierung

Simplybook-API-Methoden erfordern eine Authentifizierung. Für die Authentifizierung in der Simplybook-API, benötigen Sie einen Access-Key — Access-Token. Um dieses Access-Token zu erhalten, sollten Sie die JSON-RPC-Methode getToken auf http://user-api aufrufen. Der Dienst simplybook.me/login übergibt Ihren persönlichen API-Key. Sie können Ihren API-Key über die Administrationsoberfläche kopieren: Gehen Sie zum Link 'Plugins' und wählen Sie das API-Plugin 'Einstellungen'. Dann müssen Sie Remote-Zugriff zum SimplyBook.me-API installieren. Ihre Anfrage sollte die folgenden Header enthalten:

Der Zugriffstoken kann sowohl clientseitig, als auch von Ihrem Server bezogen werden, wobei die letztere Methode, die sicherere ist.

Sie können die Javascript JSON-RPC-Client-Library und php JSON-RPC-Client-Library aus unseren Beispielen nutzen und für die Entwicklung Ihrer eigenen Lösung verwenden.


Kunden API (Company public service) Autorisierung

Autorisierung des clientseitigen Codes

Schlüssel für Token wird bezogen.


    var loginClient = new JSONRpcClient({
        'url': 'https://user-api.simplybook.me' + '/login',
        'onerror': function (error) {},
    });
    var token = loginClient.getToken( YOUR_COMPANY_LOGIN, YOUR_API_KEY);
    

Initialisierung JSON-RPC-Client.


    this.client = new JSONRpcClient({
        'url': 'https://user-api.simplybook.me',
        'headers': {
            'X-Company-Login': YOUR_COMPANY_LOGIN,
            'X-Token': token
        },
        'onerror': function (error) {}
    });
    

Autorisierung des serverseitigen Codes

Schlüssel für Token wird bezogen.


    $loginClient = new JsonRpcClient('https://user-api.simplybook.me' . '/login/');
    $token = $loginClient->getToken(YOUR_COMPANY_LOGIN, YOUR_API_KEY);
    

Initialisierung JSON-RPC-Client.


    $client = new JsonRpcClient( 'https://user-api.simplybook.me' . '/', array(
        'headers' => array(
            'X-Company-Login: ' .  YOUR_COMPANY_LOGIN,
            'X-Token: ' . $token
        )
    ));
    

User/Admin API (Company administration service) Autorisierung

Autorisierung des clientseitigen Codes

Schlüssel für Token wird bezogen.


    var loginClient = new JSONRpcClient({
        'url': {$api_url} + '/login',
        'onerror': function (error) {},
    });
    var token = loginClient.getUserToken( YOUR_COMPANY_LOGIN,  YOUR_USER_LOGIN,  YOUR_USER_PASSWORD);
    

Initialisierung JSON-RPC-Client.


    this.client = new JSONRpcClient({
        'url': 'https://user-api.simplybook.me' + '/admin/',
        'headers': {
            'X-Company-Login': YOUR_COMPANY_LOGIN,
            'X-User-Token': token
        },
        'onerror': function (error) {}
    });
    

Autorisierung des serverseitigen Codes

Schlüssel für Token wird bezogen.


    $loginClient = new JsonRpcClient('https://user-api.simplybook.me' . '/login/');
    $token = $loginClient->getUserToken({YOUR_COMPANY_LOGIN, YOUR_USER_LOGIN, YOUR_USER_PASSWORD);
    

Initialisierung JSON-RPC-Client.


    $client = new JsonRpcClient('https://user-api.simplybook.me' . '/admin/', array(
        'headers' => array(
            'X-Company-Login: ' . YOUR_COMPANY_LOGIN,
            'X-User-Token: ' . $token
        )
    ));
    

Daten werden vom SimplyBook.me-Server geladen

Eine Buchungsseite ist normalerweise eine Seite, auf der Kunden die Dienstleistung auswählen, die sie benötigen, ebenso wie einen Anbieter und einen Termin. Der Kunde gibt anschließend einige Kontaktinformationen ein und bestätigen die Buchung. Einige komplexere Angebote erfordern eventuell die Eingabe weiterer Daten in zusätzliche Felder, wie etwa Gruppenbuchungen oder Buchungen von Terminreihen oder ähnliches. Beschreiben wir nun die Erstellung einer einfachen Buchungsseite. Falls Sie dann noch weitere Funktionalitäten zu Ihrer Seite hinzufügen möchten, können Sie hier die komplette Liste unserer Angebote ansehen SimplyBook.me API Methoden.

Das Erste, was Sie anzeigen sollten, ist eine Liste der Dienstleistungen und eine Liste der Mitarbeiter. Erhalten Sie diese Daten über die Methoden getEventList und getUnitList. Beide geben jeweils eine vollständige Liste der jeweiligen Informationen aus, wodurch Sie vielfältige Möglichkeiten haben Ihre Dienstleistungen und Mitarbeiter auf Ihrer Webseite darzustellen. Um nach Mitarbeitern zu filtern, nutzen Sie das Objekt unit_map der Service-Liste, welche die Informationen über die Mitarbeiter enthält, die die entsprechende Dienstleistung anbieten können.

Codebeispiel für die Generierung einer Dienstleistungsliste


    $services = $client->getEventList();
    // returns array(array(
    //     'id' => 1, - service id
    //     'name' => 'Service 1', - service's name
    //     'description' => 'Describe your service...', - service description
    //     'duration' => 60, - service duration
    //     'hide_duration' => 0, - Hide duration to clients flag,
    //     'picture' => null, - file name of picture or null
    //     'picture_path' => '/uploads/apidemo/event__picture/small/', - full path to picture,
    //     'position' => 1 - service position
    //     'is_active' => 1, - the service is activated
    //     'is_public' => 1, - the service is allowed to book by clients
    // ), ...)
    

Codebeispiel für die Generierung einer Dienstleisterliste


    $services = $client->getUnitList();
    // returns array(array(
    //    'id' => 1, - performer id
    //    'name' => 'Provider 1', - performer name
    //    'phone' => '111111111', - perfomer phone number
    //    'description' => 'Describe your performer...', - performer description
    //    'email' => 'test@gmail.com', - perfomer email,
    //    'is_active' => 1, - the performer is activated
    //    'is_visible' => 1, - the perfomer is visible for clients,
    //    'picture' => null, - file name of picture or null,
    //    'picure_path' => '/uploads/apidemo/unit_group__picture/small/', - full path to picture
    //    'position' => 1, - performer position
    //    'qty' => 1, performer quantity
    // ), ...)
    

Der nächste Schritt für einen Kunden ist die Auswahl eines Datums und einer Zeit für eine Dienstleistung. Wir nutzen eine Bootstrap-Datenauswahl in unserem API-Nutzungsbeispiel. Sie können diese ebenfalls nutzen, oder einen anderen Kalender. Um den ersten Arbeitstag in Ihrem Kalender festzulegen, nutzen Sie die Methode getFirstWorkingDay. Als Parameter kann die Mitarbeiter-ID genutzt werden. Als Resultat wird dann das nächstmögliche Datum ausgegeben, an dem der Mitarbeiter (oder ein beliebiger Mitarbeiter) für eine Buchung zur Verfügung steht.{""|t} Um freie Zeitfeister eines spezifischen Datums anzusehen, benötigen Sie die Methoden getWorkCalendar und getStartTimeMatrix. Die erste Methode zeigt Ihnen die Anfangs- und Endzeiten eines Arbeitstages und eventuelle Ruhetage. Die zweite Methode gibt eine Liste der Zeitfenster aus, welche am entsprechenden Datum buchbar sind.

Codebeispiel für die Generierung von Informationen zu Arbeitstagen


    $year = 2020;
    $month = 3; // March
    $performerId = 1; // Can be null
    $workDaysInfo = $client->getWorkCalendar($year, $month, $performerId);
    // returns array(
    //     '2020-03-01' => array('from' => '09:00:00', 'to' => '18:00:00', 'is_day_off' => 0),
    //     '2020-03-02' => array('from' => '09:00:00', 'to' => '18:00:00', 'is_day_off' => 0),
    //     ...
    //);
    

Codebeispiel für die Generierung einer Startzeitmatrix


    $dateFrom = '2020-03-03';
    $dateTo = '2020-03-04';
    $serviceId = 1;
    $performerId = 1;
    $qty = 1;
    $availableTime = $client->getStartTimeMatrix($dateFrom, $dateTo, $serviceId, $performerId, $qty);
    // returns array(
    //     '2015-03-03' => array('09:00:00', '09:30:00', '10:00:00', ....),
    //     '2015-03-04' => array('09:00:00', '09:30:00', '10:00:00', ....),
    //);
    

Eine weitere nützliche Anwendung ist calculateEndTime. Jede Dienstleistung kann eine individuelle Dauer haben und die Mitarbeiter Ihres Unternehmens haben womöglich unterschiedliche Arbeitszeiten an verschiedenen Tagen. Durch die Anwendung dieser Methode können Sie einem Kunden somit einen konkreten Endzeitpunkt und eine Dienstleistungsdauer für den von ihm gebuchten Service nennen.

Codebeispiel für die Berechnung des Endzeitpunktes


    $startDateTime = '2020-03-03 09:00:00';
    $serviceId = 1;
    $performerId = 1;
    $availableTime = $client->calculateEndTime($startDateTime, $serviceId, $performerId);
    // returns '2020-03-03 10:00:00'
    

Wenn ein Kunde auf den Button „Buchung bestätigen“ klickt, müssen Sie die Methode Book aufrufen. Dies ist die Hauptfunktion, welche alle nötigen Überprüfungen vornimmt und eine neue Buchung im SimplyBook.me-System einfügt. Es werden die Buchungsinformationen, wie die Kundendaten, Namen und Telefonnummer aufgenommen, ebenso wie einige zusätzliche PARAMs. Sehen Sie alle PARAM-Beschreibungen dieser Methode in der API Funktionen-Liste. Die Method Response Book enthält einen eindeutigen Code und andere Details der neuen Buchung oder eine Fehlerliste, falls Probleme aufgetreten sind. Sie können also diese Informationen nutzen, um Ihrem Kunden die Buchungsergebnisse auf praktische und intuitive Art zu zeigen.


Nutzung des geheimen API-Schlüssels

In einigen Fällen kann die Methode Book eine Bestätigung erfordern. Z.B. falls Sie Zahlungen von Kunden annehmen, bestätigen Sie die Buchung erst nachdem die Zahlung eingegangen ist. Die SimplyBook.me API-Methode confirmBookngnimmt die Booking-ID und die sichere Signatur als Parameter auf (eine andere Methode, welche auch eine sichere Signatur benötigt ist cancelBooking). Für eine sichere Signaturerstellung nutzen Sie bitte Ihrengeheimen API-Schlüssel. Sehen Sie im unterstehenden Beispiel die entsprechende Vorgehensweise. Den geheimen Schlüssel finden Sie im Administrationszugang unter dem Link „Einstellungen“ die API-Funktion in der Liste der individuellen Plugins.

Codebeispiel für eine Dienstleistungsbuchung und deren Bestätigung mit einem geheimen API-Schlüssel


    $additionalFields = array(
	'6740d3bce747107ddb9a789cbb78abf3' => 'value1',
	'b0657bafaec7a2c9800b923f959f8163' => 'value2'
    );

    $clientData = array(
        'name' => 'Client name',
        'email' => 'client@email.com',
        'phone' => '+13152108338'
    );

    $bookingsInfo = $client->book($eventId, $unitId, $date, $time, $clientData, $additionalFields);

    if ($bookingsInfo->require_confirm) {
       foreach ($bookingsInfo->bookings as $booking) {
           $sign = md5($booking->id . $booking->hash . YOUR_API_SECRET_KEY);
           $result = $client->confirmBooking($booking->id, $sign);
           echo '<br>Confirm result</b><br />';
           var_dump($result);
        }
    }
    

Codebeispiel für das Hinzufügen zusätzlicher Felder


    $fields = $client->getAdditionalFields($eventId);
    // returns - array(array(
    //		'name' => 'b0657bafaec7a2c9800b923f959f8163', - field name
    //		'title' => 'Test digits', - field title
    //		'type' => 'digits', - field type
    //		'values' => null, - available values for select field type
    //		'default' => null, - default value for field
    //		'is_null' => null, - is filed nullable
    //		'on_main_page' => 1,
    //		'pos' => 1, - field position
    //		'value' => null
    // )), ...)
    

SimplyBook.me Individuelle Funktionen

Falls Ihr Unternehmen zusätzliche Funktionalitäten benötigt, können Sie weitere unserer individuellen Funktionen aktivieren. Die komplette Liste aller Plugins, mit detaillierten Beschreibungen, können Sie in Ihrem Administratorenzugang unter „Plugins“ sehen. Nachdem das entsprechende Plugin aktiviert wurde, werden die entsprechenden API-Methoden aktiviert, so dass Sie diese in Ihrem Code anwenden können.

Buchungsfunktion Codeflow

Bestätigen Sie das SimplyBook.me API über die Funktion loginClient.getToken(companyLogin, apiKey);.


Überprüfen Sie, ob die individuelle Funktion Dienstleistungskategorien aktiviert istisPluginActivated('event_category'), falls ja, dann wird die Liste der Dienstleistungskategorien angezeigt getCategoriesList().


Liste mit Dienstleistungen (Ereignisse) und Dienstleister (Einheiten) über getEventList() und getUnitList() anfordern. Falls das Array „unit_map“ als Leistung verfügbar ist, dann bedeutet das, dass diese Leistung nur von den angegebenen Dienstleistern angeboten werden kann.


Falls die individuelle Funktion Beliebigen Mitarbeiter auswählen aktiviert ist isPluginActivated('any_unit') und im Array „unit_map“ kein bestimmter Zeitraum für die Leistungsanbieter festgelegt ist, dann sollte der Nutzer die Möglichkeit haben die Option Beliebiger Dienstleister auszuwählen, oder den Anbieter manuell zu selektieren. Die manuelle Auswahl von Dienstleistern sollte aber nicht möglich sein, wenn getCompanyParam('any_unit__hide_other_units') aktiviert ist.


Nutzen Sie getStartTimeMatrix ($from as current date, $to as current date, $eventId, $unitId, $count as selected participants value ) um verfügbare Zeitfenster für ein bestimmtes Datum anzuzeigen. $unitId sollte null sein, wenn die Optionbeliebiger Mitarbeiter ausgewählt ist.


Falls Beliebigen Mitarbeiter auswählen aktiviert ist undBeliebiger Mitarbeiter ausgewählt wurde, dann rufen Sie getAvailableUnits($eventId, $dateTime, $count) um verfügbare $unitId zu erhalten


Falls die individuelle Funktion Zusätzlich Felder aktiviert ist isPluginActivated('event_field') rufen Sie die Funktion getAdditionalFields($eventId)auf, um eine Liste der Felder aufzurufen, welche vom Kunden auszufüllen ist.


Rufen Sie book($eventId, $unitId, $date, $time, $clientData, $additional, $count, $batchId) an, um eine Buchung vorzunehmen.


Warum entscheiden sich tausende Kunden für das SimplyBook.me-API?

Eine klare und einfache Benutzeroberfläche. Erstellen Sie problemlos Ihren eigenen Buchungsservice.

Sie können alle Funktionalitäten ganz einfach als individuelle Funktion hinzufügen.

Echtzeit-Planung – Ihre Kunden können zu jeder Zeit und von jedem Ort aus Termine buchen

Unsere App bietet Ihnen viele weitere nützliche Funktionen. Klicken Sie hier, um mehr über unsere Funktionen zu erfahren.

API

Ermöglichen Sie Ihren Kunden Termine zu buchen ohne Ihre App zu verlassen!

Machen Sie Ihre App oder Ihre Webseite bedeutender, ansprechender und profitabler, indem Sie Ihren Kunden das bieten, was sie möchten, nachdem sie auf Ihre Webseite gestoßen sind. Unser API ermöglicht Ihnen ganz einfach einen Jetzt-Buchen-Button direkt in Ihre Webseite einzufügen, so dass Ihre Kunden in Echtzeit Buchungen vornehmen können - und das zu jeder Tages- und Nachtzeit.

Unser API ist Ihr Zugang zu allen Buchungsdaten, die Sie benötigen, um Ihre Planungsfähigkeit aufzubauen und diese dann Ihren Kunden zur Verfügung zu stellen.

Mit unserer Funktionalität begeben wir uns auf ganz neues Terrain und bringen Kunden in direkten Kontakt mit Ihrer geschäftlichen Terminplanung. Wir sind davon überzeugt, dass eine direkte Terminbuchungsmöglichkeit auf Ihrer App oder Webseite nicht nur zu einem theoretischen Potential sondern zu einem tatsächlichen Kundengewinn führt.