API Dokumentation

Die Plattform ferien4kids.at bietet für Veranstalter und Partner eine Programmierschnittstelle (API) zum Austausch von Daten zwischen Systemen. Berechtigte Personen können sich bei Interesse an den Betreiber wenden.

Unsere REST-API arbeitet mit application/json HTTP-Anfragen und -Antworten, die Anfragekörper werden über ressourcenorientierte URLs gesendet. Abfragen sind bitte auf täglich maximal 1.000 je Token zu beschränken.

Autorisierung

Für die Autorisierung verwenden wir Tokens, dieser ist für registrierte Veranstalter auf Anfrage an office@ferien4kids.at erhältlich.

Der Token muss bei jeder Anfrage im Header als "Authorization" übergeben werden, vorangestellt mit dem Schlüsselwort "Token", gefolgt von einem Leerzeichen.

Tokens müssen stets sicher gehandhabt werden und dürfen unter keinen Umständen an Dritte gelangen.

header
Authorization: Token F3r1en4k1DsT0ken

Bestellungen

Liste mit Bestellungen

Abfrage aller Veranstalter zugehörigen Bestellungen, Sortierung nach neuester zuerst.

Query Parameter

anzahl integer

Anzahl der zurückgegebenen Bestellungen default 50 | min 1 | max 200

offset integer

Startwert innerhalb der Liste default 1

startdatum date Y-m-d | null

Bestellungen ab Datum

enddatum date Y-m-d | null

Bestellungen bis Datum

GET /bestellungen
curl https://api.ferien4kids.at/bestellungen?anzahl=2&offset=1&startdatum=2024-01-01&enddatum=2024-01-31

Response 200

anzahl_gesamt integer

Gesamtanzahl aller Bestellungen innerhalb des Suchfilters

bestellungen objects
id integer

ferien4kids interne Bestellung-ID

bestellnr string

7-stellige ferien4kids Bestellnummer (basierend auf ID)

storniert boolean

Bestellung in ferien4kids storniert

bestelldatum datetime Y-m-d H:i:s
buchungsnr string

Wenn Bestellung in ferien4kids freigegeben wurde, eine 7-stellige Buchungsnummer beginnend mit zweistelliger Jahreszahl und fortlaufender Zahl, ansonsten leer

preis_gesamt float

Gesamtbruttopreis der Bestellung

kunde string

Vor- und Nachname / Firmenname falls vorhanden

JSON Object
{
  "startdatum": "2024-01-01",
  "enddatum": "2024-01-31",
  "offset": 1,
  "anzahl": 2,
  "anzahl_gesamt": 35,
  "bestellungen": [
    {
      "id": 12301,
      "bestellnr": "0012301",
      "storniert": 0,
      "bestelldatum": "2024-01-20 15:13:26",
      "buchungsnr": "2400012",
      "preis_gesamt": "595.00",
      "kunde": "Sabine Musterfrau / Ferien GmbH"
    },
    {
      "id": 12302,
      "bestellnr": "0012302",
      "storniert": 0,
      "bestelldatum": "2024-01-15 08:45:31",
      "buchungsnr": "",
      "preis_gesamt": "256.00",
      "kunde": "Max Müller"
    }
  ]
}


Details einer Bestellung

Abfrage einer bestimmten Bestellung mit allen Informationen.

Query Parameter

ID integer required

interne ferien4kids Bestellung-ID

GET /bestellung/ID
curl https://api.ferien4kids.at/bestellung/12301

Response 200

bereits erläuterte Parameter-Erklärungen in Liste mit Bestellungen

storniert boolean

Bestellung bzw. Datensatz in ferien4kids storniert, bei allen Positionen und Extras angeführt

freigegeben datetime Y-m-d H:i:s | null

falls Bestellung in ferien4kids freigegeben wurde, Datum der Bestätigung und Umwandlung in eine Buchung

kunde object
adresse string

mehrzeiliger Text mit Textumbrüchen

telefon objects

hinterlegte Telefonnummern des Kunden als einzelne Objekte

email objects

hinterlegte E-Mail-Adressen des Kunden als einzelne Objekte

positionen objects

Positionen der Bestellung, zusammengehörige Bereiche werden gruppiert und angehängte Positionen sind in den extras zu finden. Wurde zum Beispiel ein Camp gebucht und dazu ein Zusatzangebot sowie ein Transfer, sind die letzten beiden in den extras ersichtlich.

typ string

Klassifizierung der Buchungszeile, je nach Option stehen zusätzliche Angaben zur Verfügung Camp | Verpflegung | Bestellfeld | Zusatzprodukt | Transfer-Hinfahrt | Transfer-Rückfahrt | Veranstalter-Zusatzfeld | Veranstalter-Geschwisterrabatt | Veranstalter-Mehrkindrabatt | Veranstalter-Verlängerungsrabatt | Camp-Rabatt-1 | Camp-Rabatt-2 | Gutschein | Sonstiges

titel string

Titel der Positionszeile, beinhaltet in der Regel entweder den Camp- und Angebotstitel oder deutet auf den Typ und Wert hin

preis float

Preis der Position, bei einer Gruppierung die Summe des Camp-Preises und der zugehörigen Extras

steuern objects

Sofern Steuerangaben in ferien4kids hinterlegt wurden, die berechneten Steuern zum Preis als Objekte mit den jeweiligen Steuersätzen. Bei einer Gruppierung befinden sich die steuern zum Camp-Grundpreis im Objekt angebot.

camp object
titel string

vergebener Titel zum Camp

angebot object
partner_id string

frei zuweisbares Feld in ferien4kids für Veranstalter über die API

preis float

regulärer Preis des Camps/Angebots

kind object
geschlecht string

Geschlecht des Kindes männlich | weiblich

svnr string

Sozialversicherungsnummer sofern hinterlegt

medizinische_info string

Wichtige Informationen über Allergien, Krankheiten und Medikamente des Kindes. Freitextfeld des Kunden, enthält möglicherweise Textumbrüche.

telefon string

beim Kind nur ein Wert möglich, daher als Text und keine Objekte

kunde_eigenes_kind boolean

Ob der bestellende Kunde auch Elternteil dieses Kindes ist oder z.B. nur für ein befreundetes Kind bucht.

foto_zustimmung boolean | null

Ob das Kind im Camp auf Fotos (z.B. Erinnerungsbilder oder zu Marketingzwecken) abgelichtet werden darf. Feld kann leer sein, wenn noch keine Auswahl getroffen wurde.

team string

mögliche Zuweisung zu einem Team in ferien4kids

darf_alleine_heimgehen boolean

Ob das Kind vom Camp oder der Transfer-Haltestelle alleine nach Hause gehen darf. Wert ist immer negativ, wenn die Auswahlfunktion vorab für den Bestellvorgang nicht aktiviert wurde!

extras objects

Das bereits erwähnte Objekt zur Gruppierung dazugehöriger Positionselemente. Je nach Typ sind zusätzlich nachfolgende Parameter verfügbar:

bestellfeld_titel string

zusätzliche Angabe bei Typ Bestellfeld

bestellfeld_werte objects

zusätzliche Angabe bei Typ Bestellfeld, Werte als mehrere Objekte möglich

transfer_hinfahrt_linie string

zusätzliche Angabe bei Typ Transfer-Hinfahrt

transfer_hinfahrt_haltestelle string

zusätzliche Angabe bei Typ Transfer-Hinfahrt

transfer_rueckfahrt_linie string

zusätzliche Angabe bei Typ Transfer-Rückfahrt

transfer_rueckfahrt_haltestelle string

zusätzliche Angabe bei Typ Transfer-Rückfahrt

gutschein_code string

zusätzliche Angabe bei Typ Gutschein

zahlungsziel string

optionale Funktion zum Hinzufügen eines Textes mit dem Zahlungsziel zu einer Bestellung

zahlungsziel_datum date Y-m-d | null

zusätzlich optional konkret festgelegtes Datum als spätester Zahlungstermin

JSON Object
{
  "id": 12301,
  "bestellnr": "0012301",
  "storniert": false,
  "bestelldatum": "2024-01-20 15:13:26",
  "freigegeben": "2024-01-21 08:52:37",
  "buchungsnr": "2400012",
  "preis_gesamt": "595.00",
  "kunde": {
    "id": 9637,
    "anrede": "Frau",
    "titel": "Mag.",
    "vorname": "Sabine",
    "nachname":"Musterfrau",
    "firma":"Ferien GmbH",
    "adresse": "Ferien GmbH\n
                Frau\n
                Mag. Sabine Musterfrau\n
                Hauptplatz 1\n
                3500 Krems\n
                Österreich",
    "telefon": [
      "+43 676 7648712"
    ],
    "email": [
      "sabine.musterfrau@domain.at"
    ]
  },
  "positionen": [
    {
      "id": 151933,
      "storniert": false,
      "typ": "Camp",
      "titel": "Ski Camp Schladming - 1. Woche Semesterferien 2024",
      "preis": "615.00",
      "camp": {
        "id": 138,
        "titel": "Ski Camp Schladming"
      },
      "angebot": {
        "id": 7246,
        "partner_id": "6445a",
        "titel": "1. Woche Semesterferien 2024",
        "preis": "495.00",
        "steuern": [
          {
            "Steuersatz": "0.00",
            "Steuer": "0.00",
            "brutto": "50.00",
            "netto": "50.00"
          },
          {
            "Steuersatz": "0.10",
            "Steuer": "22.72",
            "brutto": "250.00",
            "netto": "227.27"
          },
          {
            "Steuersatz": "0.20",
            "Steuer": "32.50",
            "brutto": "195.00",
            "netto": "162.50"
          },
        ],
        "startdatum": "2024-02-05",
        "enddatum": "2024-02-10"
      },
      "kind": {
        "id": 626,
        "vorname": "Barbara",
        "nachname": "Mustefrau",
        "geschlecht": "weiblich",
        "geburtsdatum": "2016-04-13",
        "svnr": "",
        "medizinische_info": "Nuss-Allergie",
        "telefon": "",
        "kunde_eigenes_kind": false,
        "foto_zustimmung": true,
        "team": "",
        "darf_alleine_heimgehen": false
      },
      "extras": [
        {
          "id": 151934,
          "storniert": false,
          "typ": "Bestellfeld",
          "titel": "Ski-Level: 2",
          "preis": "0.00",
          "bestellfeld_titel": "Ski-Level",
          "bestellfeld_werte": [
            "2"
          ]
        },
        {
          "id": 151935,
          "storniert": false,
          "typ": "Zusatzprodukt",
          "titel": "Skiverleih: ja, wird benötigt",
          "preis": "120.00",
		  "steuern": [
            {
              "Steuersatz": "0.20",
              "Steuer": "20.00",
              "brutto": "120.00",
              "netto": "100.00"		
            }
          ]
          "bestellfeld_titel": "Skiverleih",
          "bestellfeld_werte": [
            "ja, wird benötigt"
          ],
        }
      ]
    },
    {
      "id": 151936,
      "storniert": false,
	  "typ": "Camp-Rabatt-1"
      "titel": "Camp-Rabatt Frühbucher",
      "preis": "-20.00",
    }
  ],
  "zahlungsziel": "Zahlung bitte innerhalb von 2 Wochen",
  "zahlungsziel_datum": null
}

User

Liste mit Usern

Abfrage aller Kund:innen, die bei den zur Autorisierung freigegebenen Veranstaltern Bestellungen durchgeführt haben. Zuzüglich der Kinder und je Jahrgang die gebuchten Angebote und Veranstalter.

Query Parameter

anzahl integer

Anzahl der zurückgegebenen User default 50 | min 1 | max 200

offset integer

Startwert innerhalb der Liste default 1

ab date Y-m-d | null

zusätzlich optionales Datum ab Bestellungszeitpunkt

GET /users
curl https://api.ferien4kids.at/users?anzahl=2&offset=1&ab=2025-01-01

Response 200

anzahl_gesamt integer

Gesamtanzahl aller User innerhalb des Suchfilters

users objects
id integer

ferien4kids interne User-ID

anrede string

Herr | Frau

telefon objects

hinterlegte Telefonnummern des Kunden als einzelne Objekte

email string

hinterlegte E-Mail-Adresse des Kunden

kinder objects
id integer

ferien4kids interne Kind-ID

angebote_20.. string

kommaseparierte Liste aller im dazugehörigen Jahr gebuchten Angebote

veranstalter_20.. string

kommaseparierte Liste aller im dazugehörigen Jahr gebuchten Veranstalter

JSON Object
{
  "offset": 1,
  "anzahl": 2,
  "anzahl_gesamt": 1234,
  "users": [
    {
      "id": 5678,
      "titel": "Dr.",
      "anrede": "Frau",
      "vorname": "Sabine",
      "nachname": "Musterfrau",
      "firma": "Ferien GmbH",
      "strasse": "Hauptplatz 1",
      "plz": "3500",
      "ort": "Krems",
      "land": "Österreich",
      "telefon": [
        "+43 676 7648712"
      ],
      "email": "sabine.musterfrau@domain.at",
      "kinder": [
        {
          "id": 4321,
          "geschlecht": weiblich,
          "vorname": "Barbara",
          "nachname": "Musterfrau",
          "geburtsdatum": "2016-04-13",
          "angebote_2023": "",
          "veranstalter_2023": "",
          "angebote_2024": "Semester Ski-Angebot, 4. Sommerwoche Schimmkurs",
          "veranstalter_2024": "Wintercamp Fun, Ferienspiele NÖ",
          "angebote_2025": "",
          "veranstalter_2025": ""
        }
      ]
    }
  ]
}