Swoppen Soferu REST API (1.0)

Download OpenAPI specification:

API-Changesets (neueste zuerst):

2026-09-02 — Resources: gesperrte Zeiträume in der Occupancy

Pfade: /resources, /resources/{id}

  • Occupancy: is_locked (1 = gesperrter Zeitraum, kein Gast). note ist dann der Sperrgrund.
  • Sperren ohne Belegungskopf erscheinen in der Occupancy (LEFT JOIN auf Belegungen).

2026-09-02 — Gesperrte Zeiträume: Liste, Anlegen, Ändern, Löschen

Pfade: /locked-ranges, /locked-ranges/{id}

  • GET /locked-ranges: Sperren ab heute, optional date_from / date_until / rm_resource_id.
  • POST /locked-ranges: anlegen. Pflicht: rm_resource_id (oder Array), from, until. Optional note, color.
  • POST/PATCH / DELETE /locked-ranges/{rm_item_id}: ändern bzw. löschen.
  • Kollision mit Belegung oder anderer Sperre: HTTP 409. Auth: HostLimitation auf die Schnittstelle locked-ranges.

2026-09-02 — Belegungen: gesperrte Zeiträume

Pfade: /bookings, /bookings/{id}

  • GET /bookings listet keine gesperrten Zeiträume (is_locked=1).
  • POST /bookings mit konkretem Zimmer: HTTP 409 wenn das Zimmer im Zeitraum gesperrt oder belegt ist.

2026-09-02 — Verfügbarkeit: rooms_ooo für gesperrte Zeiträume

Pfade: /availability

  • rooms_ooo: Anzahl gesperrter Zimmer (is_locked) je Tag und Kategorie. Teilmenge von rooms_booked.
  • closed bleibt Stop-Sell auf der Preisliste, unabhängig von Zimmersperren.

2026-09-02 — Belege: Liste, Einzelabruf und Teilzahlungen

Pfade: /vouchers, /vouchers/{id}, /vouchers/{id}/payment

  • GET /vouchers?rm_booking_id=: Rechnungen (Belegstufe 5) einer Belegung. rm_booking_id ist Pflicht.
  • GET /vouchers/{vk_voucher_no}: Beleg inkl. payments[].
  • POST /vouchers/{vk_voucher_no}/payment: (Teil-)Zahlung. amount ist Pflicht und darf sum_opened nicht überschreiten. Mehrere Zahlungen pro Rechnung möglich.
  • Dieselbe reference wird nicht erneut gebucht (HTTP 200). Auth: HostLimitation auf die Schnittstelle vouchers.

2026-09-02 — Belegungen: Rechnung, Teilzahlung und offener Betrag

Pfade: /bookings/{id}, /bookings/{id}/invoice, /bookings/{id}/payment

  • GET /bookings/{id}: amount_due (nicht fakturierte Positionen plus offene Rechnungsbeträge) und invoices[].
  • POST /bookings/{id}/invoice: Rechnung über noch nicht abgerechnete Positionen (idempotent).
  • POST /bookings/{id}/payment: (Teil-)Zahlung auf die offene Rechnung. amount ist Pflicht und darf sum_opened nicht überschreiten. Bevorzugt: POST /vouchers/{vk_voucher_no}/payment.
  • book_payment=1 beim Rechnung anlegen: ebenfalls amount Pflicht. Dieselbe reference verhindert Doppelbuchungen.

2026-09-02 — Resources: optionaler Benutzer und Reinigungsstatus-Historie

Pfade: /resources, /resources/{id}

  • POST /resources/{id}: optionales bv_user_id für Historie (created_from).
  • Resource-Antwort: cleaning_changed_by, cleaning_changed_by_name, cleaning_changed_at.

2026-09-02 — Benutzer: Liste und Einzelabruf

Pfade: /users, /users/{id}

  • GET /users und GET /users/{id}: Benutzer des Mandanten (ohne Passwort/Rechte).
  • Standard nur aktive. Filter: is_active (1, 0, all) oder include_disabled=1.

2026-08-28 — FiBu Export: lock-Parameter und festgeschriebene Belege

Pfade: /fibu/export

  • lock=true wirkt wie lock=1; false/0 bleibt aus. Ungültige Werte liefern HTTP 400 (kein stiller Erfolg mehr).
  • Response: locked (boolean), locked_count (Anzahl) und locked_vouchers (Liste der tatsächlich festgeschriebenen Belege mit type und voucher_no).

Anzahlungen

Anzahlungen anlegen, lesen, ändern und Zahlungen/Teilrechnungen erzeugen. Resource-ID ist vk_deposit_id. Auth: API-Host + HostLimitation auf die Schnittstelle deposits.

Anzahlungsliste

Paginierte Liste der Anzahlungen.

Authorizations:
(bearerAuthbasicAuth)
query Parameters
limit
integer
Example: limit=25

Treffer pro Seite

page
integer
Example: page=1

Seite (ab 1)

cms_client_id
integer

Mandant-ID (Standard: aktiver Client)

rm_booking_id
integer

Nur Anzahlungen dieser Belegung

st_customer_id
string

Nur Anzahlungen dieses Kunden

__filter
integer
Enum: 1 2

1 = offen (unbezahlt), 2 = überfällig

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "source": "cache",
  • "data": [
    ]
}

Anzahlung anlegen

Legt eine Anzahlung an. Mit rm_booking_id wird der Kunde übernommen und die Anzahlung den Zimmern zugeordnet. create_invoice=1 erzeugt die Anzahlungsrechnung (nur mit Belegung). book_payment=1 verbucht die Zahlung (erzeugt bei Bedarf zuerst die Teilrechnung).

Authorizations:
(bearerAuthbasicAuth)
Request Body schema: application/json
required
vk_deposit_id
integer

Interne Anzahlungs-ID (Resource-ID, nur lesend)

cms_client_id
integer

Mandant-ID

st_customer_id
string

Kunden-Nr. Pflicht beim Anlegen, sofern rm_booking_id fehlt.

cms_address_id
integer

Adress-ID des Kunden (nur lesend)

key_name
string

Kundenname (nur lesend)

rm_booking_id
integer

Belegungs-ID. Beim Anlegen optional: Kunde, Steuer und Bemerkung werden übernommen, Anzahlung an die Zimmer gehängt.

rm_item_id
integer

Optional nur dieses Zimmer der Belegung zuordnen.

amount
required
number <float>

Anzuzahlender Betrag (Brutto).

currency
string

Währung. Standard: Mandantenwährung.

date
string <date-time>

Buchungsdatum. Standard: jetzt.

due_date
string <date>

Fällig am. Standard: +1 Monat.

payed_date
string <date>

Erhalten am (nur lesend, wenn Zahlung verbucht).

st_payment_method_id
string

Zahlungsweise. Standard: UE.

st_tk_id
integer

Steuerschlüssel. Ohne Angabe und mit rm_booking_id: häufigster Steuersatz der Belegung.

tax
integer or null

Steuersatz in % (z.B. 19, 7, 0) als Alternative zu st_tk_id.

remark
string

Bemerkung. Mit Belegung Standard: Anzahlung: Belegung #…

source
integer

1 = Kasse, 2 = Bank. Wird aus der Zahlungsweise ermittelt (nur lesend beim Anlegen).

status
integer

0 = aktiv, 3 = storniert.

is_cleared
integer
Default: 0
Enum: 0 1

1 = mit Schlussrechnung verrechnet (nur lesend).

deposit_voucher_no
string

Anzahlungs-/Teilrechnung (nur lesend).

vk_voucher_no
string

Schlussrechnung, mit der verrechnet wurde (nur lesend).

fi_account_movement_id
integer

Zahlungsbewegung (nur lesend).

create_invoice
integer
Default: 0
Enum: 0 1

Nur schreiben: 1 = Anzahlungsrechnung zur Belegung erzeugen.

book_payment
integer
Default: 0
Enum: 0 1

Nur schreiben: 1 = Zahlung verbuchen (erzeugt bei Bedarf zuerst die Teilrechnung).

reference
string

Nur schreiben: Zahlungsreferenz (z.B. Payment-ID des Gateways).

Responses

Request samples

Content type
application/json
{
  • "rm_booking_id": 12345,
  • "amount": 300,
  • "st_payment_method_id": "CC",
  • "create_invoice": 1,
  • "book_payment": 1,
  • "reference": "pi_123"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "data": {
    }
}

Anzahlung lesen

Authorizations:
(bearerAuthbasicAuth)
path Parameters
id
required
integer
Example: 42

vk_deposit_id

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "data": {
    }
}

Anzahlung ändern

Teilupdate. Nur solange keine Zahlung und keine Teilrechnung vorliegen. PUT und PATCH sind ebenfalls erlaubt.

Authorizations:
(bearerAuthbasicAuth)
path Parameters
id
required
integer
Example: 42

vk_deposit_id

Request Body schema: application/json
required
vk_deposit_id
integer

Interne Anzahlungs-ID (Resource-ID, nur lesend)

cms_client_id
integer

Mandant-ID

st_customer_id
string

Kunden-Nr. Pflicht beim Anlegen, sofern rm_booking_id fehlt.

cms_address_id
integer

Adress-ID des Kunden (nur lesend)

key_name
string

Kundenname (nur lesend)

rm_booking_id
integer

Belegungs-ID. Beim Anlegen optional: Kunde, Steuer und Bemerkung werden übernommen, Anzahlung an die Zimmer gehängt.

rm_item_id
integer

Optional nur dieses Zimmer der Belegung zuordnen.

amount
required
number <float>

Anzuzahlender Betrag (Brutto).

currency
string

Währung. Standard: Mandantenwährung.

date
string <date-time>

Buchungsdatum. Standard: jetzt.

due_date
string <date>

Fällig am. Standard: +1 Monat.

payed_date
string <date>

Erhalten am (nur lesend, wenn Zahlung verbucht).

st_payment_method_id
string

Zahlungsweise. Standard: UE.

st_tk_id
integer

Steuerschlüssel. Ohne Angabe und mit rm_booking_id: häufigster Steuersatz der Belegung.

tax
integer or null

Steuersatz in % (z.B. 19, 7, 0) als Alternative zu st_tk_id.

remark
string

Bemerkung. Mit Belegung Standard: Anzahlung: Belegung #…

source
integer

1 = Kasse, 2 = Bank. Wird aus der Zahlungsweise ermittelt (nur lesend beim Anlegen).

status
integer

0 = aktiv, 3 = storniert.

is_cleared
integer
Default: 0
Enum: 0 1

1 = mit Schlussrechnung verrechnet (nur lesend).

deposit_voucher_no
string

Anzahlungs-/Teilrechnung (nur lesend).

vk_voucher_no
string

Schlussrechnung, mit der verrechnet wurde (nur lesend).

fi_account_movement_id
integer

Zahlungsbewegung (nur lesend).

create_invoice
integer
Default: 0
Enum: 0 1

Nur schreiben: 1 = Anzahlungsrechnung zur Belegung erzeugen.

book_payment
integer
Default: 0
Enum: 0 1

Nur schreiben: 1 = Zahlung verbuchen (erzeugt bei Bedarf zuerst die Teilrechnung).

reference
string

Nur schreiben: Zahlungsreferenz (z.B. Payment-ID des Gateways).

Responses

Request samples

Content type
application/json
{
  • "amount": 350,
  • "remark": "Anzahlung angepasst"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "data": {
    }
}

Anzahlung ändern

Authorizations:
(bearerAuthbasicAuth)
path Parameters
id
required
integer
Example: 42

vk_deposit_id

Request Body schema: application/json
required
vk_deposit_id
integer

Interne Anzahlungs-ID (Resource-ID, nur lesend)

cms_client_id
integer

Mandant-ID

st_customer_id
string

Kunden-Nr. Pflicht beim Anlegen, sofern rm_booking_id fehlt.

cms_address_id
integer

Adress-ID des Kunden (nur lesend)

key_name
string

Kundenname (nur lesend)

rm_booking_id
integer

Belegungs-ID. Beim Anlegen optional: Kunde, Steuer und Bemerkung werden übernommen, Anzahlung an die Zimmer gehängt.

rm_item_id
integer

Optional nur dieses Zimmer der Belegung zuordnen.

amount
required
number <float>

Anzuzahlender Betrag (Brutto).

currency
string

Währung. Standard: Mandantenwährung.

date
string <date-time>

Buchungsdatum. Standard: jetzt.

due_date
string <date>

Fällig am. Standard: +1 Monat.

payed_date
string <date>

Erhalten am (nur lesend, wenn Zahlung verbucht).

st_payment_method_id
string

Zahlungsweise. Standard: UE.

st_tk_id
integer

Steuerschlüssel. Ohne Angabe und mit rm_booking_id: häufigster Steuersatz der Belegung.

tax
integer or null

Steuersatz in % (z.B. 19, 7, 0) als Alternative zu st_tk_id.

remark
string

Bemerkung. Mit Belegung Standard: Anzahlung: Belegung #…

source
integer

1 = Kasse, 2 = Bank. Wird aus der Zahlungsweise ermittelt (nur lesend beim Anlegen).

status
integer

0 = aktiv, 3 = storniert.

is_cleared
integer
Default: 0
Enum: 0 1

1 = mit Schlussrechnung verrechnet (nur lesend).

deposit_voucher_no
string

Anzahlungs-/Teilrechnung (nur lesend).

vk_voucher_no
string

Schlussrechnung, mit der verrechnet wurde (nur lesend).

fi_account_movement_id
integer

Zahlungsbewegung (nur lesend).

create_invoice
integer
Default: 0
Enum: 0 1

Nur schreiben: 1 = Anzahlungsrechnung zur Belegung erzeugen.

book_payment
integer
Default: 0
Enum: 0 1

Nur schreiben: 1 = Zahlung verbuchen (erzeugt bei Bedarf zuerst die Teilrechnung).

reference
string

Nur schreiben: Zahlungsreferenz (z.B. Payment-ID des Gateways).

Responses

Request samples

Content type
application/json
{
  • "vk_deposit_id": 42,
  • "cms_client_id": 0,
  • "st_customer_id": "10001",
  • "cms_address_id": 0,
  • "key_name": "string",
  • "rm_booking_id": 12345,
  • "rm_item_id": 0,
  • "amount": 300,
  • "currency": "EUR",
  • "date": "2019-08-24T14:15:22Z",
  • "due_date": "2019-08-24",
  • "payed_date": "2019-08-24",
  • "st_payment_method_id": "UE",
  • "st_tk_id": 0,
  • "tax": 19,
  • "remark": "string",
  • "source": 0,
  • "status": 0,
  • "is_cleared": 0,
  • "deposit_voucher_no": "string",
  • "vk_voucher_no": "string",
  • "fi_account_movement_id": 0,
  • "create_invoice": 0,
  • "book_payment": 0,
  • "reference": "string"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "data": {
    }
}

Anzahlung löschen

Löscht die Anzahlung und storniert ggf. die zugehörige Zahlung. HTTP 409 wenn bereits mit einer Schlussrechnung verrechnet oder Kassenbuch abgeschlossen.

Authorizations:
(bearerAuthbasicAuth)
path Parameters
id
required
integer
Example: 42

vk_deposit_id

Responses

Response samples

Content type
application/json
{
  • "code": 400,
  • "message": "Ungültige oder fehlende Parameter",
  • "date": "2026-08-25 23:35:23"
}

Anzahlungsrechnung erzeugen

Erstellt die Teil-/Anzahlungsrechnung zur Belegung. Nur mit rm_booking_id. HTTP 409 wenn die Belegung bereits abgerechnet ist oder schon eine Teilrechnung existiert.

Authorizations:
(bearerAuthbasicAuth)
path Parameters
id
required
integer
Example: 42

vk_deposit_id

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "data": {
    }
}

Zahlung verbuchen

Verbucht den Zahlungseingang. Erzeugt bei Bedarf zuerst die Anzahlungsrechnung (nur mit Belegung).

Authorizations:
(bearerAuthbasicAuth)
path Parameters
id
required
integer
Example: 42

vk_deposit_id

Request Body schema: application/json
optional
st_payment_method_id
string

Zahlungsweise. Leer = Zahlungsweise der Anzahlung.

amount
number <float>

Betrag. Leer = Anzahlungsbetrag.

date
string <date>

Zahlungsdatum. Standard: heute.

reference
string

Zahlungsreferenz / Gateway-ID.

Responses

Request samples

Content type
application/json
{
  • "st_payment_method_id": "CC",
  • "reference": "pi_123"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "data": {
    }
}

Artikel

Artikel erstellen

Artikel

Authorizations:
(bearerAuthbasicAuth)
Request Body schema: application/json
required
st_article_group_id
integer
st_article_id
required
string

Artikel-Nr.

name1
required
string

Bezeichnung 1

name2
string

Bezeichnung 2

name3
string

Bezeichnung 3

settings[color]
string

Farbe

st_article_model_id
string

Artikelmodell

ean
string

GTIN

ean2
string

GTIN (VE)

alternative_article
string

Ersatzartikel

draft
string

Zeichnung

manufacturer_article_no
string

Hersteller Artikel-Nr.

manufacturer
string
min_quantity_stored
string

min. Lagermenge

max_quantity_stored
string

max. Lagermenge

inventory_price
string

Ø EK-Preis

short_description
string

Kurzbeschreibung

sales_unit
string
article_factor
string

Inhalt/Menge

article_factor_unit
number

Mögliche Werte: s = pauschal Stück = Stück Person = pro Person 2second = pro Stk./Sek. 2minute = pro Stk./Min. 2hour = pro Stk./Std. 2night = pro Stk./Nacht 2day = pro Stk./Tag 2week = pro Stk./Woche 2month = pro Stk./Monat 2year = pro Stk./Jahr 1second = pro Person/Sek. 1minute = pro Person/Min. 1hour = pro Person/Std. 1night = pro Person/Nacht 1day = pro Person/Tag 1week = pro Person/Woche 1month = pro Person/Monat 1year = pro Person/Jahr second = pro Sekunde minute = pro Minute hour = pro Stunde night = pro Nacht day = pro Tag week = pro Woche month = pro Monat year = pro Jahr Packung = Packung St. = Stück Pers. = Person(en)

settings[show_basic_charge]
boolean

Grundpreis auszeichnen

settings[disable_price_group]
boolean

Preisgruppierung deaktivieren

purchase_unit
string
article_mass_unit
string
stocking_unit
string
weight
string

Brutto-Gewicht kg

weight_net
string

Netto-Gewicht kg

length
string

Länge cm

height
string

Höhe cm

width
string

Breite cm

volume
string

Volumen l

settings[capacity]
integer

Kapazität

st_cost_centre_id
integer
st_account_id
string

FiBu-Konto

settings[pms_project_id]
integer
valid_from
string <date>

gültig von

valid_until
string <date>

gültig bis

settings[email]
string

E-Mail

settings[ver_rate_id]
integer
settings[per_activity_id]
integer
copy_st_article_id
integer
type
string
description
string

Beschreibung

settings[note2]
string

Notiz 2

settings[note3]
string

Notiz 3

locked
boolean

Sperrvermerk

purchase_article
boolean

Einkaufsartikel

sales_article
boolean

Verkaufsartikel

shop_article
boolean

Shopartikel

allowance_possible
boolean

Rabattfähig

time_dependent
boolean

Zeitabhängig

disable_proposal
boolean

Kein Bestellvorschlag

disable_statistic
boolean

nicht umsatzrelevant

settings[is_dropshipping]
boolean

Dropshipping-Artikel

settings[is_coupon]
boolean

als Gutschein bestellbar

settings[is_included]
boolean

Enthaltene Leistung

settings[is_minibar]
boolean

Minibar

settings[is_self_checkout]
boolean

Self-Checkout

inventory_maintenance
boolean

Bestandsführung

is_serial_no
boolean

Seriennummer-Artikel

is_mhd
boolean

Mindesthaltbarkeitsdatum

is_charge
boolean

Charge

is_bill_of_material
boolean

Stücklistenartikel

inventory_maintenance2
boolean

Bestandsführung

inventory_maintenance_ek
boolean

Bestandsführung (Einkauf)

shop_article2
boolean

Preise aus Stückliste

settings[view_template]
string

Template

settings[shift_time]
integer

Rüstzeit Min

Responses

Request samples

Content type
application/json
[ ]

Liste aller Artikel

Artikel

Authorizations:
(bearerAuthbasicAuth)
query Parameters
limit
integer <= 250
Default: 25
Example: limit=25

Anzahl der Elemente, die pro Seite zurückgegeben werden

page
integer
Default: 0

Auflistung der Elemente ab Seite

st_article_id
string

Artikel-Nr.

group
string

Artikelgruppe

name1
string

Bezeichnung 1

name2
string

Bezeichnung 2

name3
string

Bezeichnung 3

st_article_model_id
string

Artikelmodell

ean
string

GTIN

ean2
string

GTIN 2

is_bill_of_material
string

Stückliste

alternative_article
string

Ersatzartikel

draft
string

Zeichnung

manufacturer_article_no
string

Hersteller Artikel-Nr.

manufacturer_key_name
string

Hersteller

article_number
string

Lief. Artikel-Nr.

supplier_key_name
string

Lieferant

ek_price
string

EK-Preis

inventory_price
string

Ø EK-Preis

sales_unit
string

Verkaufspreis pro

purchase_unit
string

Einkaufspreis pro

article_mass_unit
string

Artikelmasse pro

stocking_unit
string

Lagermenge in

st_account_id
string

FiBu-Konto

weight
string

Nettogewicht

weight_net
string

Bruttogewicht

article_length
string

Länge

height
string

Höhe

width
string

Breite

volume
string

Volumen

valid_from
string

gültig von

valid_until
string

gültig bis

locked
string

Sperrvermerk

purchase_article
string

Einkaufsartikel

sales_article
string

Verkaufsartikel

inventory_maintenance
string

Bestandsführung

shop_article
string

Shopartikel

allowance_possible
string

Rabattfähig

is_part_of_variant
string

Variantenartikel

st_cost_centre_no
string

Kostenstellen-Nr.

cost_centre
string

Kostenstelle

bf_current
string

Bestand

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    },
  • "code": 0,
  • "message": "string",
  • "date": "2019-08-24T14:15:22Z"
}

Artikel bearbeiten

Artikel

Authorizations:
(bearerAuthbasicAuth)
path Parameters
st_article_id
required
integer
Request Body schema: application/json
required
st_article_group_id
integer
st_article_id
required
string

Artikel-Nr.

name1
required
string

Bezeichnung 1

name2
string

Bezeichnung 2

name3
string

Bezeichnung 3

settings[color]
string

Farbe

st_article_model_id
string

Artikelmodell

ean
string

GTIN

ean2
string

GTIN (VE)

alternative_article
string

Ersatzartikel

draft
string

Zeichnung

manufacturer_article_no
string

Hersteller Artikel-Nr.

manufacturer
string
min_quantity_stored
string

min. Lagermenge

max_quantity_stored
string

max. Lagermenge

inventory_price
string

Ø EK-Preis

short_description
string

Kurzbeschreibung

sales_unit
string
article_factor
string

Inhalt/Menge

article_factor_unit
number

Mögliche Werte: s = pauschal Stück = Stück Person = pro Person 2second = pro Stk./Sek. 2minute = pro Stk./Min. 2hour = pro Stk./Std. 2night = pro Stk./Nacht 2day = pro Stk./Tag 2week = pro Stk./Woche 2month = pro Stk./Monat 2year = pro Stk./Jahr 1second = pro Person/Sek. 1minute = pro Person/Min. 1hour = pro Person/Std. 1night = pro Person/Nacht 1day = pro Person/Tag 1week = pro Person/Woche 1month = pro Person/Monat 1year = pro Person/Jahr second = pro Sekunde minute = pro Minute hour = pro Stunde night = pro Nacht day = pro Tag week = pro Woche month = pro Monat year = pro Jahr Packung = Packung St. = Stück Pers. = Person(en)

settings[show_basic_charge]
boolean

Grundpreis auszeichnen

settings[disable_price_group]
boolean

Preisgruppierung deaktivieren

purchase_unit
string
article_mass_unit
string
stocking_unit
string
weight
string

Brutto-Gewicht kg

weight_net
string

Netto-Gewicht kg

length
string

Länge cm

height
string

Höhe cm

width
string

Breite cm

volume
string

Volumen l

settings[capacity]
integer

Kapazität

st_cost_centre_id
integer
st_account_id
string

FiBu-Konto

settings[pms_project_id]
integer
valid_from
string <date>

gültig von

valid_until
string <date>

gültig bis

settings[email]
string

E-Mail

settings[ver_rate_id]
integer
settings[per_activity_id]
integer
copy_st_article_id
integer
type
string
description
string

Beschreibung

settings[note2]
string

Notiz 2

settings[note3]
string

Notiz 3

locked
boolean

Sperrvermerk

purchase_article
boolean

Einkaufsartikel

sales_article
boolean

Verkaufsartikel

shop_article
boolean

Shopartikel

allowance_possible
boolean

Rabattfähig

time_dependent
boolean

Zeitabhängig

disable_proposal
boolean

Kein Bestellvorschlag

disable_statistic
boolean

nicht umsatzrelevant

settings[is_dropshipping]
boolean

Dropshipping-Artikel

settings[is_coupon]
boolean

als Gutschein bestellbar

settings[is_included]
boolean

Enthaltene Leistung

settings[is_minibar]
boolean

Minibar

settings[is_self_checkout]
boolean

Self-Checkout

inventory_maintenance
boolean

Bestandsführung

is_serial_no
boolean

Seriennummer-Artikel

is_mhd
boolean

Mindesthaltbarkeitsdatum

is_charge
boolean

Charge

is_bill_of_material
boolean

Stücklistenartikel

inventory_maintenance2
boolean

Bestandsführung

inventory_maintenance_ek
boolean

Bestandsführung (Einkauf)

shop_article2
boolean

Preise aus Stückliste

settings[view_template]
string

Template

settings[shift_time]
integer

Rüstzeit Min

Responses

Request samples

Content type
application/json
""

Artikel löschen

Artikel

Authorizations:
(bearerAuthbasicAuth)
path Parameters
st_article_id
required
integer

Responses

Artikel abfragen

Artikel

Authorizations:
(bearerAuthbasicAuth)
path Parameters
st_article_id
required
integer

Responses

Response samples

Content type
application/json
{
  • "st_article_group_id": 0,
  • "st_article_id": "string",
  • "name1": "string",
  • "name2": "string",
  • "name3": "string",
  • "settings[color]": "string",
  • "st_article_model_id": "string",
  • "ean": "string",
  • "ean2": "string",
  • "alternative_article": "string",
  • "draft": "string",
  • "manufacturer_article_no": "string",
  • "manufacturer": "string",
  • "min_quantity_stored": "string",
  • "max_quantity_stored": "string",
  • "inventory_price": "string",
  • "short_description": "string",
  • "sales_unit": "string",
  • "article_factor": "string",
  • "article_factor_unit": 0,
  • "settings[show_basic_charge]": true,
  • "settings[disable_price_group]": true,
  • "purchase_unit": "string",
  • "article_mass_unit": "string",
  • "stocking_unit": "string",
  • "weight": "string",
  • "weight_net": "string",
  • "length": "string",
  • "height": "string",
  • "width": "string",
  • "volume": "string",
  • "settings[capacity]": 0,
  • "st_cost_centre_id": 0,
  • "st_account_id": "string",
  • "settings[pms_project_id]": 0,
  • "valid_from": "2019-08-24",
  • "valid_until": "2019-08-24",
  • "settings[email]": "string",
  • "settings[ver_rate_id]": 0,
  • "settings[per_activity_id]": 0,
  • "copy_st_article_id": 0,
  • "type": "string",
  • "description": "string",
  • "settings[note2]": "string",
  • "settings[note3]": "string",
  • "locked": true,
  • "purchase_article": true,
  • "sales_article": true,
  • "shop_article": true,
  • "allowance_possible": true,
  • "time_dependent": true,
  • "disable_proposal": true,
  • "disable_statistic": true,
  • "settings[is_dropshipping]": true,
  • "settings[is_coupon]": true,
  • "settings[is_included]": true,
  • "settings[is_minibar]": true,
  • "settings[is_self_checkout]": true,
  • "inventory_maintenance": true,
  • "is_serial_no": true,
  • "is_mhd": true,
  • "is_charge": true,
  • "is_bill_of_material": true,
  • "inventory_maintenance2": true,
  • "inventory_maintenance_ek": true,
  • "shop_article2": true,
  • "settings[view_template]": "string",
  • "settings[shift_time]": 0
}

Belege

Verkaufsbelege (Rechnungen) lesen und Zahlungen verbuchen. Resource-ID ist vk_voucher_no. Auth: API-Host + HostLimitation auf die Schnittstelle vouchers.

Belegliste zur Belegung

Rechnungen (Belegstufe 5) einer Belegung.

Authorizations:
(bearerAuthbasicAuth)
query Parameters
rm_booking_id
required
integer
Example: rm_booking_id=12345

Nur Belege dieser Belegung

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-26 16:30:00",
  • "data": [
    ]
}

Beleg lesen

Rechnung inkl. Zahlungen (payments).

Authorizations:
(bearerAuthbasicAuth)
path Parameters
id
required
string
Example: RE-260001

vk_voucher_no

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-26 16:30:00",
  • "data": {
    }
}

Zahlung verbuchen

Verbucht eine (Teil-)Zahlung. amount ist Pflicht. Mehrere Zahlungen pro Rechnung sind möglich, solange sum_opened > 0. Dieselbe reference wird nicht erneut gebucht (HTTP 200).

Authorizations:
(bearerAuthbasicAuth)
path Parameters
id
required
string
Example: RE-260001

vk_voucher_no

Request Body schema: application/json
required
amount
required
number <float>

Zahlungsbetrag. Pflicht. Darf sum_opened nicht überschreiten.

st_payment_method_id
string

Leer = Zahlungsweise der Rechnung.

reference
string

Eindeutige Payment-ID je Zahlung (Timeout-Schutz).

date
string <date>

Responses

Request samples

Content type
application/json
{
  • "amount": 100,
  • "st_payment_method_id": "CC",
  • "reference": "term_123"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2019-08-24T14:15:22Z",
  • "data": {
    }
}

Belegungen

Hotel-Belegungen anlegen, lesen und Check-In/Check-Out. Resource-ID ist rm_booking_id. Auth: API-Host + HostLimitation auf die Schnittstelle bookings.

Belegungsliste

Paginierte Liste der Belegungen (zimmerbasiert, wie im Hotel-Manager). date_from / date_until filtern nach überlappendem Zimmerzeitraum.

Authorizations:
(bearerAuthbasicAuth)
query Parameters
limit
integer
Example: limit=25

Treffer pro Seite

page
integer
Example: page=1

Seite (ab 1)

cms_client_id
integer

Mandant-ID (Standard: aktiver Client)

date_from
string <date>

Zeitraum von (Y-m-d). Belegungen deren Zimmer den Zeitraum überlappen (DATE(until) >= date_from).

date_until
string <date>

Zeitraum bis (Y-m-d). Belegungen deren Zimmer den Zeitraum überlappen (DATE(from) <= date_until).

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "source": "cache",
  • "data": [
    ]
}

Belegung anlegen

Legt Belegungskopf und mindestens ein Zimmer an. Ohne rm_resource_id wird anhand st_article_id ein freies Zimmer im Zeitraum zugeordnet. HTTP 409 wenn keines frei ist. Belegungsnummer kommt aus dem Nummernkreis HM. Preis wird aus der Preisliste berechnet, sofern price nicht gesetzt ist.

Authorizations:
(bearerAuthbasicAuth)
Request Body schema: application/json
required
rm_booking_id
integer

Interne Belegungs-ID (Resource-ID, nur lesend)

rm_booking_no
string

Belegungsnummer (Nummernkreis HM, nur lesend)

rm_catalogue_id
string

Katalog. Immer HM bei diesem Endpoint.

cms_client_id
integer

Mandant-ID

st_customer_id
string

Kunden-Nr. Pflicht beim Anlegen, sofern cms_address_id fehlt. cms_address_id wird dann vom Kunden übernommen.

cms_address_id
integer

Adress-ID. Nur nötig ohne st_customer_id. Mit st_customer_id wird sie vom Kunden genommen.

name
string

Anzeigename. Leer = Nachname des Kunden.

from
required
string <date>

Anreise. Auf Root-Ebene wenn nur ein Zimmer, sonst in items[].

until
required
string <date>

Abreise.

rm_resource_id
integer

Zimmer-ID. Optional. Ohne Angabe wird ein freies Zimmer zur st_article_id zugeordnet.

room_number
string

Zimmernummer bei einem Zimmer ohne items[].

token
string

Zimmerkürzel bei einem Zimmer ohne items[].

st_article_id
string

Logis-Artikel / Zimmerkategorie. Pflicht ohne rm_resource_id.

st_price_list_id
string

Preisliste für alle Zimmer, sofern nicht in items[] gesetzt.

quantity
integer
Default: 1

Personen / Erwachsene (ein Zimmer).

children
integer
Default: 0

Kinder (ein Zimmer).

status
integer
Enum: 0 1 2 3 4 5 13 15 16 30

Zimmerstatus: 0 = Reservierung, 1 = Check-In, 2 = Check-Out, 3 = Storniert, 4 = Anfrage/Option, 13 = bestätigt (Channel), 30 = No-Show. Standard beim Anlegen: 0.

price
number <float>

Optionaler Festpreis (Brutto, pro Nacht/Preiszeile). Weglassen = Preisliste.

price_gross
number <float>

Alias für price.

remark
string

Bemerkung zur Belegung

source
string

Herkunft. Standard: api.

source_no
string

Externe Vorgangsnummer der Quelle

send_notification
integer
Default: 0
Enum: 0 1

1 = Reservierungsbestätigung versenden. Standard: 0.

reserved_date
string <date-time>

Reservierungsdatum (nur lesend)

access_token
string

Zugangstoken (nur lesend)

Array of objects

Zimmer. Beim Anlegen optional: ohne items[] gelten from/until/Zimmerfelder auf Root-Ebene als ein Zimmer.

amount_due
number <float>

Noch zu zahlen: nicht fakturierte Positionen plus offene Rechnungsbeträge (nur lesend).

Array of objects (BookingInvoice)

Rechnungen (Belegstufe 5) der Belegung (nur lesend).

Responses

Request samples

Content type
application/json
{
  • "st_customer_id": "10001",
  • "from": "2026-08-20",
  • "until": "2026-08-22",
  • "st_article_id": "DZ",
  • "quantity": 2,
  • "children": 0,
  • "price": 129,
  • "status": 0,
  • "remark": "",
  • "source": "api"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "data": {
    }
}

Belegung lesen

Authorizations:
(bearerAuthbasicAuth)
path Parameters
id
required
integer
Example: 12345

Immer rm_booking_id. Einzelnes Zimmer nur über rm_item_id im Body/Query (IDs können identisch sein).

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "data": {
    }
}

Status ändern (Check-In / Check-Out)

URL-{id} ist immer rm_booking_id. Einzelnes Zimmer: rm_item_id im Body oder Query — nicht aus der URL raten, rm_item_id und rm_booking_id können denselben Wert haben.

Authorizations:
(bearerAuthbasicAuth)
path Parameters
id
required
integer
Example: 12345

Immer rm_booking_id. Einzelnes Zimmer nur über rm_item_id im Body/Query (IDs können identisch sein).

Request Body schema: application/json
required
required
integer or string

1 / checkin = Check-In, 2 / checkout = Check-Out.

rm_item_id
integer

Zimmer-/Buchungs-ID (swo_rm_items). Nur dieses Zimmer ein- oder auschecken.

room_number
string

Alternative zu rm_item_id: Zimmernummer innerhalb der Belegung.

token
string

Alternative zu rm_item_id: Zimmerkürzel innerhalb der Belegung.

Responses

Request samples

Content type
application/json
{
  • "status": "checkin",
  • "rm_item_id": 9001
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "data": {
    }
}

Check-In

URL-{id} ist immer rm_booking_id. Nur ein Zimmer: rm_item_id oder room_number im Body/Query. Ohne Angabe: alle Zimmer der Belegung.

Authorizations:
(bearerAuthbasicAuth)
path Parameters
id
required
integer
Example: 12345

Immer rm_booking_id. Einzelnes Zimmer nur über rm_item_id im Body/Query (IDs können identisch sein).

Request Body schema: application/json
optional
rm_item_id
integer

Nur dieses Zimmer (rm_item_id)

room_number
string

Nur dieses Zimmer, per Zimmernummer

Responses

Request samples

Content type
application/json
{
  • "rm_item_id": 9001
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "data": {
    }
}

Check-Out

URL-{id} ist immer rm_booking_id. Nur ein Zimmer: rm_item_id oder room_number im Body/Query. Ohne Angabe: alle Zimmer der Belegung.

Authorizations:
(bearerAuthbasicAuth)
path Parameters
id
required
integer
Example: 12345

Immer rm_booking_id. Einzelnes Zimmer nur über rm_item_id im Body/Query (IDs können identisch sein).

Request Body schema: application/json
optional
rm_item_id
integer

Nur dieses Zimmer (rm_item_id)

room_number
string

Nur dieses Zimmer, per Zimmernummer

Responses

Request samples

Content type
application/json
{
  • "rm_item_id": 9001
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "data": {
    }
}

Rechnung zur Belegung

Erstellt eine Rechnung (RE) über noch nicht abgerechnete Positionen. Sind alle Positionen schon auf einer Rechnung, wird diese zurückgegeben (HTTP 200). book_payment=1 verbucht eine Zahlung; amount ist dann Pflicht (Teilzahlungen möglich). Dieselbe reference verhindert Doppelbuchungen bei Timeouts.

Authorizations:
(bearerAuthbasicAuth)
path Parameters
id
required
integer
Example: 12345

Immer rm_booking_id. Einzelnes Zimmer nur über rm_item_id im Body/Query (IDs können identisch sein).

Request Body schema: application/json
optional
st_voucher_type_id
string

Belegart. Standard: RE.

st_payment_method_id
string

Zahlungsweise. Standard: UE.

book_payment
integer
Default: 0
Enum: 0 1

1 = Zahlung nach dem Anlegen verbuchen. Dann amount Pflicht.

reference
string

Eindeutige Payment-ID des Terminals. Pflicht für sichere Wiederholung.

amount
number <float>

Zahlungsbetrag. Pflicht bei book_payment=1. Darf den offenen Betrag nicht überschreiten.

date
string <date>

Zahlungsdatum. Standard: jetzt.

Responses

Request samples

Content type
application/json
{
  • "st_payment_method_id": "CC",
  • "book_payment": 1,
  • "amount": 100,
  • "reference": "term_123"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2019-08-24T14:15:22Z",
  • "data": {
    }
}

Zahlung zur Belegungsrechnung

Verbucht eine (Teil-)Zahlung auf der offenen Rechnung der Belegung. amount ist Pflicht. Bevorzugt: POST /vouchers/{vk_voucher_no}/payment. Ohne vk_voucher_no die älteste offene Rechnung. Dieselbe reference gibt die bereits verbuchte Zahlung zurück (HTTP 200).

Authorizations:
(bearerAuthbasicAuth)
path Parameters
id
required
integer
Example: 12345

Immer rm_booking_id. Einzelnes Zimmer nur über rm_item_id im Body/Query (IDs können identisch sein).

Request Body schema: application/json
required
vk_voucher_no
string

Optional. Leer = älteste offene Rechnung der Belegung.

st_payment_method_id
string
amount
required
number <float>

Zahlungsbetrag. Pflicht. Darf den offenen Betrag nicht überschreiten.

reference
string

Eindeutige Payment-ID.

date
string <date>

Responses

Request samples

Content type
application/json
{
  • "st_payment_method_id": "CC",
  • "amount": 100,
  • "reference": "term_123"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2019-08-24T14:15:22Z",
  • "data": {
    }
}

Benutzerstatus der Belegung setzen

Ersetzt die Kennzeichnungen eines Zimmers (VIP, Hund, Early Check-in, individuell angelegte Status). URL-{id} ist rm_booking_id. Ohne rm_item_id: alle Zimmer der Belegung.

Authorizations:
(bearerAuthbasicAuth)
path Parameters
id
required
integer
Example: 12345

Immer rm_booking_id. Einzelnes Zimmer nur über rm_item_id im Body/Query (IDs können identisch sein).

Request Body schema: application/json
required
required
Array of strings or objects

IDs, Token oder Namen. Leeres Array entfernt alle Kennzeichnungen.

rm_item_id
integer

Nur dieses Zimmer

room_number
string

Responses

Request samples

Content type
application/json
{
  • "user_status": [
    ],
  • "rm_item_id": 9001
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "data": {
    }
}

Reinigungsangaben der Belegung setzen

Setzt cleaning_type, Gastwunsch und/oder Reinigungsliste (note2). URL-{id} ist rm_booking_id. Einzelnes Zimmer: rm_item_id oder room_number.

Authorizations:
(bearerAuthbasicAuth)
path Parameters
id
required
integer
Example: 12345

Immer rm_booking_id. Einzelnes Zimmer nur über rm_item_id im Body/Query (IDs können identisch sein).

Request Body schema: application/json
required
cleaning_type
string

0, 1, -1, -2, 1d–14d, mon–sun

cleaning_type_guest
integer
Enum: -2 -1 0 1
note2
string

Reinigungsliste

note
string

Gästenotiz

rm_item_id
integer
room_number
string

Responses

Request samples

Content type
application/json
{
  • "cleaning_type": "0",
  • "note2": "Extra Handtücher",
  • "rm_item_id": 9001
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "data": {
    }
}

Benutzer

Benutzer des Mandanten. Nur Lesen. Auth: API-Host + HostLimitation auf die Schnittstelle users.

Benutzerliste

Benutzer mit Zuordnung zum Mandanten. Standard nur aktive. Keine Passwörter oder Rechte.

Authorizations:
(bearerAuthbasicAuth)
query Parameters
cms_client_id
integer

Mandant-ID (Standard: aktiver Client)

is_active
string
Example: is_active=1

1 = nur aktive (Standard), 0 = nur gesperrte, all = alle

include_disabled
integer

1 = aktive und gesperrte (wie is_active=all)

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-09-02 14:00:00",
  • "data": [
    ]
}

Benutzer lesen

Authorizations:
(bearerAuthbasicAuth)
path Parameters
id
required
integer
Example: 12

bv_user_id

query Parameters
cms_client_id
integer

Mandant-ID

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-09-02 14:00:00",
  • "data": {
    }
}

FiBu Export

Einheitlicher FiBu-Export-Endpoint. Unterstützt DATEV und Diamant. Format wird aus ClientSettings gelesen, kann per Parameter überschrieben werden.

FiBu-Export starten

Startet den FiBu-Export für den angegebenen Zeitraum.

Format-Auflösung: Parameter format > ClientSettings fibu_format > Fallback datev

Rückgabe: JSON mit download_url (TTL 1h) zur ZIP-Datei.

Positionen mit fehlenden FiBu-Konten werden in missing_fields zurückgegeben — der Export wird abgebrochen.

lock=true: Exportiert nur nicht-festgeschriebene Belege und schreibt diese nach erfolgreichem Export fest (GoBD-konform, is_transfered_fibu = 1). Verhindert Doppelexporte. Akzeptiert true/false und 1/0; ungültige Werte liefern HTTP 400. Die Response enthält locked_count und locked_vouchers mit den tatsächlich festgeschriebenen Belegen.

Hinweis: datev_xml exportiert nur Belegbilder (PDFs), keine Buchungssätze — missing_fields ist immer leer.

HTTP 422: Export hat keine Daten geliefert oder alle Positionen haben fehlende Konten.

Authorizations:
(bearerAuthbasicAuth)
query Parameters
from
required
string <date>
Example: from=2024-06-01

Startdatum Y-m-d

until
required
string <date>
Example: until=2024-06-30

Enddatum Y-m-d

cms_client_id
integer

Mandant-ID (Standard: aktiver Client)

lock
boolean
Default: false

Belege nach Export festschreiben (GoBD-konform). true/1 = nur nicht-festgeschriebene Belege exportieren + nach Export festschreiben. false/0 (Standard) = alle Belege exportieren, kein Festschreiben. Akzeptiert true, false, 1, 0 (Groß/Kleinschreibung egal). Ungültige Werte: HTTP 400.

format
string
Enum: "datev" "datev_xml" "diamant"

Export-Format (Standard aus ClientSettings: fibu_format).

datev = DATEV Buchungsstapel CSV (Buchungsdaten)

datev_xml = DATEV XML mit Belegbildern (PDFs)

diamant = Diamant FiBu CSV

type[]
Array of strings
Items Enum: "VK" "FI" "KB"
Example: type[]=VK&type[]=FI

Export-Typen (mehrfach angeben möglich). Default: alle drei. VK = Rechnungen/Gutschriften, FI = Zahlungen & Anzahlungen, KB = Kassenbuch

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2024-06-01 10:00:00",
  • "download_url": "/API/fibu/download?path=L3Zhci93d3cv...&token=1781250413.08d0...",
  • "path": "L3Zhci93d3cvdml0YWxpc2VybWFubnRyYXV0...",
  • "token": "1781250413.08d0db7238c10b6da0888842ac7bb25b...",
  • "filename": "DATEV-2024-06-01-2024-06-30.zip",
  • "format": "datev",
  • "types": [
    ],
  • "locked": true,
  • "locked_count": 2,
  • "locked_vouchers": [
    ],
  • "missing_fields": [ ],
  • "warnings": [ ]
}

ZIP-Datei herunterladen

Liefert die ZIP-Datei des FiBu-Exports als Binary-Download. Der path- und token-Parameter kommen aus der download_url der Export-Response. Token ist 1 Stunde gültig.

Authorizations:
(bearerAuthbasicAuth)
query Parameters
path
required
string

Base64-kodierter Dateipfad (aus download_url)

token
required
string

Signierter Download-Token (aus download_url)

Responses

Response samples

Content type
application/json
{
  • "code": 400,
  • "message": "Ungültige oder fehlende Parameter",
  • "date": "2026-08-25 23:35:23"
}

Fundsachen

Fundsachen anlegen, lesen und aktualisieren. Auth: API-Host + HostLimitation auf die Schnittstelle lostfound.

Fundsachenliste

Authorizations:
(bearerAuthbasicAuth)
query Parameters
limit
integer
Example: limit=25

Treffer pro Seite (max. 250)

page
integer
Example: page=1

Seite (ab 1)

cms_client_id
integer

Mandant-ID

status
integer

0 = Offen, 4 = Erledigt

location
string

Fundort (Teilstring)

date_from
string <date>

Funddatum von (Y-m-d)

date_until
string <date>

Funddatum bis (Y-m-d)

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "source": "cache",
  • "data": [
    ]
}

Fundsache anlegen

Legt eine Fundsache in Swoppen an (z. B. aus der Housekeeping-App).

Authorizations:
(bearerAuthbasicAuth)
Request Body schema: application/json
required
sp_lostfound_id
integer

Interne ID (nur lesend)

date
string <date>

Funddatum (Y-m-d)

title
required
string

Bezeichnung / Titel

location
string

Fundort / Zimmer. Alternativ rm_resource_id / room_number beim Anlegen.

founder
string

Gefunden von

content
string

Beschreibung

cms_address_id
integer

Optionale Gästeadresse

cms_client_id
integer
status
integer
Enum: 0 4

0 = Offen, 4 = Erledigt.

status_label
string

Offen / Erledigt (nur lesend)

created_date
string <date-time>
modified_date
string <date-time>
rm_resource_id
integer

Zimmer-ID; setzt location auf das Kürzel, falls location leer.

room_number
string

Zimmernummer als Fundort, falls location leer.

token
string

Zimmerkürzel als Fundort, falls location leer.

Responses

Request samples

Content type
application/json
{
  • "title": "Schlüsselbund",
  • "date": "2026-08-25",
  • "location": "101",
  • "founder": "Hausdame",
  • "content": "Am Nachttisch",
  • "room_number": "101"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "data": {
    }
}

Fundsache lesen

Authorizations:
(bearerAuthbasicAuth)
path Parameters
id
required
integer
Example: 42

sp_lostfound_id

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "data": {
    }
}

Fundsache aktualisieren

Authorizations:
(bearerAuthbasicAuth)
path Parameters
id
required
integer
Example: 42

sp_lostfound_id

Request Body schema: application/json
required
sp_lostfound_id
integer

Interne ID (nur lesend)

date
string <date>

Funddatum (Y-m-d)

title
required
string

Bezeichnung / Titel

location
string

Fundort / Zimmer. Alternativ rm_resource_id / room_number beim Anlegen.

founder
string

Gefunden von

content
string

Beschreibung

cms_address_id
integer

Optionale Gästeadresse

cms_client_id
integer
status
integer
Enum: 0 4

0 = Offen, 4 = Erledigt.

status_label
string

Offen / Erledigt (nur lesend)

created_date
string <date-time>
modified_date
string <date-time>
rm_resource_id
integer

Zimmer-ID; setzt location auf das Kürzel, falls location leer.

room_number
string

Zimmernummer als Fundort, falls location leer.

token
string

Zimmerkürzel als Fundort, falls location leer.

Responses

Request samples

Content type
application/json
{
  • "status": 4,
  • "founder": "Hausdame"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "data": {
    }
}

Gesperrte Zeiträume

Zimmer für einen Zeitraum sperren (Out of Order). Resource-ID ist rm_item_id. Auth: API-Host + HostLimitation auf die Schnittstelle locked-ranges.

Gesperrte Zeiträume

Sperren (is_locked=1), standardmäßig ab heute. Überlappungsfilter über date_from / date_until.

Authorizations:
(bearerAuthbasicAuth)
query Parameters
date_from
string <date>

Nur Sperren mit until >= date_from. Standard: heute.

date_until
string <date>

Nur Sperren mit from <= date_until.

rm_resource_id
integer

Nur dieses Zimmer

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2019-08-24T14:15:22Z",
  • "data": [
    ]
}

Zeitraum sperren

Legt eine oder mehrere Sperren an. Pflicht: rm_resource_id, from, until. HTTP 409 wenn das Zimmer im Zeitraum belegt oder bereits gesperrt ist.

Authorizations:
(bearerAuthbasicAuth)
Request Body schema: application/json
required
required
integer or Array of integers

Ein Zimmer oder mehrere.

from
required
string <date>
until
required
string <date>
note
string
color
string

Responses

Request samples

Content type
application/json
{
  • "rm_resource_id": 12,
  • "from": "2026-09-10",
  • "until": "2026-09-15",
  • "note": "Renovierung"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2019-08-24T14:15:22Z",
  • "data": {
    }
}

Gesperrten Zeitraum lesen

Authorizations:
(bearerAuthbasicAuth)
path Parameters
id
required
integer

rm_item_id

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2019-08-24T14:15:22Z",
  • "data": {
    }
}

Gesperrten Zeitraum ändern

Authorizations:
(bearerAuthbasicAuth)
path Parameters
id
required
integer

rm_item_id

Request Body schema: application/json
required
required
integer or Array of integers

Ein Zimmer oder mehrere.

from
required
string <date>
until
required
string <date>
note
string
color
string

Responses

Request samples

Content type
application/json
{
  • "rm_resource_id": 12,
  • "from": "2026-09-10",
  • "until": "2026-09-15",
  • "note": "Renovierung",
  • "color": "#641e16"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2019-08-24T14:15:22Z",
  • "data": {
    }
}

Sperre aufheben

Authorizations:
(bearerAuthbasicAuth)
path Parameters
id
required
integer

rm_item_id

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2019-08-24T14:15:22Z",
  • "data": {
    }
}

Kunden

Kundenstammdaten (Adresse, Person, Debitor). Resource-ID ist st_customer_id. Auth: API-Host + HostLimitation auf die Schnittstelle customers.

Kundenliste

Paginierte Liste aus dem Kundenadresskatalog.

Authorizations:
(bearerAuthbasicAuth)
query Parameters
limit
integer
Example: limit=25

Treffer pro Seite

page
integer
Example: page=1

Seite (ab 1)

cms_client_id
integer

Mandant-ID (Standard: aktiver Client)

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "source": "cache",
  • "data": [
    ]
}

Kunde anlegen

Legt Kunde, Adresse und Person an. Ohne st_customer_id wird die nächste freie Nummer vergeben.

Authorizations:
(bearerAuthbasicAuth)
Request Body schema: application/json
required
st_customer_id
string

Kunden-Nr.

cms_client_id
integer
cms_address_id
integer
cms_person_id
integer
cms_address_catalogue_id
integer
key_name
string

Suchname

company
string
name
string
first_name
string
title
string
sex
string
Enum: "m" "w" "d" ""
birthdate
string <date>
address
string

Anrede

street
string
zip
string
location
string
cms_country_iso_code
string
tel1
string
mobile
string
fax
string
email
string <email>
email2
string <email>
email_invoice
string <email>
www
string
vat_id
string
tax_id
string
st_account_id
string

Debitorenkonto

st_payment_method_id
string

Zahlungsweise

st_payment_target_id
string
st_payment_agreement_id
string
st_price_list_id
string
st_delivery_term_id
string
st_federation_id
string
credit_limit
number
discount_procent
number
customer_from
string <date>
customer_until
string <date>
remark
string

Responses

Request samples

Content type
application/json
{
  • "name": "Mustermann",
  • "first_name": "Max",
  • "street": "Musterstraße 1",
  • "zip": "10115",
  • "location": "Berlin",
  • "email": "max@example.com"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "data": {
    }
}

Kunde lesen

Authorizations:
(bearerAuthbasicAuth)
path Parameters
id
required
string
Example: 10001

Kunden-Nr. (st_customer_id)

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "data": {
    }
}

Kunde ändern

Teilupdate. PUT und PATCH sind ebenfalls erlaubt.

Authorizations:
(bearerAuthbasicAuth)
path Parameters
id
required
string
Example: 10001

Kunden-Nr. (st_customer_id)

Request Body schema: application/json
required
st_customer_id
string

Kunden-Nr.

cms_client_id
integer
cms_address_id
integer
cms_person_id
integer
cms_address_catalogue_id
integer
key_name
string

Suchname

company
string
name
string
first_name
string
title
string
sex
string
Enum: "m" "w" "d" ""
birthdate
string <date>
address
string

Anrede

street
string
zip
string
location
string
cms_country_iso_code
string
tel1
string
mobile
string
fax
string
email
string <email>
email2
string <email>
email_invoice
string <email>
www
string
vat_id
string
tax_id
string
st_account_id
string

Debitorenkonto

st_payment_method_id
string

Zahlungsweise

st_payment_target_id
string
st_payment_agreement_id
string
st_price_list_id
string
st_delivery_term_id
string
st_federation_id
string
credit_limit
number
discount_procent
number
customer_from
string <date>
customer_until
string <date>
remark
string

Responses

Request samples

Content type
application/json
{
  • "email": "neu@example.com",
  • "tel1": "+493012345"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "data": {
    }
}

Kunde ändern

Authorizations:
(bearerAuthbasicAuth)
path Parameters
id
required
string
Example: 10001

Kunden-Nr. (st_customer_id)

Request Body schema: application/json
required
st_customer_id
string

Kunden-Nr.

cms_client_id
integer
cms_address_id
integer
cms_person_id
integer
cms_address_catalogue_id
integer
key_name
string

Suchname

company
string
name
string
first_name
string
title
string
sex
string
Enum: "m" "w" "d" ""
birthdate
string <date>
address
string

Anrede

street
string
zip
string
location
string
cms_country_iso_code
string
tel1
string
mobile
string
fax
string
email
string <email>
email2
string <email>
email_invoice
string <email>
www
string
vat_id
string
tax_id
string
st_account_id
string

Debitorenkonto

st_payment_method_id
string

Zahlungsweise

st_payment_target_id
string
st_payment_agreement_id
string
st_price_list_id
string
st_delivery_term_id
string
st_federation_id
string
credit_limit
number
discount_procent
number
customer_from
string <date>
customer_until
string <date>
remark
string

Responses

Request samples

Content type
application/json
{
  • "st_customer_id": "10001",
  • "cms_client_id": 0,
  • "cms_address_id": 0,
  • "cms_person_id": 0,
  • "cms_address_catalogue_id": 0,
  • "key_name": "Mustermann, Max",
  • "company": "string",
  • "name": "Mustermann",
  • "first_name": "Max",
  • "title": "string",
  • "sex": "m",
  • "birthdate": "2019-08-24",
  • "address": "string",
  • "street": "string",
  • "zip": "string",
  • "location": "string",
  • "cms_country_iso_code": "DE",
  • "tel1": "string",
  • "mobile": "string",
  • "fax": "string",
  • "email": "user@example.com",
  • "email2": "user@example.com",
  • "email_invoice": "user@example.com",
  • "www": "string",
  • "vat_id": "string",
  • "tax_id": "string",
  • "st_account_id": "string",
  • "st_payment_method_id": "string",
  • "st_payment_target_id": "string",
  • "st_payment_agreement_id": "string",
  • "st_price_list_id": "string",
  • "st_delivery_term_id": "string",
  • "st_federation_id": "string",
  • "credit_limit": 0,
  • "discount_procent": 0,
  • "customer_from": "2019-08-24",
  • "customer_until": "2019-08-24",
  • "remark": "string"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "data": {
    }
}

Kunde löschen

Löscht Kunde, Adresse und Person. HTTP 409 wenn der Datensatz noch verwendet wird (Belege, Buchungen, Zuordnungen).

Authorizations:
(bearerAuthbasicAuth)
path Parameters
id
required
string
Example: 10001

Kunden-Nr. (st_customer_id)

Responses

Response samples

Content type
application/json
{
  • "code": 400,
  • "message": "Ungültige oder fehlende Parameter",
  • "date": "2026-08-25 23:35:23"
}

Projekte

Projekte erstellen

Projekte

Authorizations:
(bearerAuthbasicAuth)
Request Body schema: application/json
required
pms_type_id
required
number

Typ

Mögliche Werte: Intern = Intern Kundenauftrag = Kundenauftrag

pms_project_no
required
string

Projekt-Nr.

name
required
string

Titel

description
string

Beschreibung

status_description
string

Status

st_customer_id
string

Kunden-Nr.

per_personnel_id
integer
status
number

Status

Mögliche Werte: 1 = Aktiv 0 = Inaktiv

progress
integer

Fortschritt Prozent

scheduled_start
string <date>

Beginn

scheduled_end
string <date>

Ende

cms_address_id
integer

Responses

Request samples

Content type
application/json
[ ]

Liste aller Projekte

Projekte

Authorizations:
(bearerAuthbasicAuth)
query Parameters
limit
integer <= 250
Default: 25
Example: limit=25

Anzahl der Elemente, die pro Seite zurückgegeben werden

page
integer
Default: 0

Auflistung der Elemente ab Seite

progress
string

Fortschritt

pms_project_no
string

Projekt-Nr.

name
string

Name

pms_type_id
string
Enum: "Intern" "Kundenauftrag"

Typ

Mögliche Werte: Intern = Intern Kundenauftrag = Kundenauftrag

st_customer_id
string

Kunden-Nr.

key_name
string

Suchname

responsible_person
string

Verantwortlicher

scheduled_start
string

Beginn

scheduled_end
string

Ende

status
integer
Enum: 1 2

Status

Mögliche Werte: 1 = Aktiv 2 = Inaktiv

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    },
  • "code": 0,
  • "message": "string",
  • "date": "2019-08-24T14:15:22Z"
}

Projekte bearbeiten

Projekte

Authorizations:
(bearerAuthbasicAuth)
path Parameters
pms_project_id
required
integer
Request Body schema: application/json
required
pms_type_id
required
number

Typ

Mögliche Werte: Intern = Intern Kundenauftrag = Kundenauftrag

pms_project_no
required
string

Projekt-Nr.

name
required
string

Titel

description
string

Beschreibung

status_description
string

Status

st_customer_id
string

Kunden-Nr.

per_personnel_id
integer
status
number

Status

Mögliche Werte: 1 = Aktiv 0 = Inaktiv

progress
integer

Fortschritt Prozent

scheduled_start
string <date>

Beginn

scheduled_end
string <date>

Ende

cms_address_id
integer

Responses

Request samples

Content type
application/json
""

Projekte löschen

Projekte

Authorizations:
(bearerAuthbasicAuth)
path Parameters
pms_project_id
required
integer

Responses

Projekte abfragen

Projekte

Authorizations:
(bearerAuthbasicAuth)
path Parameters
pms_project_id
required
integer

Responses

Response samples

Content type
application/json
{
  • "pms_type_id": 0,
  • "pms_project_no": "string",
  • "name": "string",
  • "description": "string",
  • "status_description": "string",
  • "st_customer_id": "string",
  • "per_personnel_id": 0,
  • "status": 0,
  • "progress": 0,
  • "scheduled_start": "2019-08-24",
  • "scheduled_end": "2019-08-24",
  • "cms_address_id": 0
}

Revenue Management

Vorberechnete und Live-Daten für Revenue Management Systeme. Cache-Strategie: occupancy/bookings/forecast via Cache (TTL 1h), rates live.

Belegung & KPIs

Tägliche oder monatliche Belegungs-KPIs. rooms_available ist die Zimmerkapazität, arrivals/departures die An- und Abreisen. cms_client_id ist die Mandanten-ID. Cache TTL 1h.

Authorizations:
(bearerAuthbasicAuth)
query Parameters
date_from
required
string <date>
Example: date_from=2024-06-01

Startdatum Y-m-d

date_until
required
string <date>
Example: date_until=2024-06-30

Enddatum Y-m-d

cms_client_id
integer

Mandant-ID (Standard: aktiver Client)

granularity
string
Default: "daily"
Enum: "daily" "monthly"

Aggregierungsebene

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "source": "cache",
  • "data": [
    ]
}

Preise & Raten lesen

Raten je Zimmerkategorie und Tag. Tagespreis aus swo_rm_article_contingents, sonst Listenpreis aus swo_st_prices. Immer live (kein Cache).

Authorizations:
(bearerAuthbasicAuth)
query Parameters
date_from
required
string <date>
Example: date_from=2024-06-01

Startdatum Y-m-d

date_until
required
string <date>
Example: date_until=2024-06-30

Enddatum Y-m-d

cms_client_id
integer

Mandant-ID (Standard: aktiver Client)

st_price_list_id
string

Preisliste (Standard: Mandanten-Preisliste)

st_article_id
string

Nur diese Zimmerkategorie

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "source": "cache",
  • "data": [
    ]
}

Preise & Raten schreiben

Schreibt Raten in swo_rm_article_contingents. Existierende Einträge werden aktualisiert (is_rate_modified = 1), neue angelegt. Preisliste aus ClientSettings, überschreibbar per st_price_list_id.

Authorizations:
(bearerAuthbasicAuth)
query Parameters
cms_client_id
integer

Mandant-ID

Request Body schema: application/json
required
Array
st_article_id
required
integer

Zimmerkategorie-ID

date
required
string <date>

Datum Y-m-d

price
required
number <float>

Neuer Preis

st_price_list_id
integer

Preislisten-ID (optional, Standard aus ClientSettings)

Responses

Request samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Response samples

Content type
application/json
{
  • "code": 400,
  • "message": "Ungültige oder fehlende Parameter",
  • "date": "2026-08-25 23:35:23"
}

Buchungen & Reservierungen

Aggregierte Buchungszahlen nach Anreisetag, Channel (b.source) und Zimmerkategorie. Cache TTL 1h.

Authorizations:
(bearerAuthbasicAuth)
query Parameters
date_from
required
string <date>
Example: date_from=2024-06-01

Startdatum Y-m-d

date_until
required
string <date>
Example: date_until=2024-06-30

Enddatum Y-m-d

cms_client_id
integer

Mandant-ID (Standard: aktiver Client)

granularity
string
Default: "daily"
Enum: "daily" "monthly"

Aggregierungsebene

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "source": "cache",
  • "data": [
    ]
}

On-The-Books Forecast

OTB-Stand je Tag: Belegung und Umsatz (Logis, F&B, Sonstiges) anteilig verteilt. Cache TTL 1h. budget_revenue / variance_pct sind null bis Budget-System angebunden.

Authorizations:
(bearerAuthbasicAuth)
query Parameters
date_from
required
string <date>
Example: date_from=2024-06-01

Startdatum Y-m-d

date_until
required
string <date>
Example: date_until=2024-06-30

Enddatum Y-m-d

cms_client_id
integer

Mandant-ID (Standard: aktiver Client)

granularity
string
Default: "daily"
Enum: "daily" "monthly"

Aggregierungsebene

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "source": "cache",
  • "data": [
    ]
}

Services

Leistungen auf Buchungen, Zimmer, Gäste oder beliebige Objekte buchen.

Leistung(en) buchen

Bucht eine oder mehrere Leistungen.

Einzelbuchung: Objekt direkt übergeben → HTTP 201.

Batch: Array von Objekten → HTTP 207 (Multi-Status). Jede Position hat ein eigenes success-Flag.

Zielobjekt: cms_object + id bestimmen worauf gebucht wird.

Authorizations:
(bearerAuthbasicAuth)
Request Body schema: application/json
required
One of
cms_object
required
string
Enum: "rm_booking_id" "rm_item_id" "cms_address_id" "sp_ticket_id"

Typ des Zielobjekts

id
required
integer

ID des Zielobjekts

rm_booking_id
integer

Buchungs-ID (wenn cms_object = rm_booking_id)

rm_item_id
integer

Zimmer-ID (wenn service_for = room)

cms_address_id
integer

Gast-Adress-ID (wenn service_for = guest)

cms_client_id
integer

Mandant-ID (Standard: aktiver Client)

st_article_id
required
string

Artikel-ID

price
required
number <float>

Preis (Brutto oder Netto je nach ClientSettings isNetPricing)

quantity
number <float>
Default: 1
time_quantity
number <float>
Default: 1

Zeitmenge (z.B. Anzahl Nächte)

st_quantity_unit_id
required
string

Mengeneinheit-ID

tax
integer or null

Steuersatz in % (z.B. 19, 7, 0). Optional — wird der passende Steuerschlüssel automatisch ermittelt. Ohne Angabe: Standard-Umsatzsteuerschlüssel des Mandanten.

pos_discount
number <float>
Default: 0

Rabatt in %

date
string <date>

Leistungsdatum (Einzeltag)

date_from
string <date>

Leistungszeitraum von

date_until
string <date>

Leistungszeitraum bis

text
string

Leistungstext

description
string

Beschreibung

is_hidden
integer
Default: 0
Enum: 0 1

Auf Belegen verstecken

is_included
integer
Default: 0
Enum: 0 1

Leistung ist im Paketpreis enthalten

Responses

Request samples

Content type
application/json
Example
{
  • "cms_object": "rm_booking_id",
  • "id": 42,
  • "cms_client_id": 1,
  • "st_article_id": "Fr",
  • "price": 12.5,
  • "quantity": 2,
  • "time_quantity": 1,
  • "st_quantity_unit_id": "St.",
  • "tax": 19,
  • "date": "2024-06-01",
  • "text": "Frühstück"
}

Response samples

Content type
application/json
{
  • "code": 201,
  • "message": "",
  • "date": "2024-06-01 10:00:00",
  • "results": [
    ]
}

Stammdaten

Dynamisches CRUD für Stammdaten. Entity-Slug in der URL, z.B. /masterdata/articles, /masterdata/payment_methods. GET /masterdata liefert den Katalog. Auth: API-Host + HostLimitation auf die Schnittstelle masterdata.

Stammdaten-Katalog

Liste der verfügbaren Entitäten inkl. Slug, Titel und erlaubten Operationen.

Authorizations:
(bearerAuthbasicAuth)

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "source": "cache",
  • "data": [
    ]
}

Stammdaten-Liste

Paginierte Liste. Filter aus dem ORM der Entität als Query-Parameter.

Authorizations:
(bearerAuthbasicAuth)
path Parameters
entity
required
string
Enum: "accounts" "accounting_texts" "article_group_mains" "article_groups" "article_models" "articles" "branches" "cancellations" "cost_centres" "currencies" "currency_courses" "delivery_terms" "departments" "federations" "inventory_stocks" "inventory_voucher_types" "number_ranges" "order_types" "payment_agreements" "payment_methods" "payment_plans" "payment_targets" "price_lists" "prices" "voucher_types" "qualifications" "quantity_units" "sales_prefillings" "sales_tax" "sales_voucher_types" "shipping" "tax_classes" "tax_keys" "tax_types"

Stammdaten-Entität (siehe GET /masterdata)

query Parameters
limit
integer
Example: limit=25

Treffer pro Seite

page
integer

Seite

cms_client_id
integer

Mandant-ID (Standard: aktiver Client)

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2019-08-24T14:15:22Z",
  • "data": [
    ]
}

Stammdaten anlegen

Authorizations:
(bearerAuthbasicAuth)
path Parameters
entity
required
string
Enum: "accounts" "accounting_texts" "article_group_mains" "article_groups" "article_models" "articles" "branches" "cancellations" "cost_centres" "currencies" "currency_courses" "delivery_terms" "departments" "federations" "inventory_stocks" "inventory_voucher_types" "number_ranges" "order_types" "payment_agreements" "payment_methods" "payment_plans" "payment_targets" "price_lists" "prices" "voucher_types" "qualifications" "quantity_units" "sales_prefillings" "sales_tax" "sales_voucher_types" "shipping" "tax_classes" "tax_keys" "tax_types"

Stammdaten-Entität (siehe GET /masterdata)

Request Body schema: application/json
required
property name*
additional property
any

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2019-08-24T14:15:22Z",
  • "data": { }
}

Stammdaten lesen

Authorizations:
(bearerAuthbasicAuth)
path Parameters
entity
required
string
Enum: "accounts" "accounting_texts" "article_group_mains" "article_groups" "article_models" "articles" "branches" "cancellations" "cost_centres" "currencies" "currency_courses" "delivery_terms" "departments" "federations" "inventory_stocks" "inventory_voucher_types" "number_ranges" "order_types" "payment_agreements" "payment_methods" "payment_plans" "payment_targets" "price_lists" "prices" "voucher_types" "qualifications" "quantity_units" "sales_prefillings" "sales_tax" "sales_voucher_types" "shipping" "tax_classes" "tax_keys" "tax_types"

Stammdaten-Entität (siehe GET /masterdata)

id
required
string
Example: 1

Datensatz-ID (Zahl oder String, z.B. BAR bei Zahlungsweisen)

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2019-08-24T14:15:22Z",
  • "data": { }
}

Tickets

Tickets erstellen

Tickets

Authorizations:
(bearerAuthbasicAuth)
Request Body schema: application/json
required
cms_address_id
integer
cms_facility_id
integer
cl_checklist_id
integer
st_article_id
integer
st_cost_centre_id
integer
pms_project_id
integer
cms_contacting_id
integer
auf_task_id
integer
rm_item_id
integer
rm_booking_id
integer
pze_shift_id
integer
task
string
azn_time
string
st_customer_id
string

Kunden-Nr.

to_clear
boolean

Abrechnen

date
required
string <date-time>

Fällig

estimated_time
string

Erwartete Dauer Min.

subject
required
string

Titel

content
string

Beschreibung

remark
string

Notiz

priority
required
number

Priorität

Mögliche Werte: 1 = Blocker 2 = Kritisch 6 = Hoch 3 = Normal 4 = Geringfügig 5 = Trivial

status
number

Status

Mögliche Werte: 0 = Neu 1 = Offen 2 = In Bearbeitung 7 = Warte auf Freigabe 8 = Freigabe 6 = Klärung 3 = Wiedervorlage 4 = Erledigt 5 = Archiviert 9 = Abgelehnt default = Neu

sp_type_id
number

Typ

Mögliche Werte: 1 = Beispieltyp

sp_ticket_category_id
number

Kategorie

Mögliche Werte: 3 = adsf 2 = Housekeeping 1 = Rezepzion

per_activity_id
number

Bereich

Mögliche Werte: 2 = Entwicklung 4 = Marketing 3 = Service 1 = Anmeldung

bv_usergroup_id
number

Benutzergruppe

Mögliche Werte: 9 = restaurant 4 = Rezeption 5 = Stempeluhr

bv_user_id
integer
creator
string

Ersteller

tags
string

Tags

Responses

Request samples

Content type
application/json
{
  • "priority": 3,
  • "date": "2026-08-25 23:35:00",
  • "status": 0,
  • "subject": "Heizung defekt",
  • "content": "Die Heizung in Raum 2 fällt ständig aus."
}

Liste aller Tickets

Tickets

Authorizations:
(bearerAuthbasicAuth)
query Parameters
limit
integer <= 250
Default: 25
Example: limit=25

Anzahl der Elemente, die pro Seite zurückgegeben werden

page
integer
Default: 0

Auflistung der Elemente ab Seite

to_clear
string
sp_ticket_id
string

ID

title
string

Titel

subject
string

Titel

content
string

Beschreibung

category
integer
Enum: 3 2 1

Kategorie

Mögliche Werte: 3 = adsf 2 = Housekeeping 1 = Rezepzion

type
integer
Value: 1

Typ

Mögliche Werte: 1 = Beispieltyp

project
string

Projekt

st_customer_id
string

Kunden-Nr.

detector
string

Melder

usergroup
string

Gruppe

creator
string

Erstellt von

editor
string

Bearbeiter

date
string

Fällig

date_time
string

Uhrzeit

estimated_time
string

Soll

actual_time
string

Ist

created_date
string

Erstellt am

modified_date
string

Geändert am

closed_date
string

Geschlossen am

status
integer
Enum: 1 2 9 4 5 7 8 6 3

Status

Mögliche Werte: 1 = Offen 2 = In Bearbeitung 9 = Abgelehnt 4 = Erledigt 5 = Archiviert 7 = Warte auf Freigabe 8 = Freigabe 6 = Klärung 3 = Wiedervorlage

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    },
  • "code": 0,
  • "message": "string",
  • "date": "2019-08-24T14:15:22Z"
}

Tickets bearbeiten

Tickets

Authorizations:
(bearerAuthbasicAuth)
path Parameters
sp_ticket_id
required
integer
Request Body schema: application/json
required
cms_address_id
integer
cms_facility_id
integer
cl_checklist_id
integer
st_article_id
integer
st_cost_centre_id
integer
pms_project_id
integer
cms_contacting_id
integer
auf_task_id
integer
rm_item_id
integer
rm_booking_id
integer
pze_shift_id
integer
task
string
azn_time
string
st_customer_id
string

Kunden-Nr.

to_clear
boolean

Abrechnen

date
required
string <date-time>

Fällig

estimated_time
string

Erwartete Dauer Min.

subject
required
string

Titel

content
string

Beschreibung

remark
string

Notiz

priority
required
number

Priorität

Mögliche Werte: 1 = Blocker 2 = Kritisch 6 = Hoch 3 = Normal 4 = Geringfügig 5 = Trivial

status
number

Status

Mögliche Werte: 0 = Neu 1 = Offen 2 = In Bearbeitung 7 = Warte auf Freigabe 8 = Freigabe 6 = Klärung 3 = Wiedervorlage 4 = Erledigt 5 = Archiviert 9 = Abgelehnt default = Neu

sp_type_id
number

Typ

Mögliche Werte: 1 = Beispieltyp

sp_ticket_category_id
number

Kategorie

Mögliche Werte: 3 = adsf 2 = Housekeeping 1 = Rezepzion

per_activity_id
number

Bereich

Mögliche Werte: 2 = Entwicklung 4 = Marketing 3 = Service 1 = Anmeldung

bv_usergroup_id
number

Benutzergruppe

Mögliche Werte: 9 = restaurant 4 = Rezeption 5 = Stempeluhr

bv_user_id
integer
creator
string

Ersteller

tags
string

Tags

Responses

Request samples

Content type
application/json
""

Tickets löschen

Tickets

Authorizations:
(bearerAuthbasicAuth)
path Parameters
sp_ticket_id
required
integer

Responses

Tickets abfragen

Tickets

Authorizations:
(bearerAuthbasicAuth)
path Parameters
sp_ticket_id
required
integer

Responses

Response samples

Content type
application/json
{
  • "cms_address_id": 0,
  • "cms_facility_id": 0,
  • "cl_checklist_id": 0,
  • "st_article_id": 0,
  • "st_cost_centre_id": 0,
  • "pms_project_id": 0,
  • "cms_contacting_id": 0,
  • "auf_task_id": 0,
  • "rm_item_id": 0,
  • "rm_booking_id": 0,
  • "pze_shift_id": 0,
  • "task": "string",
  • "azn_time": "string",
  • "st_customer_id": "string",
  • "to_clear": true,
  • "date": "2019-08-24T14:15:22Z",
  • "estimated_time": "string",
  • "subject": "string",
  • "content": "string",
  • "remark": "string",
  • "priority": 0,
  • "status": 0,
  • "sp_type_id": 0,
  • "sp_ticket_category_id": 0,
  • "per_activity_id": 0,
  • "bv_usergroup_id": 0,
  • "bv_user_id": 0,
  • "creator": "string",
  • "tags": "string"
}

Verfügbarkeit

Verfügbarkeit, Restriktionen und Preise je Zimmerkategorie und Tag. Auth: API-Host + HostLimitation auf die Schnittstelle availability.

Verfügbarkeit, Restriktionen und Preise

Live-Liste je Tag und Zimmerkategorie: physische Verfügbarkeit, Allotment, Stop-Sell / CTA / CTD / Min-Max-Aufenthalt und Tagespreis. rooms_ooo sind gesperrte Zeiträume (Teilmenge von rooms_booked). Kein Cache. Auth über die Schnittstelle availability.

Authorizations:
(bearerAuthbasicAuth)
query Parameters
date_from
required
string <date>
Example: date_from=2024-06-01

Startdatum Y-m-d

date_until
required
string <date>
Example: date_until=2024-06-30

Enddatum Y-m-d

cms_client_id
integer

Mandant-ID (Standard: aktiver Client)

st_price_list_id
string

Preisliste (Standard: Mandanten-Preisliste)

st_article_id
string

Nur diese Zimmerkategorie

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "source": "cache",
  • "data": [
    ]
}

Zimmer / Housekeeping

Reinigungsstatus der Zimmer, Benutzerstatus der Belegung und Reinigungsangaben. Lesen und Schreiben. Auth: API-Host + HostLimitation auf die Schnittstelle resources.

Zimmerliste mit Reinigungsstatus

Alle Hotelzimmer inkl. Reinigungsstatus und Belegung am Stichtag. cleaning_status und user_status im Envelope sind die Kataloge (inkl. individuell angelegter Kennzeichnungen).

Authorizations:
(bearerAuthbasicAuth)
query Parameters
date
string <date>
Example: date=2026-08-25

Stichtag für Belegung und Reinigungsliste (Y-m-d, Standard: heute)

cms_client_id
integer

Mandant-ID (Standard: aktiver Client)

cleaning_status
string

Filter: Zahl 0–5 oder Token (dirty, clean, …)

occupied
integer

1 = nur belegte, 0 = nur unbelegte Zimmer

floor
string

Etage

st_article_id
string

Zimmerkategorie

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "data": [
    ],
  • "cleaning_status": [
    ],
  • "user_status": [
    ]
}

Zimmer lesen

Authorizations:
(bearerAuthbasicAuth)
path Parameters
id
required
string
Example: 101

rm_resource_id, Zimmernummer, Kürzel (token) oder number.

query Parameters
date
string <date>
Example: date=2026-08-25

Stichtag Y-m-d

cms_client_id
integer

Mandant-ID

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "data": {
    }
}

Reinigungsstatus / Belegungsangaben schreiben

Setzt den Reinigungsstatus des Zimmers und optional Benutzerstatus, cleaning_type und Reinigungsliste (note2) der aktuellen Belegung. bv_user_id optional für die Historie.

Authorizations:
(bearerAuthbasicAuth)
path Parameters
id
required
string
Example: 101

rm_resource_id, Zimmernummer, Kürzel (token) oder number.

query Parameters
date
string <date>
Example: date=2026-08-25

Stichtag für Belegungsfelder

Request Body schema: application/json
required
bv_user_id
integer

Optionaler Benutzer für die Historie (wer den Reinigungsstatus gesetzt hat). Muss aktiv und dem Mandanten zugeordnet sein. IDs über GET /users.

integer or string

Zahl 0–5 oder Token (clean, dirty, is_cleaning, checked, out_of_service, no_cleaning_required).

integer or string

Alias für cleaning_status.

rm_item_id
integer

Belegungszimmer, falls mehrere am Tag.

Array of strings or objects

Ersetzt die Kennzeichnungen der Belegung. IDs, Token oder Namen. Leeres Array löscht alle.

cleaning_type
string

0, 1, -1, -2, 1d–14d, mon–sun

cleaning_type_guest
integer
Enum: -2 -1 0 1
note2
string

Reinigungsliste

note
string

Gästenotiz

Responses

Request samples

Content type
application/json
{
  • "bv_user_id": 12,
  • "cleaning_status": "dirty",
  • "user_status": [
    ],
  • "cleaning_type": "0",
  • "note2": "Extra Handtücher"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "",
  • "date": "2026-08-25 23:35:23",
  • "data": {
    }
}