Cancel a queued message.
Only a queued message can be cancelled: one a sender has claimed or started is on its way
and cannot be recalled (409 invalid_state), and a sent, failed or cancelled one has nothing
left to cancel. The message becomes cancelled and message.cancelled is sent to the
workspace’s webhook endpoints.
/v1/messages/{id}/cancelAuthorizationBearer token · headerrequiredAn API key (nb_live_…, nb_test_…), a workspace token (nbs_…) or a CLI token (nbc_…).
idId_MessagerequiredThe message id (msg_…).
Idempotency-KeystringrequiredA stable key for this logical request; reuse it when retrying.
The message, cancelled.
attemptsMessageAttemptsrequiredA message's latest attempts.
Show propertiesHide properties
dataAttemptObject[]requiredAt most 20, newest first.
Show propertiesHide properties
AttemptObjectcategoryEvidenceCategory | nullShow propertiesHide properties
stringnullclaimed_atTimestamprequiredconnection_idId_Connectionrequireddiagnosticstring | nullThe provider's words, bounded and redacted.
enhanced_statusstring | nullfinished_atTimestamp | nullShow propertiesHide properties
TimestampnullidId_Attemptrequirednumberinteger<int32>required1 for the message's first attempt.
outcomeAttemptOutcome | nullShow propertiesHide properties
stringnullphaseSubmissionPhase | nullShow propertiesHide properties
stringnullprovider_message_idstring | nullThe provider's id of the accepted message, when it returns one.
recipient_countinteger<int32>requiredsmtp_codeinteger<int32> | nullstarted_atTimestamp | nullShow propertiesHide properties
Timestampnullhas_morebooleanrequiredMore attempts exist than data shows; read them through an export.
attempts_countinteger<int64>requiredEvery attempt it had.
bccstring[]requiredcampaign_idId_Campaign | nullShow propertiesHide properties
stringnullccstring[]requiredconnection_idId_Connectionrequiredcreated_atTimestamprequiredenrollment_idId_Enrollment | nullShow propertiesHide properties
stringnulleventsMessageEventsrequiredA message's first delivery events.
Show propertiesHide properties
dataDeliveryEventObject[]requiredAt most 20, in the order they were observed.
Show propertiesHide properties
DeliveryEventObjectactionDsnAction | nullShow propertiesHide properties
stringnullattempt_numberinteger<int32> | nullThe attempt it comes from, when its source is an attempt.
categoryEvidenceCategoryrequiredWhy an outcome happened, in a closed vocabulary (attempts.category,
delivery_events.category).
acceptedinvalid_recipientmailbox_fullno_routeinvalid_addresscontent_rejectedpolicythrottledunauthorizedforbiddenconnection_faileddeadlineunsupportedtransientrejecteduncertaindeliveredcomplaintunsubscribedaddress_changedexpiredsuppressedsender_archivedrender_failedworkspace_deletedconfidenceEvidenceConfidencerequiredHow much a delivery event can be trusted (delivery_events.confidence).
authenticatedcorroboratedinferredhuman_textdiagnosticstring | nullenhanced_statusstring | nullidId_DeliveryEventrequiredkindDeliveryEventKindrequiredWhat kind of observation a delivery event is (delivery_events.kind).
accepteddeferreddeliveredbouncedrejectedcomplaintunsubscribedaddress_changedreportedmessage_idId_Message | nullShow propertiesHide properties
stringnullobserved_atTimestamprequiredWhen the source observed it.
phaseSubmissionPhase | nullShow propertiesHide properties
SubmissionPhasenullprocessed_atTimestamprequiredWhen Norbelys recorded it.
provider_codestring | nullAn exact provider-specific rejection code found in diagnostic, when any; it does not
change the event's kind, recipient effect, or retry decision.
received_atTimestamprequiredWhen Norbelys received it.
recipientstring | nullThe recipient it concerns; null when the evidence names none.
recipient_refRecipientRefrequiredWhy an event's recipient is known (delivery_events.recipient_ref).
namedsingle_envelopeunknownsourceEvidenceSourcerequiredWhere a delivery event came from (delivery_events.source).
smtpprovider_apiprovider_webhookdsnarfinbound_noticepreflightunsubscribemanualsent_folderthread_idId_Thread | nullShow propertiesHide properties
Id_Threadnullhas_morebooleanrequiredMore events exist; url lists them all.
urlstringrequiredThe delivery event list of this message.
expires_atTimestamp | nullShow propertiesHide properties
string<date-time>nullfromAddressrequiredAn address and its display name.
Show propertiesHide properties
emailstringrequirednamestring | nullholdsHoldObject[]requiredOne per held recipient: at most the 150 addresses of the envelope.
Show propertiesHide properties
HoldObjectemailstringrequiredobserved_atTimestamprequiredreasonHoldReasonrequiredWhy an address is held (recipient_holds.reason).
mailbox_fullgreylistedno_routeinvalid_recipientresolutionHoldResolution | nullShow propertiesHide properties
stringnullresolved_atTimestamp | nullShow propertiesHide properties
string<date-time>nullreview_afterTimestamprequiredWhen the hold is checked again.
idId_Messagerequiredin_reply_tostring | nullThe Message-ID it answers.
internet_message_idstringrequiredThe Message-ID header.
kindMessageKindrequiredWhat a message is, as messages.kind stores it.
campaigndirectreplytransactionalperson_idId_Person | nullShow propertiesHide properties
stringnullreply_tostring | nullsend_atTimestamprequiredWhen it is due.
sender_identity_idId_SenderIdentityrequiredsent_atTimestamp | nullShow propertiesHide properties
string<date-time>nullsnippets_fallbackSnippetsFallback | nullShow propertiesHide properties
stringnullstateMessageStaterequiredWhere a message is in its life, as messages.state stores it. queued, claimed and
in_flight are live (the message has a row in the delivery queue); the others are final.
queuedclaimedin_flightsentfailedcancelleduncertainsuppressedstatus_detailstring | nullWhy it is in its state, when that needs words.
step_idId_Step | nullShow propertiesHide properties
stringnullsubjectstringrequiredThe subject as sent.
thread_idId_Thread | nullShow propertiesHide properties
stringnulltostring[]requiredtrackingTrackingrequiredWhat a message tracks, frozen when it was created.
Show propertiesHide properties
clicksbooleanrequiredIts links lead through click links.
hostnamestring | nullThe campaign's own tracking host, when it has one; the platform's otherwise.
opensbooleanrequiredAn open pixel is added to its HTML.
updated_atTimestamprequiredvariant_idId_Variant | nullShow propertiesHide properties
stringnullNo Idempotency-Key.
codeProblemCoderequiredThe closed registry of problem codes: programs branch on a problem's code, never on its
text. A code may be added, never repurposed.
invalid_requestunauthorizedforbiddensession_requirednot_foundarchivedmethod_not_allowedconflictinvalid_stateidempotency_in_progressprecondition_failedpayload_too_largeunsupported_media_typevalidation_failedidempotency_mismatchsuppressedcaptcha_failedinsufficient_scoperate_limitedquota_exceededinternal_errorservice_unavailabletimeoutdetailstringrequiredWhat went wrong, for a person; never an internal cause.
errorsFieldError[]With validation_failed only: every invalid field.
Show propertiesHide properties
FieldErrorcodestringrequiredWhat is wrong (required, range, length, format, invalid, …).
detailstringrequiredA safe, human-readable explanation.
pointerstringrequiredRFC 6901 pointer into the body, or ?name for a query parameter.
instancestringrequiredThe request's path.
request_idstringrequiredThe request's id, also in X-Request-Id: what support needs to find the request.
retry_afterinteger<int64> | nullWith 429 and 503: the seconds to wait, as in Retry-After.
statusinteger<int32>requiredThe HTTP status.
titlestringrequiredFixed per code.
typestringrequiredhttps://docs.norbelys.com/errors/<code>, a page that explains the code.
No valid credential.
codeProblemCoderequiredThe closed registry of problem codes: programs branch on a problem's code, never on its
text. A code may be added, never repurposed.
invalid_requestunauthorizedforbiddensession_requirednot_foundarchivedmethod_not_allowedconflictinvalid_stateidempotency_in_progressprecondition_failedpayload_too_largeunsupported_media_typevalidation_failedidempotency_mismatchsuppressedcaptcha_failedinsufficient_scoperate_limitedquota_exceededinternal_errorservice_unavailabletimeoutdetailstringrequiredWhat went wrong, for a person; never an internal cause.
errorsFieldError[]With validation_failed only: every invalid field.
Show propertiesHide properties
FieldErrorcodestringrequiredWhat is wrong (required, range, length, format, invalid, …).
detailstringrequiredA safe, human-readable explanation.
pointerstringrequiredRFC 6901 pointer into the body, or ?name for a query parameter.
instancestringrequiredThe request's path.
request_idstringrequiredThe request's id, also in X-Request-Id: what support needs to find the request.
retry_afterinteger<int64> | nullWith 429 and 503: the seconds to wait, as in Retry-After.
statusinteger<int32>requiredThe HTTP status.
titlestringrequiredFixed per code.
typestringrequiredhttps://docs.norbelys.com/errors/<code>, a page that explains the code.
The credential lacks messages:send.
codeProblemCoderequiredThe closed registry of problem codes: programs branch on a problem's code, never on its
text. A code may be added, never repurposed.
invalid_requestunauthorizedforbiddensession_requirednot_foundarchivedmethod_not_allowedconflictinvalid_stateidempotency_in_progressprecondition_failedpayload_too_largeunsupported_media_typevalidation_failedidempotency_mismatchsuppressedcaptcha_failedinsufficient_scoperate_limitedquota_exceededinternal_errorservice_unavailabletimeoutdetailstringrequiredWhat went wrong, for a person; never an internal cause.
errorsFieldError[]With validation_failed only: every invalid field.
Show propertiesHide properties
FieldErrorcodestringrequiredWhat is wrong (required, range, length, format, invalid, …).
detailstringrequiredA safe, human-readable explanation.
pointerstringrequiredRFC 6901 pointer into the body, or ?name for a query parameter.
instancestringrequiredThe request's path.
request_idstringrequiredThe request's id, also in X-Request-Id: what support needs to find the request.
retry_afterinteger<int64> | nullWith 429 and 503: the seconds to wait, as in Retry-After.
statusinteger<int32>requiredThe HTTP status.
titlestringrequiredFixed per code.
typestringrequiredhttps://docs.norbelys.com/errors/<code>, a page that explains the code.
No such message in this workspace.
codeProblemCoderequiredThe closed registry of problem codes: programs branch on a problem's code, never on its
text. A code may be added, never repurposed.
invalid_requestunauthorizedforbiddensession_requirednot_foundarchivedmethod_not_allowedconflictinvalid_stateidempotency_in_progressprecondition_failedpayload_too_largeunsupported_media_typevalidation_failedidempotency_mismatchsuppressedcaptcha_failedinsufficient_scoperate_limitedquota_exceededinternal_errorservice_unavailabletimeoutdetailstringrequiredWhat went wrong, for a person; never an internal cause.
errorsFieldError[]With validation_failed only: every invalid field.
Show propertiesHide properties
FieldErrorcodestringrequiredWhat is wrong (required, range, length, format, invalid, …).
detailstringrequiredA safe, human-readable explanation.
pointerstringrequiredRFC 6901 pointer into the body, or ?name for a query parameter.
instancestringrequiredThe request's path.
request_idstringrequiredThe request's id, also in X-Request-Id: what support needs to find the request.
retry_afterinteger<int64> | nullWith 429 and 503: the seconds to wait, as in Retry-After.
statusinteger<int32>requiredThe HTTP status.
titlestringrequiredFixed per code.
typestringrequiredhttps://docs.norbelys.com/errors/<code>, a page that explains the code.
The message is not queued (invalid_state).
codeProblemCoderequiredThe closed registry of problem codes: programs branch on a problem's code, never on its
text. A code may be added, never repurposed.
invalid_requestunauthorizedforbiddensession_requirednot_foundarchivedmethod_not_allowedconflictinvalid_stateidempotency_in_progressprecondition_failedpayload_too_largeunsupported_media_typevalidation_failedidempotency_mismatchsuppressedcaptcha_failedinsufficient_scoperate_limitedquota_exceededinternal_errorservice_unavailabletimeoutdetailstringrequiredWhat went wrong, for a person; never an internal cause.
errorsFieldError[]With validation_failed only: every invalid field.
Show propertiesHide properties
FieldErrorcodestringrequiredWhat is wrong (required, range, length, format, invalid, …).
detailstringrequiredA safe, human-readable explanation.
pointerstringrequiredRFC 6901 pointer into the body, or ?name for a query parameter.
instancestringrequiredThe request's path.
request_idstringrequiredThe request's id, also in X-Request-Id: what support needs to find the request.
retry_afterinteger<int64> | nullWith 429 and 503: the seconds to wait, as in Retry-After.
statusinteger<int32>requiredThe HTTP status.
titlestringrequiredFixed per code.
typestringrequiredhttps://docs.norbelys.com/errors/<code>, a page that explains the code.