Create an Announcement
POST
/api/announcements
deprecated
Requires: Announcements.Management, Announcements.Management.Create, merchant scope.
Create a new Announcement
Example request
Every block below sends the same request. Replace {{BASE_URL}} with the address of the API you are calling and {{API_KEY}} with your own key.
The request body is a CreateAnnouncementDto. See the Request body section below for its fields.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
suppressNulls
required |
query | boolean | If true, omit properties with null values. |
Request body
application/json
, required
| Field | Type | Description |
|---|---|---|
title
required |
string | The announcement title. nullablemin length 3max length 256 |
body
required |
string | The announcement body content (supports Markdown). nullablemin length 10max length 8192 |
scope
required |
all of AnnouncementScope | The organizational scope of the announcement. |
priority
required |
all of AnnouncementPriority | The priority level of the announcement. |
displayOptions
required |
all of AnnouncementDisplayOptions | How the announcement should be displayed to users. |
resellerId
required |
string (uuid) | The reseller ID for reseller-scoped announcements. Required when Scope is Reseller. Required: When Scope == Reseller. nullable |
merchantId
required |
string (uuid) | The merchant ID for merchant-scoped announcements. Required when Scope is Merchant. Required: When Scope == Merchant. nullable |
startDateUtc
required |
string (date-time) | When the announcement becomes active. Null means immediately active. Conditional: When StartDateUtc is not null. nullable |
endDateUtc
required |
string (date-time) | When the announcement expires. Null means no expiration. Conditional: When EndDateUtc is not null. Conditional: When StartDateUtc is not null and EndDateUtc is not null. Must be > . nullable |
isEnabled
required |
boolean | Whether the announcement is enabled. Defaults to true. |
externalLinkUrl
required |
string | Optional external link URL (e.g., "Learn more" link). Must be a valid HTTPS URL. Conditional: When ExternalLinkUrl is not empty. Conditional: When ExternalLinkUrl is not null. Max length: 2048. nullable |
externalLinkText
required |
string | Optional external link display text. Conditional: When ExternalLinkText is not null. Max length: 256. Conditional: When ExternalLinkUrl is not empty. nullable |
targetAudience
required |
all of AnnouncementTargetAudienceCreateOrUpdateDto | The target audience configuration for narrowing within scope. |
This request body has no documented fields.
Responses
200 OK
Body: AnnouncementDto
Each item has these fields.
| Field | Type | Description |
|---|---|---|
extraProperties
required |
object | nullableread only |
id
required |
string (uuid) | |
creationTime
required |
string (date-time) | The date and time when this entity was created. |
creatorId
required |
string (uuid) | The ID of the user who created this entity. nullable |
lastModificationTime
required |
string (date-time) | The date and time when this entity was last modified. nullable |
lastModifierId
required |
string (uuid) | The ID of the user who last modified this entity. nullable |
isDeleted
required |
boolean | Indicates whether this entity has been deleted. |
deleterId
required |
string (uuid) | The ID of the user who deleted this entity, if it is deleted. nullable |
deletionTime
required |
string (date-time) | The date and time when this entity was deleted, if it is deleted. nullable |
tenantId
required |
string (uuid) | The tenant this announcement belongs to. Null for host-level announcements. nullable |
concurrencyStamp
required |
string | Concurrency stamp for optimistic locking. nullable |
entityVersion
required |
integer (int32) | Entity version for optimistic concurrency. |
title
required |
string | The announcement title. nullable |
body
required |
string | The announcement body content (supports Markdown). nullable |
scope
required |
all of AnnouncementScope | The organizational scope of the announcement. |
priority
required |
all of AnnouncementPriority | The priority level of the announcement. |
displayOptions
required |
all of AnnouncementDisplayOptions | How the announcement should be displayed to users. |
resellerId
required |
string (uuid) | The reseller ID for reseller-scoped announcements. nullable |
resellerPathPrefix
required |
string | The reseller path prefix for hierarchical matching. nullable |
merchantId
required |
string (uuid) | The merchant ID for merchant-scoped announcements. nullable |
startDateUtc
required |
string (date-time) | When the announcement becomes active. nullable |
endDateUtc
required |
string (date-time) | When the announcement expires. nullable |
isEnabled
required |
boolean | Whether the announcement is enabled. |
externalLinkUrl
required |
string | Optional external link URL. nullable |
externalLinkText
required |
string | Optional external link display text. nullable |
createdByUserId
required |
string (uuid) | The user who created this announcement. |
targetAudience
required |
all of AnnouncementTargetAudienceDto | The target audience configuration. |
isActive
required |
boolean | Whether the announcement is currently active (within schedule and enabled). |
targetedUserCount
required |
integer (int32) | Estimated number of targeted users (snapshot from create/update time). Null if the count could not be computed. nullable |
This response has no documented body fields.
403 Forbidden
Body: RemoteServiceErrorResponse
Each item has these fields.
| Field | Type | Description |
|---|---|---|
error
required |
RemoteServiceErrorInfo |
This response has no documented body fields.
401 Unauthorized
Body: RemoteServiceErrorResponse
Each item has these fields.
| Field | Type | Description |
|---|---|---|
error
required |
RemoteServiceErrorInfo |
This response has no documented body fields.
400 Bad Request
Body: RemoteServiceErrorResponse
Each item has these fields.
| Field | Type | Description |
|---|---|---|
error
required |
RemoteServiceErrorInfo |
This response has no documented body fields.
404 Not Found
Body: RemoteServiceErrorResponse
Each item has these fields.
| Field | Type | Description |
|---|---|---|
error
required |
RemoteServiceErrorInfo |
This response has no documented body fields.
501 Not Implemented
Body: RemoteServiceErrorResponse
Each item has these fields.
| Field | Type | Description |
|---|---|---|
error
required |
RemoteServiceErrorInfo |
This response has no documented body fields.
500 Internal Server Error
Body: RemoteServiceErrorResponse
Each item has these fields.
| Field | Type | Description |
|---|---|---|
error
required |
RemoteServiceErrorInfo |
This response has no documented body fields.
default The request failed. The body carries the standard error envelope: a machine-readable `error.code`, a human-readable `error.message`, and `error.validationErrors` when the failure was a validation rejection. See the error-code reference in this document's description for the values `error.code` can take.
Body: RemoteServiceErrorResponse
Each item has these fields.
| Field | Type | Description |
|---|---|---|
error
required |
RemoteServiceErrorInfo |
This response has no documented body fields.
429 The request was refused because a rate limit was exceeded. Wait at least the interval `Retry-After` names before retrying, then back off. Limits are tuned per deployment, so read the allowance from the response headers rather than assuming a fixed ceiling.
Body: RateLimitProblemDetails
Each item has these fields.
| Field | Type | Description |
|---|---|---|
type
required |
string | The problem type identifier. Always the same value: the failure is the status code itself, so there is no sub-type for a caller to branch on. nullable |
title
required |
string | A short, human-readable summary of the problem type. nullable |
status
required |
integer (int32) | The HTTP status code, repeated in the body as the problem-details format defines. |
detail
required |
string | A human-readable explanation of this occurrence of the problem. nullable |
retryAfterSeconds
required |
integer (int32) | How long to wait before retrying, in whole seconds, carrying the same figure as the `Retry-After` header. Always at least one: a value of zero would invite an immediate retry that is certain to be rejected again. |
This response has no documented body fields.
Errors
A failed request returns the platform error envelope. The
error reference lists every value
error.code can carry and shows the four response shapes.