@abacatepay/elysia
v2.0.3
Published
Checkouts and Webhooks made simple with AbacatePay and Elysia.
Downloads
57
Readme
AbacatePay Elysia
Integração oficial da AbacatePay com o Elysia para receber Webhooks de forma simples, segura e totalmente tipada.
O @abacatepay/elysia é um pacote framework-first, projetado para funcionar nativamente com o Elysia, focado em DX, TypeScript first e boas práticas de segurança.
Você pode encontrar a documentação completa de Webhooks aqui.
Instalação
Use com o seu package manager favorito:
bun add @abacatepay/elysia
# ou
pnpm add @abacatepay/elysia
# ou
npm install @abacatepay/elysiaNenhuma dependência extra é necessária. O pacote já vem pronto para uso com o Elysia.
Uso básico
import { Elysia } from 'elysia';
import { Webhooks } from '@abacatepay/elysia';
const app = new Elysia();
const { ok, handler, error } = Webhooks({
secret: '...',
onPayload(payload) {
console.log('Evento recebido:', payload.event);
},
});
if (!ok) throw new Error(error);
app.post('/webhooks/abacatepay', handler);Webhooks(...) nunca lança exceção — se o secret estiver ausente, ela retorna { ok: false, error } em vez de { ok: true, handler }.
Segurança por padrão
- Verificação automática da assinatura do webhook
- Comparação segura do webhook secret
- Payload validado antes de chegar ao seu handler
- Nenhum acesso direto à API key
Tratamento por evento
Você pode lidar com eventos específicos sem boilerplate:
const { handler } = Webhooks({
secret,
onCheckoutCompleted({ data }) {
console.log('Cobrança paga:', data.payment.amount);
},
onPayoutCompleted({ data }) {
console.log('Payout concluído:', data.transaction.id);
},
onPayoutFailed({ data }) {
console.error('Falha no payout:', data.transaction.id);
},
});const { handler } = Webhooks({
secret,
onPayload({ data, event }) {
console.log(event, data);
},
});Feito com 🥑 pela equipe AbacatePay Open source, de verdade.
