Tickets
Open and follow support tickets with Depa from your own systems.
Link a ticket to an account and to the payment or trade it's about, so the support team
has the context. Ticket numbers (for example TKT-00012) are searchable, and fetching a
ticket marks its messages as read.
/ticketsReturns the support tickets of your vault, most recently updated first. Filter by status, priority or category, or search by ticket number, text or account.
Authorization
ApiToken Your API key, or the JWT from POST /sign_in, as the raw header value: Authorization: <token>. Don't add a Bearer prefix.
In: header
Query Parameters
Page number, starting at 1.
1 <= value1Filter by ticket status.
Value in
- "open"
- "in_progress"
- "waiting_customer"
- "resolved"
- "closed"
Filter by ticket priority.
Value in
- "low"
- "normal"
- "high"
- "urgent"
Filter by ticket category slug.
Free-text search. Matches ticket number (e.g. TKT-00012), subject, description, message body, or account UUID/alias.
Response Body
application/json
application/json
curl -X GET "https://example.com/tickets?page=1" \ -H "Authorization: <token>"{ "data": [ { "id": "8b3e6f1a-2d9c-4a7e-b1f5-0e4c7d2a9b83", "ticket_number": "TKT-00012", "subject": "Incoming SEPA payment not credited", "status": "open", "priority": "normal", "category": "payment", "has_unread_messages": true, "unread_count": 1, "last_message_at": 1772813114, "ticketable": { "type": "fiat_payment", "id": "7e2a9c4b-5d1f-4b8e-9a3c-6f0e2d8b1a74", "summary": "Incoming EUR 1,250.00 from Müller Bürobedarf GmbH" }, "account_uuid": "8f3a2c1e-5b7d-4e9a-9c21-7d4b6e0f1a23", "client_assignee": { "uuid": "4c2e8a1f-6b3d-4e9a-8f7c-1d5b0a2e9c36", "email": "maria@acme.example" }, "created_at": 1772813114, "updated_at": 1772813114, "closed_at": null } ], "pagination": { "current_page": 1, "per_page": 80, "total_pages": 1, "total_count": 2 }}/ticketsOpens a support ticket. Attach it to an account with account_uuid, and to the payment or
trade it's about with ticketable_type and ticketable_uuid. message becomes the first
message on the ticket.
Authorization
ApiToken Your API key, or the JWT from POST /sign_in, as the raw header value: Authorization: <token>. Don't add a Bearer prefix.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X POST "https://example.com/tickets" \ -H "Authorization: <token>" \ -H "Content-Type: application/json" \ -d '{ "subject": "Incoming SEPA payment not credited", "category_slug": "payment", "priority": "high", "account_uuid": "8f3a2c1e-5b7d-4e9a-9c21-7d4b6e0f1a23", "ticketable_type": "fiat_payment", "ticketable_uuid": "7e2a9c4b-5d1f-4b8e-9a3c-6f0e2d8b1a74", "message": "The sender\'s reference was INV-2026-0142." }'{ "data": { "id": "8b3e6f1a-2d9c-4a7e-b1f5-0e4c7d2a9b83", "ticket_number": "TKT-00012", "subject": "Incoming SEPA payment not credited", "description": "A transfer of EUR 1,250 sent on 2 March hasn't reached the account.", "status": "open", "priority": "normal", "category": { "slug": "payment", "name": "Payment issues" }, "has_unread_messages": false, "ticketable": { "type": "fiat_payment", "id": "7e2a9c4b-5d1f-4b8e-9a3c-6f0e2d8b1a74", "summary": "Incoming EUR 1,250.00 from Müller Bürobedarf GmbH", "details": {} }, "account": { "uuid": "8f3a2c1e-5b7d-4e9a-9c21-7d4b6e0f1a23", "alias": "Acme Ltd – operating" }, "client_assignee": { "uuid": "4c2e8a1f-6b3d-4e9a-8f7c-1d5b0a2e9c36", "email": "maria@acme.example" }, "messages": [ { "id": "9e1b4d7a-2c8f-4a6e-b3d0-5f7c1a9e2b48", "body": "We've located the transfer and credited it to the account.", "from_staff": true, "user_email": "support@depa.finance", "created_at": 1772816714 } ], "attachments": [ { "id": "8841", "filename": "bank_statement_march.pdf", "content_type": "application/pdf", "byte_size": 182044, "url": "https://files.example.com/attachments/8841", "message_id": "9e1b4d7a-2c8f-4a6e-b3d0-5f7c1a9e2b48", "uploaded_at": 1772813200, "uploaded_by": { "email": "maria@acme.example", "is_staff": false } } ], "created_at": 1772813114, "updated_at": 1772816714, "closed_at": null }}/tickets/{uuid}Returns a ticket with its messages, attachments and linked resources, and marks it as read.
Authorization
ApiToken Your API key, or the JWT from POST /sign_in, as the raw header value: Authorization: <token>. Don't add a Bearer prefix.
In: header
Path Parameters
The ticket UUID
uuidResponse Body
application/json
application/json
application/json
curl -X GET "https://example.com/tickets/8b3e6f1a-2d9c-4a7e-b1f5-0e4c7d2a9b83" \ -H "Authorization: <token>"{ "data": { "id": "8b3e6f1a-2d9c-4a7e-b1f5-0e4c7d2a9b83", "ticket_number": "TKT-00012", "subject": "Incoming SEPA payment not credited", "description": "A transfer of EUR 1,250 sent on 2 March hasn't reached the account.", "status": "open", "priority": "normal", "category": { "slug": "payment", "name": "Payment issues" }, "has_unread_messages": false, "ticketable": { "type": "fiat_payment", "id": "7e2a9c4b-5d1f-4b8e-9a3c-6f0e2d8b1a74", "summary": "Incoming EUR 1,250.00 from Müller Bürobedarf GmbH", "details": {} }, "account": { "uuid": "8f3a2c1e-5b7d-4e9a-9c21-7d4b6e0f1a23", "alias": "Acme Ltd – operating" }, "client_assignee": { "uuid": "4c2e8a1f-6b3d-4e9a-8f7c-1d5b0a2e9c36", "email": "maria@acme.example" }, "messages": [ { "id": "9e1b4d7a-2c8f-4a6e-b3d0-5f7c1a9e2b48", "body": "We've located the transfer and credited it to the account.", "from_staff": true, "user_email": "support@depa.finance", "created_at": 1772816714 } ], "attachments": [ { "id": "8841", "filename": "bank_statement_march.pdf", "content_type": "application/pdf", "byte_size": 182044, "url": "https://files.example.com/attachments/8841", "message_id": "9e1b4d7a-2c8f-4a6e-b3d0-5f7c1a9e2b48", "uploaded_at": 1772813200, "uploaded_by": { "email": "maria@acme.example", "is_staff": false } } ], "created_at": 1772813114, "updated_at": 1772816714, "closed_at": null }}