Create Support Ticket
This endpoint allows authenticated users to submit a new support ticket on behalf of a customer. It accepts a subject topic, descriptive text, and an optional field update request type to categorize the ticket appropriately. Upon successful submission, the system assigns a unique ticket ID and returns full ticket details for tracking.
Endpoint
POST /api/support/createTicket
Authentication
Bearer token required. Obtain via:
POST https://api.banking.netevia.dev/api/auth/v2
Include in header: Authorization: Bearer {token}
Token lifetime: 10 minutes. Refresh via POST /api/auth/refresh.
When to use
Use this endpoint when a customer needs to submit a query, report an issue, or request a profile field update (such as a change of email, phone, or address). It is the primary entry point for all customer support interactions within the banking application. Each ticket receives a unique ticketId that can be used to track the request through its lifecycle.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| text | string | Yes | The body of the support ticket. Must be at least 1 character. |
| topicId | integer (int32) | No | Numeric ID of the support topic category for this ticket. |
| updateFieldRequest | string (enum) | No | Indicates the profile field the customer wants updated. See enum values below. |
| ticketType | integer (int32) | No | Ticket type code. Accepted values: 1, 2, 21, 24, 26. |
updateFieldRequest enum values:
Email, Phone, Address, PrimAuthEmail, PrimAuthPhone, PrimAuthAddress, Owner1Email, Owner1Phone, Owner1Address, Owner2Email, Owner2Phone, Owner2Address, Owner3Email, Owner3Phone, Owner3Address, Owner4Email, Owner4Phone, Owner4Address, Employer, EmployerIdentificationNumber, BusinessStartDate, DateOfBirth, Ssn, GivenName, MiddleName, FamilyName, DoingBusinessAsName, LegalBusinessName, LoanApprove
{
"topicId": 3,
"text": "I am unable to access my account and need help resetting my login credentials.",
"updateFieldRequest": "Email",
"ticketType": 1
}Response
200 OK
| Field | Type | Description |
|---|---|---|
| ticketId | integer (int32) | Unique identifier assigned to the newly created support ticket. |
| ticketTopicId | integer (int32) | ID of the topic category associated with this ticket. |
| ticketTopic | object | Details of the selected ticket topic (see nested fields below). |
| ticketTopic.id | integer (int32) | Topic ID. |
| ticketTopic.name | string | null | Human-readable topic name. |
| ticketTopic.responseTime | string | null | Expected response time for this topic. |
| ticketTopic.isDeleted | boolean | Whether the topic has been soft-deleted. |
| ticketTopic.isHidden | boolean | Whether the topic is hidden from customer-facing menus. |
| userProfileId | integer (int32) | ID of the user profile that submitted the ticket. |
| created | string (date-time) | ISO 8601 timestamp of when the ticket was created. |
| text | string | null | The ticket description text as submitted. |
| parentTicketId | integer (int32) | null | ID of a parent ticket if this is a follow-up or child ticket. |
| isNew | boolean | Indicates whether the ticket has not yet been reviewed by support staff. |
| updateFieldRequest | string (enum) | The profile field update type requested, if applicable. |
| ipAddress | string | null | IP address from which the ticket was submitted. |
{
"ticketId": 10482,
"ticketTopicId": 3,
"ticketTopic": {
"id": 3,
"name": "Account Access",
"responseTime": "24 hours",
"isDeleted": false,
"isHidden": false
},
"userProfileId": 7821,
"created": "2026-06-08T14:35:00Z",
"text": "I am unable to access my account and need help resetting my login credentials.",
"parentTicketId": null,
"isNew": true,
"updateFieldRequest": "Email",
"ipAddress": "203.0.113.45"
}Error Codes
| Code | When it happens |
|---|---|
| 400 | text field is missing or empty (minLength: 1 not satisfied), or an invalid enum value is provided for updateFieldRequest or ticketType |
| 401 | Token missing, expired, or invalid |
| 403 | Insufficient permissions to create a ticket for the target profile |
| 404 | Specified topicId does not exist |
| 500 | Internal server error |
Common Mistakes
- Omitting the required
textfield or sending an empty string — this will result in a 400 validation error sinceminLengthis 1. - Passing an unrecognized integer for
ticketType— only values1,2,21,24, and26are accepted; any other value will fail validation. - Sending an invalid string for
updateFieldRequestthat does not match one of the defined enum values exactly (case-sensitive). - Using an expired or missing Bearer token, which returns a 401 even if all request fields are valid.
Related Endpoints
GET /api/support/getTickets— Retrieve a list of support tickets for the authenticated userPOST /api/support/replyTicket— Add a reply or follow-up message to an existing support ticketGET /api/support/getTopics— Retrieve available ticket topic categories and their IDs
Example
curl -X POST https://api.banking.netevia.dev/api/support/createTicket \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"topicId": 3,
"text": "I am unable to access my account and need help resetting my login credentials.",
"updateFieldRequest": "Email",
"ticketType": 1
}'