Tickets

Tickets

Tickets en berichten. Priority: low, normal, high, urgent (ongeldig → normal). Scope: tickets.read / tickets.write.

Tickets ophalen

GET /v1/tickets
tickets.read

Legacy int filters (team_id / status_id / channel_id) blijven geaccepteerd

Authorization: HTTP
name: httpBearer
type: http
scheme: bearer
Query
Naam Type Beschrijving
page integer Paginanummer (vanaf 1, default 1)
per_page integer Items per pagina (default 25, max 200)
legacy_status_id integer Legacy integer filter; removed in v2.
legacy_team_id integer
legacy_channel_id integer
search string Zoeken
Request body

Geen

Response
data object[]
guid string
Example: f6a7b8c9-d0e1-2345-f012-456789012345
number string
Example: T-1042
subject string
Example: Login werkt niet
status string
Example: Open
priority string
Enum
low normal high urgent
Example: normal
customer_name string
Example: Jan Jansen
customer_email string
client_guid string
Example: b2c3d4e5-f6a7-8901-bcde-f12345678901
project_guid string
Example: c3d4e5f6-a7b8-9012-cdef-234567890123
source string
Example: api
created_at string
Example: 2026-07-01T10:00:00+02:00
updated_at string
Example: 2026-07-01T10:00:00+02:00
meta object
page integer
Example: 1
per_page integer
Example: 25
total integer
Example: 1
pages integer
Example: 1

Examples

GET /v1/tickets
curl -X GET "https://api.appficient.nl/v1/tickets" \
  -H "Authorization: Bearer apf_xxxxxxxx" \
  -H "Accept: application/json"

Curl, Node en response staan rechts naast dit endpoint.

Ticket aanmaken

POST /v1/tickets
tickets.write

Optioneel team/channel/status/priority/customer/client/assignee/project/contact. Legacy int team_id / status_id / channel_id blijven geaccepteerd als input

Authorization: HTTP
name: httpBearer
type: http
scheme: bearer
Headers
Naam Type Beschrijving
Idempotency-Key string Optional on POST only; cached 24h; replay returns X-Idempotent-Replay
Request body
subject string
Example: Login werkt niet
priority string
Enum
low normal high urgent
Example: normal
customer_email string
client_guid string
Example: b2c3d4e5-f6a7-8901-bcde-f12345678901
Response
data object
guid string
Example: f6a7b8c9-d0e1-2345-f012-456789012345
number string
Example: T-1042
subject string
Example: Login werkt niet
status string
Example: Open
priority string
Enum
low normal high urgent
Example: normal
customer_name string
Example: Jan Jansen
customer_email string
client_guid string
Example: b2c3d4e5-f6a7-8901-bcde-f12345678901
project_guid string
Example: c3d4e5f6-a7b8-9012-cdef-234567890123
source string
Example: api
created_at string
Example: 2026-07-01T10:00:00+02:00
updated_at string
Example: 2026-07-01T10:00:00+02:00
meta object[]

Examples

POST /v1/tickets
curl -X POST "https://api.appficient.nl/v1/tickets" \
  -H "Authorization: Bearer apf_xxxxxxxx" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
  "subject": "Login werkt niet",
  "priority": "normal",
  "customer_email": "[email protected]",
  "client_guid": "b2c3d4e5-f6a7-8901-bcde-f12345678901"
}'

Curl, Node en response staan rechts naast dit endpoint.

Ticket ophalen

GET /v1/tickets/{id}
tickets.read
Authorization: HTTP
name: httpBearer
type: http
scheme: bearer
Path
Naam Type Beschrijving
id Required string Resource id (UUID, lowercase)
Request body

Geen

Response
data object Required

ID-only (UUID). Team/status/channel have no Guid columns — ints omitted from response. `status` is the tenant status name string.

id string
number string
subject string
status string

Ticket_Status_Name (tenant-defined; not a closed enum)

priority string

Invalid values are coerced to `normal`.

Enum
low normal high urgent
Example: normal
client_name string
client_email string
client_id string Nullable
project_id string Nullable
created_at string
source string
Example: api
updated_at string
closed_at string Nullable
meta object Required

Examples

GET /v1/tickets/{id}
curl -X GET "https://api.appficient.nl/v1/tickets/{id}" \
  -H "Authorization: Bearer apf_xxxxxxxx" \
  -H "Accept: application/json"

Curl, Node en response staan rechts naast dit endpoint.

Ticket bijwerken

PATCH /v1/tickets/{id}
tickets.write

At least one field or status_id required

Authorization: HTTP
name: httpBearer
type: http
scheme: bearer
Path
Naam Type Beschrijving
id Required string Resource id (UUID, lowercase)
Request body
subject string
legacy_team_id integer

Legacy integer input only; removed in v2.

legacy_channel_id integer

Legacy integer input only; removed in v2.

legacy_status_id integer

Legacy integer input only; removed in v2.

priority string

Invalid values are coerced to `normal`.

Enum
low normal high urgent
Example: normal
client_name string
client_email string
client_id string
legacy_assigned_user_id integer

Legacy integer input only; removed in v2.

legacy_project_id integer

Legacy integer input only; removed in v2.

legacy_contact_id integer

Legacy integer input only; removed in v2.

Response
data object Required

ID-only (UUID). Team/status/channel have no Guid columns — ints omitted from response. `status` is the tenant status name string.

id string
number string
subject string
status string

Ticket_Status_Name (tenant-defined; not a closed enum)

priority string

Invalid values are coerced to `normal`.

Enum
low normal high urgent
Example: normal
client_name string
client_email string
client_id string Nullable
project_id string Nullable
created_at string
source string
Example: api
updated_at string
closed_at string Nullable
meta object Required

Examples

PATCH /v1/tickets/{id}
curl -X PATCH "https://api.appficient.nl/v1/tickets/{id}" \
  -H "Authorization: Bearer apf_xxxxxxxx" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "string",
    "legacy_team_id": 0,
    "legacy_channel_id": 0,
    "legacy_status_id": 0,
    "priority": "normal",
    "client_name": "string",
    "client_email": "string",
    "client_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "legacy_assigned_user_id": 0,
    "legacy_project_id": 0,
    "legacy_contact_id": 0
}'

Curl, Node en response staan rechts naast dit endpoint.

Berichten ophalen

GET /v1/tickets/{id}/messages
tickets.read

Not paginated

Authorization: HTTP
name: httpBearer
type: http
scheme: bearer
Path
Naam Type Beschrijving
id Required string Resource id (UUID, lowercase)
Request body

Geen

Response
data array Required
id string
direction string

API-created messages are always `out`.

Enum
in out
type string
Enum
reply note
Example: note
body string
created_at string
author object
name string
email string
meta object Required

Examples

GET /v1/tickets/{id}/messages
curl -X GET "https://api.appficient.nl/v1/tickets/{id}/messages" \
  -H "Authorization: Bearer apf_xxxxxxxx" \
  -H "Accept: application/json"

Curl, Node en response staan rechts naast dit endpoint.

Bericht aanmaken

POST /v1/tickets/{id}/messages
tickets.write

Requires body, message, or html

Authorization: HTTP
name: httpBearer
type: http
scheme: bearer
Path
Naam Type Beschrijving
id Required string Resource id (UUID, lowercase)
Headers
Naam Type Beschrijving
Idempotency-Key string Optional on POST only; cached 24h; replay returns X-Idempotent-Replay
Request body
body string
html string
type string
Enum
reply note
Example: note
to string
cc string
author_name string
author_email string
plain_text_body boolean
author_user_id integer

Staff user id used as message author when provided.

Response
data object Required

ID-only (UUID); no message `id` / `author.user_id`.

id string
direction string

API-created messages are always `out`.

Enum
in out
type string
Enum
reply note
Example: note
body string
created_at string
author object
name string
email string
meta object Required
via_staff_save boolean

Examples

POST /v1/tickets/{id}/messages
curl -X POST "https://api.appficient.nl/v1/tickets/{id}/messages" \
  -H "Authorization: Bearer apf_xxxxxxxx" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "body": "string",
    "html": "string",
    "type": "note",
    "to": "string",
    "cc": "string",
    "author_name": "string",
    "author_email": "string",
    "plain_text_body": false,
    "author_user_id": 0
}'

Curl, Node en response staan rechts naast dit endpoint.

Bericht ophalen

GET /v1/tickets/{id}/messages/{message_id}
tickets.read
Authorization: HTTP
name: httpBearer
type: http
scheme: bearer
Path
Naam Type Beschrijving
id Required string Resource id (UUID, lowercase)
message_id Required string
Request body

Geen

Response
data object Required

ID-only (UUID); no message `id` / `author.user_id`.

id string
direction string

API-created messages are always `out`.

Enum
in out
type string
Enum
reply note
Example: note
body string
created_at string
author object
name string
email string
meta object Required

Examples

GET /v1/tickets/{id}/messages/{message_id}
curl -X GET "https://api.appficient.nl/v1/tickets/{id}/messages/{message_id}" \
  -H "Authorization: Bearer apf_xxxxxxxx" \
  -H "Accept: application/json"

Curl, Node en response staan rechts naast dit endpoint.

Ticketstatussen ophalen

GET /v1/ticket-statuses
tickets.read
Authorization: HTTP
name: httpBearer
type: http
scheme: bearer
Request body

Geen

Response
success boolean Required

true bij geslaagde call

Example: true
data object[]
name string
Example: Openstaand
active boolean
Example: true
order integer
Example: 1

Examples

GET /v1/ticket-statuses
curl -X GET "https://api.appficient.nl/v1/ticket-statuses" \
  -H "Authorization: Bearer apf_xxxxxxxx" \
  -H "Accept: application/json"

Curl, Node en response staan rechts naast dit endpoint.