Zum Hauptinhalt springen
tsecurity.de LIVE
Echtzeit-Radar & Feeds
Alle RSS Feeds
👥 Community & Social
IT NachrichtenTelekom: Neuer Reise-eSIM-Dienst T-Travel startet weltweit(21.09.2026 um 11:45 Uhr)
IT NachrichtenSamsung Wallet: Neue Banken mit an Bord(21.09.2026 um 13:07 Uhr)
IT NachrichtenTelekom: Neuer Reise-eSIM-Dienst T-Travel startet weltweit(21.09.2026 um 11:45 Uhr)
IT NachrichtenSamsung Wallet: Neue Banken mit an Bord(21.09.2026 um 13:07 Uhr)
Intelligence View
⚡ tsecurity.de Intelligence

GLPI - Closing Ticket with API

Unlike what is described in the official GLPI documentation, the system does not work as expected and does not correctly respond to the provided parameters. The documentation found at "https://YOUR_GLPI_DOMAIN.COM/apirest.php" states that…

0
↗ Quelle (dev.to)
Reagiere als Erste:r — dein Feedback zählt!

Unlike what is described in the official GLPI documentation, the system does not work as expected and does not correctly respond to the provided parameters. The documentation found at "https://YOUR_GLPI_DOMAIN.COM/apirest.php" states that some parameters should be passed in the request body, but this doesn't always work. The only method that seems to work is passing the parameters directly in the URL.




Autor: joaoprd | [email protected]







Starting a Session



To initiate any call, we need the session_token and app-token. To generate the session_token, we make a request to "https://YOUR_GLPI_DOMAIN.COM/apirest.php/initSession" with the app-token and user_token parameters, which are available in the user account we are working with.



The following request generates the session_token:




curl --location 'https://DOMINIO_GLPI.COM/apirest.php/initSession?app-token={YOUR-APP-TOKEN}&user_token={YOUR-USER-TOKEN}'









Ticket Search



With the session_token in hand, we can perform searches for tickets. However, according to the GLPI documentation, it appears that the endpoint does not function as per the provided examples, as it does not allow sending a payload to this endpoint, resulting in the following error:




[
"ERROR_JSON_PAYLOAD_FORBIDDEN",
"GET Request should not have json payload (http body); view documentation in your browser at /#ERROR_JSON_PAYLOAD_FORBIDDEN"
]






To circumvent this limitation, we will pass the parameters directly in the URL of the request, using the link "https://YOUR_GLPI_DOMAIN.COM/apirest.php/search/Ticket". You must include the app-token and session-token to connect, and then add the desired filters to locate the necessary information.




curl --location --globoff 'https://DOMINIO_GLPI.COM/apirest.php/search/Ticket
?app-token={YOUR-APP-TOKEN}
&session_token={YOUR-SESSION-TOKEN}
&criteria[0][field]=1
&criteria[0][searchtype]=contains
&criteria[0][value]=Verifica%C3%A7%C3%A3o%20diaria
&criteria[1][link]=AND
&criteria[1][field]=12
&criteria[1][searchtype]=equals
&criteria[1][value]=2
&glpilist_limit=1000'
\
--header 'Content-Type: application/json'






"Criteria" refers to the filtering criteria, where fields are specific filters to be applied to find something. For example, "criteria[0][field]=1" is designated for the title, where we pass "criteria[0][searchtype]=contains" indicating that it contains "criteria[0][value]=Verifica%C3%A7%C3%A3o%20diaria", which, in this case, is 'Verificação diária' that was encoded. This is where the ticket title should be placed. Another filter is applied below in "criteria[1][link]=AND", where an AND is performed, indicating a new search following the previous one.



To analyze all filtering options, you can make a request to:




curl --location 'https://DOMINIO_GLPI.COM/apirest.php/listSearchOptions/Ticket?app-token={YOUR-APP-TOKEN}&session_token={YOUR-SESSION-TOKEN}' \
--data ''






Some example responses:




{
"common": {
"name": "Características"
},
"1": {
"name": "Título",
"table": "glpi_tickets",
"field": "name",
"datatype": "itemlink",
"nosearch": false,
"nodisplay": false,
"available_searchtypes": [
"contains",
"notcontains"
],
"uid": "Ticket.name"
},
"21": {
"name": "Descrição",
"table": "glpi_tickets",
"field": "content",
"datatype": "text",
"nosearch": false,
"nodisplay": false,
"available_searchtypes": [
"contains",
"notcontains"
],
"uid": "Ticket.content"
},
"2": {
"name": "ID",
"table": "glpi_tickets",
"field": "id",
"datatype": "number",
"nosearch": false,
"nodisplay": false,
"available_searchtypes": [
"contains",
"notcontains"
],
"uid": "Ticket.id"
},
...









Creating a Task



With the previous request, we performed the search for tickets, which will be returned in JSON format. With this information, we can handle the necessary tasks. In this specific documentation, we will close the ticket. However, before completely closing the ticket, we need to create a task linked to the ticket that must be completed.



Some GLPI systems require specific methods for closing tickets. In the system I am working with, it is necessary to create a task and a solution before closing the ticket.



Below is the request that creates the task in the ticket (remember that the ticket I am passing was generated in the previous search in "Ticket Search"). In my automation code, I implemented a loop to process all returned tickets, but that will not be covered in this documentation.




curl --location 'https://DOMINIO_GLPI.COM/apirest.php/TicketTask?session_token={YOUR-SESSION-TOKEN}' \
--header 'app_token: {YOUR-APP-TOKEN}' \
--header 'Authorization: user_token {YOUR-USER-TOKEN}' \
--header 'Content-Type: application/json' \
--data '{
"input": {
"tickets_id": 2408020023,
"taskcategories_id": 0,
"content": "Verificação diária - Tarefa realizada.",
"actiontime": 60,
"state": 3
}
}
'







We should note that in all cases, we pass the app_token in the header, and the Authorization, which contains the user_token for API authentication.



Key points to consider are the parameters passed in the request body:




  • content: The content that will be added to the task.

  • actiontime: The time spent on the task.

  • state: The status the ticket will have after the task is created.






Closing the Ticket



With the task added to the ticket, it is only necessary to close the ticket, which follows the same process used to add the task.



The following request is used:




curl --location --request PUT 'https://DOMINIO_GLPI.COM/apirest.php/Ticket/2408020023?session_token={YOUR-SESSION-TOKEN}' \
--header 'app_token: {YOUR-APP-TOKEN}' \
--header 'Authorization: user_token {YOUR-USER-TOKEN}' \
--header 'Content-Type: application/json' \
--data '{
"input": {
"status": 6,
"solution": "<p>Chamado finallizado</p>",
"content": "<p>Chamado finallizado</p>",
"solutiontypes_id": 3,
"solutiontemplates_id": 5
}
}'

'






The status: 6 indicates the ticket is closed. For this, it is necessary to pass the solution and content as the texts for the solution. An important point in this request is the solutiontemplates_id, which must be created by the GLPI system administrator, with this ID serving as a reference for a standard solution.

Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten GLPI - Closing Ticket with API

Thematisch verwandte Begriffe: GLPI, Closing, Ticket, with · 6 Treffer

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Zum Aktualisieren ziehen
ZERO-DAY CVE-2026-94040 | A flaw has been found in vas3k TaxHacker up to 0.8.5. Affected by this v…
Advisory →
TTS Reader • tsecurity.de Voice
tsecurity.de Icon
tsecurity.de App
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag
Themen-Radar & Intelligence Matrix
Echtzeit-Taxonomie nach Angriffsvektoren & Plattformen

tsecurity.de Live Threat Radar

🔴 LIVE RADAR
MONITORING
AKTIV
CVE-DATENBANK
LIVE
🔍
Community Radar & Live Chat
Sentinel Bot online • Live-Stream
Dein Cluster: Security Explorer
Match:
lädt…
Verbindung zum Community-Stream wird aufgebaut...
Bearbeitungsmodus — Senden überschreibt deine Nachricht
Community-Puls — was gerade passiert
lädt…
Aktivitäten deiner Analysten
lädt…
Neues Thema oder Eilmeldung einreichen

Reiche interessante Links, Zero-Days oder Debatten ein. Die Community entscheidet per Upvote über die Veröffentlichung.

Heiß diskutierte Einreichungen
🔖 Gespeicherte Artikel
📂 Keine gespeicherten Artikel vorhanden.
Zurück Ziehen Vor
Links: vorheriger Artikel Rechts: nächster Artikel unten: schließen
News NIS-2 Frühwarnung Tier-1 Intel ⏱️ 3 Min vor 10 Min
Artikeldaten werden geladen...

Zurück: vorheriger Vor: nächster
↗ Original-Quelle
Social Reaktionen Deine Reaktion zählt
Einstufung & Relevanz-Poll 0 Stimmen
In sozialen Netzwerken teilen 1-Klick