Skip to content

Support API Reference

Complete reference for all support case management endpoints.

Authentication

All support API endpoints require authentication via: - API Key in header: X-API-Key: your-api-key - JWT Bearer token: Authorization: Bearer your-jwt-token

Base URL

Production: https://api.cyferwall.com
Development: http://localhost:3000

Endpoints

Create Support Case

Create a new support case and send automatic notifications.

Endpoint: POST /api/support/case

Request Body:

{
  "name": "string (required)",
  "email": "string (required, valid email)",
  "organization": "string (optional)",
  "phone": "string (optional)",
  "customerType": "FREE|BASIC|PREMIUM|ENTERPRISE",
  "issueType": "TECHNICAL|BILLING|GENERAL|FEATURE_REQUEST",
  "urgency": "LOW|MEDIUM|HIGH|CRITICAL",
  "clientOrProjectName": "string (optional)",
  "subject": "string (required)",
  "message": "string (required)"
}

Response:

{
  "responseStatus": "SUCCESS",
  "caseNumber": "CS-2025-001234",
  "status": "OPEN",
  "message": "Support case created successfully...",
  "timeline": "Response within 4 hours, resolution within 24 hours"
}

Notifications Sent: - ✅ Customer confirmation email - ✅ Staff assignment notification - 📱 SMS for CRITICAL cases


Escalate Support Case

Escalate an existing support case to higher priority.

Endpoint: POST /api/support/case/escalate

Request Body:

{
  "caseNumber": "string (required)",
  "email": "string (required, for security verification)",
  "reason": "string (required, escalation reason)"
}

Response:

{
  "success": true,
  "message": "Your case has been escalated and will receive priority attention.",
  "caseNumber": "CS-2025-001234"
}

Notifications Sent: - ✅ Customer escalation acknowledgment - ✅ Staff escalation alert - 🚨 Critical escalation SMS (if applicable)


Cancel Support Case

Cancel an existing support case.

Endpoint: POST /api/support/case/cancel

Request Body:

{
  "caseNumber": "string (required)",
  "email": "string (required, for security verification)", 
  "reason": "string (required, cancellation reason)"
}

Response:

{
  "responseStatus": "SUCCESS",
  "message": "Case cancelled successfully",
  "caseNumber": "CS-2025-001234"
}

Notifications Sent: - ✅ Customer cancellation confirmation - ✅ Staff cancellation notice


Get Case Status

Get the current status of a support case.

Endpoint: GET /api/support/case/:caseNumber

Parameters: - caseNumber (path): The case number (e.g., CS-2025-001234) - email (query): Customer email for verification

Response:

{
  "caseNumber": "CS-2025-001234",
  "status": "OPEN|IN_PROGRESS|WAITING_FOR_CUSTOMER|RESOLVED|CLOSED|CANCELLED",
  "priority": "LOW|MEDIUM|HIGH|CRITICAL",
  "createdAt": "2025-07-22T13:00:00.000Z",
  "updatedAt": "2025-07-22T14:30:00.000Z",
  "estimatedResolution": "Response within 4 hours...",
  "assignedStaff": "John Smith",
  "lastUpdate": "Investigating issue with authentication API"
}


Update Case

Add an update to an existing support case.

Endpoint: POST /api/support/case/:caseNumber/update

Request Body:

{
  "message": "string (required)",
  "isInternal": "boolean (default: false)",
  "status": "string (optional, new status)",
  "staffEmail": "string (required for staff updates)"
}

Response:

{
  "success": true,
  "updateId": 123,
  "message": "Case update added successfully"
}

Notifications Sent: - ✅ Customer update notification (if not internal)


Error Responses

All endpoints return consistent error responses:

{
  "responseStatus": "ERR_BAD_REQUEST|ERR_NOT_FOUND|ERR_INTERNAL_ERROR",
  "message": "Detailed error message",
  "errors": ["Field validation errors (if applicable)"]
}

Common HTTP Status Codes: - 200 - Success - 400 - Bad Request (validation errors) - 401 - Unauthorized (invalid/missing API key) - 404 - Not Found (case doesn't exist) - 429 - Rate Limited - 500 - Internal Server Error


Rate Limits

  • Create Case: 10 requests per minute per IP
  • Escalate Case: 5 requests per minute per email
  • Cancel Case: 5 requests per minute per email
  • Get Status: 60 requests per minute per API key

Webhooks

Configure webhooks to receive real-time notifications about case updates:

Webhook URL: Configure in your dashboard or environment variables

Events: - case.created - case.escalated - case.updated - case.resolved - case.cancelled

Payload Example:

{
  "event": "case.created",
  "caseNumber": "CS-2025-001234",
  "timestamp": "2025-07-22T13:00:00.000Z",
  "data": {
    "customerName": "John Doe",
    "customerEmail": "john@example.com",
    "issueType": "TECHNICAL",
    "urgency": "HIGH"
  }
}


Testing

Test Environment:

# Set test environment
export NODE_ENV=test

# Run API tests
npm run test

# Test specific case creation
npm run test:case-creation

Postman Collection: Download Postman Collection


SDKs & Libraries

JavaScript/Node.js:

npm install @cyferwall/support-api

import { SupportAPI } from '@cyferwall/support-api'

const support = new SupportAPI({
  apiKey: 'your-api-key',
  baseUrl: 'https://api.cyferwall.com'
})

const case = await support.createCase({
  name: 'John Doe',
  email: 'john@example.com',
  // ... other fields
})

Python:

pip install cyferwall-support

from cyferwall_support import SupportAPI

support = SupportAPI(api_key='your-api-key')
case = support.create_case(
    name='John Doe',
    email='john@example.com',
    # ... other fields
)

Need Help?