Support Ticket API

Create and Manage Support Tickets

Introduction to Support Ticket API

Welcome to SMSGatewayCenter's Support Ticket API! This powerful API allows mobile app users to create, manage, and track support tickets programmatically. Submit technical issues, ask questions, reply to conversations, star important tickets, and get help directly from your mobile application. Our RESTful endpoints support POST and GET methods over HTTP with full VAPT compliance for secure integration.

About Support Ticket API

The Support Ticket API enables you to:

  • Create new support tickets with subject and detailed message
  • Reply to existing tickets to continue conversations
  • Read all tickets with pagination and filtering
  • Read single ticket with complete conversation history
  • Star/unstar tickets to mark important ones
  • Filter tickets by status (open, closed, starred)
  • Track ticket status (open, answered, closed)

All operations include comprehensive VAPT security measures including input sanitization, XSS prevention, SQL injection prevention, and authorization checks.

VAPT Security Features

  • Input Sanitization: All inputs sanitized with strip_tags() and htmlspecialchars()
  • SQL Injection Prevention: All database queries use prepared statements
  • XSS Prevention: HTML entities encoded, script tags stripped
  • Authorization: Ticket ownership verified before access/modification
  • Duplicate Detection: Prevents spam and duplicate submissions
  • Activity Logging: All operations logged for audit trail

Create Support Ticket

Create a new support ticket with a subject and detailed message. Automatically generates a unique ticket ID for tracking.

API Endpoint

https://unify.smsgateway.center/SMSApi/support/create

HTTP Method

POST

 

Required Parameters
KeyValueDescription
Login Credentials (Required)
Authenticate your API request using userid-password or apiKey—choose one method.
useridYour Registered UsernameYour registered username; use if apiKey isn't provided. Signup for User ID
passwordYour PasswordURL-encoded password (for special characters); use if apiKey isn't provided. Signup for API Key
Header (optional) Parameters
apiKeyYour unique apiKeyapiKey needs to be sent as HTTP header when you are not using userid-password method. You can avail this from your user control panel and use instead of userid-password HTTP Request parameter. Please do not disclose this to anyone.

 

Request Parameters
ParameterTypeRequiredDescription
subjectStringYesTicket subject (5-200 characters). Cannot be a URL. Must include letters or numbers
messageStringYesDetailed message describing your issue (5-10000 characters)
outputStringOptionalResponse format. Use json for JSON response (recommended)
Sample Request Code
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://unify.smsgateway.center/SMSApi/support/create",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => array(
    'userid' => 'YourUsername',
    'password' => 'YourPassword',
    'subject' => 'Unable to send SMS to DND numbers',
    'message' => 'I am getting error when trying to send SMS to DND numbers. Error code 1001 appears. Please help me resolve this issue.',
    'output' => 'json'
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
Sample Response (Success)
{
  "response": {
    "api": "support",
    "action": "create",
    "status": "success",
    "msg": "Support ticket created successfully - Ticket ID: 9320799726018928",
    "code": 200,
    "count": 1,
    "ticket": {
      "ticketId": "9320799726018928",
      "id": 12345,
      "status": "open",
      "timestamp": "2025-12-04T15:14:02+05:30"
    }
  }
}

Reply to Ticket

Add a reply to an existing support ticket to continue the conversation. Requires the ticket ID from when the ticket was created.

API Endpoint

https://unify.smsgateway.center/SMSApi/support/reply

HTTP Method

POST

 

Required Parameters
KeyValueDescription
Login Credentials (Required)
Authenticate your API request using userid-password or apiKey—choose one method.
useridYour Registered UsernameYour registered username; use if apiKey isn't provided. Signup for User ID
passwordYour PasswordURL-encoded password (for special characters); use if apiKey isn't provided. Signup for API Key
Header (optional) Parameters
apiKeyYour unique apiKeyapiKey needs to be sent as HTTP header when you are not using userid-password method. You can avail this from your user control panel and use instead of userid-password HTTP Request parameter. Please do not disclose this to anyone.

 

Request Parameters
ParameterTypeRequiredDescription
ticketIdStringYesUnique ticket ID (UUID format, e.g., "9320799726018928")
messageStringYesReply message (5-10000 characters)
outputStringOptionalResponse format. Use json for JSON response (recommended)
Sample Request Code
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://unify.smsgateway.center/SMSApi/support/reply",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => array(
    'userid' => 'YourUsername',
    'password' => 'YourPassword',
    'ticketId' => '9320799726018928',
    'message' => 'I tried clearing cache but still facing the same issue. Can you please investigate further?',
    'output' => 'json'
  ),
));

$response = curl_exec($curl);
curl_close($curl);

echo $response;
Sample Response (Success)
{
  "response": {
    "api": "support",
    "action": "reply",
    "status": "success",
    "msg": "Reply submitted successfully - Reply ID: 12346",
    "code": 200,
    "count": 1,
    "reply": {
      "replyId": 12346,
      "ticketId": "9320799726018928",
      "timestamp": "2025-12-04T16:15:00+05:30"
    }
  }
}

Read Tickets

Retrieve support tickets with two modes: (1) Read single ticket with full conversation, or (2) Read all tickets with pagination and filters.

API Endpoint

https://unify.smsgateway.center/SMSApi/support/read

HTTP Method

POST GET

 

Required Parameters
KeyValueDescription
Login Credentials (Required)
Authenticate your API request using userid-password or apiKey—choose one method.
useridYour Registered UsernameYour registered username; use if apiKey isn't provided. Signup for User ID
passwordYour PasswordURL-encoded password (for special characters); use if apiKey isn't provided. Signup for API Key
Header (optional) Parameters
apiKeyYour unique apiKeyapiKey needs to be sent as HTTP header when you are not using userid-password method. You can avail this from your user control panel and use instead of userid-password HTTP Request parameter. Please do not disclose this to anyone.

 

Request Parameters
ParameterTypeRequiredDescription
ticketIdStringOptionalIf provided, returns single ticket with full conversation. If omitted, returns all tickets
statusStringOptionalFilter by status: open, closed, starred. Default: all except closed
limitIntegerOptionalNumber of tickets per page (1-500). Default: 50
offsetIntegerOptionalNumber of tickets to skip for pagination. Default: 0
outputStringOptionalResponse format. Use json for JSON response (recommended)

Mode 1: Read Single Ticket with Conversation

Sample Request Code
curl --location 'https://unify.smsgateway.center/SMSApi/support/read?userid=your_username&password=your_password&ticketId=9320799726018928&output=json'
Sample Response (Single Ticket with Replies)
{
  "response": {
    "api": "support",
    "action": "read",
    "status": "success",
    "msg": "Ticket retrieved successfully",
    "code": 200,
    "count": 1,
    "ticket": {
      "ticketId": "9320799726018928",
      "id": 12345,
      "subject": "Unable to send SMS to DND numbers",
      "message": "I am getting error when trying to send SMS to DND numbers...",
      "status": "answered",
      "starred": false,
      "isRead": true,
      "isAnswered": true,
      "createdAt": "2025-12-04T15:14:02+05:30",
      "replies": [
        {
          "replyId": 12346,
          "message": "Thank you for contacting us. Please check your DLT settings...",
          "isFromAdmin": true,
          "createdAt": "2025-12-04T16:00:00+05:30"
        },
        {
          "replyId": 12347,
          "message": "I tried clearing cache but still facing the same issue.",
          "isFromAdmin": false,
          "createdAt": "2025-12-04T16:15:00+05:30"
        }
      ]
    }
  }
}

Mode 2: Read All Tickets with Pagination

Sample Request Code
# Get all open tickets
curl --location 'https://unify.smsgateway.center/SMSApi/support/read?userid=your_username&password=your_password&output=json'

# With filters and pagination
curl --location 'https://unify.smsgateway.center/SMSApi/support/read?userid=your_username&password=your_password&status=open&limit=50&offset=0&output=json'
Sample Response (All Tickets)
{
  "response": {
    "api": "support",
    "action": "read",
    "status": "success",
    "msg": "Tickets retrieved successfully - Total: 125",
    "code": 200,
    "count": 125,
    "data": {
      "tickets": [
        {
          "ticketId": "9320799726018928",
          "id": 12345,
          "subject": "Unable to send SMS to DND numbers",
          "message": "I am getting error...",
          "status": "answered",
          "starred": false,
          "isRead": true,
          "isAnswered": true,
          "createdAt": "2025-12-04T15:14:02+05:30"
        }
      ],
      "pagination": {
        "limit": 50,
        "offset": 0,
        "total": 125,
        "returned": 1
      }
    }
  }
}

Star/Unstar Ticket

Mark important tickets with a star for quick access, or remove the star when no longer needed.

API Endpoint

https://unify.smsgateway.center/SMSApi/support/star

HTTP Method

POST

 

Required Parameters
KeyValueDescription
Login Credentials (Required)
Authenticate your API request using userid-password or apiKey—choose one method.
useridYour Registered UsernameYour registered username; use if apiKey isn't provided. Signup for User ID
passwordYour PasswordURL-encoded password (for special characters); use if apiKey isn't provided. Signup for API Key
Header (optional) Parameters
apiKeyYour unique apiKeyapiKey needs to be sent as HTTP header when you are not using userid-password method. You can avail this from your user control panel and use instead of userid-password HTTP Request parameter. Please do not disclose this to anyone.

 

Request Parameters
ParameterTypeRequiredDescription
ticketIdStringYesUnique ticket ID (UUID format)
statusIntegerYesStar status: 1 to star, 0 to unstar
outputStringOptionalResponse format. Use json for JSON response (recommended)
Sample Request Code (Star Ticket)
curl --location 'https://unify.smsgateway.center/SMSApi/support/star' \
--form 'userid="your_username"' \
--form 'password="your_password"' \
--form 'ticketId="9320799726018928"' \
--form 'status="1"' \
--form 'output="json"'
Sample Response (Starred)
{
  "response": {
    "api": "support",
    "action": "star",
    "status": "success",
    "msg": "Ticket starred successfully",
    "code": 200,
    "count": 1,
    "star": {
      "ticketId": "9320799726018928",
      "starred": true,
      "timestamp": "2025-12-04T17:00:00+05:30"
    }
  }
}

Error Codes

Error CodeHTTP StatusDescription
200200Success - Request completed successfully
Create Ticket Errors (426-436)
426400Subject is required
427400Subject is too short (minimum 5 characters)
428400Subject is too long (maximum 200 characters)
429400Subject cannot be a URL
430400Subject must include letters or numbers
431400Message is required
432400Message is too short (minimum 5 characters)
433400Message is too long (maximum 10000 characters)
434400You already have an open ticket with similar message
435500Failed to create support ticket. Please try again
436500An error occurred while creating the ticket
Reply Errors (437-445)
437400Ticket ID is required
438400Message is required
439400Message is too short (minimum 5 characters)
440400Message is too long (maximum 10000 characters)
441404Ticket not found
442403You do not have permission to reply to this ticket
443409You already have a similar reply in an open ticket
444500Failed to submit reply. Please try again
445500An error occurred while submitting the reply
Read Errors (446-447)
446404Ticket not found or you do not have permission to view it
447500An error occurred while retrieving tickets
Star Errors (448-454)
448400Ticket ID is required
449400Status is required (1 to star, 0 to unstar)
450400Status must be 1 (star) or 0 (unstar)
451404Ticket not found
452403You do not have permission to modify this ticket
453400No changes made. Ticket may already be in the requested state
454500An error occurred while updating star status
General Errors (455-457)
455405Update action is not supported. Use reply action instead
456405Delete action is not available via API
457400Invalid action

Understanding Ticket Status

StatusDescriptionWhen Applied
openTicket is open and awaiting responseWhen ticket is created and not yet answered by admin
answeredAdmin has replied to the ticketAfter admin provides a response to your ticket
closedTicket is closed and resolvedWhen ticket is marked as closed by admin

Integration Examples

Example 1: Create Ticket from Mobile App

// React Native / JavaScript example
async function createSupportTicket(subject, message) {
  const formData = new FormData();
  formData.append('userid', 'YourUsername');
  formData.append('password', 'YourPassword');
  formData.append('subject', subject);
  formData.append('message', message);
  formData.append('output', 'json');

  try {
    const response = await fetch('https://unify.smsgateway.center/SMSApi/support/create', {
      method: 'POST',
      body: formData
    });

    const data = await response.json();
    
    if (data.response.status === 'success') {
      const ticketId = data.response.ticket.ticketId;
      console.log(`Ticket created: ${ticketId}`);
      return ticketId;
    } else {
      console.error(`Error: ${data.response.msg}`);
    }
  } catch (error) {
    console.error('Network error:', error);
  }
}

// Usage
createSupportTicket(
  'API Integration Issue',
  'Getting 401 error when calling send SMS API. Please help.'
);

Example 2: Load Tickets with Pagination

import requests

def get_tickets(status='open', page=1, per_page=50):
    offset = (page - 1) * per_page
    
    url = 'https://unify.smsgateway.center/SMSApi/support/read'
    params = {
        'userid': 'YourUsername',
        'password': 'YourPassword',
        'status': status,
        'limit': per_page,
        'offset': offset,
        'output': 'json'
    }
    
    response = requests.get(url, params=params)
    data = response.json()
    
    if data['response']['status'] == 'success':
        tickets = data['response']['data']['tickets']
        pagination = data['response']['data']['pagination']
        
        print(f"Found {pagination['total']} tickets")
        print(f"Showing {pagination['returned']} tickets (Page {page})")
        
        for ticket in tickets:
            print(f"\n{ticket['subject']} - Status: {ticket['status']}")
            print(f"  Ticket ID: {ticket['ticketId']}")
        
        return tickets, pagination
    else:
        print(f"Error: {data['response']['msg']}")

# Usage
tickets, pagination = get_tickets(status='open', page=1)

Example 3: View Ticket Conversation

<?php
function getTicketConversation($ticketId) {
    $url = "https://unify.smsgateway.center/SMSApi/support/read";
    
    $params = http_build_query([
        'userid' => 'YourUsername',
        'password' => 'YourPassword',
        'ticketId' => $ticketId,
        'output' => 'json'
    ]);
    
    $response = file_get_contents($url . '?' . $params);
    $data = json_decode($response, true);
    
    if ($data['response']['status'] === 'success') {
        $ticket = $data['response']['ticket'];
        
        echo "Subject: " . $ticket['subject'] . "\n\n";
        echo "Original Message:\n" . $ticket['message'] . "\n\n";
        
        echo "Conversation:\n";
        foreach ($ticket['replies'] as $reply) {
            $from = $reply['isFromAdmin'] ? 'Admin' : 'You';
            echo "[$from] " . $reply['message'] . "\n";
        }
    }
}

// Usage
getTicketConversation('9320799726018928');

Best Practices

Recommendations

  • Clear Subject Lines: Use descriptive subjects (not URLs) to help support team understand your issue quickly
  • Detailed Messages: Provide comprehensive information including error codes, steps to reproduce, and screenshots
  • Check for Duplicates: Search existing tickets before creating new ones to avoid duplicates
  • Star Important Tickets: Use star feature to mark critical issues for quick access
  • Pagination: Implement proper pagination when loading ticket lists (max 500 per request)
  • Error Handling: Implement comprehensive error handling for all error codes (426-457)
  • Security: Never expose credentials in error messages or logs
  • Ticket IDs: Store ticket IDs securely for future reference and replies
  • Status Filters: Use status filters to organize tickets by open, closed, or starred
  • Activity Logging: All operations are logged automatically for audit compliance

Use Cases

In-App Support

Integrate support ticket system directly into your mobile app for seamless customer service.

Priority Management

Star critical tickets to prioritize and track important issues effectively.

Ticket Dashboard

Build comprehensive ticket management dashboards with filtering and pagination.

Conversation Tracking

View complete conversation history with admin replies in chronological order.

Testimonials

Why do Great Businesses Trust SMS Gateway Center?

K

Kurlon IT

2022-08-04

We have tied up with other SMS providers also, but SMS GatewayCenter is quite good. Good Service from the team. We are very happy with the service be it accounts related or technical issue. We always get good response.

I

INOX Air Products

2018-02-09

We have an excellent experience with SMS Gateway Center. The services and support has been of very high standard.

S

Shalabh Arora

2025-04-11

I’ve been using SMSGatewayCenter’s bulk SMS and WhatsApp services since early 2022 for my small business, and the experience has been fantastic. The platform is intuitive, and the message delivery is incredibly reliable, reaching my customers without fail. The 24/7 support team is quick to assist, and the cost-effectiveness is a big plus. It’s transformed how I connect with my audience, and I highly recommend it to other entrepreneurs! (Google Revirews)

R

Reflex

2025-04-11

We’ve been using your bulk SMS services for a few months, and the results have been phenomenal. The open rates and customer engagement have gone through the roof. Highly recommend for any business looking to scale fast! (Google Revirews)

V

Vedanth Gowda

2025-04-18

I’m Vedanth Gowda, leading a finance business, and I’ve been leveraging SMSGatewayCenter’s bulk SMS and WhatsApp tools —absolutely transformative! The platform’s speed and precision in delivering financial alerts to my clients are unmatched, giving me a competitive edge. Samrat’s expertise in tailoring notification workflows for market updates was a standout, and the robust security features instilled trust. The affordable pricing and proactive support team make it a no-brainer. Perfect for finance pros aiming to elevate client trust and efficiency! (Google Revirews)

N

Naval Bhatnagar

2025-04-12

From day one, the team at SMS GATEWAY CENTER guided us through setup, testing, and launching campaigns. Their support is A+. Whether you’re new to SMS marketing or experienced, they make it smooth. Thank you Aakash. (Google Revirews)


CTA for Unlock Real-Time Messaging – Integrate Today!

Unlock Real-Time Messaging – Integrate Today!

Try Our API in a Sandbox Environment Before Going Live!

Join Thousands of Developers – Try Our API Now!

Get in touchSign up