curl --request POST 'https://gyra-core.gyramais.com.br/v1/collections/6612a7f30000000000000001/send' \
--header 'Authorization: Bearer <token>'const resposta = await fetch("https://gyra-core.gyramais.com.br/v1/collections/6612a7f30000000000000001/send", {
method: "POST",
headers: { Authorization: `Bearer ${token}` },
});
const dados = await resposta.json();
import requests
resposta = requests.post(
"https://gyra-core.gyramais.com.br/v1/collections/6612a7f30000000000000001/send",
headers={"Authorization": f"Bearer {token}"},
)
dados = resposta.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://gyra-core.gyramais.com.br/v1/collections/{id}/send",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://gyra-core.gyramais.com.br/v1/collections/{id}/send"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://gyra-core.gyramais.com.br/v1/collections/{id}/send")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://gyra-core.gyramais.com.br/v1/collections/{id}/send")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "6612a7f30000000000000051",
"registryId": "6612a7f30000000000000001",
"templateSlug": "onboarding-pj",
"templateName": "Onboarding PJ",
"status": "SENT",
"channel": "BOTH",
"sentAt": "2026-09-05T14:20:00.000Z",
"subjectName": "AURORA COMPONENTES INDUSTRIAIS LTDA",
"subjectDocument": "11444777000161",
"itemsTotal": 5,
"itemsResolved": 0,
"itemsAwaitingOperator": 0,
"publicUrl": "https://toolbox.gyramais.com.br/envio/2f8cQ1r7aWxK9pLmN3bV5tYzE6uH0sJdR4gXoC8ifAe",
"notified": true,
"links": [
{
"recipientId": "6612a7f30000000000000061",
"name": "Ana Souza",
"document": "52998224725",
"link": "https://toolbox.gyramais.com.br/envio/2f8cQ1r7aWxK9pLmN3bV5tYzE6uH0sJdR4gXoC8ifAe",
"publicUrl": "https://toolbox.gyramais.com.br/envio/2f8cQ1r7aWxK9pLmN3bV5tYzE6uH0sJdR4gXoC8ifAe"
}
]
}{
"code": 400,
"message": "Nenhum destinatário pendente para enviar."
}{
"code": 401,
"message": "Token de acesso inválido."
}{
"code": 403,
"message": "Você não tem permissão para acessar este recurso."
}{
"code": 404,
"message": "Solicitação não encontrada."
}{
"code": 409,
"message": "Esta solicitação não está mais aberta para envio."
}{
"code": 500,
"message": "Internal server error"
}{
"code": 502,
"message": "Não foi possível enviar a solicitação."
}Enviar Solicitação
Primeiro envio de um rascunho, ou reenvio de um pedido que o cliente não respondeu.
curl --request POST 'https://gyra-core.gyramais.com.br/v1/collections/6612a7f30000000000000001/send' \
--header 'Authorization: Bearer <token>'const resposta = await fetch("https://gyra-core.gyramais.com.br/v1/collections/6612a7f30000000000000001/send", {
method: "POST",
headers: { Authorization: `Bearer ${token}` },
});
const dados = await resposta.json();
import requests
resposta = requests.post(
"https://gyra-core.gyramais.com.br/v1/collections/6612a7f30000000000000001/send",
headers={"Authorization": f"Bearer {token}"},
)
dados = resposta.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://gyra-core.gyramais.com.br/v1/collections/{id}/send",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://gyra-core.gyramais.com.br/v1/collections/{id}/send"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://gyra-core.gyramais.com.br/v1/collections/{id}/send")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://gyra-core.gyramais.com.br/v1/collections/{id}/send")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "6612a7f30000000000000051",
"registryId": "6612a7f30000000000000001",
"templateSlug": "onboarding-pj",
"templateName": "Onboarding PJ",
"status": "SENT",
"channel": "BOTH",
"sentAt": "2026-09-05T14:20:00.000Z",
"subjectName": "AURORA COMPONENTES INDUSTRIAIS LTDA",
"subjectDocument": "11444777000161",
"itemsTotal": 5,
"itemsResolved": 0,
"itemsAwaitingOperator": 0,
"publicUrl": "https://toolbox.gyramais.com.br/envio/2f8cQ1r7aWxK9pLmN3bV5tYzE6uH0sJdR4gXoC8ifAe",
"notified": true,
"links": [
{
"recipientId": "6612a7f30000000000000061",
"name": "Ana Souza",
"document": "52998224725",
"link": "https://toolbox.gyramais.com.br/envio/2f8cQ1r7aWxK9pLmN3bV5tYzE6uH0sJdR4gXoC8ifAe",
"publicUrl": "https://toolbox.gyramais.com.br/envio/2f8cQ1r7aWxK9pLmN3bV5tYzE6uH0sJdR4gXoC8ifAe"
}
]
}{
"code": 400,
"message": "Nenhum destinatário pendente para enviar."
}{
"code": 401,
"message": "Token de acesso inválido."
}{
"code": 403,
"message": "Você não tem permissão para acessar este recurso."
}{
"code": 404,
"message": "Solicitação não encontrada."
}{
"code": 409,
"message": "Esta solicitação não está mais aberta para envio."
}{
"code": 500,
"message": "Internal server error"
}{
"code": 502,
"message": "Não foi possível enviar a solicitação."
}Quando usar
Primeiro envio de um rascunho, ou reenvio de um pedido que o cliente não respondeu. Sem corpo. O recado do operador é o que foi gravado na criação; o reenvio não aceita um texto novo.Authorizations
Enter JWT token
Path Parameters
Id da solicitacao.
Response
O detalhe da solicitacao (mesmo corpo de GET /v1/collections/{id}) mais os links por destinatario, publicUrl e notified. Cada destinatario enviado traz tambem link.
A solicitacao criada. Quando ela e enviada na criacao, traz tambem os links: com channel NONE e por aqui que voce recebe o link para entregar. Os links so existem nesta resposta e na de envio.
DRAFT, SENT, IN_PROGRESS, COMPLETED, EXPIRED, CANCELED AUTOMATIC, REVIEW NONE: a plataforma nao avisou ninguem e quem entrega o link e voce.
WHATSAPP, EMAIL, BOTH, NONE Dias apos o envio.
O comportamento herdado do modelo.
Recado do operador ao destinatario.
Resumo do cadastro alvo, para evitar uma segunda chamada.
Hide child attributes
Hide child attributes
DOCUMENT, IDENTITY, CONSENT, SIGNATURE, FORM, CUSTOM CONTRATO_SOCIAL, ALTERACAO_CONTRATUAL, ESTATUTO_SOCIAL, REQUERIMENTO_EMPRESARIO, ATA_ASSEMBLEIA, PROCURACAO_PJ, CERTIDAO_JUNTA, CERTIDAO_QSA, IRPJ_ECF, DECLARACAO_FATURAMENTO, CERTIFICADO_SIMPLES_NACIONAL, DEMONSTRACOES_FINANCEIRAS, EXTRATO_BANCARIO, CERTIDAO_PGFN_PJ, CERTIDAO_FGTS, CADIN_FEDERAL, CADIN_ESTADUAL, ESOCIAL_PJ, DOC_IDENTIDADE, COMPROVANTE_RESIDENCIA, DIRPF, COMPROVANTE_RENDA, CERTIDAO_PF, PROCURACAO_PF, COMPROVACAO_ESTADO_CIVIL, FORA_DE_ESCOPO, NAO_IDENTIFICADO, null O que o destinatario le.
Regras da coleta para este item (recencia, formatos, metodos de identidade).
PENDING, ALREADY_ON_FILE, SUBMITTED, PROCESSING, VALIDATED, REJECTED, MANUAL_REVIEW, AWAITING_OPERATOR, WAIVED, EXPIRED O documento que este item gerou no cadastro.
VALIDO, INVALIDO, INCONCLUSIVO, ANALISE_MANUAL, null Motivo tecnico, para o operador.
Um por arquivo enviado, com o parecer de cada um. Vazio no item que ainda nao recebeu nada.
Hide child attributes
Hide child attributes
PENDING, ALREADY_ON_FILE, SUBMITTED, PROCESSING, VALIDATED, REJECTED, MANUAL_REVIEW, AWAITING_OPERATOR, WAIVED, EXPIRED VALIDO, INVALIDO, INCONCLUSIVO, ANALISE_MANUAL, null SCR, null O formulario pedido.
O que a extracao sugeriu.
O que a pessoa respondeu.
A avaliacao da verificacao em portugues (veredito, similaridade, prova de vida, sinais de antifraude). O payload cru do provedor NAO vem aqui.
Quantas imagens estao guardadas. Os enderecos saem por acao explicita, que fica na trilha.
INDIVIDUAL, JOINT SIGNATURE, SIGNATURE_AND_IDENTITY, null "2 de 4 assinaram", ja pronto.
Hide child attributes
Hide child attributes
Nome das partes obrigatorias que faltam.
Assinaram o texto e esperam a verificacao de identidade.
Partes sem contato para receber o link.
true quando a via em PDF pode nascer.
APPROVED, RESEND_REQUESTED, WAIVED, null Por que o item nasceu ALREADY_ON_FILE, em portugues.
true quando ha via assinada para baixar em GET /v1/collections/{id}/items/{itemId}/signed-document.
Quantos e-mails foram oferecidos para a verificacao por e-mail (nunca quais).
Hide child attributes
Hide child attributes
E.164.
FAILED quer dizer que a MENSAGEM nao chegou. NO_ITEMS: nao sobrou item para essa pessoa.
PENDING, DELIVERED, OPENED, IN_PROGRESS, COMPLETED, FAILED, NO_ITEMS PENDING, SENT, DELIVERED, FAILED PENDING, SENT, DELIVERED, FAILED So volta na criacao e na reemissao. O token cru nunca e persistido.
A trilha, append-only. O detalhe traz os 100 eventos mais recentes.
Itens esperando decisao humana (AWAITING_OPERATOR ou MANUAL_REVIEW).
O mesmo valor de id.
O link, quando ha um destinatario so. Com varios, vem null e a resposta e links.
false quando o canal e NONE: ninguem foi avisado e quem entrega o link e voce.

