Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.pagamentos.dev/llms.txt

Use this file to discover all available pages before exploring further.

O que é a AbacatePay?

A AbacatePay é uma fintech brasileira de infraestrutura de pagamentos. Visite o site oficial da AbacatePay para saber mais.

Gerando o token de acesso

Primeiro, obtenha seu token de acesso na dashboard da AbacatePay. Você precisará desse token para autenticar suas requisições e gerenciar cobranças. Siga o guia oficial da AbacatePay sobre autenticação para gerar seu token.

Instalação

Para começar o desenvolvimento, instale a biblioteca com seu gerenciador de pacotes favorito:
npm i pagamentos

Configuração

Agora, configure o provedor da AbacatePay na sua aplicação:
pagamentos.ts
import { Pagamentos, abacatepay } from 'pagamentos'

export const pg = new Pagamentos({
  providers: [
    abacatepay({
      apiKey: process.env.ABACATEPAY_API_KEY,
      webhookSecret: process.env.ABACATEPAY_WEBHOOK_SECRET
    })
  ]
})

Criando uma cobrança

Para criar uma cobrança com Pix, por exemplo:
const cobranca = await pg.cobrancas.create({
  valor: 1000, // R$10,00 - valor em centavos 
  metodoPagamento: 'pix',
  cliente: {
    nome: 'João Silva', 
    documento: '123.456.789-00' // CPF ou CNPJ
  }
})

console.log(cobranca.qrcode) // QR code para pagamento via Pix
Você pode seguir o guia do pagamentos.dev para explorar outras funcionalidades.

Recebendo notificações de pagamento

Configure um endpoint para receber as notificações de pagamento da AbacatePay:
import { Hono } from 'hono'
import { toHono } from 'pagamentos/hono'
import { pg } from './pagamentos'

const app = new Hono()

app.post('/webhooks', toHono(pg.webhooks.handler))

export default app
Certifique-se de configurar a URL do webhook na dashboard da AbacatePay para apontar para o endpoint que você criou. Assim, você receberá notificações sempre que um pagamento for atualizado, permitindo que você mantenha o status dos pagamentos sincronizado com sua aplicação.

Testar localmente

Para receber notificações de pagamento localmente, você pode utilizar as seguintes ferramentas:

Uso independente

Se preferir, você pode usar o provedor da AbacatePay de forma independente, sem precisar da classe Pagamentos:
import { AbacatePay } from 'pagamentos/abacatepay'

const abacate = new AbacatePay({
  apiKey: process.env.ABACATEPAY_API_KEY,
  webhookSecret: process.env.ABACATEPAY_WEBHOOK_SECRET
})

// Aqui você tem acesso a métodos específicos da AbacatePay
const checkout = await abacate.checkout.create({
  items: [
    {
      id: 'item_abc123',
      quantity: 2
    }
  ],
  customerId: 'cust_987'
})

Effect.ts

Você também pode utilizar com a biblioteca Effect.ts:
import { Effect } from 'effect'
import { AbacatePay } from 'pagamentos/abacatepay/effect'

const AbacateLive = AbacatePay.layerConfig({
  apiKey: Config.redacted('ABACATEPAY_API_KEY'),
  webhookSecret: Config.redacted('ABACATEPAY_WEBHOOK_SECRET')
})

// Effect.Effect<string, AbacatePayError, AbacatePay>
const program = Effect.gen(function* () {
  const abacate = yield* AbacatePay

  const checkout = yield* abacate.checkout.create({
    items: [
      {
        id: 'item_abc123',
        quantity: 2
      }
    ],
    customerId: 'cust_987'
  })

  return checkout.data.url
})

Effect.runPromise(
  program.pipe(
    Effect.provide(AbacateLive)
  )
)