# POST /api/notifications/filters/validate

Validates a filter expression.

**Required permissions**: `Notifications.Subscriptions`  
**Scope**: merchant

**Operation ID:** `POST_api_notifications_filters_validate`

## Authorization

Requires: Notifications.Subscriptions, merchant scope.

Required permissions:
- `Notifications.Subscriptions`

## Parameters

| Name | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| suppressNulls | query | no | boolean | If true, omit properties with null values. |

## Request Body

**Content type:** `application/json`

Schema: `WinkPGNotificationsValidateFilterInput`

**Content type:** `text/json`

Schema: `WinkPGNotificationsValidateFilterInput`

**Content type:** `application/*+json`

Schema: `WinkPGNotificationsValidateFilterInput`

## Responses

### 200

OK

**Content type:** `text/plain`

Schema type: `array<string>`

**Content type:** `application/json`

Schema type: `array<string>`

**Content type:** `text/json`

Schema type: `array<string>`

### 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.

**Content type:** `application/json`

Schema: `WinkPGHttpRemoteServiceErrorResponse`

## See also

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