Productupdatemeldingen - oktober 2026
Mail de kopers van een product dat het is bijgewerkt — de campagne die een merchant start met Klanten op de hoogte stellen op de pagina van een product — vanuit je eigen systeem. Additief aan het v1-contract. Beschikbaar in elk betaald abonnement.
- Nieuw
POST /products/{shopify_product_id}/notifications: zet een campagne in de wachtrij (202) voor elke koper van de downloadbare koppelingen van het product, of, metvariant_ids, van de koppelingen die die varianten bedienen. Optioneelmessagein platte tekst van maximaal 2.000 tekens met{customer.first_name},{shop.name},{product.title}en{product.metafields.<namespace>.<key>}; geen links.dry_runvoert elke controle uit en geeft de aantallen, het onderwerp en de gerenderde notitie terug zonder te verzenden (200; gebruik per dry run een nieuwe Idempotency-Key). Kost 10 ratelimit-tokens. - Nieuw
GET /notifications/{notificationId}: de status van de campagne, de aantallen,waiting_for_archiveen een vaste seterror-waarden;completedmetpartial: truewanneer sommige verzendingen zijn mislukt. Campagnes die in de app zijn gestart, verschijnen ook. - Nieuw
POST /notifications/{notificationId}/cancel: annuleert een campagne in de wachtrij (200). De 7-dagenlimiet van het product blijft staan, precies zoals bij annuleren in de app. - Nieuw optioneel object
notify_customersopPOST /mappingsenPUT /mappings/{id}: zet na het committen van de schrijfactie een melding voor de kopers van de geschreven koppeling in de wachtrij. Een notitie die een regel over de eigen tekst schendt (leeg, te lang, een foute variabele, meer dan vijf metavelden, een link in de tekst), is422 invalid_messageen er wordt niets geschreven; een probleem met een metaveld en elke andere weigering worden gerapporteerd in het nieuwe velddata.notification(created: false,error), nooit als een 4xx.data.notificationis alleen aanwezig wanneer de vlag is meegestuurd; bestaande responses zijn ongewijzigd. - Eén campagne per product per 7 dagen, over al zijn varianten en elke bron, en geen enkele zolang er nog een in de wachtrij staat of wordt verzonden:
429 notification_cooldownmetRetry-After(tot zeven dagen) enerror.details.next_available_at. Niet de token bucket — probeer het niet automatisch opnieuw; plan de volgende aanroep opnext_available_at. - Maximaal 5 campagnes per shop tegelijk in de wachtrij of in verzending, over elk product en elke bron: een zesde is
429 too_many_active_notificationsmeterror.details.limitenerror.details.active_notification_ids, en zonderRetry-After. Probeer het opnieuw zodra een ervan klaar is. Een dry run wordt op dezelfde manier geweigerd; bij het schrijven van een koppeling wordt het gerapporteerd indata.notification. - Eén productupdatemail per koper per shop per 24 uur, over elke campagne: een koper die er al een heeft gekregen, wordt overgeslagen wanneer de campagne verzendt. Overgeslagen kopers zitten niet in
sent_count,failed_countofsuppressed_count. Een campagne die elke koper heeft overgeslagen, eindigt alsfailedmeterror: recipients_recently_notifieden gebruikt de 7 dagen van het product niet. - Vóór elke batch van maximaal 500 e-mails controleert de campagne de shop opnieuw en stopt als het abonnement is verlopen of de shop geen betaald abonnement meer heeft, klant-e-mails zijn uitgezet, het verzenden is opgeschort of Alva meldingen heeft uitgeschakeld. Stopt ze voordat er iemand is gemaild, dan is ze
failed(plan_required,email_disabled,notifications_suspendedofnotifications_switched_off) en geeft ze de 7 dagen vrij; stopt ze later, dan is zecompletedmetpartial: true. Een campagne waarvan elke verzending is mislukt, isfailedmetnothing_senten geeft de 7 dagen ook vrij, en een campagne waarvoor bij het verzenden niemand meer over was om te mailen, isfailedmetno_eligible_recipientsen geeft ze eveneens vrij. - Een campagne waarvan de beoogde koppeling een lopende ZIP-opbouw heeft, wacht daarop (
waiting_for_archive: true; alleen een koppeling die een ZIP-archief levert, laat een campagne wachten); een mislukte opbouw, of een opbouw die 60 minuten lang niet vordert terwijl die loopt (6 uur terwijl die nog wacht op de start of op een nieuwe poging), geteld vanaf de opbouw, niet vanaf het aanmaken van de campagne, laat de campagne mislukken met nul verzendingen en geeft de limiet vrij. - Acht nieuwe foutcodes:
403 notifications_suspended,404 notification_not_found,409 notification_not_cancellable,422 invalid_message,422 no_downloadable_content,422 no_eligible_recipients,429 notification_cooldown,429 too_many_active_notifications.mapping_not_foundenmultiple_mappings_matchkrijgen op dit endpointerror.details.unresolved_variant_ids/ambiguous_variant_ids.
Toegangsupdate - september 2026
API-toegang vereist geen goedkeuring meer.
- Elk betaald abonnement (Basic, Pro en Enterprise) kan de API gebruiken. Maak sleutels aan in de app onder Instellingen → API keys; je hoeft niets aan te vragen.
- Met het Free-abonnement is het tabblad API keys verborgen en geven bestaande sleutels
402 plan_requiredterug totdat de winkel overstapt op een betaald abonnement.
v1-update - juli 2026
Additieve toevoegingen van foutcodes en responsvelden aan het bestaande v1-contract.
- Nieuwe fout
422 withdrawal_consent_requiredop het download-urls-endpoint voor bestellingen: wordt geretourneerd wanneer de shop EU-herroepingstoestemming heeft ingeschakeld en de bestelling nog geen toestemmingsregistratie heeft; download-URL's worden uitgegeven zodra de klant toestemming geeft. - Nieuwe fout
422 key_limit_reachedbij het aanmaken van API-sleutels: een shop kan maximaal 25 actieve API-sleutels hebben; trek er eerst één in. - Nieuwe fout
409 delivery_not_yet_releasedop de endpoints download-urls en resend voor bestellingen: wordt geretourneerd wanneer voor het product een vertraging van de downloadlevering is ingesteld en de bestanden van de koper nog niet zijn vrijgegeven. Er worden geen download-URL's uitgegeven en er wordt geen e-mail verstuurd totdat de vertraging is verstreken. - Nieuw
error.details-object in de foutenvelop: alleen aanwezig bij codes die veilige context voor de aanroeper meesturen. Op dit moment isdelivery_not_yet_releasedde enige producent; het bevatrelease_at, het ISO 8601-moment waarop de downloads worden vrijgegeven. Behandel het object als open - er kunnen nieuwe sleutels bijkomen zonder een nieuwe hoofdversie. - Nieuwe velden
delivery_pendingenrelease_atop het aankoopobject van de bestelstatus:delivery_pendingis true zolang een aankoop nog wordt vastgehouden door een vertraging van de downloadlevering, enrelease_atis het ISO 8601-moment van vrijgave, of null wanneer er niets in behandeling is. - Het grant-downloads-endpoint geeft vastgehouden aankopen van de bestelling nu direct vrij, zodat een merchant een vertraging van de downloadlevering via de API kan overrulen.
v1.0.0 - juni 2026
Eerste pilot-API-oppervlak achter toegang op uitnodiging.
- API-sleutels voor goedgekeurde winkels.
- Verplichte idempotency-sleutels bij schrijfverzoeken.
- Import van assets via remote-URL, directe uploads, asset-overzichten, asset-updates en asset-verwijdering.
- Platte categorieën, productkoppelingen, packs en licentiecode-tags.
- Ordertoewijzingen die gekoppelde downloads zichtbaar maken in Shopify-klantaccounts.
- Toegangsbeheer voor bestellingen: intrekken, herstellen, downloads verlenen en e-mail opnieuw versturen.
- Endpoints voor job- en orderstatus.
- Downloads van de OpenAPI-specificatie en de Postman-collectie.
Versiebeleid
Het v1-contract is uitsluitend additief: er kunnen nieuwe endpoints, optionele velden en nieuwe foutcodes worden toegevoegd. Breaking changes gebruiken een toekomstig /api/v2-pad.
API-documentatie
Was dit nuttig?
Laatst bijgewerkt 2026-10-20