Integrações
Por sistema: cinco receitas
A mesma requisição todas as vezes; só mudam o momento e o evento.
ERP e retaguarda
- 1QuandoUm pedido é despachado ou uma fatura é lançada.
- 2Enviar
POST /api/v1/reportscom o seu modelo de fatura, o registro comopayloade o número dele comoIdempotency-Key, para que uma nova tentativa nunca gere dois. - 3Volta
urlepdf_url. Guarde-os no registro. - 4Ouvir
report.failed, para sinalizar o registro para uma pessoa.
CRM
- 1QuandoUm negócio é fechado ou a revisão de uma conta vence.
- 2EnviarUma requisição com os números da conta e o seu modelo de one-pager ou de revisão.
- 3VoltaO link hospedado. Compartilhe com os contatos, um link com validade para cada um.
- 4Ouvir
report.ready, para gravar o link na conta.
Apps de inspeção e de campo
- 1QuandoO inspetor envia o checklist.
- 2EnviarAs respostas, com as fotos como URLs https ou enviadas antes por
POST /api/v1/assets. - 3VoltaO link, ou
422indicando o campo que falta, para o app pedir ao inspetor. - 4Ouvir
report.ready, e depois compartilhe com o cliente.
O seu próprio backend
- 1QuandoQualquer evento que o seu produto já tenha.
- 2EnviarA mesma requisição, de qualquer linguagem. Fixe uma versão com
template@Npara que uma publicação nunca mude o que a produção envia. - 3Volta
200quando a renderização terminou em até 2,5 segundos,202enquanto ainda está renderizando. - 4Ouvir
report.readypara o caso 202,report.failedcom o motivo.
Agentes de IA
- 1QuandoAlguém pede um relatório ao seu assistente.
- 2EnviarO agente lê o contrato do modelo e chama
create_report, que faz a mesma requisição. - 3VoltaO link, o PDF e uma versão em Markdown que o agente consegue ler.
- 4OuvirNada novo: os relatórios dele chegam aos seus endpoints como qualquer outro relatório da API.
A requisição
Uma chamada com a chave de um modelo e os seus dados. Os dados são conferidos com o modelo antes: dados recusados nunca viram relatório, e você recebe 422 indicando o campo.
- Chaves de teste (
pf_test_) geram relatórios com marca d'água, grátis e guardados por 24 horas, para você ligar tudo antes de ir para produção. - Idempotency-Key faz uma nova tentativa devolver o mesmo relatório em vez de um segundo.
- Senha do PDF (
pdf_password) protege o próprio PDF com uma senha que o leitor conhece, a partir do Standard; a resposta trazpdf_protected. - Verificar um documento: qualquer pessoa pode conferir um PDF em
/verify, a partir do Standard. A página calcula a impressão digital no navegador e consultaGET /api/verification/check/{sha256}, que é público e tem limite de uso.
curl https://api.pressfox.io/api/v1/reports \
-H "Authorization: Bearer pf_test_…" \
-H "Content-Type: application/json" \
-d '{ "template": "clinic-visit-summary",
"payload": { "patient": { "name": "A. Rivera" } } }' const res = await fetch("https://api.pressfox.io/api/v1/reports", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.PRESSFOX_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({ template: "clinic-visit-summary", payload: { patient: { name: "A. Rivera" } } }),
});
const { url, pdf_url } = await res.json(); import os, requests
r = requests.post("https://api.pressfox.io/api/v1/reports",
headers={"Authorization": f"Bearer {os.environ['PRESSFOX_API_KEY']}"},
json={"template": "clinic-visit-summary", "payload": {"patient": {"name": "A. Rivera"}}})
print(r.json()["url"], r.json()["pdf_url"]) {
"report_id": "rpt_01j9xk7q4",
"status": "ready",
"mode": "test",
"url": "https://app.pressfox.io/report/k7Qm2Zb9…",
"pdf_url": "https://app.pressfox.io/report/k7Qm2Zb9…/pdf",
"pages": 2,
…
} Webhooks
Eventos quando um relatório fica pronto, falha ou é substituído por uma versão corrigida. Os payloads levam ids, status, rótulos e links, nunca dados do relatório.
report.readyreport.failedreport.supersededCada entrega é assinada no formato Standard Webhooks.
Uma entrega que falha é tentada de novo depois de
- 1 minuto
- 5 minutos
- 30 minutos
- 2 horas
- 6 horas
- 12 horas
- 24 horas
Um endpoint que falha por 3 dias sem nenhum sucesso é desativado; um proprietário ou administrador pode reativá-lo depois de corrigido, com a mesma URL e o mesmo segredo.
Referência de webhooksToda entrega leva
webhook-idO id da entrega, o mesmo em cada nova tentativawebhook-timestampQuando foi enviada; rejeite qualquer coisa com mais de cinco minutos de diferençawebhook-signatureUm HMAC-SHA256 do id, do horário e do corpo bruto, com o segredo do seu endpoint
Qualquer biblioteca Standard Webhooks consegue conferir. A documentação tem uma função de verificação para copiar.
Verifique uma entregaCompartilhamento por e-mail e domínio próprio
Compartilhamento por e-mail Todos os planos
Envie um relatório pronto para até 50 pessoas. Cada uma recebe o próprio e-mail e o próprio link, que pode ser revogado só para ela.
- Os links expiram quando você escolher: de 24 horas a 30 dias, ou junto com o relatório.
- Sem pixel de rastreamento no e-mail.
Domínios próprios
Links de relatório num subdomínio seu, como reports.tollandreese.com (não um domínio raiz). A partir do Standard: 1 no Standard, 25 no Pro. Um subdomínio pressfox.app vem com o Standard. Você adiciona três registros:
- TXT
_cf-custom-hostname.reports.tollandreese.comO token de propriedade que o app mostra - TXT
_acme-challenge.reports.tollandreese.comO token de validação do certificado que o app mostra - CNAME
reports.tollandreese.comhosts.pressfox.app (só DNS: no Cloudflare, nuvem cinza)
Agentes de IA via MCP
O Claude e outros clientes MCP se conectam de duas formas, com as mesmas ferramentas. Por URL: você entra na Pressfox e autoriza o assistente para um espaço de trabalho, em modo de teste ou real. Localmente: um pacote pequeno roda na sua máquina com uma chave de API.
Ele pode
- Encontrar modelos
- Criar relatórios
- Ler e compartilhar relatórios
Ele não pode
- Apagar relatórios
- Mudar modelos
- Gerenciar membros, chaves ou cobrança
Desconecte quando quiser em Settings, Security.
Em prévia: escreva para hello@pressfox.io e ligamos para o seu espaço de trabalho.
Configuração e ferramentas do MCPclaude mcp add --transport http pressfox \
https://mcp.pressfox.io/mcp Outros clientes, e o pacote local com uma chave de API: configuração do MCP.
Sem código
- Preencha um formulário no app. Um membro digita os dados e recebe o mesmo relatório. Os webhooks disparam mesmo assim, marcados com
"source": "dashboard". - O Playground. Escolha um modelo, edite os dados com conferência ao vivo e veja a página hospedada, o PDF e a requisição exata em curl, Node ou Python. Só relatórios de teste.
Limites de requisições
| Por minuto | Por chave | Por espaço de trabalho |
|---|---|---|
| Todas as requisições | 600 | 1.200 |
| Criação de relatórios | 120 | 240 |
Acima de um limite: 429 rate_limited com Retry-After em segundos. Precisa de mais? Escreva para nós.
Todas as integrações, e o que está por vir
5 disponíveis, 12 por vir. Os planos para o que está por vir são a nossa intenção, não uma promessa. Conte o que você precisa, e isso sobe na fila.
Disponível hoje
- API RESTCrie, leia, liste e compartilhe relatórios; leia modelos e seus contratos; envie imagens.O Free gera relatórios reais com marca d'água. Construir e conectarTodos os planos Como funciona
- Webhooks assinadosreport.ready, report.failed e report.superseded, assinados no formato Standard Webhooks, com novas tentativas por um dia. Construir e conectarA partir do Starter Como funciona
- MCP para agentes de IAO Claude e outros assistentes encontram modelos, criam relatórios e os leem.Em prévia: escreva para nós e ligamos para o seu espaço de trabalho. Construir e conectarTodos os planos Como funciona
- Compartilhamento por e-mailAté 50 destinatários por envio, cada um com o próprio link com validade. EntregaTodos os planos Como funciona
- Domínios própriosLinks de relatório em reports.yourcompany.com. Um subdomínio pressfox.app a partir do Standard. EntregaA partir do Standard: 1 no Standard, 25 no Pro Como funciona
Por vir
Notificações em chatPrevisto a partir do Standard
- SlackUma mensagem num canal quando um relatório fica pronto ou falha. Peça (você precisa de Slack)
- Microsoft TeamsA mesma mensagem, por um fluxo de trabalho do Teams. Peça (você precisa de Microsoft Teams)
- Google ChatA mesma mensagem, num espaço. Peça (você precisa de Google Chat)
- DiscordA mesma mensagem, num canal. Peça (você precisa de Discord)
EntregaPrevisto a partir do Pro
- E-mails de relatório do seu próprio domínioEnvios saindo de reports@ seu domínio, depois de verificado. Peça (você precisa de E-mails de relatório do seu próprio domínio)
Entrega em armazenamentoPrevisto a partir do Standard
- S3, R2 e GCSCada PDF pronto copiado para o seu próprio bucket. Peça (você precisa de S3, R2 e GCS)
- Google DriveCada PDF pronto salvo numa pasta que você escolher. Peça (você precisa de Google Drive)
- OneDrive e SharePointO mesmo, no Microsoft 365. Peça (você precisa de OneDrive e SharePoint)
- DropboxO mesmo, numa pasta do Dropbox. Peça (você precisa de Dropbox)
Plataformas de automaçãoOs gatilhos precisam de webhooks (A partir do Starter)
- ZapierReceitas na documentação primeiro, um app nativo depois. Peça (você precisa de Zapier)
- MakeReceitas na documentação primeiro, um app nativo depois. Peça (você precisa de Make)
- n8nReceitas na documentação primeiro, um nó nativo depois. Peça (você precisa de n8n)
O que ela não faz
- Ela não busca dados nos seus sistemas. Você os envia.
- Ainda não há apps nativos para Zapier, Make ou n8n, nem mensagens em chat, nem entrega em armazenamento.
- Ainda não há SDKs oficiais: a requisição é JSON simples sobre HTTPS.
- Os payloads dos webhooks levam links, não dados do relatório, e os segredos de assinatura ainda não fazem rotação.
- Domínios próprios precisam ser um subdomínio, não um domínio raiz.
Falta alguma coisa?
Conte qual é o sistema e o que deve acontecer. Os pedidos decidem o que construímos a seguir.