# Schnittstelle - Bexio

## Zeitschätzung vollumfänglich

**Bei Komplettintegration in unseren "Sales Data Hub"**

<table border="1" id="bkmrk-arbeitspaket-aufwand" style="border-collapse: collapse; width: 100%; height: 663.126px;"><thead><tr style="height: 29.7969px;"><th class="align-left" style="width: 40.1731%; height: 29.7969px;">Arbeitspaket</th><th align="right" class="align-left" style="width: 35.2287%; height: 29.7969px;">Aufwand</th><th class="align-right" style="width: 24.5983%; height: 29.7969px;">Preis</th></tr></thead><tbody><tr style="height: 46.5938px;"><td style="width: 40.1731%; height: 46.5938px;">Technische Analyse bexio API und API-Prototyp</td><td align="right" class="align-left" style="width: 35.2287%; height: 46.5938px;">16h</td><td style="width: 24.5983%; height: 46.5938px;">  
</td></tr><tr style="height: 29.7969px;"><td style="width: 40.1731%; height: 29.7969px;">OAuth-/Token-Handling bexio</td><td align="right" class="align-left" style="width: 35.2287%; height: 29.7969px;">6h</td><td style="width: 24.5983%; height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="width: 40.1731%; height: 29.7969px;">Directus-/MySQL-Tabellen und Migrationen</td><td align="right" class="align-left" style="width: 35.2287%; height: 29.7969px;">8h</td><td style="width: 24.5983%; height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="width: 40.1731%; height: 29.7969px;">Generischer bexio API Client in PHP</td><td align="right" class="align-left" style="width: 35.2287%; height: 29.7969px;">16h</td><td style="width: 24.5983%; height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="width: 40.1731%; height: 29.7969px;">Polling, Cursor, Pagination und Retry</td><td align="right" class="align-left" style="width: 35.2287%; height: 29.7969px;">16h</td><td style="width: 24.5983%; height: 29.7969px;">  
</td></tr><tr style="height: 46.5938px;"><td style="width: 40.1731%; height: 46.5938px;">Lookup- und Benutzer-Mappings</td><td align="right" class="align-left" style="width: 35.2287%; height: 46.5938px;">??? Wird im CRM über Subtabellen geregelt</td><td style="width: 24.5983%; height: 46.5938px;">  
</td></tr><tr style="height: 29.7969px;"><td style="width: 40.1731%; height: 29.7969px;">Kontakte Firma ↔ Sage Accounts</td><td align="right" class="align-left" style="width: 35.2287%; height: 29.7969px;">20h</td><td style="width: 24.5983%; height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="width: 40.1731%; height: 29.7969px;">Kontakte Person ↔ Sage Contacts</td><td align="right" class="align-left" style="width: 35.2287%; height: 29.7969px;">20h</td><td style="width: 24.5983%; height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="width: 40.1731%; height: 29.7969px;">Firmen-/Personenbeziehungen</td><td align="right" class="align-left" style="width: 35.2287%; height: 29.7969px;">12h</td><td style="width: 24.5983%; height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="width: 40.1731%; height: 29.7969px;">Dubletten- und Konfliktlogik Kontakte</td><td align="right" class="align-left" style="width: 35.2287%; height: 29.7969px;">??? Regeln...</td><td style="width: 24.5983%; height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="width: 40.1731%; height: 29.7969px;">Auftragskopf bidirektional</td><td align="right" class="align-left" style="width: 35.2287%; height: 29.7969px;">20h</td><td style="width: 24.5983%; height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="width: 40.1731%; height: 29.7969px;">Auftragspositionen bidirektional</td><td align="right" class="align-left" style="width: 35.2287%; height: 29.7969px;">25h</td><td style="width: 24.5983%; height: 29.7969px;">  
</td></tr><tr style="height: 46.5938px;"><td style="width: 40.1731%; height: 46.5938px;">Status-, Steuer- und Rundungsmapping Aufträge</td><td align="right" class="align-left" style="width: 35.2287%; height: 46.5938px;">???? müssen wir hier etwas beachten</td><td style="width: 24.5983%; height: 46.5938px;">  
</td></tr><tr style="height: 29.7969px;"><td style="width: 40.1731%; height: 29.7969px;">Rechnungen → Sage Sales</td><td align="right" class="align-left" style="width: 35.2287%; height: 29.7969px;">16h</td><td style="width: 24.5983%; height: 29.7969px;">  
</td></tr><tr style="height: 46.5938px;"><td style="width: 40.1731%; height: 46.5938px;">Lösch-/Stornoverhalten</td><td align="right" class="align-left" style="width: 35.2287%; height: 46.5938px;">??? allenfalls über Status</td><td style="width: 24.5983%; height: 46.5938px;">  
</td></tr><tr style="height: 29.7969px;"><td style="width: 40.1731%; height: 29.7969px;">Logging, Monitoring und Fehlerbehandlung</td><td align="right" class="align-left" style="width: 35.2287%; height: 29.7969px;">12h</td><td style="width: 24.5983%; height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="width: 40.1731%; height: 29.7969px;">Integrations- und Regressionstests</td><td align="right" class="align-left" style="width: 35.2287%; height: 29.7969px;">8h</td><td style="width: 24.5983%; height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="width: 40.1731%; height: 29.7969px;">Dokumentation und Deployment</td><td align="right" class="align-left" style="width: 35.2287%; height: 29.7969px;">8h</td><td style="width: 24.5983%; height: 29.7969px;">  
</td></tr><tr style="height: 29.7969px;"><td style="width: 40.1731%; height: 29.7969px;">**Gesamtentwicklung exkl. ?**</td><td class="align-left" style="width: 35.2287%; height: 29.7969px;">**203h à CHF 125.00**</td><td class="align-right" style="width: 24.5983%; height: 29.7969px;">**CHF 25'375**</td></tr></tbody></table>

## Grundsätzliche Routine (Accounts, Contacts)

<table border="1" id="bkmrk-bexio-sage-sales-man" style="border-collapse: collapse; width: 100%;"><thead><tr><th class="align-left">bexio</th><th class="align-left">Sage Sales Management</th></tr></thead><tbody><tr><td>Kontakt vom Typ Firma</td><td>Account</td></tr><tr><td>Kontakt vom Typ Person ohne Firmenbezug</td><td>Account mit Flag "natürliche Person"</td></tr><tr><td>Kontakt vom Typ Person mit Firmenbezug</td><td>Contact mit Verknüpfung zu Account</td></tr><tr><td>Kunde und Lieferant</td><td>Account/Contact mit mehreren Rollen</td></tr></tbody></table>

#### Verarbeitungsregeln

<table border="1" id="bkmrk-regel-sage-sales-man" style="border-collapse: collapse; width: 100%; height: 150.781px;"><thead><tr style="height: 27.7969px;"><th class="align-left" style="width: 45.2579%; height: 27.7969px;">Regel</th><th class="align-left" style="width: 54.6305%; height: 27.7969px;">Sage Sales Management</th></tr></thead><tbody><tr style="height: 29.7969px;"><td style="width: 45.2579%; height: 29.7969px;">bexio contact\_type = Firma</td><td style="width: 54.6305%; height: 29.7969px;">Account</td></tr><tr style="height: 46.5938px;"><td style="width: 45.2579%; height: 46.5938px;">bexio contact\_type = Person + Firmenrelation vorhanden</td><td style="width: 54.6305%; height: 46.5938px;">Sage Contact unter bestehendem Sage Account</td></tr><tr style="height: 46.5938px;"><td style="width: 45.2579%; height: 46.5938px;">bexio contact\_type = Person + keine Firmenrelation</td><td style="width: 54.6305%; height: 46.5938px;">Account mit Flag "natürlicher Person"</td></tr></tbody></table>

### Feldzuordnung Bexio "Kontakte" ↔ Sage "Accounts"

bexio Kontakt vom Typ Firma ↔ Sage Account

<table id="bkmrk-bexio-feld-sage-acco" style="width: 100%; height: 985.485px;"><thead><tr style="height: 29.7969px;"><th class="align-left" style="width: 19.8974%; height: 29.7969px;">bexio Kontakt Feld</th><th class="align-left" style="width: 31.5241%; height: 29.7969px;">Sage Account Feld</th><th align="right" style="width: 11.6193%; height: 29.7969px;">Richtung</th><th class="align-left" style="width: 36.8356%; height: 29.7969px;">Bemerkung</th></tr></thead><tbody><tr style="height: 29.7969px;"><td style="width: 19.8974%; height: 29.7969px;">`id`</td><td style="width: 31.5241%; height: 29.7969px;">Custom Field `bexio_contact_id`</td><td align="right" style="width: 11.6193%; height: 29.7969px;">B → S</td><td style="width: 36.8356%; height: 29.7969px;">Unveränderbare technische Referenz</td></tr><tr style="height: 46.5938px;"><td style="width: 19.8974%; height: 46.5938px;">Sage Account-ID</td><td style="width: 31.5241%; height: 46.5938px;">Mappingtabelle `sage_entity_id`</td><td align="right" style="width: 11.6193%; height: 46.5938px;">S → Middleware</td><td style="width: 36.8356%; height: 46.5938px;">Nicht zwingend als bexio-Feld verfügbar</td></tr><tr style="height: 46.5938px;"><td style="width: 19.8974%; height: 46.5938px;">`nr`</td><td style="width: 31.5241%; height: 46.5938px;">`accountCode` / Custom Field `bexio_contact_nr`</td><td align="right" style="width: 11.6193%; height: 46.5938px;">B ↔ S</td><td style="width: 36.8356%; height: 46.5938px;">Geschäftsnummer, nicht als Primärschlüssel verwenden</td></tr><tr style="height: 46.5938px;"><td style="width: 19.8974%; height: 46.5938px;">`contact_type_id`</td><td style="width: 31.5241%; height: 46.5938px;">Custom Field `contact_type`</td><td align="right" style="width: 11.6193%; height: 46.5938px;">B → S</td><td style="width: 36.8356%; height: 46.5938px;">Firma/Person</td></tr><tr style="height: 29.7969px;"><td style="width: 19.8974%; height: 29.7969px;">`name_1`</td><td style="width: 31.5241%; height: 29.7969px;">`name`</td><td align="right" style="width: 11.6193%; height: 29.7969px;">B ↔ S</td><td style="width: 36.8356%; height: 29.7969px;">Firmenname</td></tr><tr style="height: 29.7969px;"><td style="width: 19.8974%; height: 29.7969px;">`name_2`</td><td style="width: 31.5241%; height: 29.7969px;">`additionalName` / Custom Field</td><td align="right" style="width: 11.6193%; height: 29.7969px;">B ↔ S</td><td style="width: 36.8356%; height: 29.7969px;">Zusatzname oder Abteilung</td></tr><tr style="height: 29.7969px;"><td style="width: 19.8974%; height: 29.7969px;">`address`</td><td style="width: 31.5241%; height: 29.7969px;">`address` / `address1`</td><td align="right" style="width: 11.6193%; height: 29.7969px;">B ↔ S</td><td style="width: 36.8356%; height: 29.7969px;">Strasse und Hausnummer</td></tr><tr style="height: 29.7969px;"><td style="width: 19.8974%; height: 29.7969px;">`postcode`</td><td style="width: 31.5241%; height: 29.7969px;">`postalCode`</td><td align="right" style="width: 11.6193%; height: 29.7969px;">B ↔ S</td><td style="width: 36.8356%; height: 29.7969px;"> </td></tr><tr style="height: 29.7969px;"><td style="width: 19.8974%; height: 29.7969px;">`city`</td><td style="width: 31.5241%; height: 29.7969px;">`city`</td><td align="right" style="width: 11.6193%; height: 29.7969px;">B ↔ S</td><td style="width: 36.8356%; height: 29.7969px;"> </td></tr><tr style="height: 29.7969px;"><td style="width: 19.8974%; height: 29.7969px;">`country_id`</td><td style="width: 31.5241%; height: 29.7969px;">`country` / `countryId`</td><td align="right" style="width: 11.6193%; height: 29.7969px;">B ↔ S</td><td style="width: 36.8356%; height: 29.7969px;">Lookup-Mapping erforderlich</td></tr><tr style="height: 29.7969px;"><td style="width: 19.8974%; height: 29.7969px;">`mail`</td><td style="width: 31.5241%; height: 29.7969px;">`email`</td><td align="right" style="width: 11.6193%; height: 29.7969px;">B ↔ S</td><td style="width: 36.8356%; height: 29.7969px;">Firmen-E-Mail</td></tr><tr style="height: 29.7969px;"><td style="width: 19.8974%; height: 29.7969px;">`mail_second`</td><td style="width: 31.5241%; height: 29.7969px;">Custom Field `email_secondary`</td><td align="right" style="width: 11.6193%; height: 29.7969px;">B ↔ S</td><td style="width: 36.8356%; height: 29.7969px;">Optional</td></tr><tr style="height: 29.7969px;"><td style="width: 19.8974%; height: 29.7969px;">`phone_fixed`</td><td style="width: 31.5241%; height: 29.7969px;">`phone`</td><td align="right" style="width: 11.6193%; height: 29.7969px;">B ↔ S</td><td style="width: 36.8356%; height: 29.7969px;"> </td></tr><tr style="height: 46.5938px;"><td style="width: 19.8974%; height: 46.5938px;">`phone_fixed_second`</td><td style="width: 31.5241%; height: 46.5938px;">Custom Field `phone_secondary`</td><td align="right" style="width: 11.6193%; height: 46.5938px;">B ↔ S</td><td style="width: 36.8356%; height: 46.5938px;">Optional</td></tr><tr style="height: 29.7969px;"><td style="width: 19.8974%; height: 29.7969px;">`phone_mobile`</td><td style="width: 31.5241%; height: 29.7969px;">`mobilePhone`</td><td align="right" style="width: 11.6193%; height: 29.7969px;">B ↔ S</td><td style="width: 36.8356%; height: 29.7969px;">Bei Firma eventuell leer</td></tr><tr style="height: 29.7969px;"><td style="width: 19.8974%; height: 29.7969px;">`fax`</td><td style="width: 31.5241%; height: 29.7969px;">`fax` / Custom Field</td><td align="right" style="width: 11.6193%; height: 29.7969px;">B ↔ S</td><td style="width: 36.8356%; height: 29.7969px;">Falls in Sage vorhanden</td></tr><tr style="height: 29.7969px;"><td style="width: 19.8974%; height: 29.7969px;">`url`</td><td style="width: 31.5241%; height: 29.7969px;">`website`</td><td align="right" style="width: 11.6193%; height: 29.7969px;">B ↔ S</td><td style="width: 36.8356%; height: 29.7969px;"> </td></tr><tr style="height: 29.7969px;"><td style="width: 19.8974%; height: 29.7969px;">`remarks`</td><td style="width: 31.5241%; height: 29.7969px;">`comments` / `description`</td><td align="right" style="width: 11.6193%; height: 29.7969px;">B ↔ S</td><td style="width: 36.8356%; height: 29.7969px;">Konfliktanfällig bei bidirektionalem Mapping</td></tr><tr style="height: 29.7969px;"><td style="width: 19.8974%; height: 29.7969px;">`language_id`</td><td style="width: 31.5241%; height: 29.7969px;">`language` / Custom Field</td><td align="right" style="width: 11.6193%; height: 29.7969px;">B ↔ S</td><td style="width: 36.8356%; height: 29.7969px;">Lookup-Tabelle</td></tr><tr style="height: 29.7969px;"><td style="width: 19.8974%; height: 29.7969px;">`user_id`</td><td style="width: 31.5241%; height: 29.7969px;">`ownerId`</td><td align="right" style="width: 11.6193%; height: 29.7969px;">B ↔ S</td><td style="width: 36.8356%; height: 29.7969px;">Benutzerzuordnung erforderlich</td></tr><tr style="height: 29.7969px;"><td style="width: 19.8974%; height: 29.7969px;">`owner_id`</td><td style="width: 31.5241%; height: 29.7969px;">`ownerId`</td><td align="right" style="width: 11.6193%; height: 29.7969px;">B ↔ S</td><td style="width: 36.8356%; height: 29.7969px;">Bedeutung in bexio vorgängig prüfen</td></tr><tr style="height: 29.7969px;"><td style="width: 19.8974%; height: 29.7969px;">`is_lead`</td><td style="width: 31.5241%; height: 29.7969px;">Account-Klassifikation / Leadstatus</td><td align="right" style="width: 11.6193%; height: 29.7969px;">B ↔ S</td><td style="width: 36.8356%; height: 29.7969px;">Businessregel definieren</td></tr><tr style="height: 46.5938px;"><td style="width: 19.8974%; height: 46.5938px;">`contact_group_ids`</td><td style="width: 31.5241%; height: 46.5938px;">Tags / Klassifikation</td><td align="right" style="width: 11.6193%; height: 46.5938px;">B ↔ S</td><td style="width: 36.8356%; height: 46.5938px;">Many-to-many</td></tr><tr style="height: 46.5938px;"><td style="width: 19.8974%; height: 46.5938px;">`contact_branch_ids`</td><td style="width: 31.5241%; height: 46.5938px;">Branche / Segment</td><td align="right" style="width: 11.6193%; height: 46.5938px;">B ↔ S</td><td style="width: 36.8356%; height: 46.5938px;">Lookup-Mapping</td></tr><tr style="height: 46.5938px;"><td style="width: 19.8974%; height: 46.5938px;">`updated_at`</td><td style="width: 31.5241%; height: 46.5938px;">`source_updated_at`</td><td align="right" style="width: 11.6193%; height: 46.5938px;">B → Middleware</td><td style="width: 36.8356%; height: 46.5938px;">Grundlage für Polling</td></tr><tr style="height: 46.5938px;"><td style="width: 19.8974%; height: 46.5938px;">Sage Änderungszeit</td><td style="width: 31.5241%; height: 46.5938px;">`sage_updated_at`</td><td align="right" style="width: 11.6193%; height: 46.5938px;">S → Middleware</td><td style="width: 36.8356%; height: 46.5938px;">Konflikterkennung</td></tr><tr style="height: 46.5938px;"><td style="width: 19.8974%; height: 46.5938px;">technischer Hash</td><td style="width: 31.5241%; height: 46.5938px;">`payload_hash`</td><td align="right" style="width: 11.6193%; height: 46.5938px;">intern</td><td style="width: 36.8356%; height: 46.5938px;">Verhindert unnötige Updates</td></tr></tbody></table>

#### Zusätzliche Rollenfelder

<table border="1" id="bkmrk-sage-feld-werte-busi" style="border-collapse: collapse; width: 100%;"><thead><tr><th class="align-left">Sage-Feld</th><th class="align-left">Werte</th></tr></thead><tbody><tr><td>`business_partner_roles`</td><td>Kunde, Lieferant, Interessent</td></tr><tr><td>`is_customer`</td><td>Boolean</td></tr><tr><td>`is_supplier`</td><td>Boolean</td></tr><tr><td>`bexio_contact_type`</td><td>Firma, Person</td></tr><tr><td>`bexio_contact_id`</td><td>Numerische bexio-ID</td></tr><tr><td>`bexio_contact_nr`</td><td>Sichtbare bexio-Kontaktnummer</td></tr></tbody></table>

### Feldzuordnung Bexio "Kontakte" ↔ Sage "Contacts"

bexio Kontakt vom Typ Person ↔ Sage Contact

<table border="1" id="bkmrk-bexio-feld-sage-cont" style="border-collapse: collapse; width: 100%;"><thead><tr><th class="align-left">bexio Kontakt Feld</th><th class="align-left">Sage Contact Feld</th><th align="right">Richtung</th><th class="align-left">Bemerkung</th></tr></thead><tbody><tr><td>`id`</td><td>Custom Field `bexio_contact_id`</td><td align="right">B → S</td><td>Technische Referenz</td></tr><tr><td>Sage Contact-ID</td><td>Mappingtabelle</td><td align="right">S → Middleware</td><td> </td></tr><tr><td>`nr`</td><td>Custom Field `bexio_contact_nr`</td><td align="right">B ↔ S</td><td>Keine technische ID</td></tr><tr><td>`name_1`</td><td>`lastName`</td><td align="right">B ↔ S</td><td>Zuordnung anhand effektiver bexio-Nutzung prüfen</td></tr><tr><td>`name_2`</td><td>`firstName`</td><td align="right">B ↔ S</td><td>Kann je Datenpflege umgekehrt verwendet sein</td></tr><tr><td>`salutation_id`</td><td>`salutation`</td><td align="right">B ↔ S</td><td>Lookup erforderlich</td></tr><tr><td>`salutation_form`</td><td>Custom Field `salutation_form`</td><td align="right">B ↔ S</td><td>Optional</td></tr><tr><td>`title_id`</td><td>`title`</td><td align="right">B ↔ S</td><td>Lookup</td></tr><tr><td>`birthday`</td><td>`birthday`</td><td align="right">B ↔ S</td><td>Datenschutz beachten</td></tr><tr><td>`address`</td><td>`address`</td><td align="right">B ↔ S</td><td>Privat- oder Geschäftsadresse</td></tr><tr><td>`postcode`</td><td>`postalCode`</td><td align="right">B ↔ S</td><td> </td></tr><tr><td>`city`</td><td>`city`</td><td align="right">B ↔ S</td><td> </td></tr><tr><td>`country_id`</td><td>`country`</td><td align="right">B ↔ S</td><td>Lookup</td></tr><tr><td>`mail`</td><td>`email`</td><td align="right">B ↔ S</td><td>Empfohlenes Dublettenmerkmal</td></tr><tr><td>`mail_second`</td><td>Custom Field `email_secondary`</td><td align="right">B ↔ S</td><td> </td></tr><tr><td>`phone_fixed`</td><td>`phone`</td><td align="right">B ↔ S</td><td> </td></tr><tr><td>`phone_fixed_second`</td><td>Custom Field</td><td align="right">B ↔ S</td><td> </td></tr><tr><td>`phone_mobile`</td><td>`mobilePhone`</td><td align="right">B ↔ S</td><td> </td></tr><tr><td>`fax`</td><td>`fax` / Custom Field</td><td align="right">B ↔ S</td><td> </td></tr><tr><td>`skype_name`</td><td>Custom Field</td><td align="right">B ↔ S</td><td>Nur falls weiterhin relevant</td></tr><tr><td>`remarks`</td><td>`comments` / `description`</td><td align="right">B ↔ S</td><td>Konfliktregel notwendig</td></tr><tr><td>`language_id`</td><td>`language`</td><td align="right">B ↔ S</td><td>Lookup</td></tr><tr><td>Firmenrelation</td><td>`accountId`</td><td align="right">B ↔ S</td><td>Über Kontaktbeziehung bestimmen</td></tr><tr><td>`user_id` / `owner_id`</td><td>`ownerId`</td><td align="right">B ↔ S</td><td>Benutzer-Mapping</td></tr><tr><td>`contact_group_ids`</td><td>Tags / Kategorien</td><td align="right">B ↔ S</td><td> </td></tr><tr><td>`updated_at`</td><td>Middleware-Syncstatus</td><td align="right">B → intern</td><td> </td></tr></tbody></table>

<p class="callout info">Kritischer Punkt: Account-Verknüpfung  
Für eine Person mit Firmenbezug muss die Reihenfolge lauten:  
 1. Firmenkontakt in bexio identifizieren.  
 2. Zugehörigen Sage Account suchen oder erstellen.  
 3. Person als Sage Contact erstellen.  
 4. `accountId` des Contacts auf den Sage Account setzen.  
 5. Beziehung in einer Mappingtabelle speichern.  
Eine Person sollte nicht anhand des Firmennamens allein zugeordnet werden. Primär sollte die bexio-Beziehungs-ID beziehungsweise die externe Kontakt-ID verwendet werden.</p>

### Feldzuordnung Bexio "Aufträge" ↔Sage "Salesorders"

bexio stellt Aufträge als Dokumentressource bereit. Für eine vollständige Synchronisation müssen Dokumentkopf und Positionen getrennt betrachtet werden. Die bexio API bietet Verwaltungsfunktionen für Verkaufsaufträge und weitere Verkaufsdokumente.

#### AuftragsKopf

<table border="1" id="bkmrk-bexio-auftrag-sage-s" style="border-collapse: collapse; width: 100%;"><thead><tr><th class="align-left">bexio Auftrag Feld</th><th class="align-left">Sage Salesorder Feld</th><th align="right">Richtung</th><th class="align-left">Bemerkung</th></tr></thead><tbody><tr><td>`id`</td><td>Custom Field `bexio_order_id`</td><td align="right">B → S</td><td>Technischer Schlüssel</td></tr><tr><td>Sage Salesorder-ID</td><td>Mappingtabelle</td><td align="right">S → intern</td><td> </td></tr><tr><td>`document_nr`</td><td>`orderNumber`</td><td align="right">B ↔ S</td><td>Sichtbare Auftragsnummer</td></tr><tr><td>`title`</td><td>`name` / `title`</td><td align="right">B ↔ S</td><td> </td></tr><tr><td>`contact_id`</td><td>`accountId`</td><td align="right">B ↔ S</td><td>Über Kontaktmapping</td></tr><tr><td>`contact_sub_id`</td><td>`contactId`</td><td align="right">B ↔ S</td><td>Ansprechpartner</td></tr><tr><td>`user_id`</td><td>`ownerId`</td><td align="right">B ↔ S</td><td>Benutzer-Mapping</td></tr><tr><td>`project_id`</td><td>`projectId` / Custom Field</td><td align="right">B ↔ S</td><td>Optional</td></tr><tr><td>`language_id`</td><td>`language`</td><td align="right">B ↔ S</td><td>Lookup</td></tr><tr><td>`currency_id`</td><td>`currency`</td><td align="right">B ↔ S</td><td>Lookup, ISO-Code bevorzugen</td></tr><tr><td>`payment_type_id`</td><td>`paymentTerms`</td><td align="right">B ↔ S</td><td>Lookup</td></tr><tr><td>`bank_account_id`</td><td>Custom Field</td><td align="right">B ↔ S</td><td>Nur falls fachlich benötigt</td></tr><tr><td>Dokumentdatum</td><td>`orderDate`</td><td align="right">B ↔ S</td><td>Feldname in bexio prüfen</td></tr><tr><td>`is_valid_from`</td><td>`validFrom`</td><td align="right">B ↔ S</td><td>Optional</td></tr><tr><td>`is_valid_to`</td><td>`validUntil`</td><td align="right">B ↔ S</td><td>Optional</td></tr><tr><td>`header`</td><td>`headerText` / Beschreibung</td><td align="right">B ↔ S</td><td> </td></tr><tr><td>`footer`</td><td>`footerText` / Beschreibung</td><td align="right">B ↔ S</td><td> </td></tr><tr><td>`contact_address`</td><td>Rechnungsadresse</td><td align="right">B ↔ S</td><td>Snapshot des Dokuments</td></tr><tr><td>`delivery_address`</td><td>Lieferadresse</td><td align="right">B ↔ S</td><td> </td></tr><tr><td>`delivery_address_type`</td><td>Lieferadresstyp</td><td align="right">B ↔ S</td><td>Lookup</td></tr><tr><td>`total_net`</td><td>`netAmount`</td><td align="right">B → S</td><td>Berechnetes Feld möglichst nicht zurückschreiben</td></tr><tr><td>`total_taxes`</td><td>`taxAmount`</td><td align="right">B → S</td><td> </td></tr><tr><td>`total_gross`</td><td>`grossAmount`</td><td align="right">B → S</td><td> </td></tr><tr><td>`mwst_type`</td><td>`taxType`</td><td align="right">B ↔ S</td><td>Lookup</td></tr><tr><td>`mwst_is_net`</td><td>`pricesIncludeTax`</td><td align="right">B ↔ S</td><td>Boolean-Transformation</td></tr><tr><td>`show_position_taxes`</td><td>Custom Field</td><td align="right">B ↔ S</td><td>Darstellungsinformation</td></tr><tr><td>`kb_item_status_id`</td><td>`status`</td><td align="right">B ↔ S</td><td>Statustabelle erforderlich</td></tr><tr><td>`api_reference`</td><td>`externalReference`</td><td align="right">B ↔ S</td><td>Sehr gut für Integrationsreferenz geeignet</td></tr><tr><td>`updated_at`</td><td>Syncstatus</td><td align="right">B → intern</td><td>Polling</td></tr><tr><td>Sage Änderungszeit</td><td>Syncstatus</td><td align="right">S → intern</td><td>Konflikterkennung</td></tr></tbody></table>

#### Auftragspositionen

<table border="1" id="bkmrk-bexio-position-sage-" style="border-collapse: collapse; width: 100%;"><thead><tr><th class="align-left">bexio Position Feld</th><th class="align-left">Sage Salesorder Line Feld</th><th align="right">Richtung</th><th class="align-left">Bemerkung</th></tr></thead><tbody><tr><td>Positions-ID</td><td>`externalLineId`</td><td align="right">B → S</td><td>Mappingtabelle</td></tr><tr><td>`amount`</td><td>`quantity`</td><td align="right">B ↔ S</td><td> </td></tr><tr><td>`unit_id`</td><td>`unit`</td><td align="right">B ↔ S</td><td>Lookup</td></tr><tr><td>`text`</td><td>`description`</td><td align="right">B ↔ S</td><td> </td></tr><tr><td>`unit_price`</td><td>`unitPrice`</td><td align="right">B ↔ S</td><td> </td></tr><tr><td>`discount_in_percent`</td><td>`discountPercent`</td><td align="right">B ↔ S</td><td> </td></tr><tr><td>Artikelreferenz</td><td>`productId` / `articleId`</td><td align="right">B ↔ S</td><td>Nur mit Artikelmapping</td></tr><tr><td>Steuersatz-ID</td><td>`taxRate` / `taxId`</td><td align="right">B ↔ S</td><td>Lookup</td></tr><tr><td>Positionssumme</td><td>`lineTotal`</td><td align="right">B → S</td><td>Berechnetes Feld</td></tr><tr><td>Sortierung</td><td>`position` / `sortOrder`</td><td align="right">B ↔ S</td><td> </td></tr><tr><td>Positionstyp</td><td>`lineType`</td><td align="right">B ↔ S</td><td>Normal, Titel, Zwischensumme, Text etc.</td></tr></tbody></table>

### Feldzuordnung Bexio Rechnungen ↔Sage "Sales"

Hier würde es Sinn machen nur die Kopfdaten zu übermitteln

<table border="1" id="bkmrk-bexio-rechnung-sage-" style="border-collapse: collapse; width: 100%; height: 774.719px;"><thead><tr style="height: 29.7969px;"><th class="align-left" style="width: 21.8159%; height: 29.7969px;">bexio Rechnung Feld</th><th class="align-left" style="width: 32.9467%; height: 29.7969px;">Sage Sales Feld</th><th align="right" style="width: 12.1543%; height: 29.7969px;">Richtung</th><th class="align-left" style="width: 32.8967%; height: 29.7969px;">Bemerkung</th></tr></thead><tbody><tr style="height: 29.7969px;"><td style="width: 21.8159%; height: 29.7969px;">`id`</td><td style="width: 32.9467%; height: 29.7969px;">Custom Field `bexio_invoice_id`</td><td align="right" style="width: 12.1543%; height: 29.7969px;">B → S</td><td style="width: 32.8967%; height: 29.7969px;">Technische Referenz</td></tr><tr style="height: 29.7969px;"><td style="width: 21.8159%; height: 29.7969px;">`document_nr`</td><td style="width: 32.9467%; height: 29.7969px;">`saleNumber` / `invoiceNumber`</td><td align="right" style="width: 12.1543%; height: 29.7969px;">B → S</td><td style="width: 32.8967%; height: 29.7969px;"> </td></tr><tr style="height: 29.7969px;"><td style="width: 21.8159%; height: 29.7969px;">`title`</td><td style="width: 32.9467%; height: 29.7969px;">`name` / `title`</td><td align="right" style="width: 12.1543%; height: 29.7969px;">B → S</td><td style="width: 32.8967%; height: 29.7969px;"> </td></tr><tr style="height: 29.7969px;"><td style="width: 21.8159%; height: 29.7969px;">`contact_id`</td><td style="width: 32.9467%; height: 29.7969px;">`accountId`</td><td align="right" style="width: 12.1543%; height: 29.7969px;">B → S</td><td style="width: 32.8967%; height: 29.7969px;">Über Mapping</td></tr><tr style="height: 29.7969px;"><td style="width: 21.8159%; height: 29.7969px;">`contact_sub_id`</td><td style="width: 32.9467%; height: 29.7969px;">`contactId`</td><td align="right" style="width: 12.1543%; height: 29.7969px;">B → S</td><td style="width: 32.8967%; height: 29.7969px;">Ansprechpartner</td></tr><tr style="height: 29.7969px;"><td style="width: 21.8159%; height: 29.7969px;">`user_id`</td><td style="width: 32.9467%; height: 29.7969px;">`ownerId`</td><td align="right" style="width: 12.1543%; height: 29.7969px;">B → S</td><td style="width: 32.8967%; height: 29.7969px;">Benutzer-Mapping</td></tr><tr style="height: 29.7969px;"><td style="width: 21.8159%; height: 29.7969px;">`project_id`</td><td style="width: 32.9467%; height: 29.7969px;">Custom Field / Projekt</td><td align="right" style="width: 12.1543%; height: 29.7969px;">B → S</td><td style="width: 32.8967%; height: 29.7969px;">Optional</td></tr><tr style="height: 29.7969px;"><td style="width: 21.8159%; height: 29.7969px;">`currency_id`</td><td style="width: 32.9467%; height: 29.7969px;">`currency`</td><td align="right" style="width: 12.1543%; height: 29.7969px;">B → S</td><td style="width: 32.8967%; height: 29.7969px;">Lookup</td></tr><tr style="height: 29.7969px;"><td style="width: 21.8159%; height: 29.7969px;">`language_id`</td><td style="width: 32.9467%; height: 29.7969px;">Custom Field</td><td align="right" style="width: 12.1543%; height: 29.7969px;">B → S</td><td style="width: 32.8967%; height: 29.7969px;"> </td></tr><tr style="height: 29.7969px;"><td style="width: 21.8159%; height: 29.7969px;">Rechnungsdatum</td><td style="width: 32.9467%; height: 29.7969px;">`saleDate` / `invoiceDate`</td><td align="right" style="width: 12.1543%; height: 29.7969px;">B → S</td><td style="width: 32.8967%; height: 29.7969px;"> </td></tr><tr style="height: 29.7969px;"><td style="width: 21.8159%; height: 29.7969px;">Fälligkeitsdatum</td><td style="width: 32.9467%; height: 29.7969px;">`dueDate`</td><td align="right" style="width: 12.1543%; height: 29.7969px;">B → S</td><td style="width: 32.8967%; height: 29.7969px;"> </td></tr><tr style="height: 29.7969px;"><td style="width: 21.8159%; height: 29.7969px;">`payment_type_id`</td><td style="width: 32.9467%; height: 29.7969px;">`paymentTerms`</td><td align="right" style="width: 12.1543%; height: 29.7969px;">B → S</td><td style="width: 32.8967%; height: 29.7969px;">Lookup</td></tr><tr style="height: 29.7969px;"><td style="width: 21.8159%; height: 29.7969px;">`header`</td><td style="width: 32.9467%; height: 29.7969px;">`description` / Custom Field</td><td align="right" style="width: 12.1543%; height: 29.7969px;">B → S</td><td style="width: 32.8967%; height: 29.7969px;"> </td></tr><tr style="height: 29.7969px;"><td style="width: 21.8159%; height: 29.7969px;">`footer`</td><td style="width: 32.9467%; height: 29.7969px;">Custom Field</td><td align="right" style="width: 12.1543%; height: 29.7969px;">B → S</td><td style="width: 32.8967%; height: 29.7969px;"> </td></tr><tr style="height: 29.7969px;"><td style="width: 21.8159%; height: 29.7969px;">`total_net`</td><td style="width: 32.9467%; height: 29.7969px;">`netAmount`</td><td align="right" style="width: 12.1543%; height: 29.7969px;">B → S</td><td style="width: 32.8967%; height: 29.7969px;"> </td></tr><tr style="height: 29.7969px;"><td style="width: 21.8159%; height: 29.7969px;">`total_taxes`</td><td style="width: 32.9467%; height: 29.7969px;">`taxAmount`</td><td align="right" style="width: 12.1543%; height: 29.7969px;">B → S</td><td style="width: 32.8967%; height: 29.7969px;"> </td></tr><tr style="height: 29.7969px;"><td style="width: 21.8159%; height: 29.7969px;">`total_gross`</td><td style="width: 32.9467%; height: 29.7969px;">`grossAmount`</td><td align="right" style="width: 12.1543%; height: 29.7969px;">B → S</td><td style="width: 32.8967%; height: 29.7969px;"> </td></tr><tr style="height: 29.7969px;"><td style="width: 21.8159%; height: 29.7969px;">erhaltene Zahlungen</td><td style="width: 32.9467%; height: 29.7969px;">`paidAmount`</td><td align="right" style="width: 12.1543%; height: 29.7969px;">B → S</td><td style="width: 32.8967%; height: 29.7969px;">Falls Sales dies unterstützt</td></tr><tr style="height: 29.7969px;"><td style="width: 21.8159%; height: 29.7969px;">offener Betrag</td><td style="width: 32.9467%; height: 29.7969px;">`openAmount`</td><td align="right" style="width: 12.1543%; height: 29.7969px;">B → S</td><td style="width: 32.8967%; height: 29.7969px;"> </td></tr><tr style="height: 29.7969px;"><td style="width: 21.8159%; height: 29.7969px;">Rechnungsstatus</td><td style="width: 32.9467%; height: 29.7969px;">`status`</td><td align="right" style="width: 12.1543%; height: 29.7969px;">B → S</td><td style="width: 32.8967%; height: 29.7969px;">Entwurf, offen, bezahlt, storniert</td></tr><tr style="height: 29.7969px;"><td style="width: 21.8159%; height: 29.7969px;">`mwst_type`</td><td style="width: 32.9467%; height: 29.7969px;">`taxType`</td><td align="right" style="width: 12.1543%; height: 29.7969px;">B → S</td><td style="width: 32.8967%; height: 29.7969px;"> </td></tr><tr style="height: 29.7969px;"><td style="width: 21.8159%; height: 29.7969px;">`mwst_is_net`</td><td style="width: 32.9467%; height: 29.7969px;">`pricesIncludeTax`</td><td align="right" style="width: 12.1543%; height: 29.7969px;">B → S</td><td style="width: 32.8967%; height: 29.7969px;"> </td></tr><tr style="height: 29.7969px;"><td style="width: 21.8159%; height: 29.7969px;">`contact_address`</td><td style="width: 32.9467%; height: 29.7969px;">Rechnungsadresse</td><td align="right" style="width: 12.1543%; height: 29.7969px;">B → S</td><td style="width: 32.8967%; height: 29.7969px;">Dokument-Snapshot</td></tr><tr style="height: 29.7969px;"><td style="width: 21.8159%; height: 29.7969px;">`api_reference`</td><td style="width: 32.9467%; height: 29.7969px;">`externalReference`</td><td align="right" style="width: 12.1543%; height: 29.7969px;">B → S</td><td style="width: 32.8967%; height: 29.7969px;"> </td></tr><tr style="height: 29.7969px;"><td style="width: 21.8159%; height: 29.7969px;">`updated_at`</td><td style="width: 32.9467%; height: 29.7969px;">Syncstatus</td><td align="right" style="width: 12.1543%; height: 29.7969px;">B → intern</td><td style="width: 32.8967%; height: 29.7969px;"> </td></tr></tbody></table>

## Polling-Intervalle für alle Entitäten

<table border="1" id="bkmrk-entit%C3%A4t-empfehlung-k" style="border-collapse: collapse; width: 100%;"><thead><tr><th class="align-left">Entität</th><th align="right">Intervall</th></tr></thead><tbody><tr><td>Kontakte</td><td align="right">alle 5–15 Minuten</td></tr><tr><td>Aufträge</td><td align="right">alle 5 Minuten</td></tr><tr><td>Rechnungen</td><td align="right">alle 5–15 Minuten</td></tr><tr><td>Lookup-Daten</td><td align="right">täglich</td></tr><tr><td>vollständiger Abgleich</td><td align="right">nachts oder wöchentlich</td></tr></tbody></table>