Antes de trocar pk_test_ por pk_live_, percorra esta checklist.

Verificação funcional

1

SDK carrega sem erros

Sem erros no console; o botão renderiza dentro do container.
2

Multicaixa Express → onApprove

Pagamento confirmado dispara onApprove e redireciona para /sucesso.
3

Referência EMIS → onPending

onPending recebe os dados da referência (data.payment?.data?.paymentReference e entity.number); a página /pendente mostra-os ao cliente.
4

Cancelar → onCancel

Fechar o popup sem pagar dispara onCancel/cancelado.

Verificação do webhook

#CenárioEsperado
1Assinatura válidaEstado da ordem muda na BD.
2Assinatura inválida401; a BD não muda.
3Webhook duplicado (mesmo paymentId + paymentStatus)200, sem reprocessar.
4Fallback paymentByExternalTransactionDevolve o mesmo estado da BD após o webhook.

Produção

  • Troque a base URL para https://api.faciconnect.com e a chave para pk_live_….
  • Confirme que HTTPS está ativo no seu domínio (a SDK e os webhooks exigem-no).
  • O URL do endpoint de webhook que registou junto da equipa FaciPay é público, HTTPS e acessível.

Robustez

  • Total recalculado no servidor em todas as ordens.
  • Idempotência: localize a ordem por externalTransactionId, deduplique por paymentId + paymentStatus.
  • Tarefas pesadas (emails, ERP, faturação) fora do caminho do webhook (fila/background), para responder 200 em < 5s.
  • Avise o utilizador para permitir popups do seu site.
  • Polling de fallback na página /pendente (a cada 5–10s) caso o webhook atrase.

Suporte

Dúvidas ou credenciais de produção: [email protected].