@abacatepay/rest

中文文档
1.1.0发布于 2026/10/12Apache-2.0TypeScriptES Module零依赖近 30 天下载 5197

A REST client for AbacatePay API

原始使用文档
文档目录6 节
  1. Instalação
  2. Uso Básico
  3. Retry & Backoff
  4. Timeout
  5. Backoff customizado
  6. Tratando erros

AbacatePay REST

Um REST Client para a API da AbacatePay — rápido, seguro e testado.
O @abacatepay/rest é um cliente REST leve e totalmente tipado para interagir com a API do AbacatePay.
Projetado para Node.js, Bun e runtimes modernos, com retries inteligentes, timeout e tratamento de erros consistente.

AbacatePay Open Source

Instalação

Use com o seu package manager favorito

bun add @abacatepay/rest
# Ou
pnpm add @abacatepay/rest
# Ou
npm install @abacatepay/rest

Uso Básico

Simule um pagamento QRCodePix que tenha o ID pix_char_123456

import { createREST } from '@abacatepay/rest';

const client = createREST({
    secret: process.env.ABACATEPAY_API_KEY!,
});

const pix = await client.post('/transparents/simulate-payment', {
    query: { id: 'pix_char_123456' },
});

console.log(pix);

Retry & Backoff

Por padrão, o REST faz até 3 retries automaticamente:

  • Requisições GET e HEAD são repetidas em timeout e nos status 408, 425, 429 e 5xx.
  • Os outros métodos (POST, PUT, PATCH, DELETE) só são repetidos em 429, que a API responde antes de executar a requisição. Depois de um timeout ou de um 5xx a requisição pode já ter sido processada, e repetir uma cobrança de cartão, um saque ou um PIX poderia cobrar ou enviar dinheiro duas vezes.
const client = createREST({
    retry: {
        max: 5
    },
})

Timeout

O timeout padrão é de 30 segundos e pode ser alterado no cliente ou em uma requisição específica. Quando um POST dá timeout, o erro avisa que ele pode ter sido processado: consulte o recurso antes de tentar de novo.

const client = createREST({ timeout: 60_000 });

const { success, error } = await client.post('/pix/send', {
    body,
    timeout: 90_000,
});

Backoff customizado

const client = createREST({
    retry: {
        max: 7,
        backoff(attempt) {
            // Backoff exponencial
            return Math.min(10_000, 500 * 2 ** attempt);
        },
    },
});

Se nenhum backoff for fornecido, o REST usa backoff exponencial com jitter automaticamente.

Tratando erros

O REST Client nunca lança exceções — toda chamada resolve com o mesmo formato { data, error, success } que a própria API da AbacatePay retorna. Falhas do lado do cliente (rede, timeout, secret ausente) são normalizadas para esse mesmo formato.

const { data, error, success } = await client.get('/customers/invalid');

if (!success) {
    console.error('Erro:', error);

    return;
}

console.log(data);

Você pode ver a documentação completa por aqui.

Feito com 🥑 pela equipe AbacatePay
Open source, de verdade.

版本与发布记录

@abacatepay/rest 共发布 7 个版本,首次发布于 2026/01/15;过去 12 个月发布了 7 个版本。

版本发布日期距今
1.1.0latest2026/10/1224 天前
1.0.22026/07/283 个月前
1.0.12026/07/283 个月前
1.0.02026/07/273 个月前
0.0.32026/01/279 个月前
0.0.22026/01/269 个月前

关于 @abacatepay/rest 的常见问题

@abacatepay/rest 是什么?

A REST client for AbacatePay API

如何安装 @abacatepay/rest?

在项目目录运行 npm install @abacatepay/rest,或使用 pnpm add / yarn add / bun add。

@abacatepay/rest 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@abacatepay/rest 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@abacatepay/rest 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@abacatepay/rest 可以商用吗?

@abacatepay/rest 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@abacatepay/rest 的下载量有多少?

根据 npm 官方下载统计,@abacatepay/rest 在 2026/10/05 – 2026/11/03 这 30 天内被下载 5,197 次,日均约 173 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@abacatepay/rest 还在维护吗?

最新版本 1.1.0 发布于 2026/10/12(24 天前);至今共发布 7 个版本,其中过去 12 个月发布了 7 个;首次发布于 2026/01/15。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。