{"_id":"@abacatepay/fastify","_rev":"8-5cbb929a3590309bfd16b5e38e3890fe","name":"@abacatepay/fastify","dist-tags":{"latest":"2.0.3"},"versions":{"1.0.0":{"name":"@abacatepay/fastify","version":"1.0.0","keywords":["abacatepay","payments","hono","api","webhooks"],"license":"Apache-2.0","_id":"@abacatepay/fastify@1.0.0","maintainers":[{"name":"albuquerquesz","email":"albq.victor@gmail.com"},{"name":"bolodissenouraa","email":"daniel@abacatepay.com"},{"name":"escoteiros","email":"accounts@eualmeida.com.br"}],"homepage":"https://github.com/almeidazs/ecosystem#readme","bugs":{"url":"https://github.com/almeidazs/ecosystem/issues"},"dist":{"shasum":"108dea55cbb8b95af43ac07b3c06b5702aab5e0e","tarball":"https://registry.npmjs.org/@abacatepay/fastify/-/fastify-1.0.0.tgz","fileCount":11,"integrity":"sha512-QvD/rDzuTY00vpxf/KDyNlbH5OixO3nQuBG0txVLFREcSfhG70ZMKyk8LQ2E+m0PS3zD/rwReurQOjTolHrUcg==","signatures":[{"sig":"MEYCIQDgjbdn++KsWn4dmfC7r9W+vA0sP264ihynWWQflDPvsQIhAOfVU/d2g/2MuLxxOuaMT2glTr4CzLTnWQ6ghi2FtJcy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6632},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.0.0","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"4bc8d02e4352975c1c42f81be892248a14acd61d","scripts":{"test":"bun test","build":"rm -rf dist && bun run scripts/version.ts && tsc","types":"bunx tsc --emitDeclarationOnly","prepublishOnly":"bun run build"},"_npmUser":{"name":"escoteiros","email":"accounts@eualmeida.com.br"},"repository":{"url":"git+https://github.com/almeidazs/ecosystem.git","type":"git"},"_npmVersion":"11.6.2","description":"Checkouts and Webhooks made simple with AbacatePay and Fastify.","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@abacatepay/zod":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@biomejs/biome":"^2.3.11"},"peerDependencies":{"hono":"^4.11.4","fastify":"^5.7.1"},"_npmOperationalInternal":{"tmp":"tmp/fastify_1.0.0_1769037379155_0.01786172421045773","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@abacatepay/fastify","version":"1.0.1","keywords":["abacatepay","payments","fastify","api","webhooks"],"license":"Apache-2.0","_id":"@abacatepay/fastify@1.0.1","maintainers":[{"name":"albuquerquesz","email":"albq.victor@gmail.com"},{"name":"bolodissenouraa","email":"daniel@abacatepay.com"},{"name":"escoteiros","email":"accounts@eualmeida.com.br"}],"homepage":"https://github.com/almeidazs/ecosystem#readme","bugs":{"url":"https://github.com/almeidazs/ecosystem/issues"},"dist":{"shasum":"4e008b1fc520fa8014918eab2b99caadc19f893d","tarball":"https://registry.npmjs.org/@abacatepay/fastify/-/fastify-1.0.1.tgz","fileCount":12,"integrity":"sha512-gJLa9PSrNYef9oDTfUvz857yPeiZKQ1xCSwYXNr32899YMUjQUjFB+jbzHbRBZhAf1V8cbRa0AcqYSXnwSOjNg==","signatures":[{"sig":"MEUCIA3jHuW7nDNNvUTL5rFuvsCyHsHXii0pFHwg/Q1uNl6cAiEAufrcKCaEVGm0Vrz4ciCTRX/aFJcVwWxjq5s4+3qAGK8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9130},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.0.0","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"5a7011dd9d356767026afa32bdcd2d4891b1f229","scripts":{"test":"bun test","build":"rm -rf dist && bun run scripts/version.ts && tsc","types":"bunx tsc --emitDeclarationOnly","prepublishOnly":"bun run build"},"_npmUser":{"name":"escoteiros","email":"accounts@eualmeida.com.br"},"repository":{"url":"git+https://github.com/almeidazs/ecosystem.git","type":"git"},"_npmVersion":"11.6.2","description":"Checkouts and Webhooks made simple with AbacatePay and Fastify.","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@abacatepay/zod":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@biomejs/biome":"^2.3.11"},"peerDependencies":{"fastify":"^5.7.1"},"_npmOperationalInternal":{"tmp":"tmp/fastify_1.0.1_1769268574822_0.6740194357338445","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@abacatepay/fastify","version":"1.0.2","keywords":["abacatepay","payments","fastify","api","webhooks"],"license":"Apache-2.0","_id":"@abacatepay/fastify@1.0.2","maintainers":[{"name":"albuquerquesz","email":"albq.victor@gmail.com"},{"name":"bolodissenouraa","email":"daniel@abacatepay.com"},{"name":"escoteiros","email":"accounts@eualmeida.com.br"}],"homepage":"https://github.com/almeidazs/ecosystem#readme","bugs":{"url":"https://github.com/almeidazs/ecosystem/issues"},"dist":{"shasum":"ff8ef72e613d1df547e954f6f61d034ec3dd4466","tarball":"https://registry.npmjs.org/@abacatepay/fastify/-/fastify-1.0.2.tgz","fileCount":8,"integrity":"sha512-v27G/cFdgAArHGWpXGxBUMMTIdByh3Xl2tDGiX5onniZtyTOnxA39FIOG5RZ4u4VLmSQEo1lOJAG1aksrKWAmg==","signatures":[{"sig":"MEQCIFgiDxB3aowkpgv45MhJ49ipjF7BEYelU+EdUrxTIHUzAiAmZ9MNwD/uhg2TkEpNgS8gZHZDV+OnTxEuz9Sd4Mj1jw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6928},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.0.0","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"fce0da7b8dec48e08f7be9c082b5d90a104b1b97","scripts":{"test":"bun test","build":"rm -rf dist && bun run scripts/version.ts && tsc","types":"bunx tsc --emitDeclarationOnly","prepublishOnly":"bun run build"},"_npmUser":{"name":"escoteiros","email":"accounts@eualmeida.com.br"},"repository":{"url":"git+https://github.com/almeidazs/ecosystem.git","type":"git"},"_npmVersion":"11.6.2","description":"Checkouts and Webhooks made simple with AbacatePay and Fastify.","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@abacatepay/adapters":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@biomejs/biome":"^2.3.11"},"peerDependencies":{"fastify":"^5.7.1"},"_npmOperationalInternal":{"tmp":"tmp/fastify_1.0.2_1769355638424_0.389887252256478","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@abacatepay/fastify","version":"1.0.3","keywords":["abacatepay","payments","fastify","api","webhooks"],"author":{"url":"https://abacatepay.com","name":"AbacatePay","email":"opensource@abacatepay.com"},"license":"Apache-2.0","_id":"@abacatepay/fastify@1.0.3","maintainers":[{"name":"albuquerquesz","email":"albq.victor@gmail.com"},{"name":"bolodissenouraa","email":"daniel@abacatepay.com"},{"name":"escoteiros","email":"accounts@eualmeida.com.br"}],"homepage":"https://github.com/AbacatePay/ecosystem#readme","bugs":{"url":"https://github.com/AbacatePay/ecosystem/issues"},"dist":{"shasum":"2e9abac9065f7b1051eac957bacd734cf619d284","tarball":"https://registry.npmjs.org/@abacatepay/fastify/-/fastify-1.0.3.tgz","fileCount":8,"integrity":"sha512-9SlFnXH8Taj5SOKqoH/3ZKOBpwt278PmwLOI06OI/zsHXhZzGoUWywLO+MAvu3sWFZvDNdfPl5FFpey8fj80TA==","signatures":[{"sig":"MEUCIQDTT5Z4lpqTc/wco5bn2giCo0T1c0GFY+2wb22OA/cK3wIgPkqEPoGmk0DXzECYgAZJQdTqU/4zxsudYP4XX78vAU8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7145},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.0.0","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"8ed1f9df7c851ced969f3d1b261951b78cfef470","scripts":{"test":"bun test","build":"rm -rf dist && bun run scripts/version.ts && tsc","types":"bunx tsc --emitDeclarationOnly","prepublishOnly":"bun run build"},"_npmUser":{"name":"escoteiros","email":"accounts@eualmeida.com.br"},"repository":{"url":"git+https://github.com/AbacatePay/ecosystem.git","type":"git"},"_npmVersion":"11.6.2","description":"Checkouts and Webhooks made simple with AbacatePay and Fastify.","directories":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"@abacatepay/adapters":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@biomejs/biome":"^2.3.11"},"peerDependencies":{"fastify":"^5.7.1"},"_npmOperationalInternal":{"tmp":"tmp/fastify_1.0.3_1769436957229_0.008727130735033617","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@abacatepay/fastify","version":"2.0.0","keywords":["abacatepay","payments","fastify","api","webhooks"],"author":{"url":"https://abacatepay.com","name":"AbacatePay","email":"opensource@abacatepay.com"},"license":"Apache-2.0","_id":"@abacatepay/fastify@2.0.0","maintainers":[{"name":"albuquerquesz","email":"albq.victor@gmail.com"},{"name":"bolodissenouraa","email":"daniel@abacatepay.com"},{"name":"escoteiros","email":"ajuda@abacatepay.com"}],"homepage":"https://github.com/AbacatePay/ecosystem#readme","bugs":{"url":"https://github.com/AbacatePay/ecosystem/issues"},"dist":{"shasum":"30c7a2b444b9504bff6ef6a90867039ae11f84d8","tarball":"https://registry.npmjs.org/@abacatepay/fastify/-/fastify-2.0.0.tgz","fileCount":6,"integrity":"sha512-IMe0TqAeMw7S6V+OYBP8nBTHUycwptqdFfx/z+pSoPxf39og4KUSSDlkiqmvrY2OOLdsB0vFJSPtR7iUxSi7/g==","signatures":[{"sig":"MEYCIQDVgLguQJQSWX3Q1m9Ha8NB5ESTWyRc5im99ELh003MCQIhANMWGK5Wpg85/BI0TcaQgKP51Ocw34hUwnB7h4FsamLF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7031},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.0.0","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"2dc44ef4789adc69e81f94a8e459cc85fd76668c","scripts":{"test":"bun test","build":"rm -rf dist && bun run scripts/version.ts && tsc","types":"bunx tsc --emitDeclarationOnly","prepublishOnly":"bun run build"},"_npmUser":{"name":"escoteiros","email":"ajuda@abacatepay.com"},"repository":{"url":"git+https://github.com/AbacatePay/ecosystem.git","type":"git"},"_npmVersion":"11.8.0","description":"Checkouts and Webhooks made simple with AbacatePay and Fastify.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.1","dependencies":{"@abacatepay/adapters":"^2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@biomejs/biome":"^2.3.11"},"peerDependencies":{"fastify":"^5.7.1"},"_npmOperationalInternal":{"tmp":"tmp/fastify_2.0.0_1785159308578_0.8389531859977495","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@abacatepay/fastify","version":"2.0.1","keywords":["abacatepay","payments","fastify","api","webhooks"],"author":{"url":"https://abacatepay.com","name":"AbacatePay","email":"opensource@abacatepay.com"},"license":"Apache-2.0","_id":"@abacatepay/fastify@2.0.1","maintainers":[{"name":"albuquerquesz","email":"albq.victor@gmail.com"},{"name":"bolodissenouraa","email":"daniel@abacatepay.com"},{"name":"escoteiros","email":"ajuda@abacatepay.com"}],"homepage":"https://github.com/AbacatePay/ecosystem#readme","bugs":{"url":"https://github.com/AbacatePay/ecosystem/issues"},"dist":{"shasum":"3931eb29623ce86cc17b4724af16035317ce7a3c","tarball":"https://registry.npmjs.org/@abacatepay/fastify/-/fastify-2.0.1.tgz","fileCount":5,"integrity":"sha512-wu81NIwi5r0bMAZfTNaJRMeAThd8zorRvz3vFvwSv5X2ysrVRWPyQ3ocxvPDaMn77lcrn+Moz78X67XqEd3wiQ==","signatures":[{"sig":"MEUCIGvX0xJlhx8mmI2x7NL/ZM1pKKwgghXsGMaQL3j9ZI2UAiEAnO16bpHD0KWIl8us4k6DFOMAVEu/UHLfS0WUcgCmAWE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":485854},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.0.0","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"ff4bbae0210c3eb16826c4f3f3f8d9c1953031ad","scripts":{"test":"bun test","build":"rm -rf dist && bun run scripts/version.ts && bun build src/index.ts --outdir dist --target node && bun run types","types":"bunx tsc --emitDeclarationOnly","prepublishOnly":"bun run build"},"_npmUser":{"name":"escoteiros","email":"ajuda@abacatepay.com"},"repository":{"url":"git+https://github.com/AbacatePay/ecosystem.git","type":"git"},"_npmVersion":"11.8.0","description":"Checkouts and Webhooks made simple with AbacatePay and Fastify.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.1","dependencies":{"@abacatepay/adapters":"^2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@biomejs/biome":"^2.3.11"},"peerDependencies":{"fastify":"^5.7.1"},"_npmOperationalInternal":{"tmp":"tmp/fastify_2.0.1_1785173900393_0.32064997351512914","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@abacatepay/fastify","version":"2.0.2","keywords":["abacatepay","payments","fastify","api","webhooks"],"author":{"url":"https://abacatepay.com","name":"AbacatePay","email":"opensource@abacatepay.com"},"license":"Apache-2.0","_id":"@abacatepay/fastify@2.0.2","maintainers":[{"name":"albuquerquesz","email":"albq.victor@gmail.com"},{"name":"bolodissenouraa","email":"daniel@abacatepay.com"},{"name":"escoteiros","email":"ajuda@abacatepay.com"}],"homepage":"https://github.com/AbacatePay/ecosystem#readme","bugs":{"url":"https://github.com/AbacatePay/ecosystem/issues"},"dist":{"shasum":"a6a29c9d5d90c46a1a8ab5542b6b98b90982af6c","tarball":"https://registry.npmjs.org/@abacatepay/fastify/-/fastify-2.0.2.tgz","fileCount":6,"integrity":"sha512-9yNpedHvnzwP3T+Mq/y+/FFrZrjYMrlEp7r1pwWdOCwWnI75GyU1RuSrElqzyTubEXDH8by7FJL6kYLGW0jE/w==","signatures":[{"sig":"MEYCIQC7h7ZzrI0wOsVxDcc+pfSUdWJpvLlMNvY72lMq7pMW4QIhAMmWbgQwTawmqDwO7VQ/wwyO2OPhtD0ai2TuMkEr1bUR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8177},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"bun":">=1.0.0","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"4f44b0102e118ca7fd4abd4da8c094cf8f22360c","scripts":{"test":"bun test","build":"rm -rf dist && bun run scripts/version.ts && bun build src/index.ts --outdir dist --target node --external '@abacatepay/adapters' --external '@abacatepay/adapters/*' && bun run types","types":"bunx tsc --emitDeclarationOnly","prepublishOnly":"bun run build"},"_npmUser":{"name":"escoteiros","email":"ajuda@abacatepay.com"},"repository":{"url":"git+https://github.com/AbacatePay/ecosystem.git","type":"git"},"_npmVersion":"11.8.0","description":"Checkouts and Webhooks made simple with AbacatePay and Fastify.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.1","dependencies":{"@abacatepay/adapters":"^2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@biomejs/biome":"^2.3.11"},"peerDependencies":{"fastify":"^5.7.1"},"_npmOperationalInternal":{"tmp":"tmp/fastify_2.0.2_1785181679334_0.9569363235778396","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@abacatepay/fastify","version":"2.0.3","repository":{"type":"git","url":"git+https://github.com/AbacatePay/ecosystem.git"},"main":"./dist/index.js","devDependencies":{"@biomejs/biome":"^2.3.11","typescript":"^5.0.0"},"peerDependencies":{"fastify":"^5.7.1"},"author":{"name":"AbacatePay","email":"opensource@abacatepay.com","url":"https://abacatepay.com"},"maintainers":[{"name":"albuquerquesz","email":"albq.victor@gmail.com"},{"name":"bolodissenouraa","email":"daniel@abacatepay.com"},{"name":"escoteiros","email":"ajuda@abacatepay.com"}],"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"description":"Checkouts and Webhooks made simple with AbacatePay and Fastify.","engines":{"node":">=18","bun":">=1.0.0"},"keywords":["abacatepay","payments","fastify","api","webhooks"],"license":"Apache-2.0","publishConfig":{"access":"public"},"scripts":{"test":"bun test","build":"rm -rf dist && bun run scripts/version.ts && bun build src/index.ts --outdir dist --target node --external '@abacatepay/adapters' --external '@abacatepay/adapters/*' && bun run types","types":"bunx tsc --emitDeclarationOnly","prepublishOnly":"bun run build"},"sideEffects":false,"type":"module","types":"./dist/index.d.ts","dependencies":{"@abacatepay/adapters":"^2.0.0"},"gitHead":"5c10083ce1c3dfce4b35af061f28b10bec33ff32","_id":"@abacatepay/fastify@2.0.3","bugs":{"url":"https://github.com/AbacatePay/ecosystem/issues"},"homepage":"https://github.com/AbacatePay/ecosystem#readme","_nodeVersion":"24.13.1","_npmVersion":"11.8.0","dist":{"integrity":"sha512-kRucrLeNcJkhNIU73InzVu51O9d0xa8H9CDx84X8cE199LABdT/Y62rCje3JRXFN7yBUJmGviPL3urcVkVCEow==","shasum":"e5ec910366c94362a722805d99b56eadedc1daba","tarball":"https://registry.npmjs.org/@abacatepay/fastify/-/fastify-2.0.3.tgz","fileCount":6,"unpackedSize":8490,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEVG3L+fOxjY0SxPPcbWIt3MjZOxX6eNPIohFRkmqlYXAiEAkjwK61UBIwx+e9BnjKZX8wzdBHp86r1j/vwENCzWVzY="}]},"_npmUser":{"name":"escoteiros","email":"ajuda@abacatepay.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fastify_2.0.3_1785184810523_0.16472367277628464"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-21T23:16:19.071Z","modified":"2026-07-27T20:40:10.883Z","1.0.0":"2026-01-21T23:16:19.305Z","1.0.1":"2026-01-24T15:29:35.008Z","1.0.2":"2026-01-25T15:40:38.568Z","1.0.3":"2026-01-26T14:15:57.387Z","2.0.0":"2026-07-27T13:35:08.737Z","2.0.1":"2026-07-27T17:38:20.575Z","2.0.2":"2026-07-27T19:47:59.473Z","2.0.3":"2026-07-27T20:40:10.677Z"},"bugs":{"url":"https://github.com/AbacatePay/ecosystem/issues"},"author":{"name":"AbacatePay","email":"opensource@abacatepay.com","url":"https://abacatepay.com"},"license":"Apache-2.0","homepage":"https://github.com/AbacatePay/ecosystem#readme","keywords":["abacatepay","payments","fastify","api","webhooks"],"repository":{"type":"git","url":"git+https://github.com/AbacatePay/ecosystem.git"},"description":"Checkouts and Webhooks made simple with AbacatePay and Fastify.","maintainers":[{"name":"albuquerquesz","email":"albq.victor@gmail.com"},{"name":"bolodissenouraa","email":"daniel@abacatepay.com"},{"name":"escoteiros","email":"ajuda@abacatepay.com"}],"readme":"<div align=\"center\">\n\n# AbacatePay Fastify\n\nIntegração oficial da **AbacatePay** com o **Fastify** para receber **Webhooks** de forma simples, segura e totalmente tipada.\n\nO [`@abacatepay/fastify`](https://www.npmjs.com/package/@abacatepay/fastify) é um pacote **framework-first**, projetado para funcionar nativamente com o Fastify, focado em **DX**, **TypeScript first** e **boas práticas de segurança**.\n\n<img src=\"https://res.cloudinary.com/dkok1obj5/image/upload/v1767631413/avo_clhmaf.png\" width=\"100%\" alt=\"AbacatePay Open Source\"/>\n\nVocê pode encontrar a documentação completa de Webhooks [aqui](https://docs.abacatepay.com/pages/webhooks).\n\n## Instalação\n\nUse com o seu *package manager* favorito:\n\n</div>\n\n```bash\nbun add @abacatepay/fastify\n# ou\npnpm add @abacatepay/fastify\n# ou\nnpm install @abacatepay/fastify\n```\n\n<div align=\"center\">\n\nNenhuma dependência extra é necessária. O pacote já vem pronto para uso com o Fastify.\n\n## Uso básico\n\n</div>\n\n```ts\nimport fastify from 'fastify';\nimport { Webhooks } from '@abacatepay/fastify';\n\nconst app = fastify();\n\napp.addContentTypeParser(\n    '*',\n    { parseAs: 'string' },\n    (_req, body, done) => {\n        done(null, body);\n    },\n);\n\nconst { ok, handler, error } = Webhooks({\n    secret: '...',\n    onPayload(payload) {\n        console.log('Evento recebido:', payload.event);\n    },\n});\n\nif (!ok) throw new Error(error);\n\napp.post('/webhooks/abacatepay', handler);\n```\n\n<div align=\"center\">\n\n`Webhooks(...)` nunca lança exceção — se o `secret` estiver ausente, ela retorna `{ ok: false, error }` em vez de `{ ok: true, handler }`.\n\nVocê precisa usar `.addContentTypeParser` para a rota `/webhooks/abacatepay` receber o body como string e validar corretamente.\n\n## Segurança por padrão\n</div>\n\n- Verificação automática da assinatura do webhook\n- Comparação segura do webhook secret\n- Payload validado antes de chegar ao seu handler\n- Nenhum acesso direto à API key\n\n<p align=\"center\"><strong>Nunca exponha sua API key em webhooks.</strong><br/>\nSempre utilize variáveis de ambiente.</p>\n\n<div align=\"center\">\n\n## Tratamento por evento\n\nVocê pode lidar com eventos específicos sem boilerplate:\n\n</div>\n\n```ts\nconst { handler } = Webhooks({\n    secret,\n    onCheckoutCompleted({ data }) {\n        console.log('Cobrança paga:', data.payment.amount);\n    },\n    onPayoutCompleted({ data }) {\n        console.log('Payout concluído:', data.transaction.id);\n    },\n    onPayoutFailed({ data }) {\n        console.error('Falha no payout:', data.transaction.id);\n    },\n});\n```\n\n\n<p align=\"center\">Ou tratar tudo de forma genérica:</p>\n\n```ts\nconst { handler } = Webhooks({\n    secret,\n    onPayload({ data, event }) {\n        console.log(event, data);\n    },\n});\n```\n\n<div align=\"center\">\n\nFeito com 🥑 pela equipe AbacatePay<br/>\nOpen source, de verdade.\n\n</div>\n","readmeFilename":"README.md"}