put
https://app.fracttal.com/api/work_requests_attachments_files/
Modifica um anexo já associado a uma solicitação de trabalho. Em um anexo do tipo Link é possível alterar a URL e/ou o texto visível (label); em um anexo do tipo Arquivo só é possível alterar o texto visível.
PUT https://app.fracttal.com/api/work_requests_attachments_files/{id}Parâmetros de entrada
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | inteiro | Sim (na rota) | Identificador do anexo. Pode ser consultado aqui. (campo id) Também é aceito dentro do body. |
user_code | texto | Sim | Código do recurso humano que realiza a edição. Deve ter uma conta de usuário ativa; com essa conta é validada a permissão de edição. |
url | texto | Condicional | Nova URL do anexo. Aplica-se apenas a anexos do tipo Link. Deve começar com http:// ou https:// e ter no máximo 2048 caracteres. |
label | texto | Condicional | Novo texto visível do anexo (Link ou Arquivo). Máximo de 500 caracteres. |
Regras da edição
- Você deve enviar pelo menos
urloulabel. Um valor vazio ou apenas com espaços é considerado como não enviado.- Se você enviar apenas um dos dois campos, o outro mantém seu valor atual.
- Em um anexo do tipo Arquivo não é possível alterar
url: se você a enviar, o serviço respondeURL_NOT_APPLICABLE_FOR_FILE_ATTACHMENTS.- Não é possível alterar o tipo de um anexo (de Link para Arquivo ou vice-versa).
- A solicitação deve estar no status Aberta (1), Em andamento (2) ou Resolvida sem OS (4). Em qualquer outro status o serviço responde
REQUEST_NOT_EDITABLE.- O usuário indicado em
user_codeprecisa de permissão de edição sobre solicitações de trabalho e acesso à localização da solicitação.- Um anexo de outra empresa é tratado da mesma forma que um inexistente (
ATTACHMENT_NOT_FOUND).
Parâmetros de saída
| Parâmetro | Tipo | Descrição |
|---|---|---|
success | booleano | true se a edição foi realizada. |
message | texto | ACTION_DONE quando a operação é bem-sucedida. Em caso de erro, contém o código do erro. |
total | inteiro | 1 quando a operação é bem-sucedida. |
data | objeto | Anexo atualizado. |
data.id | inteiro | Identificador do anexo. |
data.id_company | inteiro | Empresa à qual o anexo pertence. |
data.id_request | inteiro | Solicitação de trabalho à qual o anexo pertence. |
data.id_status | inteiro | Status registrado com o anexo. |
data.path | texto | Arquivo: identificador do arquivo armazenado. Link: a URL. |
data.description | texto | Texto visível do anexo (label). |
data.date | texto | Data de criação do anexo. |
data.size | inteiro | Tamanho em bytes. 0 para anexos do tipo Link. |
data.type | inteiro | Tipo de anexo: 1 = Arquivo, 2 = Link. |
Erros
| Código | Causa |
|---|---|
400 | Validation failed. Invalid fields: falta id ou user_code. |
400 | At least one field to update must be provided: url or label: não foi enviado url nem label (ou chegaram vazios). |
400 | URL_NOT_APPLICABLE_FOR_FILE_ATTACHMENTS: foi enviada url para um anexo do tipo Arquivo. |
400 | UNSUPPORTED_ATTACHMENT_TYPE: o tipo do anexo não pode ser editado com este serviço. |
400 | REQUEST_NOT_EDITABLE: o status da solicitação não permite editar anexos. |
400 | INVALID_URL: a URL não começa com http:// ou https://. |
400 | URL_TOO_LONG: a URL excede 2048 caracteres. |
400 | LABEL_TOO_LONG: o label excede 500 caracteres. |
403 | O usuário de user_code não tem permissão de edição sobre a solicitação, não tem acesso à sua localização ou sua conta está desativada. |
404 | ATTACHMENT_NOT_FOUND: o anexo não existe ou pertence a outra empresa. |
404 | O user_code não existe, está inativo ou não possui uma conta de usuário associada. |
401 | INVALID_TOKEN: o token de autenticação não é válido. |
Nota sobre os códigos de erroQuando a operação falha, o código do erro chega no campo
message(por exemplo"403"ou"404") e o detalhe emdata[0].ERROR. A resposta HTTP desses erros é400, independentemente do valor demessage; usemessagepara distinguir a causa.
Exemplo
Request body
PUT /api/work_requests_attachments_files/102
{
"user_code": "1001",
"url": "https://ejemplo.com/manual-equipo-v2",
"label": "Manual del equipo (versión 2)"
}Response 200
200{
"success": true,
"message": "ACTION_DONE",
"data": {
"id": 102,
"id_company": 188,
"id_request": 4010,
"id_status": 1,
"path": "https://ejemplo.com/manual-equipo-v2",
"description": "Manual del equipo (versión 2)",
"date": "2026-10-06",
"size": 0,
"type": 2
},
"total": 1
}Response — Arquivo com url (400)
url (400){
"success": false,
"message": "400",
"total": 0,
"data": [
{ "ERROR": "URL_NOT_APPLICABLE_FOR_FILE_ATTACHMENTS" }
]
}Response — Anexo não encontrado (404)
404){
"success": false,
"message": "404",
"total": 0,
"data": [
{ "ERROR": "ATTACHMENT_NOT_FOUND" }
]
}Response — Sem permissão de edição (403)
403){
"success": false,
"message": "403",
"total": 0,
"data": [
{ "ERROR": "User does not have permission to edit request 4010" }
]
}OpenAPI definition
{
"openapi": "3.1.0",
"info": {
"title": "Solicitações de trabalho — anexos",
"version": "3-pt"
},
"servers": [
{ "url": "https://app.fracttal.com/api/work_requests_attachments_files" }
],
"security": [{}],
"paths": {
"/{id}": {
"put": {
"summary": "Editar um anexo de uma solicitação de trabalho",
"description": "",
"operationId": "editar-um-anexo-de-uma-solicitacao-de-trabalho",
"deprecated": false,
"security": []
}
}
},
"x-readme": {
"headers": [],
"explorer-enabled": false,
"proxy-enabled": true
},
"x-readme-fauxas": true
}