VUZDevelopers

Get notifications with filtering and pagination

GET
/notifications

Retrieves a paginated list of notifications for the current user with optional filtering.

Filtering Options:

  • businessId: Filter notifications by business context
  • isRead: Filter by read/unread status
  • types: Filter by notification types (comma-separated)
  • priority: Filter by priority level
  • categories: Filter by categories (documents, payments, expenses, business, system)
  • fromDate/toDate: Date range filter

Pagination:

  • page: Page number (default: 1)
  • limit: Items per page (default: 20, max: 100)

Sorting:

  • sortBy: Sort field (createdAt, priority)
  • sortOrder: ASC or DESC (default: DESC)

Use Cases:

  • Notification center/dropdown
  • Notification history page
  • Filter unread notifications
  • Filter by category (e.g., only payment notifications)
X-Api-Key<token>

Business API key, e.g. vuz_ab12cdef... Created via Settings → Integrations → API Keys. Unlike partner keys, a public API key's STRING does not encode its environment — isolation instead comes from a completely separate sandbox database: a key minted on the Sandbox server (above) only ever reads/writes sandbox data and can never see or affect production, regardless of what the key looks like.

In: header

Query Parameters

page?number

Page number (1-indexed)

Range1 <= value
Default1
limit?number

Items per page

Range1 <= value <= 100
Default20
businessId?string

Filter by business ID

type?string

Filter by notification type

Value in

  • "document_created"
  • "document_sent"
  • "document_viewed"
  • "document_paid"
  • "document_overdue"
  • "document_cancelled"
  • "document_signed"
  • "interactive_quote_link_sent"
  • "interactive_quote_customer_signed"
  • "interactive_quote_business_signed"
  • "interactive_quote_finalized"
  • "interactive_quote_expiring_soon"
  • "interactive_quote_expired"
  • "interactive_quote_new_message"
  • "payment_received"
  • "payment_failed"
  • "payment_pending"
  • "payment_refunded"
  • "expense_submitted"
  • "expense_approved"
  • "expense_rejected"
  • "expense_ocr_completed"
  • "expense_ocr_failed"
  • "client_created"
  • "client_updated"
  • "business_invitation_received"
  • "business_member_joined"
  • "business_member_left"
  • "business_role_changed"
  • "report_ready"
  • "export_completed"
  • "scheduled_reminder"
  • "security_alert"
  • "quote_negotiation_update"
  • "quote_accepted"
  • "quote_rejected"
  • "work_order_stage_updated"
  • "work_order_pending_approval"
  • "billing_payment_succeeded"
  • "billing_payment_failed"
  • "billing_trial_ending"
  • "billing_lockout_warning"
  • "trial_onboarding_email"
  • "payslip_signed_delivered"
  • "ownership_claim_holder_notice"
  • "ownership_claim_decision"
  • "stc_deal_nudge"
category?string

Filter by notification category

Value in

  • "documents"
  • "payments"
  • "expenses"
  • "business"
  • "system"
  • "onboarding"
priority?string

Filter by priority

Value in

  • "low"
  • "medium"
  • "high"
  • "critical"
isRead?boolean

Filter by read status

includeExpired?boolean

Include expired notifications

Defaultfalse
sort?string

Sort order (createdAt:desc, createdAt:asc)

Default"createdAt:desc"

Response Body

application/json

application/json

curl -X GET "https://example.com/notifications"
{  "items": [    {      "id": "550e8400-e29b-41d4-a716-446655440000",      "userId": "550e8400-e29b-41d4-a716-446655440001",      "businessId": "550e8400-e29b-41d4-a716-446655440002",      "type": "document_paid",      "priority": "medium",      "title": "Invoice Paid",      "message": "Invoice #1234 has been paid by John Doe",      "icon": "fi-rr-check-circle",      "isRead": false,      "readAt": "2025-01-01T12:00:00.000Z",      "actionUrl": "/documents/550e8400-e29b-41d4-a716-446655440003",      "actionLabel": "View Invoice",      "relatedEntityId": "550e8400-e29b-41d4-a716-446655440003",      "relatedEntityType": "invoice",      "metadata": {        "amount": 1000,        "currency": "ILS"      },      "expiresAt": "2025-04-01T00:00:00.000Z",      "emailSent": true,      "createdAt": "2025-01-01T10:00:00.000Z",      "updatedAt": "2025-01-01T10:00:00.000Z",      "timeAgo": "5 minutes ago"    }  ],  "total": 25,  "page": 1,  "limit": 20,  "unreadCount": 5}