Enviar e-mail com anexo
O notify.email_attachment envia e-mails com arquivo anexado direto pela API: o boleto, a nota fiscal ou o relatório chega dentro da mensagem, pronto para guardar. Você informa destinatário, texto e anexo em uma chamada HTTP, e cada envio sai por US$ 0,0055 — pago por uso, sem mensalidade.
Anexo ou link para baixar?
Anexo é a escolha certa quando o destinatário precisa guardar o documento: nota fiscal para a contabilidade, holerite para o arquivo pessoal, contrato assinado. O arquivo fica na caixa de entrada dele para sempre, mesmo que o seu sistema mude de endereço. Link faz mais sentido quando o arquivo é pesado demais ou muda com frequência. A regra prática brasileira: documento fiscal e comprovante vão anexados, porque é assim que o contador espera receber.
Como anexar o arquivo na chamada
A chamada em /notify/email-attachment leva destinatário, assunto, corpo e o arquivo — PDF, XML, planilha, imagem, o formato que o destinatário espera. A API monta o e-mail com o anexo e despacha; você recebe um task_id e consulta o resultado para confirmar que a mensagem foi aceita. É o mesmo fluxo simples do envio comum, com um campo a mais. Nenhum servidor de e-mail para configurar, nenhuma biblioteca de MIME para brigar.
Tamanho: o que cabe em um e-mail
E-mail não foi feito para arquivo gigante. Os provedores do mercado costumam recusar mensagens acima de 20 a 25 MB, e o destinatário no celular agradece se o anexo for bem menor que isso. Um DANFE em PDF tem poucas centenas de KB; um relatório com imagens pode passar de 10 MB rápido. Se o documento está pesado, comprima antes — ou repense: acima do teto dos provedores, o caminho é mandar um link.
A conta, com exemplo real
Cada envio custa US$ 0,002 pela chamada mais US$ 0,0035 pelo e-mail — anexo incluído, sem tarifa extra por peso. Um RH que manda 200 holerites no quinto dia útil gasta US$ 1,10 no mês. Um escritório contábil que despacha 1.000 notas fiscais para clientes paga US$ 5,50. O preço fica publicado e a cobrança é por uso: mês sem envio é mês sem custo.
Casos de uso
Contador enviando DANFE e XML
Rafael Almeida Costa fecha o mês e o sistema dele dispara, para cada cliente, um e-mail com o DANFE em PDF e o XML da NF-e anexados — o par exato que a contabilidade precisa arquivar.
Holerite no quinto dia útil
O RH da Distribuidora Horizonte Verde envia o holerite de cada funcionário em PDF, direto na caixa de entrada. Márcia Regina Oliveira aposentou a pilha de impressões e o mural de recados.
Nota de serviço do mês
A TecnoSul Soluções Digitais emite as NFS-e e o sistema anexa cada PDF ao e-mail de cobrança do cliente correspondente, junto do boleto. Ninguém mais pede segunda via por WhatsApp no dia 10.
Orçamento em PDF do MEI
Juliana Nascimento, designer MEI, fecha orçamentos pelo celular: o sistema gera o PDF da proposta e envia anexado ao e-mail do cliente, com o texto de apresentação dela.
Perguntas frequentes
Posso mandar o XML da nota fiscal junto com o PDF?
Sim — e esse é justamente o uso mais comum no Brasil: o contador quer o DANFE para conferir e o XML para importar no sistema. Anexe o que o destinatário precisa receber.
Existe limite de tamanho para o anexo?
Não publicamos um teto próprio, mas o ecossistema de e-mail tem o dele: provedores costumam recusar mensagens acima de 20 a 25 MB. Para arquivos nessa faixa ou maiores, prefira enviar um link.
O anexo muda o preço do envio?
Não. Com ou sem anexo, o envio custa US$ 0,002 pela chamada mais US$ 0,0035 pelo e-mail. Não existe cobrança por MB.
É seguro anexar documento com CPF?
O conteúdo é processado apenas para a entrega, mas lembre que e-mail comum não é criptografado de ponta a ponta. Para documentos sensíveis, uma proteção simples e eficaz é enviar o PDF com senha e combinar a senha por outro canal.
Qual é a forma de pagamento?
PayPal, em dólar, com compra direta — sem cadastro, sem assinatura. Pix ainda não está disponível, e preferimos dizer isso com todas as letras a fingir o contrário.
O destinatário precisa de algum programa especial?
Não: o anexo chega como em qualquer e-mail e abre com o leitor normal do formato — PDF no leitor de PDF, planilha no aplicativo de planilhas, inclusive no celular.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/notify/email-attachment \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/notify/email-attachment", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/notify/email-attachment",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/notify/email-attachment", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/notify/email-attachment", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"input": "…"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "notify.email_attachment",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |