Orçamento do carrinho em PDF
Gera um PDF com o carrinho do cliente da conversa e o envia pelo WhatsApp, ou apenas o pré-visualiza.
O orçamento em PDF é a versão formal do carrinho: um documento com os itens e valores, útil para compras B2B que o cliente precisa aprovar. As duas rotas usam o carrinho atual do cliente ligado à conversa (monte-o antes, em Carrinho do atendente).
Pré-visualizar o PDF
Devolve os bytes do PDF (application/pdf, Content-Disposition: inline), sem enviar nada ao cliente. A resposta nunca é guardada em cache.
/api/v1/admin/whatsapp/threads/{id}/cart-pdfAdminGera e devolve o PDF do carrinho, sem enviar
Parâmetros de caminho
idstringobrigatórioUUID da conversa.
Exemplo de requisição (Pré-visualizar o PDF)
bash
curl "$BASE_URL/api/v1/admin/whatsapp/threads/014ff6d8-8ff0-40da-82ce-e5a349b57be6/cart-pdf" \
-H "Authorization: Bearer $TOKEN" \
-o orcamento.pdfResposta (Pré-visualizar o PDF)
200PDF
http
HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Disposition: inline; filename="orcamento.pdf"
X-Generated-At: 2026-10-11T22:30:00Z
%PDF-1.4 ...Erros (Pré-visualizar o PDF)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O módulo WhatsApp Commerce está desligado na loja, o usuário não é administrador ou não tem o privilégio exigido. | {"error":"module_disabled","module":"whatsapp-commerce"} ou {"error":"insufficient privileges","required":"manage_orders"} ou {"error":"admin access required"} |
| 404 | A conversa não existe. | {"error":"thread not found"} |
| 422 | Conversa sem cliente cadastrado (thread_no_customer_user) ou carrinho vazio (cart_empty). | {"error":"cart_empty"} |
| 500 | Falha ao gerar o PDF. | {"error":"Failed to build cart PDF: ..."} |
Enviar o PDF ao cliente
Gera o PDF, envia-o à Meta como mídia e o entrega ao cliente como documento. A mensagem fica registrada na conversa, mesmo se o envio falhar. Sem corpo.
/api/v1/admin/whatsapp/threads/{id}/send-cart-pdfAdminGera o PDF do carrinho e o envia como documento no WhatsApp
Parâmetros de caminho
idstringobrigatórioUUID da conversa.
Exemplo de requisição (Enviar o PDF ao cliente)
bash
curl -X POST "$BASE_URL/api/v1/admin/whatsapp/threads/014ff6d8-8ff0-40da-82ce-e5a349b57be6/send-cart-pdf" \
-H "Authorization: Bearer $TOKEN"Resposta (Enviar o PDF ao cliente)
200Enviado
json
{
"sent": true,
"filename": "orcamento-2026-10-11.pdf",
"size_bytes": 48213,
"wa_message_id": "wamid.HBgNNTUx..."
}Campos da resposta
sentbooleantrue.filenamestringNome do arquivo enviado.
size_bytesintegerTamanho do PDF em bytes.
wa_message_idstringId da mensagem na Meta.
Erros (Enviar o PDF ao cliente)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O módulo WhatsApp Commerce está desligado na loja, o usuário não é administrador ou não tem o privilégio exigido. | {"error":"module_disabled","module":"whatsapp-commerce"} ou {"error":"insufficient privileges","required":"manage_orders"} ou {"error":"admin access required"} |
| 404 | A conversa não existe. | {"error":"thread not found"} |
| 422 | Conversa sem cliente cadastrado ou carrinho vazio. | {"error":"cart_empty","hint":"The customer's cart is empty. Add at least one item before sending the PDF quote."} |
| 502 | Sem credenciais (credentials_unavailable), falha ao subir o PDF (meta_upload_failed) ou ao enviar (cloud_api_send_failed). | {"error":"meta_upload_failed","detail":"...","filename":"...","size_bytes":0} |