Lembrando que para este processo já deveremos ter efetuado a autenticação e estarmos em posse do token.
<?php
$cliente_vigoweb = "https://web01.vigo.com.br";
$token = "ADQUIRIDO ANTERIORMENTE NO PROCESSO DE AUTENTICAÇÃO";
//----------------------------------------------------------------------------------------------
// Upload do arquivo
//----------------------------------------------------------------------------------------------
$nome_arquivo = "documento.png"; // Este arquivo deve estar na pasta raiz do script, caso contrário informar o caminho completo
$tipo_arquivo = "image/png";
$post = array("file" => new cURLFile($nome_arquivo, $tipo_arquivo, "uploadanexo.tmp"));
$curl1 = curl_init();
curl_setopt($curl1, CURLOPT_POST, 1);
curl_setopt($curl1, CURLOPT_URL, $cliente_vigoweb . '/api/app_uploadanexo');
curl_setopt($curl1, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl1, CURLOPT_HTTPHEADER, ['Content-Type: multipart/form-data', "Authorization: Bearer " . $token]);
curl_setopt($curl1, CURLOPT_POSTFIELDS, $post);
$result = curl_exec($curl1);
curl_close ($curl1);
//----------------------------------------------------------------------------------------------
// Dados do registro
//----------------------------------------------------------------------------------------------
$id_cliente = 1;
$id_atendimento = 1;
$curl2 = curl_init();
curl_setopt($curl2, CURLOPT_POST, 1);
curl_setopt($curl2, CURLOPT_URL, $cliente_vigoweb . '/api/app_insertanexo');
curl_setopt($curl2, CURLOPT_POSTFIELDS, '{"id":0, "id_cliente": ' . $id_cliente . ', "id_atendimento": ' . $id_atendimento . ', "tipo": "PNG", "extensao": "png", "descricao": "Descritivo do arquivo" }');
curl_setopt($curl2, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl2, CURLOPT_HTTPHEADER, ['Content-Type: application/json', "Authorization: Bearer " . $token]);
$result = curl_exec($curl2);
curl_close($curl2);
echo $result;
?>