Skip to main content

O que são plugins?

Plugins são bibliotecas de terceiros que empacotam hooks do pagamentos.dev em módulos reutilizáveis. Eles permitem que você compartilhe integrações prontas — como envio de e-mails, auditoria, analytics, sincronização com CRMs, etc. — sem repetir código entre projetos. Um plugin nada mais é do que uma função (ou conjunto de funções) que retorna hooks configurados. Você os registra da mesma forma que hooks manuais:

Arquitetura de um plugin

A base de todo plugin são os hooks. Um plugin expõe hooks de lifecycle, webhooks, ou ambos:

Tipos de plugin

Plugin de lifecycle

Reage a operações de API que você realiza. Útil para ações síncronas e previsíveis:

Plugin de webhook

Reage a eventos assíncronos enviados pelo provedor. Útil para processar mudanças de status que acontecem fora do seu fluxo:

Plugin híbrido

Combina lifecycle e webhook hooks para cobrir todo o ciclo de vida:

Boas práticas para autores de plugins

1. Não quebre o fluxo principal

Hooks que falham podem impactar o fluxo do usuário. Sempre envolva lógica externa em try/catch:
Lifecycle hooks que lançam exceções interrompem o retorno da operação principal para o chamador. Veja a página de Hooks para mais detalhes sobre o comportamento de erro.

2. Seja idempotente

Webhooks podem ser entregues mais de uma vez. Plugins que processam webhooks devem verificar se o evento já foi tratado:

3. Documente os eventos suportados

Deixe claro quais hooks o plugin registra e em que momento eles disparam:

4. Aceite opções, não dependências globais

Receba clientes e configurações via argumentos em vez de importar variáveis globais:

5. Use tipagem forte

Exporte as interfaces de opções para que os usuários tenham autocomplete:

Publicando um plugin

Plugins são pacotes npm comuns. A estrutura mínima recomendada é:
No package.json, declare o pagamentos como peerDependency:
Isso evita múltiplas cópias do SDK no node_modules do usuário e garante que os tipos sejam compatíveis.

Exemplo completo: Plugin de Cache

Uso: