OCI en PunchOut
OCI koppeling Spend Cloud
Spend Cloud heet sinds 1 oktober 2026 Elari. De koppeling werkt zoals voorheen: je klant opent jouw webshop vanuit de inkoopmodule, de winkelmand gaat via OCI terug, en na goedkeuring komt de order als cXML, XML of pdf bij jou binnen. Hier staat wat Elari van je webshop vraagt, veld voor veld.
Wat er tussen je webshop en Elari gaat
Elari is de inkoop- en declaratiesoftware die tot 1 oktober 2026 Spend Cloud heette, gemaakt door Visma | ProActive, dat sinds die datum ook Elari heet. Het bedrijf noemt op zijn site meer dan 1.200 organisaties, vooral in zorg, onderwijs en non-profit, en meer dan 320 OCI-koppelingen met leveranciers. De software, de koppelingen en de documentatie voor leveranciers zijn hetzelfde gebleven.
De koppeling heeft twee helften. De sessie en de winkelmand lopen via OCI, het protocol van SAP. De order komt na goedkeuring apart, en daarvoor kiest de leverancier de route. Elari schrijft dat de koppeling is gebouwd op de OCI-documentatie van SAP en verwijst leveranciers naar versie 4.0 daarvan. Wat Elari daarbovenop vraagt, staat in de technische documentatie OCI-koppeling in het helpcentrum.
| Stap | Richting | Wat er gaat | Formaat |
|---|---|---|---|
| Inlog | Elari naar webshop | Gebruikersnaam, wachtwoord, HOOK_URL |
URL met parameters |
| Winkelmand | Webshop naar Elari | Regels met artikel, aantal, eenheid, prijs, btw | NEW_ITEM-velden in een formulier |
| Goedkeuring | Bij de klant | Kostenplaats, procuratieflow | Niets naar jou |
| Order | Elari naar jou | De goedgekeurde order met afleveradres | cXML via HTTPS, XML via SFTP, of pdf en cXML per e-mail |
Welk systeem is leidend, per gegeven
| Gegeven | Leidend | Waar het vandaan komt |
|---|---|---|
| Assortiment en prijzen | Jouw webshop en ERP | De sessie toont de prijzen van het account waarmee Elari inlogt |
| Btw-percentage per regel | Jouw webshop | NEW_ITEM-VATPERCENTAGE, verplicht bij Elari |
| Aantallen in de order | Elari | De klant kan na de overdracht wijzigen en regels verwijderen |
| Afleveradres en locatiecode | Elari | Ingericht door de beheerder bij de klant, per adres |
| Grootboek en kostenplaats | Elari | Vertaald uit een artikelgroep die jij meestuurt |
| Gewenste leverdatum | Elari | Standaard morgen; per leverancier op te hogen met het veld Levertijd |
Twee regels volgen hieruit. De prijs die je in de sessie toont, is de prijs die de klant goedkeurt, dus de prijslijst per klant moet in de webshop kloppen voor de inlog begint. En de order die terugkomt, is leidend boven de winkelmand die je bewaarde. Elari wil daarom dat het orderbestand de volledige order bevat en niet alleen een verwijzing naar een opgeslagen winkelmand: tijdens de goedkeuring kunnen aantallen veranderen en regels verdwijnen.
De inlog: één URL met parameters
Elari roept je webshop aan met een URL waarin de inloggegevens als variabelen staan. Het voorbeeld uit de documentatie heeft deze vorm:
https://webshop.example.nl/oci/login?USERNAME=$username&PASSWORD=$password
&OCI_VERSION=3.0&HOOK_URL=$hook_url
Elari vult $username en $password met de gegevens die jij aan de klant hebt gegeven en codeert speciale tekens. Een gebruikersnaam inkoop@bakker.example komt binnen als inkoop%40bakker.example. De webshop decodeert dat; Elari raadt aan speciale tekens te vermijden. Omdat de methode GET is, staan gebruikersnaam en wachtwoord in de URL en dus in de toegangslogs van je server. Een eigen OCI-account per klant, los van de accounts waarmee mensen gewoon inloggen, houdt dat beperkt.
Het retouradres HOOK_URL bevat zelf vier parameters:
| Parameter | Altijd aanwezig | Waarvoor |
|---|---|---|
hash |
Ja | Elari controleert ermee dat de winkelmand bij een eigen sessie hoort |
supplier_id |
Ja | Van welke leverancier de winkelmand komt |
administration_id |
Alleen bij een account per administratie | Welk bedrijf van de klant bestelt |
delivery_address_id |
Alleen bij een account per afleveradres | Vanaf welke locatie besteld wordt |
De webshop bewaart het hele adres bij de sessie en stuurt de winkelmand er ongewijzigd naartoe. Een webshop die HOOK_URL inkort of opnieuw opbouwt, verliest de hash, en dan kan Elari de winkelmand niet aan de sessie van de klant koppelen.
Elari kent vier manieren om OCI-accounts in te richten: één account voor de hele omgeving, een account per administratie, een account per afleveradres, of per combinatie van die twee. De eerste is volgens Elari het meest gebruikt. Bij de derde en vierde krijgt elke locatie van de klant een eigen account bij jou, met een eigen assortiment, bestellijsten of bestelhistorie, en moet elke nieuwe locatie ook aan jouw kant worden aangemaakt.
De winkelmand: de velden die Elari leest
Elari leest acht NEW_ITEM-velden standaard:
| Veld | In Elari | Verplicht |
|---|---|---|
NEW_ITEM-DESCRIPTION |
Artikelnaam | Ja |
NEW_ITEM-VENDORMAT |
Artikelnummer | Ja |
NEW_ITEM-QUANTITY |
Aantal | Ja |
NEW_ITEM-UNIT |
Eenheid | Ja |
NEW_ITEM-VATPERCENTAGE |
Btw | Ja |
NEW_ITEM-PRICE |
Prijs exclusief btw | Ja |
NEW_ITEM-CURRENCY |
Valuta | Alleen als de klant meerdere valuta gebruikt |
NEW_ITEM-PRICEUNIT |
Prijs per eenheid | Alleen als de prijsberekening per eenheid is ingesteld |
NEW_ITEM-VATPERCENTAGE staat niet in de specificatie van SAP. Het is een veld dat Elari en AFAS allebei lezen; Elari kan het percentage ook uit een vrij veld zoals NEW_ITEM-CUST_FIELD1 halen als dat met de klant is afgesproken. De waarde is een getal zonder procentteken: 21 of 21.00.
De winkelmand van Bakker Installatie B.V. heeft drie regels. Elk heeft de zes verplichte velden, dus het formulier telt 3 × 6 = 18 velden. De kabelbinders gaan per zak van 100, zodat er geen prijseenheid nodig is:
| Regel | QUANTITY × PRICE |
Exclusief btw | Btw bij VATPERCENTAGE 21 |
|---|---|---|---|
| Wandcontactdoos, 10482 | 12 × 17.08 | 204,96 | 43,04 |
| Groepenkast, 20915 | 2 × 149.00 | 298,00 | 62,58 |
| Kabelbinder, zak 100, 30377 | 5 × 3.75 | 18,75 | 3,94 |
Exclusief btw is dat 204,96 + 298,00 + 18,75 = 521,71. De btw is 43,04 + 62,58 + 3,94 = 109,56, samen 631,27. Rekent de webshop btw over het totaal in plaats van per regel, dan komt hij hier op hetzelfde bedrag uit, 21% van 521,71 = 109,56. Bij een andere mand kan dat een cent schelen tegen de som per regel.
Elari noemt nog vier punten die beide kanten moeten testen. Verzendkosten gaan als een extra artikelregel mee, met alle verplichte velden. Artikelen op gewicht krijgen hun gewicht in een vrij veld zoals NEW_ITEM-CUST_FIELD1. Een artikelgroep of boekhoudcode, bijvoorbeeld een UNSPSC- of NZI-code in NEW_ITEM-MATGROUP, laat de klant de regel automatisch naar een grootboekrekening vertalen. En alles wat je in de winkelmand meestuurt, kan Elari in de cXML-order aan je teruggeven.
De order na goedkeuring
Na goedkeuring biedt Elari de order aan op een van drie manieren. Welke het wordt, spreekt de klant met jou af:
| Route | Wat je ontvangt | Afzender |
|---|---|---|
| E-mail naar één vast adres | Pdf, cXML-bestand of beide | noreply@elari.nl, voorheen noreply@spend.cloud |
| HTTPS naar jouw server | Een XML-bericht, bij voorkeur cXML | IP-adres 35.204.242.219 |
| SFTP | Een XML-bestand | IP-adres 35.204.242.219 |
Het orderadres is een ander adres dan de inlog-URL. In het voorbeeld van Elari heeft de cXML-order een orderID zoals I.01.20.0001, een ShipTo met het afleveradres, een Contact met rol endUser en het e-mailadres van de besteller, een Extrinsic met de kostenplaats en per regel een ItemOut met SupplierPartID, UnitPrice, Description en UnitOfMeasure. Elari stelt de tags per leverancier in, zodat de order de velden bevat die jouw orderverwerking nodig heeft.
Een orderbericht via e-mail moet iemand overtypen, en het inkoopordernummer moet daarbij mee naar de factuur, anders lukt de factuurcontrole bij de klant niet. Elari gebruikt het veld Relatie bij de leverancier om facturen aan orders te matchen. De route via HTTPS zet de order zonder overtypen in je orderstroom, met het orderID van Elari als referentie.
Als het misgaat
Elari documenteert de foutmeldingen die een klant ziet als een order niet bij de leverancier aankomt. Ze komen allemaal bij jou terecht:
| Melding of situatie in Elari | Oorzaak | Wat er aan jouw kant moet gebeuren |
|---|---|---|
| "Het attribuut addressID van veld adres is niet gevuld. Locatiecode is verplicht" | Je orderverwerking vraagt een locatiecode die de klant voor dat adres nog niet heeft ingevuld | De code per afleveradres aan de klant geven |
| Order geweigerd: Elari niet bevoegd voor de locatie | Je server wijst de order af op account of locatie | Rechten van het OCI-account nalopen |
| Order krijgt status "Te bestellen" | Je server weigerde de order; het foutverslag staat bij de order | Het foutverslag lezen en de oorzaak in de orderverwerking oplossen |
| Inloggen in de webshop mislukt | Verkeerde inloggegevens, of het account is geen zakelijk account | Account controleren en opnieuw aan de klant geven |
| Koppeling werkt niet meer na 1 oktober 2026 | Retouradres of afzender gecontroleerd tegen spend.cloud | elari.app en noreply@elari.nl toevoegen |
Bij elke order kan de klant in Elari onder Plaatsingdetails drie bestanden downloaden: de winkelmand zoals jouw webshop hem stuurde (<ordernummer>_create_order.json), de order zoals Elari hem naar jou stuurde (<ordernummer>_(c)xml_order.json), en jouw antwoord (<ordernummer>_response.json, met bijvoorbeeld http code 200 - ok). Die drie zijn het eerste wat je vraagt als een klant belt. Een koppeling die zelf elke inlog, elke winkelmand en elke ontvangen order logt, heeft ze al.
Aansluiten en wat wij bouwen
Voor de eerste klant vraagt Elari van jou de URL van de webshop, inloggegevens voor een testaccount, het e-mailadres of de URL voor testorders en een voorbeeld-XML met verschillende artikelen, ook artikelen op gewicht als je die verkoopt. Na een geslaagde test geef je de productiegegevens en komt je webshop op de lijst van beschikbare webshops in Elari. Elke volgende klant vraagt de koppeling daar aan.
Wij bouwen de inlog-URL, de sessie met de prijzen van die klant, de overdracht met de velden die Elari leest en het adres dat de cXML-order aanneemt en in je ERP zet. Daarna draaien en bewaken we de koppeling: een geweigerde inlog of een order die niet verwerkt kon worden, staat in het dashboard voor de klant belt. Dezelfde opbouw werkt voor AFAS en voor de inkoopsystemen op OCI en PunchOut; de berichten na de order staan op PunchOut koppeling. Vertel welke klant om de koppeling vraagt en op welk platform je webshop draait.
Veelgestelde vragen
Moet ik iets aanpassen nu Spend Cloud Elari heet?
Elari schrijft dat bestaande koppelingen blijven werken. Wat verandert: de omgevingen van klanten draaien op [omgevingsnaam].elari.app in plaats van spend.cloud, en orders per e-mail komen van noreply@elari.nl in plaats van noreply@spend.cloud. Controleert je webshop het retouradres of de afzender tegen een vaste lijst, dan moeten de nieuwe namen erbij.
Kan ik met één koppeling alle klanten met Elari bedienen?
Ja. Na de eerste werkende koppeling zet Elari je op de lijst van beschikbare webshops. Een volgende klant vraagt de koppeling daar aan en hoeft alleen eigen inloggegevens, en waar nodig klantnummers of locatiecodes, van jou te krijgen. De velden en de orderroute zijn voor elke klant dezelfde.
Leest Elari prijzen inclusief of exclusief btw?
Bij voorkeur exclusief. Elari schrijft dat 99 procent van de leveranciers exclusief btw aanlevert en adviseert klanten de instelling voor OCI-bedragen inclusief btw op nee te zetten. Het btw-percentage stuur je per regel mee in NEW_ITEM-VATPERCENTAGE, als 21 of 21.00.
Hoe test je een koppeling met Elari?
Elari vraagt de URL van je webshop, een testaccount en het adres waarop een testorder mag binnenkomen, met een voorbeeld-XML met verschillende artikelen. Daarna volgt een testronde waarbij jij controleert of de order goed is aangekomen en alle velden gevuld zijn. Pas daarna komen de productiegegevens.
Kan een klant per locatie een eigen assortiment krijgen?
Ja, met een OCI-account per afleveradres. Elari stuurt het afleveradres mee in de order en bij leveranciers die erom vragen een locatiecode per adres. Elari waarschuwt klanten dat die variant meer beheer kost: elke nieuwe locatie moet ook bij jou worden ingericht.
Vertel wat je nodig hebt
Vertel welke systemen je gebruikt en wat je wilt verbeteren. Je krijgt binnen één werkdag een persoonlijk antwoord. We helpen je de werkzaamheden helder te krijgen en spreken de prijs en planning af voordat je iets toezegt.
- Je weet de prijs en de doorlooptijd voordat je iets toezegt
- Wij zoeken uit welke koppeling het werk uit handen neemt
- Wij verzorgen de bouw, hosting, bewaking en het onderhoud
- Je team krijgt minder overtypwerk en minder uitzoekwerk