put
https://app.fracttal.com/api/third_parties_contacts//
Permite atualizar parcialmente um contato existente de um terceiro, incluindo seu status (habilitado ou desabilitado). Somente os campos enviados no body são modificados.
Uso geral — sem add-on específico.
PUT https://app.fracttal.com/api/third_parties_contacts/{third_party_code}/Parâmetros de entrada — Obrigatórios
| Parâmetro | Localização | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
third_party_code | URL | texto | Sim | Código do terceiro ao qual o contato pertence. Não diferencia maiúsculas de minúsculas. |
id_contact | body | inteiro | Sim | Id único do contato do terceiro. |
Parâmetros de entrada — Opcionais
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
active | booleano | Não | Status do contato: true o habilita e false o desabilita. Só é aceito se a empresa tiver habilitada a opção de contatos habilitados. Se for enviado null, é ignorado. |
contact_name | texto (máx. 50) | Não | Nome do contato. Não pode ser vazio nem null. Deve ser único dentro do terceiro. |
contact_email | texto (máx. 200) | Não | E-mail do contato. Deve ser único na empresa, sem diferenciar maiúsculas de minúsculas nem espaços. |
branch_code | texto | Não | Código da filial do contato. Deve existir como filial do terceiro. Não pode ser vazio nem null. |
role | texto (máx. 100) | Não | Cargo do contato. Não pode ser vazio nem null. |
telephone | texto (máx. 50) | Não | Telefone do contato. |
movil | texto (máx. 50) | Não | Celular do contato. |
skype | texto (máx. 50) | Não | Usuário do Skype do contato. |
linkedin | texto (máx. 50) | Não | URL do LinkedIn do contato. |
Regras da atualização
- É uma atualização parcial: um campo que não é enviado no body não é modificado.
- O contato é procurado dentro do terceiro indicado na URL.
- Um body sem nenhum campo atualizável responde com erro
400. - Não é possível alterar o código do terceiro nem mover o contato para outro terceiro.
- Todas as validações são realizadas antes de salvar: se a requisição for rejeitada, o contato não fica com alterações parciais.
- Ao desabilitar um contato (
active: false), o último colaborador associado a esse contato fica inativo. - Não é possível desabilitar um contato que seja responsável ou faça parte da condição de uma regra ativa do automatizador; a requisição responde com erro
409.
Diferenças entre POST, GET e PUT de contatos
POST | GET | PUT | |
|---|---|---|---|
| Operação | Cria um contato | Consulta contatos | Atualiza parcialmente um contato |
| Identificação do contato | Não se aplica (um novo é criado) | Pelo código do terceiro (opcional) | Por id_contact dentro do terceiro da URL |
| Campos modificáveis | Todos os dados do contato na criação | Não se aplica | Somente os campos enviados no body |
Permite modificar active | Não | Não (apenas permite filtrar e consultar) | Sim, é o único que permite |
Parâmetros de saída
| Parâmetro | Tipo | Descrição |
|---|---|---|
success | booleano | Resultado da operação. |
message | texto | Mensagem da operação. |
total | inteiro | Total de registros. |
data | objeto | Contato atualizado, com os mesmos campos retornados pela consulta de contatos (GET), incluindo active. |
Erros
| Código | Causa |
|---|---|
400 | Erro de validação do body: contact_name ou role vazios ou null; branch_code vazio; um valor excede o comprimento máximo do campo (a mensagem indica qual); o body não inclui nenhum campo atualizável; id_contact ausente, não numérico ou decimal; active diferente de true ou false, ou enviado em uma empresa que não tem habilitada a opção de contatos habilitados. |
401 | Token inválido ou ausente. |
404 | O terceiro, o contato (por exemplo, um contato que pertence a outro terceiro ou a outra empresa) ou a filial não existem. |
409 | O e-mail ou o nome do contato já existem; ou se tenta desabilitar um contato com dependências ativas (ERROR_CONTACT_HAS_ACTIVE_DEPENDENCIES). |
500 | Erro não tratado. |
Exemplo
Request
PUT https://app.fracttal.com/api/third_parties_contacts/PROV-01/Request body
{
"id_contact": 100,
"contact_email": "[email protected]",
"telephone": "+57 300 123 4567",
"active": false
}Response 200
200{
"success": true,
"message": "200",
"data": {
"id": 100,
"id_company": 1001,
"id_third_party": 25,
"third_parties_code": "PROV-01",
"third_parties_name": "Proveedor Ejemplo S.A.",
"contact_name": "Ana Pérez",
"contact_email": "[email protected]",
"branch_name": "Sede principal",
"branch_code": "SUC-01",
"role": "Jefe de compras",
"telephone": "+57 300 123 4567",
"movil": "+57 300 765 4321",
"skype": "ana.perez",
"linkedin": "https://www.linkedin.com/in/ana-perez",
"active": false
},
"total": 1
}Response — body sem campos atualizáveis (400)
400)Request body:
{
"id_contact": 100
}Response:
{
"success": false,
"message": "400",
"data": "[{\"ERROR\": \"At least one field to update is required\"}]",
"total": 0
}Response — contato de outro terceiro (404)
404){
"success": false,
"message": "404",
"data": "[{\"ERROR\": \"id_contact is not found for this third party\"}]",
"total": 0
}Response — contato com dependências ativas (409)
409){
"success": false,
"message": "409",
"data": "[{\"ERROR\": \"ERROR_CONTACT_HAS_ACTIVE_DEPENDENCIES\"}]",
"total": 0
}TESTE DE CONEXÃO
