Koppelingen / ERP / Xero
Handleiding voor de Xero koppeling voor productieplanning met SkyPlanner APS
Deze handleiding laat Xero-adviseurs, consultants en IT-teams zien hoe ze Xero aan SkyPlanner APS koppelen. SkyPlanner wisselt via de Xero Accounting API en Projects API gegevens in beide richtingen uit met Xero:
- Contacten, artikelen met voorraadbeheer en hun actuele voorraad, geaccepteerde offertes en inkooporders met hun aankomstdatums worden ingelezen.
- De geplande einddatum wordt teruggeschreven als notitie in de historie van elke offerte.
- Afgeronde orders worden teruggeschreven als conceptverkoopfacturen met de regels en referentie van de offerte. De offerte krijgt de status Invoiced.
- Geregistreerde projecturen worden teruggeschreven als tijdregistraties in Xero Projects.
- Xero-webhooks melden wijzigingen in contacten en facturen. SkyPlanner-webhooks sturen planningswijzigingen direct door.
Xero is boekhoudsoftware en bevat dus geen stuklijsten, bewerkingsvolgordes, machines of productieorders. Werkcentra, processtappen, ploegendiensten en insteltijden worden in SkyPlanner vastgelegd. Het SkyPlanner-team stelt de koppeling met uw Xero-organisatie in tijdens de implementatie en biedt ook na ingebruikname ondersteuning. Deze handleiding is bedoeld voor adviseurs en ontwikkelaars die daaraan willen meewerken of zelf verder willen bouwen op de gedocumenteerde REST API van SkyPlanner (API-documentatie).
De Xero Accounting API
Xero is één multi-tenant cloudproduct: elke organisatie gebruikt dezelfde API. De Accounting API is een REST API op https://api.xero.com/api.xro/2.0/, met JSON of XML. Elke aanroep vermeldt de organisatie in de Xero-tenant-id-header. (bron)
De endpoints die een productieplanner nodig heeft:
- Stamgegevens:
/Contacts(klanten en leveranciers),/Items(Code, IsTrackedAsInventory, QuantityOnHand). - Vraag:
/Quotes(Status ACCEPTED, LineItems) en, voor productiebedrijven die vooraf factureren,/Invoicesmet Type ACCREC. - Aanvoer:
/PurchaseOrders(DeliveryDate, ExpectedArrivalDate, LineItems met ItemCode). - Terugschrijven:
/Quotes/{QuoteID}/History,/Invoices,/Quotesen de Projects API ophttps://api.xero.com/projects.xro/2.0/projects/{projectId}/time.
Elk lijstendpoint accepteert een If-Modified-Since-header, zodat bij elke synchronisatie alleen gewijzigde gegevens worden ingelezen. Aanmaken en bijwerken gebeurt in batches. Er zijn geen endpoints voor stuklijsten, bewerkingsvolgordes of productieorders.
Authenticatie, scopes en limieten
Xero gebruikt OAuth 2.0. Een Xero-beheerder meldt zich eenmalig aan, keurt de app goed en kiest de organisatie. De app vraagt offline_access aan om de verbinding met refresh tokens in stand te houden. (bron)
Xero vervangt brede scopes door fijnmazige scopes. Nieuwe apps krijgen deze fijnmazige scopes. Een koppeling voor productieplanning heeft het volgende nodig:
accounting.invoicesvoor offertes, facturen, inkooporders en artikelenaccounting.contactsvoor klanten en leveranciersaccounting.settings.readvoor artikelinstellingenprojectsvoor tijdregistratiesoffline_access
Xero beperkt het aantal aanroepen per organisatie (gelijktijdig, per minuut en per dag) en per app. Bij overschrijding krijgt de app HTTP 429 terug met een Retry-After-header. Het toegestane aantal aanroepen per dag en het aantal gekoppelde organisaties hangen af van het partnerniveau van de app. Beide staan op Xero’s pagina met API-limieten. Met webhooks, uitlezen via If-Modified-Since en schrijven in batches blijft een koppeling voor productieplanning ruim binnen die limieten.
Aan de kant van SkyPlanner gebruikt de REST API een API-token in de Authorization-Token-header voor authenticatie (SkyPlanner Settings > API). De API is gedocumenteerd in Swagger/OpenAPI. De integratiehandleiding laat stap voor stap zien hoe u de eerste aanroepen uitvoert.
Webhooks
“Webhooks allow you to subscribe to certain events that happen in Xero.” (Met webhooks kunt u zich abonneren op bepaalde gebeurtenissen in Xero.) (bron) Voor de productieplanning zijn de events Contact en Invoice van belang, beide met CREATE en UPDATE.
Zo werken ze:
- Eén webhook per app dekt alle gekoppelde organisaties.
- Elk bericht bevat een events-array met de resource-ID en het eventtype. De ontvanger haalt de resource daarna op.
- Elk bericht wordt ondertekend met een
x-xero-signature-header, opgebouwd met de webhooksleutel van de app. Voordat Xero berichten gaat versturen, voert het een “Intent to receive”-controle uit. - Xero probeert mislukte afleveringen opnieuw en schakelt een webhook uit als die blijft mislukken. Daarom antwoordt de ontvanger snel en verwerkt hij het bericht pas daarna.
Voor offertes, artikelen en inkooporders zijn er geen webhookevents. SkyPlanner leest ze met korte tussenpozen uit via polling met If-Modified-Since. Als er niets is gewijzigd, kost dat één aanroep per entiteit.
Gegevensmapping
| Xero-object (endpoint) | Object in SkyPlanner | Richting | Frequentie |
|---|---|---|---|
Contact, IsCustomer (/Contacts) | Customer (external_identifier, delivery_priority) | Xero → SkyPlanner | Eerste import, daarna via webhook |
Item, met en zonder voorraadbeheer, met QuantityOnHand (/Items) | Producten en materialen, voorraad | Xero → SkyPlanner | Eerste import, daarna via If-Modified-Since |
Quote, Status ACCEPTED, met LineItems (/Quotes) | Order (external_order_number, delivery_date), taken per regel | Xero → SkyPlanner | Polling via If-Modified-Since |
Invoice, Type ACCREC (productiebedrijven die vooraf factureren) (/Invoices) | Order en taken | Xero → SkyPlanner | Realtime via webhook |
PurchaseOrder met ExpectedArrivalDate of DeliveryDate (/PurchaseOrders) | Inkomend materiaal (estimated_delivery_date) | Xero → SkyPlanner | Polling via If-Modified-Since |
Notitie in de offertehistorie (PUT /Quotes/{QuoteID}/History) | Geplande einddatum | SkyPlanner → Xero | Bij een planningswijziging |
Invoice, Type ACCREC, Status DRAFT, Reference = offertenummer (POST /Invoices) | Afgeronde order | SkyPlanner → Xero | Zodra de order is afgerond |
Quote Status INVOICED (POST /Quotes) | Afgeronde order | SkyPlanner → Xero | Zodra de factuur is aangemaakt |
Tijdregistratie in Projects (POST /projects/{projectId}/time) | Mobile Confirmations, tijdregistraties | SkyPlanner → Xero | Zodra werk wordt geregistreerd |
| Niet in Xero | Werkcentra, processtappen, ploegendiensten, afwezigheid, insteltijdenmatrix, gereedschappen, aantallen operators, alternatieve werkcentra | Beheerd in SkyPlanner | Ingericht tijdens de implementatie |
Integratiepatronen
1. Eerste import van stamgegevens. Lees contacten en artikelen pagina voor pagina uit, gevolgd door openstaande inkooporders en geaccepteerde offertes. Maak in SkyPlanner klanten aan met de Xero ContactID als external_identifier, en producten en materialen met de artikelcode als sleutel. Richt vervolgens in wat Xero niet bevat: werkcentra, processtappen per product, ploegendiensten, verlof en insteltijden. Voor processtappen is import via CSV of Excel de snelste route.
2. Ordersynchronisatie. Haal offertes periodiek op met If-Modified-Since. Zodra een offerte de status ACCEPTED krijgt, maakt SkyPlanner een order aan met het offertenummer als external_order_number. De delivery_date komt uit het veld dat uw productiebedrijf gebruikt voor de toegezegde leverdatum. Deze mapping wordt tijdens de implementatie ingesteld. Elke offerteregel wordt omgezet in taken op basis van de processtappen van het product. Inkooporderregels worden inkomend materiaal met de verwachte aankomstdatum, zodat taken op de levering wachten. Elke nacht worden alle openstaande offertes en inkooporders volledig uitgelezen om eventuele gemiste wijzigingen op te vangen.
3. Planning en afronding terugschrijven. Drie aanroepen zetten de resultaten in Xero:
- PUT
/Quotes/{QuoteID}/Historyvoegt een notitie met de geplande einddatum toe. Bij een geaccepteerde offerte kunnen alleen het contact en de notities worden gewijzigd. Daarom wordt de datum in de historienotitie vastgelegd. (bron) - Zodra de order is afgerond, maakt POST
/Invoiceseen verkoopfactuur aan met Type ACCREC, Status DRAFT, het contact en de regels van de offerte, en het offertenummer als Reference. Uw boekhouder keurt de factuur in Xero goed en verstuurt deze. - POST
/Quotesmet de QuoteID en Status INVOICED sluit de offerte af. Van Accepted naar Invoiced is een geldige statuswijziging in de Accounting API.
4. Terugmeldingen vanaf de werkvloer en projecturen. Operators registreren hun werk met SkyPlanner Mobile Confirmations, Production Timer of Quick Log Mode. De voortgang wordt direct in de planning verwerkt en Autopilot plant de rest opnieuw. Bij projectwerk schrijft SkyPlanner de uren als tijdregistraties naar de projecttaak, met de Xero-gebruiker, datum en duur. (bron)
5. Gegevenseigenaarschap en conflictregels. Leg deze vast vóór ingebruikname:
| Gegevens | Eigenaar |
|---|---|
| Contacten, artikelen, prijzen, offertes, inkooporders, facturen, boekhouding | Xero |
| Werkcentra, processtappen, ploegendiensten, afwezigheid, insteltijdenmatrix, gereedschappen, alternatieve productiemiddelen | SkyPlanner |
| Taakvolgorde, start- en eindtijden, werkcentrum per taak | SkyPlanner |
| Notitie op de offerte met de geplande einddatum | SkyPlanner, teruggeschreven naar Xero |
| Conceptfactuur voor afgeronde orders, projecturen | SkyPlanner maakt aan, Xero is na goedkeuring leidend |
Gebruikelijke projectstappen
De implementatie is doorgaans binnen enkele weken na de start van de onboarding afgerond. Daarvóór gebruikt u tijdens de gratis proefperiode van 30 dagen uw eigen gegevens uit een CSV-export van contacten, producten en openstaande offertes uit Xero.
Het project zelf bestaat uit de volgende stappen:
- Koppelen. Een Xero-beheerder geeft SkyPlanner toestemming en selecteert de organisatie.
- Startpunt voor productie. Spreek af of geaccepteerde offertes of verkoopfacturen de productie starten.
- Gegevenstoewijzing. Leg de mappingtabel, artikelcodes, grootboekrekeningen voor facturen, standaardbelastinginstellingen en regels voor gegevenseigenaarschap vast.
- Eerste gegevensimport. Contacten, artikelen, openstaande inkooporders en geaccepteerde offertes.
- Productiemodel. Werkcentra, bewerkingsstappen per product, ploegendiensten, een omsteltijdenmatrix, gereedschappen en aantallen operators in SkyPlanner.
- Synchroniseren. Webhooks voor contacten en facturen, polling met
If-Modified-Sincevoor offertes, artikelen en inkooporders, plus een nachtelijke vergelijking en afstemming van de gegevens. - Terugschrijven. Eerst offertenotities, daarna conceptfacturen en offertestatussen, vervolgens projecturen waar die worden gebruikt.
- Parallel testen en in gebruik nemen. Vergelijk de datums in SkyPlanner met uw huidige planning, laat uw boekhouder de eerste conceptfacturen controleren en schakel daarna het terugschrijven in.
Aandachtspunten voor een Xero-koppeling
- Geen productieobjecten in Xero. Beheer de bewerkingsstappen per product in SkyPlanner en koppel ze aan de artikelcode in Xero. Houd artikelcodes ongewijzigd.
- Geen webhook voor offertes. Vraag ze met korte tussenpozen op via
If-Modified-Since, binnen de limieten per minuut en per dag. - Geaccepteerde offertes zijn vergrendeld. Na acceptatie kunnen alleen de contactgegevens en notities nog worden gewijzigd. Daarom wordt de toegezegde datum eenmalig bij acceptatie uitgelezen en wordt de geplande datum als notitie in de historie vastgelegd.
- Voorraadmutaties volgen uit verkoop- en inkoopfacturen. Xero wijzigt de aanwezige voorraad via verkoopfacturen, inkoopfacturen en creditnota’s voor artikelen met voorraadregistratie. Spreek met uw boekhouder af hoe gereed product en verbruikte materialen worden geboekt.
- Projecturen vereisen Xero-gebruikers. Elke urenboeking hoort bij een Xero-gebruiker. Bepaal welke operators uren naar Xero Projects boeken en houd de overige uren in SkyPlanner.
- Fijnmazige scopes. Vraag vanaf het begin fijnmazige scopes aan, want de brede scopes worden uitgefaseerd.
- Appniveau. Het partnerniveau bepaalt hoeveel organisaties een app kan koppelen en hoeveel API-aanroepen per dag beschikbaar zijn. Stem dit niveau af op het aantal productielocaties.
De Xero-koppeling: wie richt deze in en levert ondersteuning?
Het werk omvat uw artikelen, offertes en inkooporders, en de manier waarop afgerond werk wordt gefactureerd. Daarbij wordt toegevoegd wat Xero niet vastlegt: werkcentra, bewerkingsstappen, ploegendiensten, een omsteltijdenmatrix, gereedschappen, aantallen operators en alternatieve productiemiddelen.
- Het SkyPlanner-team richt de koppeling tijdens de onboarding in en ondersteunt deze na ingebruikname. Elk productiebedrijf richt artikelen, offertes en voorraad anders in Xero in. Die praktijkkennis wordt hierbij benut.
- Uw Xero-adviseur of integratiepartner kan de koppeling bouwen. SkyPlanner stelt de REST API, Swagger/OpenAPI-documentatie en webhooks beschikbaar.
- Uw eigen ontwikkelaars kunnen hierop voortbouwen met een API-token. Een API-token is voldoende om te beginnen. Het SkyPlanner-team helpt waar nodig. Productdocumentatie, onder meer over inkooporders en de API voor producten en materialen, vindt u in de SkyPlanner-documentatie.
SkyPlanner is beschikbaar vanaf 199 € per maand, inclusief 5 werkcentra, met maandelijkse facturering. U ontvangt vooraf een offerte voor de koppeling en uw abonnement. De offerte voor de koppeling wordt afgestemd op uw proces en behoeften. Zo kent u de volledige kosten voordat u begint. Bekijk de prijzen en functies, en lees wat Xero zelf biedt in Heeft Xero productieplanning? Het overzicht vindt u op de Xero-pagina. Andere systemen vindt u onder alle koppelingen.
Ervaringen van productiebedrijven met SkyPlanner
2 uurbespaard per week
“Met SkyPlanner zijn we voor onze productieplanning overgestapt van Excel-spreadsheets naar realtime productieoptimalisatie.”
Kalle Kalliomäki, supplychainspecialist
UTU · Elektrische schakelborden en schakelapparatuur
De productieplanning bespaart elke week 2 uur werktijd en een nieuwe werklijst bereikt de productielijn binnen enkele seconden.
+90%productie-efficiëntie
“De efficiëntie in de productie is met 90% gestegen.”
Abdul Rucyinga, hoofd IT
Laboratory & Allied · Farmaceutische productie
De productie-efficiëntie is met 90% gestegen. Het kost minder dan 30 minuten om voor alle werkcentra een geoptimaliseerde planning voor drie maanden te maken.
Minderstilstand door materiaaltekorten
“De waarde van SkyPlanner voor ons is dat het een hulpmiddel is dat in de dagelijkse praktijk werkt, vooral bij het vaststellen van leverdatums.”
Tommi Männistö, manager productieplanning
Eskomatic · Verspaning in opdracht
Automatische capaciteitsplanning levert nauwkeurigere leverdatums op en de productiestilstand door materiaaltekorten is sterk afgenomen.
1.000’enwerkorders automatisch ingepland
“We hebben de productie op een andere manier onder controle en ons inzicht in de capaciteit is van een heel ander niveau.”
Hannu Ryynänen, algemeen directeur
Mamec · Industriële mengers, pompen en hightech productie in opdracht
Duizenden werkorders worden automatisch ingepland en de hele organisatie heeft realtime inzicht in de productie.
Veelgestelde vragen
Heeft Xero een API voor productiegegevens?
Xero heeft de Accounting API en de Projects API. Beide zijn REST API’s met OAuth 2.0. Ze ondersteunen contacten, artikelen, offertes, facturen, inkooporders en urenboekingen. Productiegegevens zoals werkcentra en bewerkingsstappen worden in SkyPlanner beheerd.
Kan SkyPlanner gegevens terugschrijven naar Xero?
Ja. SkyPlanner voegt de geplande einddatum toe aan de historie van elke offerte. Zodra de order is afgerond, maakt SkyPlanner een conceptverkoopfactuur met de offerteregels aan en zet de offerte op Invoiced. SkyPlanner boekt ook projecturen.
Stuurt Xero wijzigingen in realtime door?
Xero biedt webhooks voor contacten en facturen. Met If-Modified-Since leest SkyPlanner offertes, artikelen en inkooporders uit die sinds de laatste synchronisatie zijn gewijzigd. Daarnaast worden de gegevens elke nacht gecontroleerd en gelijkgetrokken. Zo komt een nieuwe geaccepteerde offerte snel in de planning terecht.
Waar komen stuklijsten, bewerkingsvolgordes en machines vandaan als Xero die niet heeft?
Uit SkyPlanner. U stelt werkcentra, bewerkingsstappen per product, ploegendiensten en omsteltijden eenmalig in, handmatig of via een CSV- of Excel-import. Elk product is gekoppeld aan de artikelcode in Xero, zodat nieuwe geaccepteerde offertes automatisch worden ingepland.
Kunnen we SkyPlanner testen voordat we de koppeling bouwen?
Ja. Tijdens de gratis proefperiode van 30 dagen kunt u tot 20 werkcentra gebruiken met een CSV-import uit Xero. Een creditcard is niet nodig. Start de proefperiode of neem contact op met ons verkoopteam om de omvang van de koppeling te bepalen.