# NotificationDestinationDto

A model the API reference uses in a request or a response. The operation pages link every field typed as this model here.

Output DTO for a notification destination.

## Fields
- `extraProperties` (object): (nullable, read only)
- `id` (string(uuid))
- `creationTime` (string(date-time)): The date and time when this entity was created.
- `creatorId` (string(uuid)): The ID of the user who created this entity. (nullable)
- `lastModificationTime` (string(date-time)): The date and time when this entity was last modified. (nullable)
- `lastModifierId` (string(uuid)): The ID of the user who last modified this entity. (nullable)
- `isDeleted` (boolean): Indicates whether this entity has been deleted.
- `deleterId` (string(uuid)): The ID of the user who deleted this entity, if it is deleted. (nullable)
- `deletionTime` (string(date-time)): The date and time when this entity was deleted, if it is deleted. (nullable)
- `name` (string): Destination name. (nullable)
- `description` (string): Optional description. (nullable)
- `type` ([DestinationType](https://devportal.demo.winkpg.io/docs/api/models/DestinationType.md)): The delivery transport type.
  Values:
  - `Webhook`: HTTP POST to a configured URL with HMAC signature headers.
  - `Email`: Email delivery to the configured recipient addresses.
  - `AmazonSqs`: Amazon Simple Queue Service (SQS) message delivery.
  - `AzureServiceBusQueue`: Azure Service Bus Queue message delivery.
  - `InApp`: In-app notification delivered in-process to connected clients on this instance. Suitable for real-time UI notifications (dropdown, popup, badge).
  - `Slack`: Slack message delivery via Block Kit-formatted channel messages. Supports per-destination bot tokens for multi-workspace routing.
  - `Sms`: SMS text message delivery to a single recipient phone number via the platform SMS sender. Opt-out compliance is enforced at send time, so an opted-out recipient is blocked before the carrier is contacted.
- `configJson` (string): Type-specific configuration JSON. (nullable)
- `status` ([DestinationStatus](https://devportal.demo.winkpg.io/docs/api/models/DestinationStatus.md)): Current health status.
  Values:
  - `Default`: Destination has not been tested or is operating normally.
  - `ConfigurationError`: Destination configuration is invalid (e.g., malformed URL, missing credentials).
  - `ThrottlingWarning`: Destination is responding but rate-limiting or throttling requests.
  - `ExternalServerError`: External server returned 5xx errors.
  - `TimeoutError`: Delivery timed out waiting for response.
  - `AuthError`: Authentication or authorization failure (401/403).
  - `UnknownError`: An unclassified error occurred during delivery.
- `lastErrorDetail` (string): Detail from the last error, if any. (nullable)
- `lastTestedAtUtc` (string(date-time)): UTC timestamp of the last test or health check. (nullable)
- `isEnabled` (boolean): Whether the destination is enabled.
- `scope` ([EntityScopeKind](https://devportal.demo.winkpg.io/docs/api/models/EntityScopeKind.md)): Ownership scope of this destination: merchant, reseller, or tenant-wide (admin-owned).  Stamped server-side at creation from the creating caller's operating context and never  settable through the create or update DTO. (nullable)
  Values:
  - `Merchant`: Row applies to a single merchant. MerchantId must be non-null.
  - `Reseller`: Row applies to a reseller and (by entity-specific semantics) its descendants. ResellerId must be non-null.
  - `Tenant`: Row applies tenant-wide. Visible only to unscoped (admin) callers.
- `resellerId` (string(uuid)): Owning reseller, set only for a reseller-scoped destination. (nullable)
- `merchantId` (string(uuid)): Owning merchant, set only for a merchant-scoped destination. (nullable)
- `suppression` ([DestinationSuppressionStateDto](https://devportal.demo.winkpg.io/docs/api/models/DestinationSuppressionStateDto.md)): Durable suppression state for this destination's endpoint, or `null` when the endpoint has  never failed (or when the transport type has no endpoint concept).
  Fields:
  - `suppressionId` (string(uuid)): The suppression record's id, for correlating this state with the row on the suppressions  management grid or in the suppressions API.
  - `isActivelySuppressed` (boolean): Whether deliveries are being skipped right now.
  - `reason` ([DestinationSuppressionReason](https://devportal.demo.winkpg.io/docs/api/models/DestinationSuppressionReason.md)): Why the endpoint was suppressed. Null when the row is only tracking failures. (nullable)
    Values:
    - `ConsecutiveFailures`: The endpoint failed the configured number of sustained consecutive delivery attempts.
    - `PermanentHttpError`: The endpoint returned a permanent (non-retryable) HTTP client error (a 4xx other than 401 / 403 / 408 / 429), signalling the request is wrong-by-construction (URL gone, payload refused) and will keep failing the same way on retry.
    - `Manual`: An administrator suppressed the endpoint manually.
    - `AuthRejection`: The endpoint repeatedly rejected our credentials (401 Unauthorized or 403 Forbidden). Kept distinct from PermanentHttpError so an operator can tell an auth-plane problem (expired secret, WAF rule, IP allowlist) from an endpoint that is genuinely gone: the two call for completely different remediation. Unlike a gone endpoint, this is never applied on a single response and carries a shorter expiry.
  - `suppressedAtUtc` (string(date-time)): UTC timestamp at which the endpoint became suppressed. (nullable)
  - `expiresAtUtc` (string(date-time)): UTC timestamp at which the suppression auto-expires and the endpoint is re-probed. Null means  it never auto-expires and only a manual clear will resume delivery. (nullable)
  - `consecutiveFailures` (integer(int32)): Consecutive hard failures recorded against the endpoint.
- `concurrencyStamp` (string): (nullable)
- `tenantId` (string(uuid)): (nullable)
- `entityVersion` (integer(int32))

## See also

- [All documentation](https://devportal.demo.winkpg.io/llms.txt): the machine-readable index of every public page on this site.
