Support Tickets API
The Tickets API allows you to create, track, and manage support tickets directly from your application. Use it to report payment issues, request refunds, ask integration questions, and communicate with the LuxCore support team — all without leaving your platform.API Key Scopes
Your API key must have the appropriate scopes to access ticket endpoints:Contact your account manager or request scope changes via the Dashboard to
enable ticket scopes on your API key.
Creating a Ticket
Create a new support ticket withPOST /tickets.
Request Body
Response
Listing Tickets
Retrieve a paginated list of your tickets withGET /tickets.
Query Parameters
Response
Getting Ticket Details
Retrieve full details of a specific ticket withGET /tickets/:ticketId.
MerchantTicketResponseDto structure as the create endpoint.
Closing a Ticket
Close an open ticket withPOST /tickets/:ticketId/close. You can optionally include a closing comment.
Close is allowed from
open, in_progress, waiting_customer, on_hold or resolved. Inspect the returned success flag; an invalid transition returns code 409 in the error result.Reopening a Ticket
Reopen a resolved or closed ticket withPOST /tickets/:ticketId/reopen.
Comments
Comments cannot be added to tickets in a final status. An invalid status transition can return code409 in the error result; check both the HTTP status and body success before retrying.
Adding a Comment
Add a comment to an existing ticket withPOST /tickets/:ticketId/comments.
Comment Request Body
Each attachment reference requires:
Listing Comments
Retrieve comments on a ticket withGET /tickets/:ticketId/comments.
Comment Response
The API returns comments published to your ticket.
Attachments
File attachments use a two-step upload flow: first generate a pre-signed upload URL, then upload the file directly to storage.Supported File Types
Upload Workflow
1
Generate Upload URL
Call
POST /tickets/:ticketId/upload-url with the filename, content type, and optionally file size:Response:
2
Upload the File
Use the pre-signed
upload_url to upload the file directly via HTTP PUT:3
Reference in Comment
Include the
attachment_id, key, filename, and content type when adding a comment:Downloading Attachments
To download an attachment, request a pre-signed download URL: Ticket-level attachment:thumb_url is available for image attachments only. It is null for PDFs and
videos.Ticket Statuses
Status Lifecycle
open → in_progress
open → in_progress
A support agent picks up the ticket and begins investigation.
in_progress → waiting_customer
in_progress → waiting_customer
The support team has responded and needs additional information from you.
Add a comment to move the ticket forward.
waiting_customer → in_progress
waiting_customer → in_progress
Adding a comment updates the ticket conversation; it does not itself change
the ticket status.
in_progress → on_hold
in_progress → on_hold
The issue requires external investigation (e.g., bank confirmation). The
ticket is paused until the external party responds.
in_progress → resolved
in_progress → resolved
The support team has resolved the issue. You can close the ticket or reopen
it if the problem persists.
resolved → closed
resolved → closed
You confirm the resolution by closing the ticket.
resolved / closed / canceled → open (reopen)
resolved / closed / canceled → open (reopen)
You reopen the ticket via
POST /tickets/:ticketId/reopen if the issue was
not fully resolved.Merchant-Allowed Transitions
As a merchant, you can perform these status transitions:Categories
Using the correct category helps the support team route your ticket faster.
Set
priority to low, medium or high when appropriate; the default is
medium.Webhook Events
When you have webhooks configured, the following ticket events are delivered:ticket.comment_added notifies you of a comment published to your ticket,
including merchant comments. For ticket.comment_added, the comment content
is included in data.comment alongside data.ticket.data.ticket field:
To receive ticket events, add them to your webhook subscription. See the
Webhooks Guide for setup instructions.
Error Handling
Check both HTTP status and the response body. Request/authentication failures use the standardstatusCode, message, error_code format. Ticket business failures can return success: false, error and statusCode even with an HTTP success status; do not treat HTTP 200/201 alone as completion.
A ticket business-error result can look like this:
Ticket creation and comment creation return HTTP
201 Created. Other
successful operations return HTTP 200 OK. Check the success field and
statusCode in the response body for error details.Best Practices
Link Payments to Tickets
Always include
payment_id or transaction_id when creating tickets about
payment issues. This helps the support team investigate faster.Use Correct Categories
Choose an accurate category and set the appropriate priority when creating a
ticket.
Add Context in Comments
When replying, include relevant details like timestamps, amounts, and error
messages. Attach screenshots when possible.
Monitor via Webhooks
Subscribe to
ticket.updated and ticket.comment_added events to get
real-time notifications instead of polling the API.