@abacatepay/typebox
v1.0.0
Published
Official TypeBox schemas for the AbacatePay API, including requests, responses, and webhooks.
Readme
AbacatePay TypeBox
Schemas oficiais da API da AbacatePay usando TypeBox — validação runtime, contratos tipados e base para geração automática de OpenAPI.
O @abacatepay/typebox expõe todos os schemas públicos da API, refletindo fielmente a documentação oficial, sem abstrações extras ou invenções.
Projetado para TypeScript-first, integração direta com Elysia, Fastify, Hono e runtimes modernos como Node.js e Bun.
Instalação
Use com o seu package manager favorito
bun add @abacatepay/typebox
pnpm add @abacatepay/typebox
npm install @abacatepay/typeboxEstrutura e versionamento
Assim como o @abacatepay/types, você deve importar os schemas a partir da versão da API desejada:
import { APICustomer } from '@abacatepay/typebox/v1';
import { APISubscription } from '@abacatepay/typebox/v2';import { version } from '@abacatepay/typebox';Integração com Elysia
O TypeBox encaixa aqui perfeitamente e diretamente com o Elysia, sem abstrações
import { Elysia } from 'elysia';
import {
APIResponse,
APICheckout,
RESTPostCreateNewCheckoutBody,
} from '@abacatepay/typebox/v2';
new Elysia().post(
'/checkouts/create',
() => { ... },
{
body: RESTPostCreateNewCheckoutBody,
response: APIResponse(APICheckout),
detail: {
tags: ['Checkouts'],
summary: 'Create a new checkout',
},
},
);Uso básico
Você pode validar fácilmente um payload retornado pela API em runtime
import { Value } from '@sinclair/typebox/value';
import { APICheckout } from '@abacatepay/typebox/v2';
const data = await fetchCheckout();
if (!Value.Check(APICheckout, data)) {
throw new Error('Invalid checkout payload');
}OpenAPI
Todos os schemas são compatíveis com OpenAPI 3.1 via JSON Schema.
Isso permite:
- SDKs tipados.
- Geração automática de documentação.
- Validação de breaking changes entre versões.
Prefixo
API*- Estruturas gerais da API (objetos retornados, modelos internos).
Prefixo
REST<HTTPMethod>*- Schemas usados em endpoints REST.
- Body → corpo da requisição
- QueryParams → parâmetros de query
- Data → dados retornados
- Schemas usados em endpoints REST.
Prefixo
Webhook*- Payloads de eventos de webhook
Você pode ver a documentação completa da API por aqui.
Feito com 🥑 pela equipe AbacatePay Open source, de verdade.
