Er zullen rate-limits worden toegepast op API-calls om dit soort gedrag onder controle te houden. Deze limieten worden toegepast op beide soorten Exact Online API-calls: XML webservice en REST API. Na 1 januari 2019 kunnen ze de beschikbaarheid van deze integratiediensten voor uw app niet meer garanderen wanneer de app de rate-limits overschrijdt.
Deze wijziging stelt Exact Online in staat om de focus te houden en de verplichtingen tegenover de ontwikkelaars na te komen.
API-rate-limits
Integratiediensten zullen worden beperkt door twee rate-limits toe te passen:
Minimale limiet – uw app kan 60 API-calls voeren, per bedrijf, per minuut.
Dagelijkse limiet – uw app kan 50.000 API-calls voeren, per bedrijf, per dag.
Beide rate-limits beperken het aantal verzoeken dat uw app gedurende een tijdvenster mag verzenden. Elke limiet heeft een specifiek gedrag wanneer deze wordt overschreden.
Minuten limiet
Als uw app de minutely limit voor een bedrijf overschrijdt, zullen alle extra verzoeken in dezelfde minuut worden afgewezen.
Als u bijvoorbeeld 40 verzoeken in de eerste seconde verstuurt en 20 verzoeken in de volgende seconde, worden volgende verzoeken gedurende de resterende 58 seconden geweigerd.
Laten we zeggen dat u een minutely limit van 60 oproepen per minuut heeft. U stuurt 40 verzoeken om 19:37:00 uur en 20 verzoeken om 19:37:01 uur. Alle volgende verzoeken worden dan gedurende de volgende 58 seconden tot 19:37:59 uur geweigerd.
Niet-toegestane verzoeken zullen worden afgewezen met een HTTP 429 (Too Many Requests) antwoord. Elk antwoord op een API-call met een bedrijfscode (ook bekend als een divisiecode) in de URL zal terugkeren met twee headers om u te helpen de minutieuze limiet bij te houden.
Header naam |
Omschrijving |
X-RateLimit-Minutely-Limit |
Het maximale aantal API-oproepen dat uw app per bedrijf per minuut mag doen. |
X-RateLimit-Minutely-Remaining |
Het resterende aantal API-oproepen dat uw app voor een bedrijf mag doen, per minuut. |
Dagelijkse limiet
Zodra uw app de dagelijkse limiet voor een bedrijf overschrijdt, zullen de API-oproepen van uw app voor dat bedrijf worden afgewezen en ontvangt u een HTTP 429 (Too Many Requests) antwoord dat vergelijkbaar is met de minutieuze limiet. Uw app kan nog steeds verzoeken versturen voor andere bedrijven.
Elk antwoord op een API-oproep met een bedrijfscode (ook wel divisiecode genoemd) in de URL zal terugkomen met drie headers om u te helpen de dagelijkse limiet bij te houden.
Header naam |
Omschrijving |
X-RateLimit-Limit |
Het maximale aantal API-calls dat uw app per bedrijf, per dag mag doen. |
X-RateLimit-Remaining |
Het resterende aantal API-calls dat uw app voor een bedrijf mag doen, per dag. |
X-RateLimit-Reset |
Het tijdstip waarop het rate-limit–window in UTC-tijdperk milliseconden wordt gereset. |
Ga niet door met het maken van API-calls als u de daglimiet heeft bereikt, want deze zullen worden geweigerd totdat het tarieflimietvenster aan het begin van de volgende dag wordt gereset.
Aanvraag URL’s die geen bedrijfscode hebben worden niet geteld als de daglimiet. Bijvoorbeeld: …/api/v1/current/Me.
Dagelijks limiet downgrade plan
In de loop van het jaar wil Exact Online de daglimiet verlagen van 50000 naar 5000 aanvragen per bedrijf. Het schema hiervoor is nog onbeslist.
Tips en trucs om te voldoen aan de API-tariefgrenzen
We raden u aan om de documentatie van de ontwikkelaars door te nemen en de Exact Online API-specialisten kunnen u ook helpen met eventuele vragen.
Exact Online heeft een aantal van de integratie cases opgevolgd en hebben ontdekt dat de Exact Online API niet altijd optimaal wordt gebruikt. Bijvoorbeeld, continue polling, het toepassen van foute filters en het oneindig veel opnieuw proberen van een aanvraag als er een fout optreedt. Hier zijn enkele tips en trucs die u kunnen helpen:
Log alle API-calls die u maakt in de Exact Online API. U kunt dan het verkeer vanuit uw app monitoren en uw resultaten vergelijken met die van ons.
Verbeter uw app met een teller voor het aantal verzoeken per bedrijf dat in de laatste 60 seconden is verzonden, zodat u de stroom van verzoeken kunt controleren en voorkomen dat u de minutieuze limiet raakt.
Start niet de OAuth-flow voor elke API-call. Toegangspunten zijn 10 minuten geldig en refresh tokens zijn geldig tot de volgende verversing.
Cache API-responses als u veel hergebruik verwacht. Probeer niet bij elke pagina die wordt geladen API-calls te initiëren, maar start zelden API-calls en laadt de reactie in een lokale cache.
Pollen is minder nodig, omdat Exact Webhooks biedt voor veel eindpunten. Zie Exact Online Webhooks. Zijn de eindpunten die u nodig heeft niet beschikbaar? Vertel ons uw wensen via een idee-aanvraag in de Developer Community Portal (meld u aan met uw App Centre partneraccount).
Geef actieve gebruikers prioriteit en vraag alleen gegevens op voor gebruikers die zich recentelijk hebben aangemeld bij uw app.
Is het nodig om alle gegevens op te vragen? Of is het mogelijk om alleen gewijzigde gegevens op te vragen? Het toepassen van een filter en het selecteren op elke API aanvraag is geweldig, maar valideer de filtertechniek op basis van uw logboekresultaten. Zorg ervoor dat uw tijdstempel, status of een andere transactiewijziging correct wordt bijgewerkt binnen uw integratieservice.
Valideer uw foutproces. Als de Exact Online API een foutmelding geeft, moet de integratieservice het verzoek niet voor altijd opnieuw proberen. U kunt een schema toepassen om het opnieuw te proberen met exponentieel groeiende intervallen en een maximaal aantal opvragingen. Nogmaals, uw logboekresultaten zullen u helpen.
API-limieten met ingang van 1 juli 2021
Exact Online stelt per 1 juli 2021 extra limieten aan de API. Exact Online verwerkt momenteel meer dan 20 miljoen API-verzoeken per dag. Deze wijzigingen zijn nodig om platformstabiliteit en API-efficiëntie te garanderen en om de klantervaring te verbeteren.
De volgende limieten gaan in op 1 juli 2021:
Maximaal 200 token-eindpuntaanroepen per API-sleutel, per gebruiker, per dag. U mag niet vaker dan eens per 10 minuten een nieuw toegangstoken aanvragen.
Niet meer dan 10 fouten per API-sleutel, per gebruiker, per bedrijf, per eindpunt en per uur. Wanneer u deze limiet overschrijdt, wordt uw API-sleutel tijdelijk geblokkeerd voor het doen van verdere verzoeken. De blokkering wordt na een uur automatisch opgeheven en zal geleidelijk toenemen als je doorgaat met het maken van deze fouten.
Verplichte filtering op enkele en bulk-endpoints waar synchronisatie-API’s beschikbaar zijn.Exact Online heeft synchronisatie-API’s beschikbaar om acties op grotere sets gegevens mogelijk te maken zonder API-limieten tegen te komen. Zie API-typen om uw API-aanroepen efficiënter te maken voor meer informatie.
De bovenstaande limieten komen bovenop de volgende API-limieten die al van kracht zijn sinds 1 januari 2021:
Nieuwe apps worden direct beperkt tot 5.000 API-aanroepen per app, per bedrijf, per dag. De shaping-limiet is 60 API-aanroepen, per bedrijf, per minuut.
Op basis van het fair use-beleid zullen we corrigerende maatregelen nemen door uw app te beperken als de limiet te veel wordt overschreden. Enkele voorbeelden van buitensporige acties zijn; elke dag herhaaldelijk downloaden van ongewijzigde gegevens, inlogpogingen op inactieve accounts en overbelasting van het tokenendpoint. Brixxs kan u helpen om deze limieten te implementeren.