Docs/API Reference/Recibos
DashboardGitHub

Após a confirmação de pagamento, a Dyvit gera automaticamente um Termo de Quitação com protocolo único. O recibo pode ser enviado via WhatsApp e email, e fica disponível para download.

Endpoints

#
MétodoEndpointDescrição
GET/api/receipts/:protocolDownload por protocolo (requer HMAC sig)
POST/api/receipts/generate/:paymentIdGerar recibo. Com ?send=true, envia via WhatsApp
POST/api/receipts/regenerate-allRegenerar os recibos do cliente, uma página por chamada
ℹ️

Todos os endpoints requerem autenticação via JWT (Authorization: Bearer TOKEN), exceto o download por protocolo que usa assinatura HMAC.


Download por protocolo

GET/api/receipts/:protocol

Retorna o Termo de Quitação pelo número de protocolo. Requer uma assinatura HMAC válida no query parameter sig, e nenhuma outra credencial é aceita: um header Authorization não substitui a assinatura. Esse endpoint é público e usado nos links enviados ao devedor.


Gerar recibo

POST/api/receipts/generate/:paymentId

Gera o Termo de Quitação para um pagamento confirmado do cliente autenticado. Com ?send=true, entrega o documento via WhatsApp no telefone cadastrado na dívida. O destino não é escolhido por quem chama.

Reemitir o mesmo pagamento preserva o protocolo já entregue ao devedor, então os links enviados antes continuam válidos.


Regenerar todos os recibos

POST/api/receipts/regenerate-all

Regenera os recibos do cliente autenticado. Útil após atualizações no template do Termo de Quitação.

Cada chamada processa uma página de no máximo 100 pagamentos, porque a renderização do PDF acontece dentro do ciclo da requisição. A resposta traz capped e nextSkip: enquanto nextSkip não for null, chame de novo com ?skip=<nextSkip>.

curl -X POST "$API/api/receipts/regenerate-all?force=true&take=100&skip=0" \
  -H "Authorization: Bearer $TOKEN"
# {"total":100,"regenerated":100,"skipped":0,"failed":[],"capped":true,"nextSkip":100}
⚠️

Sem skip, uma segunda chamada com force=true reprocessa as mesmas 100 primeiras linhas.