Naar de inhoud
SyncMyShop

Systemen

Sendcloud koppeling met je webshop en ERP: labels, douane en tracking terug

Een Sendcloud koppeling zet orders uit je webshop of ERP in Sendcloud, laat er een label voor maken en zet trackingnummer en status terug in de order. Sendcloud werkt sinds april 2026 met API v3 voor nieuwe accounts. Het werk zit in adressen die per vervoerder andere lengtes toestaan, douanegegevens die uit het ERP moeten komen en orders die Sendcloud asynchroon opslaat.

Wat is Sendcloud en wie gebruikt het?

Sendcloud is een verzendplatform voor webshops. Je maakt er labels voor meer dan 170 vervoerders, met de tarieven van Sendcloud of met je eigen contract, en je regelt er afhaalpunten, retouren en track en trace mee. Voor Shopify, WooCommerce en andere platformen heeft Sendcloud kant-en-klare koppelingen die orders ophalen en de tracking terugzetten.

Een eigen koppeling verbindt Sendcloud met wat daarbuiten ligt: orders die uit het ERP komen, een levering die na verzending in het ERP geboekt wordt, en zendingen buiten de EU waarvoor de douanegegevens alleen in het ERP staan. Sendcloud is dan de plek waar het label ontstaat; de orders, artikelen en boekingen liggen in de systemen eromheen.

Wat je met Sendcloud koppelt

Stroom Richting API v3
Orders webshop of ERP naar Sendcloud POST /api/v3/orders, tot 100 per aanroep
Label voor een bestaande order koppeling naar Sendcloud Ship an Order: 1 synchroon, 1 tot 20 asynchroon
Label zonder order ERP naar Sendcloud POST /api/v3/shipments/announce
Douanegegevens ERP naar Sendcloud parcel_items met hs_code en origin_country
Afhaalpunten Sendcloud naar checkout Service Points API
Status en trackingnummer Sendcloud naar webshop en ERP webhook Parcel status changed, tracking_number
Retouren Sendcloud naar ERP Returns API

Er zijn twee manieren om tot een label te komen. Met de Orders API zet je orders in Sendcloud, waarna iemand in Sendcloud of de koppeling via Ship an Order het label maakt. Met de Shipments API maak en meld je de zending direct aan, zonder order in Sendcloud; dat past als het ERP of magazijn al weet welk pakket weggaat. Een order aanmaken maakt geen zending, geen label en geen aanmelding bij de vervoerder.

Hoe Sendcloud data vrijgeeft

API v3, met v2 in onderhoudsmodus

Sendcloud heeft twee API-versies. API v3 is de actuele. API v2 gaat sinds april 2026 in onderhoudsmodus: bestaande koppelingen op accounts van voor april 2026 blijven werken, maar krijgen geen nieuwe functies, en het aanmaken van pakketten via v2 is gesloten voor nieuwe gebruikers. Een koppeling op v2 is dus niet kapot, maar elke uitbreiding wordt een migratie naar v3.

Inloggen met een sleutelpaar of OAuth2

Een API-koppeling in Sendcloud krijgt een publieke en een geheime sleutel. Daarmee log je in met basic authentication, of je haalt er een OAuth2-token mee op met de client credentials flow. Zo'n token is 3.599 seconden geldig, ongeveer een uur, en de koppeling haalt kort voor het verlopen een nieuwe. In de instellingen van de koppeling in Sendcloud kun je OAuth2 verplicht maken.

De limieten van Sendcloud

Methode Limiet Burst
GET 1.000 verzoeken per minuut
POST, PATCH, PUT, DELETE 100 verzoeken per minuut 15 per seconde

Boven de limiet volgt HTTP 429. De bron is de pagina rate limits van Sendcloud.

De schrijflimiet is de krappe. De rekensom voor een drukke dag met 1.200 orders: één order per aanroep zijn 1.200 aanroepen, bij 100 per minuut 12 minuten volle belasting, en dan is er nog geen label gemaakt. In batches van 100 zijn het 12 aanroepen. De labels via Ship an Order asynchroon in groepen van 20 zijn 1.200 / 20 = 60 aanroepen. Samen 72 schrijfverzoeken in plaats van 2.400 als je elke order en elk label los zou doen.

Webhooks per koppeling

Sendcloud stuurt een webhook bij elke statuswijziging van een pakket, maar alleen voor pakketten die via die koppeling zijn aangemaakt. Heb je meerdere koppelingen in Sendcloud, dan heeft elke koppeling een eigen webhookadres. Elk bericht is ondertekend: de koppeling berekent een HMAC-SHA256 over de ruwe body met de geheime sleutel en vergelijkt die met de header Sendcloud-Signature. Mislukt de aflevering, dan volgen tot 10 nieuwe pogingen met pauzes van 5 minuten oplopend tot 1 uur. Berichten kunnen in de verkeerde volgorde komen; het veld timestamp bepaalt welke status de laatste is. Zie wat is een webhook.

Waar het bij Sendcloud op vastloopt

Een order naar een Sendcloud-zending naar Zwitserland Velden uit webshop en ERP voor een zending buiten de EU. De bedrijfsnaam van 47 tekens is langer dan de 35 die PostNL toestaat. Het huisnummer gaat in een eigen veld, de toevoeging heeft er geen. HS-code en land van herkomst komen uit het ERP-artikel, want de webshop heeft ze niet. Webshop en ERP Sendcloud API v3 shipping.company Installatiebedrijf Van den Heuvel en Zonen B.V. 47 tekens shipping.address1 Bahnhofstrasse 12 A erp.artikel.goederencode 8481.80 erp.artikel.herkomstland Duitsland line.price 17,08 to_address.company_name max 35 tekens bij PostNL to_address.address_line_1 Bahnhofstrasse to_address.house_number 12 A geen veld voor de toevoeging parcel_items[].hs_code 848180 parcel_items[].origin_country DE parcel_items[].price {value: 17.08, currency: EUR} per vervoerder splitsen naar ISO 3166 punt, één valuta
Een zending buiten de EU: twee velden komen uit de webshop, drie uit het ERP-artikel. In rood de bedrijfsnaam die voor PostNL te lang is.

Adresvelden met een lengte per vervoerder

Het adresobject van de API noemt geen maximale lengtes; de vervoerders hebben ze wel. Sendcloud publiceert ze per vervoerder, in tekens:

Vervoerder Naam Bedrijfsnaam Adres Huisnummer
PostNL 35 35 95 35
DHL eCommerce Benelux 35 35 niet genoemd 15
DPD 35 35 50 8
GLS Netherlands 60 30 40 20
UPS 35 35 70 niet genoemd

Een B2B-klant met een lange bedrijfsnaam past bij GLS in 30 tekens niet en bij PostNL in 35 niet. Welke vervoerder het wordt, beslist vaak een verzendregel in Sendcloud, dus de koppeling controleert de lengtes tegen de strengste vervoerder die de regel kan kiezen en zet een te lang veld op de controlelijst, met het voorstel erbij. Het adres zelf heeft address_line_1, house_number en address_line_2, en geen veld voor de toevoeging. Hoe 12 A op het label komt, leggen we per vervoerder vast met een testlabel. Zie adresvelden mappen.

Douanegegevens die de webshop niet heeft

Voor een zending buiten de EU vraagt Sendcloud per artikel een omschrijving, aantal, gewicht, prijs, hs_code en origin_country als ISO-landcode, plus een blok customs_information. Zonder dat blok wordt de zending geweigerd. Voor Australië, Canada, Italië, de VS en Vietnam is ook de provinciecode verplicht, met landprefix: US-NY, niet NY. Alle prijzen in een zending moeten in dezelfde valuta staan, en Sendcloud rekent niets om.

De webshop kent de goederencode en het herkomstland meestal niet; het ERP wel, als veld op het artikel. De koppeling haalt ze daar op, zet Duitsland om naar DE en controleert voor de aanmelding of elk artikel in de zending ze heeft. Een artikel zonder goederencode komt op de controlelijst in plaats van bij de douane.

Orders die er nog niet zijn

De Orders API slaat orders asynchroon op. Een 201 betekent dat het verzoek is aangenomen, niet dat de order al bestaat. Wie direct daarna een label vraagt, kan "order not found" terugkrijgen. Een batch is alles of niets: één fout adres in 100 orders en geen enkele order wordt opgeslagen; de fout wijst met source.pointer naar de positie in de lijst. De koppeling haalt die order eruit en stuurt de andere 99 opnieuw.

Twee kleinere dingen. Orders worden gematcht op order_id plus het id van de koppeling, en order_id kan daarna niet meer veranderen. Het eigen id van Sendcloud komt terug als getal, maar moet in een verzoek als tekst mee: "669", niet 669.

Platformen die we aan Sendcloud koppelen

De koppeling wordt gebouwd op jouw combinatie van webshop, ERP en Sendcloud-account, met jouw verzendregels en vervoerders. De platformen staan op Shopify koppeling, WooCommerce koppeling en Magento koppeling. Aan de ERP-kant: Exact Online koppeling, Business Central koppeling en AFAS webshop koppeling. Besteed je het magazijn uit, dan staat dat op Monta koppeling. Het overzicht van de orderstroom staat op orders, klanten en verzending, alle stromen op koppelingen.

Wij bouwen de koppeling voor een vaste prijs, en hosten, draaien en bewaken hem daarna voor een vast bedrag per maand. Voor de livegang draait hij als dry run: je ziet per order welk adres, welke douaneregels en welke vervoerder naar Sendcloud zouden gaan, zonder dat er een label wordt gemaakt. Vertel waar je orders vandaan komen en waar je naartoe verzendt, dan hoor je welke gegevens de koppeling uit welk systeem haalt.

Veelgestelde vragen

Waarom niet de standaard Sendcloud-koppeling van mijn webshop?

De standaardkoppeling haalt orders uit één webshop op en zet de tracking automatisch terug. Een eigen koppeling doet wat daarbuiten valt: orders die uit een ERP of een tweede kanaal komen, douanegegevens die alleen in het ERP staan, een verzending die terug moet als levering in het ERP, of meerdere webshops op één account.

Werkt mijn koppeling op API v2 nog?

Ja. Sendcloud zet API v2 sinds april 2026 stap voor stap in onderhoudsmodus. Bestaande koppelingen op accounts van voor april 2026 blijven werken, maar krijgen geen nieuwe functies. Op dit moment is alleen het aanmaken van pakketten via v2 gesloten voor nieuwe gebruikers. Een nieuwe koppeling bouwen we op v3.

Hoe komt het trackingnummer terug in mijn webshop?

Via de webhook van Sendcloud of door de zending op te halen. De webhook stuurt bij elke statuswijziging van een pakket een bericht, ondertekend met HMAC-SHA256. Faalt de aflevering, dan probeert Sendcloud het tot 10 keer opnieuw, met pauzes van 5 minuten oplopend tot 1 uur. Berichten kunnen in de verkeerde volgorde aankomen, dus de koppeling kijkt naar het veld timestamp. Zie deelleveringen en track en trace.

Kan de klant een afhaalpunt kiezen?

Ja. Sendcloud heeft een Service Points API waarmee je afhaalpunten per vervoerder en gebied opvraagt, bijvoorbeeld voor in de checkout. In de order gaat dan het id van het afhaalpunt mee, het id van Sendcloud of dat van de vervoerder. Geef je beide, dan gebruikt Sendcloud het id van de vervoerder.

Hoe gaan retouren?

Met de Returns API van v3 maak je een retourlabel, ook als het oorspronkelijke pakket niet via Sendcloud is verstuurd. Webhookmeldingen voor een retour krijg je alleen als de uitgaande zending via dezelfde API-koppeling is aangemaakt. Het retour terugmelden aan je ERP, als creditnota of als voorraad terug, is een aparte stroom. Zie retouren en creditnota's.

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

Leveranciers, producten, orders per dag, een ruwe schatting is prima.

Of mail direct: carsten@syncmyshop.com