curl --request POST \
--url https://api.juridiq.com.br/audit-log/{id}/restore \
--header 'x-juridiq-api-key: <api-key>'import requests
url = "https://api.juridiq.com.br/audit-log/{id}/restore"
headers = {"x-juridiq-api-key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'x-juridiq-api-key': '<api-key>'}};
fetch('https://api.juridiq.com.br/audit-log/{id}/restore', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.juridiq.com.br/audit-log/{id}/restore",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"x-juridiq-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.juridiq.com.br/audit-log/{id}/restore"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-juridiq-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.juridiq.com.br/audit-log/{id}/restore")
.header("x-juridiq-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.juridiq.com.br/audit-log/{id}/restore")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-juridiq-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"entityId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"entityType": "<string>",
"message": "<string>"
}{
"message": "<string>",
"issues": "<unknown>"
}{
"message": "<string>",
"statusCode": 123,
"translateMessage": "<string>"
}{
"message": "<string>",
"statusCode": 123,
"translateMessage": "<string>"
}{
"message": "<string>",
"statusCode": 123,
"translateMessage": "<string>"
}{
"message": "<string>",
"statusCode": 123,
"translateMessage": "<string>"
}Recuperar item excluído a partir de log de auditoria
Recria um item excluído a partir do registro DELETE dele. Vale para task, consulting, consultingColumn e funnel. O registro DELETE fica 90 dias; depois disso, a resposta é 404.
O item volta com o mesmo id e só com estes campos de changes.before (campo nulo conta como ausente):
- task: title, description, status, priority, initialDate, finalDate, initialHour, finalHour, taskKanbanColumnId, lawSuitId, isPrivate, points, needValidation, isValidated e ownerId. Sem title, usa entityLabel. Ausentes: status Pendente, priority Normal, initialDate a data atual em UTC, points 0, isPrivate, needValidation e isValidated false; os demais ficam vazios. Sem ownerId, a tarefa volta sem dono;
- consulting: subject, personId, lawSuitId, consultingColumnId, ownerId, isPrivate, currentIndex, tagIds e taskIds. Sem subject, usa entityLabel. Ausentes: isPrivate false; lawSuitId, consultingColumnId, currentIndex, tagIds e taskIds ficam vazios; sem ownerId, o dono passa a ser quem recupera; sem personId, 400. A conclusão segue a coluna: fora da coluna de concluídos fica vazia; na de concluídos, mantém completedAt (e completedById, se o usuário ainda existe) ou, sem conclusão no registro, conclui agora em nome de quem recupera. As tarefas de taskIds saem do atendimento em que estiverem e passam para este;
- consultingColumn: name, color, timeLimitDays, showBadgeProgress, index e kind. Sem name, usa entityLabel ou “Coluna recuperada”. Ausentes: timeLimitDays 30, showBadgeProgress true, kind IN_PROGRESS; color e index ficam vazios. Volta sem funil;
- funnel: name, index e isDefault. Sem name, usa entityLabel. Ausentes: isDefault false; index fica vazio. Volta com as colunas padrão.
Relações e vínculos fora dessa lista não voltam (ex.: responsáveis, comentários, anexos, subtarefas, campos personalizados, registros do atendimento e histórico). A recuperação grava um registro CREATE.
Permissão: o dono da chave precisa ser Gestor ou ter “Configurações - Usuários › Criar e Editar”; sem isso, 403.
Erros: 404 quando o registro não existe neste escritório. 400 quando: o registro não é DELETE; o tipo não é recuperável; o registro não guarda dados; falta a pessoa do atendimento; falta o título da tarefa, o assunto do atendimento ou o nome do funil e também o entityLabel; um vínculo guardado não existe mais (coluna, processo, pessoa, dono, etiqueta ou tarefa); ou já existe funil padrão. 409 quando já existe item com o mesmo id (já recuperado ou ainda existe) ou funil com o mesmo nome.
curl --request POST \
--url https://api.juridiq.com.br/audit-log/{id}/restore \
--header 'x-juridiq-api-key: <api-key>'import requests
url = "https://api.juridiq.com.br/audit-log/{id}/restore"
headers = {"x-juridiq-api-key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'x-juridiq-api-key': '<api-key>'}};
fetch('https://api.juridiq.com.br/audit-log/{id}/restore', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.juridiq.com.br/audit-log/{id}/restore",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"x-juridiq-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.juridiq.com.br/audit-log/{id}/restore"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-juridiq-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.juridiq.com.br/audit-log/{id}/restore")
.header("x-juridiq-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.juridiq.com.br/audit-log/{id}/restore")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-juridiq-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"entityId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"entityType": "<string>",
"message": "<string>"
}{
"message": "<string>",
"issues": "<unknown>"
}{
"message": "<string>",
"statusCode": 123,
"translateMessage": "<string>"
}{
"message": "<string>",
"statusCode": 123,
"translateMessage": "<string>"
}{
"message": "<string>",
"statusCode": 123,
"translateMessage": "<string>"
}{
"message": "<string>",
"statusCode": 123,
"translateMessage": "<string>"
}Authorizations
Chave de API do escritório (criada no painel). Envie o valor no header x-juridiq-api-key. A API aberta aplica rate limit por chave (veja a documentação de integradores).
Path Parameters
ID do registro de auditoria DELETE (campo id da listagem), não o do item

