curl --request POST \
--url https://api.wegly.com.br/integrations/external/proposals/{id}/attachments/library \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"document_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"file_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
}
'import requests
url = "https://api.wegly.com.br/integrations/external/proposals/{id}/attachments/library"
payload = {
"document_ids": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"file_ids": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
document_ids: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
file_ids: ['3c90c3cc-0d44-4b50-8888-8dd25736052a']
})
};
fetch('https://api.wegly.com.br/integrations/external/proposals/{id}/attachments/library', 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.wegly.com.br/integrations/external/proposals/{id}/attachments/library",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'document_ids' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'file_ids' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.wegly.com.br/integrations/external/proposals/{id}/attachments/library"
payload := strings.NewReader("{\n \"document_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"file_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
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.wegly.com.br/integrations/external/proposals/{id}/attachments/library")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"document_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"file_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.wegly.com.br/integrations/external/proposals/{id}/attachments/library")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"document_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"file_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}"
response = http.request(request)
puts response.read_body[
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"proposal_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"draft_token": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"kind": "FILE",
"status": "UPLOADING",
"position": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"created_by_user": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"avatar": "<string>"
},
"file": {
"name": "<string>",
"extension": "<string>",
"mime_type": "<string>",
"size_bytes": 123,
"can_preview": true,
"can_play_inline": true
},
"document": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"summary": "<string>",
"workflow_status": "DRAFT",
"has_unpublished_changes": true,
"published_version": 123,
"updated_at": "2023-11-07T05:31:56Z",
"last_edited_by_user": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"avatar": "<string>"
},
"is_available": true,
"access": {
"can_open": true,
"can_edit": true
}
}
}
]{
"statusCode": 123,
"message": "<string>",
"error": "<string>"
}Anexação de itens da biblioteca à proposta
Vincula documentos existentes da biblioteca de documentos da Wegly e copia arquivos do Drive da biblioteca para a proposta. Aceita até 20 itens por requisição, somando document_ids e file_ids. Documentos já anexados são ignorados e devolvidos na resposta. Um documento sem visibilidade COMPANY só pode ser anexado se o usuário criador da chave puder compartilhá-lo. Exige crm/proposal.update e crm/document.read na chave; quando há file_ids, exige também crm/file.create na chave e no usuário criador. O lead ou negócio precisa estar aberto e não arquivado.
curl --request POST \
--url https://api.wegly.com.br/integrations/external/proposals/{id}/attachments/library \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"document_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"file_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
}
'import requests
url = "https://api.wegly.com.br/integrations/external/proposals/{id}/attachments/library"
payload = {
"document_ids": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"],
"file_ids": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
document_ids: ['3c90c3cc-0d44-4b50-8888-8dd25736052a'],
file_ids: ['3c90c3cc-0d44-4b50-8888-8dd25736052a']
})
};
fetch('https://api.wegly.com.br/integrations/external/proposals/{id}/attachments/library', 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.wegly.com.br/integrations/external/proposals/{id}/attachments/library",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'document_ids' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'file_ids' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.wegly.com.br/integrations/external/proposals/{id}/attachments/library"
payload := strings.NewReader("{\n \"document_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"file_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
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.wegly.com.br/integrations/external/proposals/{id}/attachments/library")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"document_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"file_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.wegly.com.br/integrations/external/proposals/{id}/attachments/library")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"document_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ],\n \"file_ids\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n}"
response = http.request(request)
puts response.read_body[
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"proposal_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"draft_token": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"kind": "FILE",
"status": "UPLOADING",
"position": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"created_by_user": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"avatar": "<string>"
},
"file": {
"name": "<string>",
"extension": "<string>",
"mime_type": "<string>",
"size_bytes": 123,
"can_preview": true,
"can_play_inline": true
},
"document": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"summary": "<string>",
"workflow_status": "DRAFT",
"has_unpublished_changes": true,
"published_version": 123,
"updated_at": "2023-11-07T05:31:56Z",
"last_edited_by_user": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"avatar": "<string>"
},
"is_available": true,
"access": {
"can_open": true,
"can_edit": true
}
}
}
]{
"statusCode": 123,
"message": "<string>",
"error": "<string>"
}Authorizations
Chave de integração com prefixo wegly_, enviada em Authorization: Bearer . Não é JWT. A chave deve estar ativa, não excluída e dentro da validade. Com allowed_domain, Origin (ou Referer na ausência de Origin) precisa informar o hostname permitido. A empresa e as permissões são obtidas pela chave.
Path Parameters
UUID da proposta.
Body
Informe ao menos um item em document_ids ou file_ids, com até 20 itens por requisição somando as duas listas.
Response
Anexos correspondentes aos itens informados, incluindo documentos que já estavam anexados.
Sempre null na API externa.
FILE, DOCUMENT Anexos criados pela API externa já nascem READY.
UPLOADING, READY Show child attributes
Show child attributes
Dados do arquivo; presente somente quando kind = FILE.
Show child attributes
Show child attributes
Dados do documento da biblioteca; presente somente quando kind = DOCUMENT.
Show child attributes
Show child attributes
