Ga naar inhoud

Transactionele e-mail van een site

Transactionele e-mail is de uitgaande mail die een WordPress-site namens zichzelf verstuurt — wachtwoordherstel, orderbevestigingen, meldingen van contactformulieren. Deze endpoints staan allemaal genest onder een site, op /api/sites/{site-id}/mail, en dekken de bezorgstatus, de afzenderidentiteit, het zelf opheffen van een blokkade, een DNS-hercontrole, de verzendlog en het verbruik per periode.

Dit is niet Mailspace

CloudPress heeft twee losstaande e-mailproducten. Deze pagina gaat over de mail die een site verstuurt, één account per site, dat als onderdeel van de site voor je wordt aangemaakt. Zoek je mailboxen waar mensen op inloggen en lezen — aliassen, groepen, app-wachtwoorden — dan is dat mailboxhosting op workspace-niveau: zie Mailspace. Niets op deze pagina maakt, toont of leest een mailbox.

Voor de uitleg van dezelfde functie in het dashboard, zie Transactionele e-mail.

OAuth-scopes: reads (GET) vereisen sites:read, writes vereisen sites:write. Naast de scope vereist elke write op deze pagina de rol can_modify (bewerken) op de site — inclusief de DELETE die een verzendblokkade opheft, die bewust niet op can_destroy is afgeschermd. Zonder die rol wordt het verzoek geweigerd met 403 {"errors":["Not Authorized"]}. Sessie- en API-sleutel-credentials slaan de scopecontroles volledig over (zie OAuth).

Zoals alle endpoints per site erven deze de bewakingen op siteniveau: een onbekend site-ID geeft 404 terug zonder body, een dunning-suspended site geeft 402 service_suspended terug, en een site die in verwijdering staat geeft 403 pending_delete terug. Zie Sites.


Statussen van de inrichting

Drie afzonderlijke situaties worden gemeld met drie afzonderlijke codes, en ze gelden niet overal op deze pagina hetzelfde. Ga na welke van toepassing is voordat je een 4xx als clientfout behandelt.

Situatie Reactie Geldt voor
Transactionele e-mail is op dit platform helemaal niet beschikbaar 503 mailchannels_unavailable elk endpoint op deze pagina
Deze site heeft geen account voor transactionele e-mail 422 mail_not_provisioned elk endpoint behalve het uitlezen van de status
Het account van de site bestaat, maar is niet actief 422 mail_not_active alleen verzendlogs en verbruikscijfers

Het uitlezen van de status is bewust de uitzondering: een site waarvoor mail simpelweg nooit is ingericht, is een normale toestand en geen ontbrekend record, dus antwoordt GET /api/sites/{site-id}/mail met 200 en "mail": null in plaats van met een fout. Een 404 zou daar niet te onderscheiden zijn van een onbekend site-ID. Elk ander endpoint weigert diezelfde site met 422 mail_not_provisioned.

mail_not_active is nog specifieker: de verzendlog en het metrics-endpoint lezen beide bij de provider met de eigen credential van de site, en die bestaat pas zodra de inrichting is afgerond. De write van de afzenderidentiteit, het opheffen van de blokkade en de DNS-hercontrole werken op een account met status pending of failed en geven deze fout niet.

Niets op deze pagina wordt voorwaardelijk weggelaten

Elk veld dat hieronder wordt beschreven, is altijd aanwezig in een geslaagde reactie. Velden die leeg kunnen zijn, worden als null teruggegeven (of als {} voor de datummaps van de metrics) — er is geen sleutel die uit de payload verdwijnt.


Status van transactionele e-mail

GET /api/sites/{site-id}/mail

Scope sites:read. De volledige bezorgstatus van de transactionele e-mail van de site: de status van het account, of de site momenteel een bezorgconfiguratie heeft, de DNS-verificatie, de effectieve afzenderidentiteit en een eventuele verzendblokkade.

Antwoordt met 200 en "mail": null wanneer de site geen account voor transactionele e-mail heeft. Hetzelfde mail-object wordt teruggegeven door het bijwerken van de afzenderidentiteit en door het endpoint dat een verzendblokkade opheft.

Teruggegeven params
  • mail: Object | null wanneer de site geen account voor transactionele e-mail heeft
    • status: String | pending, active of failed
    • configured: Boolean | de hostingcontainer van de site heeft op dit moment een bezorgconfiguratie
    • notifications_active: Boolean | dit account is aangemeld voor meldingsmail over de bezorgkwaliteit. Het betekent niet dat die mail ook aankomt — die mail staat momenteel platformbreed uit
    • dns: Object
      • verdict: String | unknown, verified of failed. unknown is een wachtstand, geen mislukking — zie de opmerking hieronder
      • spf_verified: Boolean
      • dkim_verified: Boolean
      • lockdown_verified: Boolean | het record voor domeinvergrendeling
      • all_verified: Boolean | alle drie hierboven zijn geslaagd
      • locally_checked: Boolean | de opgeslagen uitkomst is een lokale voorspelling, geen antwoord van de provider
      • checked_at: DateTime | null
    • sender_identity: Object
      • from_email: String | null | het effectieve From-adres, samengesteld uit dkim_domainnull totdat er een DKIM-domein bestaat
      • from_local_part: String | het effectieve deel vóór de @, met de standaardwaarde toegepast
      • from_name: String | de effectieve weergavenaam, met de standaardwaarde toegepast
      • mail_from_local_part: String | null | alleen de opgeslagen override; null wanneer de standaardwaarde geldt
      • mail_from_name: String | null | alleen de opgeslagen override
      • dkim_domain: String | null | het domein waarvoor de mail van de site wordt gesigneerd
    • suspension: Object
      • suspended: Boolean | uitgaande mail is op dit moment gepauzeerd
      • abuse: Boolean | de pauze is opgelegd via het misbruikpad
      • system: Boolean | de pauze is opgelegd door facturatie of een lifecyclegebeurtenis
      • reason: String | null
      • suspended_at: DateTime | null
      • can_self_unsuspend: Boolean | of DELETE .../mail/suspension op dit moment zou worden geaccepteerd
      • remaining_self_unsuspends: Integer | resterende keren dat je de blokkade in het huidige venster zelf kunt opheffen
    • created_at: DateTime
    • updated_at: DateTime
curl -H "Authorization: Bearer $CLOUDPRESS_TOKEN" \
  -H "X-Auth-Account: $ACCOUNT_ID" \
  https://my.cloudpress.com/api/sites/$SITE_ID/mail

dns.verdict heeft drie waarden, en unknown is geen mislukking

unknown betekent dat CloudPress geen antwoord van de provider heeft voor deze site — er is er nog geen opgehaald, of de opgeslagen uitkomst is een lokaal berekende voorspelling (dns.locally_checked is dan true). Het is een wachtstand: er wordt niets naar de site gepusht en er wordt niets afgebroken. Behandel alleen failed als een mislukking, en gebruik de DNS-hercontrole om een nieuw antwoord op te vragen.

Er worden drie DNS-records gecontroleerd, elk met zijn eigen boolean: SPF, DKIM en domeinvergrendeling. De SPF-waarde en de host van het DKIM-record zijn voor elke site op het platform hetzelfde; de waarde van het DKIM-record (die bevat een publieke sleutel die voor die site is aangemaakt) en de waarde van het domeinvergrendelingsrecord (die bevat de eigen afzenderidentificatie van de site) zijn per site verschillend. Deze API geeft geen van de records zelf terug, alleen hun verificatiestatus — die lees je af op het DNS-scherm van het dashboard.

configured en dns.verdict antwoorden op verschillende vragen

dns.verdict is wat de DNS zegt; configured is of de container van de site op dit moment daadwerkelijk een bezorgconfiguratie heeft. Een geverifieerde uitkomst is wat CloudPress de push laat proberen, en een uitkomst die na een respijtperiode van 24 uur failed blijft, is wat de configuratie weer laat afbreken.

Vijf situaties worden al beslist voordat de uitkomst er überhaupt bij wordt gehaald, in deze volgorde:

  1. Geen account voor transactionele e-mail, een account dat nog niet actief is, of een site zonder hostingcontainer — er gebeurt in beide richtingen niets. De configuratie wordt niet gepusht en niet afgebroken, en configured rapporteert simpelweg wat de site al had.
  2. Een geblokkeerd account → afgebroken.
  3. Een site zonder domein → afgebroken.
  4. Een leeg dkim_domain → afgebroken. Er is geen ondertekeningsdomein om als afzender te gebruiken, dus een bestaande configuratie blijft hierbij niet staan.
  5. Een dkim_domain dat is ingevuld maar niet meer overeenkomt met het primaire domein van de site → een wachtstand, geen afbraak. Een bestaande configuratie blijft staan, omdat de records van het oude domein meestal nog werken.

Let op het verschil tussen 4 en 5: een ontbrekend DKIM-domein is een afbraak, een verouderd domein een wachtstand. Poll configured in plaats van het uit dns af te leiden.

Fouten
  • 402 service_suspended | de site is dunning-suspended
  • 403 pending_delete | de site is soft-deleted en vergrendeld
  • 503 mailchannels_unavailable | transactionele e-mail is op dit platform niet beschikbaar
  • 404 | onbekend site-ID (geen body)

De afzenderidentiteit bijwerken

PATCH /api/sites/{site-id}/mail/settings

Scope sites:write, plus de rol can_modify (bewerken). Stelt het deel vóór de @ en de weergavenaam in waarmee de mail van de site wordt verstuurd. De domeinhelft is hier niet in te stellen — die volgt het DKIM-domein van de site.

De params zijn plat (geen wrapper-sleutel). Al het andere dat je meestuurt wordt genegeerd: alleen deze twee sleutels worden gelezen.

Params
  • mail_from_local_part: String | null (optioneel) | het deel vóór de @. Leeg of null wist de override en zet de standaardwaarde terug (noreply). Moet alfanumeriek beginnen en eindigen, mag daartussen . _ % + - bevatten, geen opeenvolgende punten, maximaal 64 bytes.
  • mail_from_name: String | null (optioneel) | de weergavenaam. Leeg of null wist de override en valt terug op de naam van de site. Geen stuurtekens, maximaal 255 bytes (bytes, geen tekens — een naam met accenten of emoji bereikt de grens eerder dan zijn lengte doet vermoeden).

Geeft 200 terug met hetzelfde mail-object als het uitlezen van de status, dus de effectieve sender_identity staat in de reactie.

curl -X PATCH \
  -H "Authorization: Bearer $CLOUDPRESS_TOKEN" \
  -H "X-Auth-Account: $ACCOUNT_ID" \
  -H "Content-Type: application/json" \
  -d '{"mail_from_local_part": "orders", "mail_from_name": "Example Store"}' \
  https://my.cloudpress.com/api/sites/$SITE_ID/mail/settings

Opslaan is niet hetzelfde als ermee versturen

Dit endpoint roept de mailprovider nooit inline aan. De waarden worden meteen opgeslagen — ook terwijl de DNS niet geverifieerd is — en er wordt een reconcile in de wachtrij gezet. Of de site het nieuwe From-adres daadwerkelijk gaat gebruiken, hangt af van dezelfde voorwaarden als configured hierboven: een actief, niet-geblokkeerd account waarvan het dkim_domain nog overeenkomt met het primaire domein van de site, met een verified DNS-uitkomst. Lees configured en sender_identity.from_email terug via het statusendpoint in plaats van aan te nemen dat de wijziging de site heeft bereikt.

Fouten
  • 402 service_suspended | de site is dunning-suspended
  • 403 pending_delete | de site is soft-deleted en vergrendeld
  • 403 {"errors":["Not Authorized"]} | de credential heeft geen bewerkrecht op de site
  • 422 mail_not_provisioned | de site heeft geen account voor transactionele e-mail
  • 422 invalid_sender_identity | de validatie heeft de waarden geweigerd; errors bevat de meldingen per veld
  • 503 mailchannels_unavailable | transactionele e-mail is op dit platform niet beschikbaar

Een verzendblokkade opheffen

DELETE /api/sites/{site-id}/mail/suspension

Scope sites:write. Dit verwijdert een verzendblokkade, niet de site, dus het is afgeschermd met de rol can_modify (bewerken) — hetzelfde recht als de write van de afzenderidentiteit, en bewust niet het strengere can_destroy. Een lid dat de site kan bewerken, kan de blokkade opheffen.

Uitgaande mail wordt automatisch gepauzeerd wanneer het verzendgedrag van de site een spamklacht oplevert, en wanneer harde bounces en geweigerde berichten niet langer op ongelukjes lijken maar op een lijstkwaliteitsprobleem. De API laat de resulterende toestand zien, niet de machinerie erachter: lees suspension.suspended, suspension.abuse, suspension.system, suspension.reason en suspension.suspended_at op het statusendpoint.

Controleer eerst suspension.can_self_unsuspend. Dit endpoint heft alleen een misbruikblokkade op die de klant zelf mag opheffen. Het geeft 403 unsuspend_not_allowed terug wanneer:

  • het account helemaal niet geblokkeerd is;
  • de blokkade een facturatie- of lifecycleblokkade is (suspension.system is true) — die worden opgeheven via het pad dat ze heeft opgelegd, niet hiervandaan;
  • een misbruikbeoordeling achter een systeemblokkade geparkeerd staat en wacht tot die blokkade wordt opgeheven; of
  • de zelfservicelimiet is opgebruikt (suspension.remaining_self_unsuspends is 0). De limiet is twee keer zelf opheffen per venster van 30 dagen.

Bij succes is de reactie 200 met het vernieuwde mail-object — dezelfde vorm als bij het uitlezen van de status — en wordt er een reconcile in de wachtrij gezet, zodat de bezorgconfiguratie van de site opnieuw wordt beoordeeld in plaats van te wachten op de volgende geplande ronde.

curl -X DELETE \
  -H "Authorization: Bearer $CLOUDPRESS_TOKEN" \
  -H "X-Auth-Account: $ACCOUNT_ID" \
  https://my.cloudpress.com/api/sites/$SITE_ID/mail/suspension
Fouten
  • 402 service_suspended | de site is dunning-suspended
  • 403 pending_delete | de site is soft-deleted en vergrendeld
  • 403 {"errors":["Not Authorized"]} | de credential heeft geen bewerkrecht op de site
  • 403 unsuspend_not_allowed | niet geblokkeerd, een systeemblokkade, een geparkeerde misbruikbeoordeling, of de limiet is opgebruikt
  • 422 mail_not_provisioned | de site heeft geen account voor transactionele e-mail
  • 422 unsuspend_failed | de heractivering is niet afgerond. Meestal heeft de provider die geweigerd en is er niets veranderd — maar een verzoek dat de race om de laatste resterende poging verliest, kan hier terechtkomen nadat de provider het account al had geheractiveerd, waardoor de site aan onze kant nog geblokkeerd blijft. Lees de status opnieuw uit in plaats van de toestand aan te nemen
  • 503 mailchannels_unavailable | transactionele e-mail is op dit platform niet beschikbaar

De DNS voor mail opnieuw controleren

POST /api/sites/{site-id}/mail/dns_check

Scope sites:write, plus de rol can_modify (bewerken). Zet buiten de reguliere ronde een DNS-hercontrole van de mail-DNS van de site in de wachtrij, in plaats van op de geplande ronde te wachten — de aanroep die je doet direct nadat je de records hebt gepubliceerd. Hij geeft meteen 202 Accepted terug; poll GET /api/sites/{site-id}/mail voor de resulterende uitkomst.

Teruggegeven params (202 Accepted)
  • status: String | altijd "queued"
curl -X POST \
  -H "Authorization: Bearer $CLOUDPRESS_TOKEN" \
  -H "X-Auth-Account: $ACCOUNT_ID" \
  https://my.cloudpress.com/api/sites/$SITE_ID/mail/dns_check

Rate limited: één controle per site per 5 minuten

De limiet is gekoppeld aan het account voor transactionele e-mail van de site, niet aan je credential, en het venster wordt gedeeld met de hercontroleknop in het dashboard — een controle die een collega net vanuit het dashboard heeft gedaan, blokkeert dus die van jou, en de API kan niet worden gebruikt om een limiet te omzeilen die het dashboard net heeft toegepast. Een verzoek binnen het venster geeft 429 rate_limited terug en zet niets in de wachtrij. Elk geaccepteerd verzoek opent het venster, dus probeer het na 5 minuten opnieuw in plaats van direct.

Fouten
  • 402 service_suspended | de site is dunning-suspended
  • 403 pending_delete | de site is soft-deleted en vergrendeld
  • 403 {"errors":["Not Authorized"]} | de credential heeft geen bewerkrecht op de site
  • 422 mail_not_provisioned | de site heeft geen account voor transactionele e-mail
  • 429 rate_limited | er is in de afgelopen 5 minuten al een controle voor deze site gedraaid
  • 503 mailchannels_unavailable | transactionele e-mail is op dit platform niet beschikbaar

Verzendlogs doorzoeken

GET /api/sites/{site-id}/mail/logs

Scope sites:read. De log met uitgaande berichten van de site, upstream doorzocht. Vereist een actief account: een account dat bestaat maar nog niet klaar is met inrichten geeft 422 mail_not_active terug.

Elk zoekveld is een eigen benoemde parameter. Ze zijn allemaal optioneel; laat ze allemaal weg voor de meest recente berichten.

Params (allemaal optioneel)
  • rcpt: String | ontvanger, match op deelreeks
  • sender: String | afzender, match op deelreeks
  • subject: String | onderwerp, match op deelreeks
  • start_date: String | YYYY-MM-DD, uitgebreid naar T00:00:00Z
  • end_date: String | YYYY-MM-DD, uitgebreid naar T23:59:59Z
  • delivered: String | Y of N (niet case-sensitief). N is de weergave met alleen de mislukkingen. Elke andere waarde wordt stil genegeerd — er wordt geen filter toegepast en er wordt geen fout gemeld
  • start_at: Integer | cursor-offset, afgekapt op 010000

Dit endpoint pagineert met een cursor, niet met paginanummers: het leest page en per_page niet, en de paginagrootte staat vast. Pagineer met start_at en volg next_start_at en prev_start_at.

Teruggegeven params
  • messages: Array<Object>
    • sender: String | null
    • rcpt: String | null
    • subject: String | null
    • delivered: Boolean of String | null — de upstream-log stuurt beide vormen; vergelijk ruim
    • rspcode: String | null | SMTP-antwoordcode
    • rspmsg: String | null | SMTP-antwoordtekst
    • spam_disposition: String | null
    • timestamp: String | null
  • total: Integer | overeenkomende berichten upstream, vóór de lokale filtering
  • start_at: Integer | de effectieve (afgekapte) offset van deze pagina
  • page_count: Integer | de ruwe paginagrootte die upstream teruggaf, vóór de lokale filtering
  • next_start_at: Integer | null | cursor voor de volgende pagina, null op de laatste pagina
  • prev_start_at: Integer | null | cursor voor de vorige pagina, null op de eerste

messages kan korter zijn dan page_count

Intern relayverkeer wordt uit messages gefilterd nadat de pagina is opgehaald, en total telt de ongefilterde overeenkomsten. messages.length kan dus kleiner zijn dan page_count, en een pagina kan zelfs leeg terugkomen terwijl next_start_at nog steeds is gezet. Ga verder op next_start_at en blijf doorgaan totdat die null is — behandel een lege pagina nooit als het einde, en bereken de paginering niet uit messages.length.

Fouten
  • 402 service_suspended | de site is dunning-suspended
  • 403 pending_delete | de site is soft-deleted en vergrendeld
  • 422 mail_not_provisioned | de site heeft geen account voor transactionele e-mail
  • 422 mail_not_active | het account bestaat, maar is niet actief
  • 502 log_search_failed | het zoeken in de upstream-log is mislukt of was niet bereikbaar
  • 503 mailchannels_unavailable | transactionele e-mail is op dit platform niet beschikbaar

Verbruikscijfers

GET /api/sites/{site-id}/mail/metrics

Scope sites:read. Dagelijks verzendvolume, aantallen openingen en kliks, en het verbruik van de site ten opzichte van het tegoed van zijn pakket in de huidige facturatieperiode. Vereist een actief account (anders 422 mail_not_active).

Params
  • days: Integer (optioneel) | terugkijkvenster voor volume en engagement. Het heeft geen invloed op usage, dat altijd de huidige facturatieperiode rapporteert. Vier regels bepalen wat een bepaalde waarde doet:
    • Leeg of afwezig — weggelaten, of meegestuurd als lege string — valt terug op de standaard van 30 en antwoordt 200. De leegcontrole loopt vóór het parsen, dus een lege days telt als afwezig en niet als onleesbaar.
    • Aanwezig maar onleesbaar wordt geweigerd met 400 invalid_days, en er wordt niets upstream gelezen. Dit is het enige geval dat een fout geeft.
    • Een getal buiten het bereik wordt nog steeds stilzwijgend afgekapt op 190. Dat gedrag is niet veranderd.
    • Er wordt expliciet in grondtal 10 geparseerd: 010 is tien dagen, niet octaal acht, en 0x1e wordt geweigerd in plaats van gelezen als dertig.

invalid_days is de laatste controle, niet de eerste

De controle op days loopt na de controles op het account voor transactionele e-mail, dus een verzoek dat zowel onjuist gevormd als onbeantwoordbaar is, meldt het accountprobleem. Op een site zonder account voor transactionele e-mail antwoordt ?days=abc met 422 mail_not_provisioned; op een account dat wel bestaat maar nog niet actief is, met 422 mail_not_active. Geen van beide zegt dat days is geaccepteerd — het uitblijven van invalid_days bewijst niet dat de waarde is geparseerd.

Teruggegeven params
  • days: Integer | het effectieve (afgekapte) venster
  • volume: Object | elk onderdeel mapt YYYY-MM-DD naar een Integer, één sleutel per dag van het venster
    • processed: Object
    • delivered: Object
    • dropped: Object
    • bounced: Object | de deelverzameling van dropped met 5xx (definitieve weigering) — tel de twee niet bij elkaar op
  • engagement: Object
    • opens: Object | YYYY-MM-DD naar Integer; {} wanneer er niets te rapporteren is
    • clicks: Object | YYYY-MM-DD naar Integer; {} wanneer er niets te rapporteren is
  • usage: Object | null wanneer de provider geen verbruikscijfer heeft gerapporteerd
    • period_start: DateTime | begin van de huidige periode
    • period_end: DateTime | einde van de huidige periode
    • sent: Integer | berichten die deze periode zijn verstuurd
    • limit: Integer | het tegoed van het sitepakket voor de periode
    • usage_pct: Integer | sent als percentage van limit, afgerond
    • cycle_pct: Integer | hoe ver het huidige moment in de periode ligt, afgerond
    • projected: Integer | prognose voor het einde van de periode bij het huidige tempo
    • projected_pct: Integer | die prognose als percentage van limit, afgetopt op 100

De facturatieperiode is verankerd op de dag waarop het account voor transactionele e-mail van de site is aangemaakt en schuift van dat ankerpunt met een maand per keer op — hij is niet gekoppeld aan je factuurdatum.

dropped en bounced zijn niet optelbaar

dropped telt elke mislukte afleverpoging. bounced telt daarvan alleen de definitieve 5xx-weigeringen, en is dus een deelverzameling van dropped en geen aparte categorie ernaast. De twee bij elkaar optellen telt elke harde mislukking dubbel. Voor uitsluitend de tijdelijke mislukkingen (4xx en die zonder code) trek je ze juist van elkaar af: dropped min bounced.

dropped is bewust niet versmald tot de 4xx-rest om de twee te laten optellen. dropped draagt elders op het platform al een specifieke betekenis — het is de eigen gebeurtenisnaam van de mailprovider voor "de provider weigerde te verzenden" — en het hier herdefiniëren zou een bestaande reeks in de grafiek hebben hernoemd onder zijn eigen data vandaan.

volume telt pogingen, geen berichten

De upstream-zoeklog wordt niet per bericht samengevouwen, dus elke afleverpoging wordt apart geteld. Een bericht dat tweemaal is uitgesteld en daarna is afgeleverd, draagt 2 bij aan dropped, 1 aan delivered en 3 aan processed — drie logregels voor één bericht. Deze reeksen zijn dus niet te verzoenen met een telling van de berichten die je hebt verstuurd, en processed is geen berichtentelling.

volume komt uit een begrensde scan; behandel het als indicatief

Anders dan usage is de dagelijkse reeks in volume geen upstream-aggregatie: hij wordt berekend door door de berichtenzoekopdracht te lopen, ten hoogste 10 pagina's van 50 berichten, en te verdelen per dag. Voor een site die in dat venster meer verstuurt, vallen de oudere dagen te laag uit. Gebruik usage.sent voor alles wat moet kloppen, zoals een quotumwaarschuwing; gebruik volume voor de vorm van de trend.

Poll dit endpoint spaarzaam

Elke aanroep doet meerdere upstream-rondes — de berichtenwandeling hierboven plus een aparte uitlezing van de engagement. Er zit geen gecachte aggregatie achter, dus dit is geen endpoint om op een korte timer te zetten.

Fouten
  • 400 invalid_days | days is meegestuurd, maar is geen heel getal
  • 402 service_suspended | de site is dunning-suspended
  • 403 pending_delete | de site is soft-deleted en vergrendeld
  • 422 mail_not_provisioned | de site heeft geen account voor transactionele e-mail
  • 422 mail_not_active | het account bestaat, maar is niet actief
  • 503 mailchannels_unavailable | transactionele e-mail is op dit platform niet beschikbaar

Foutcodes

Alle fouten gebruiken de standaardenvelop {"errors": [...], "code": "..."} die is beschreven in Foutreacties. De rechtenfout is de uitzondering — die bevat wel errors, maar geen code.

Code Status Geretourneerd door
invalid_days 400 verbruikscijfers
service_suspended 402 elk endpoint
pending_delete 403 elk endpoint
(geen code) ["Not Authorized"] 403 instellingen bijwerken, blokkade opheffen, DNS-hercontrole
unsuspend_not_allowed 403 blokkade opheffen
mail_not_provisioned 422 instellingen bijwerken, blokkade opheffen, DNS-hercontrole, verzendlogs, verbruikscijfers
mail_not_active 422 verzendlogs, verbruikscijfers
invalid_sender_identity 422 instellingen bijwerken
unsuspend_failed 422 blokkade opheffen
rate_limited 429 DNS-hercontrole
log_search_failed 502 verzendlogs
mailchannels_unavailable 503 elk endpoint