MCPcopy Index your code
hub / github.com/AbacatePay/abacatepay-cli

github.com/AbacatePay/abacatepay-cli @v0.0.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.0.1 ↗ · + Follow
63 symbols 166 edges 16 files 0 documented · 0% updated 28d agov0.0.1 · 2026-01-02★ 333 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

abacatepay-cli

CLI para receber webhooks do AbacatePay em ambiente de desenvolvimento local.

Instalação

go build -o abacatepay-cli ./cmd

Uso Rápido

abacatepay-cli login

Após autenticar, a CLI pergunta a URL para encaminhar webhooks e já começa a escutar.

Ambientes

A CLI suporta dois ambientes: produção (padrão) e teste.

Produção (Padrão)

# API: https://api.abacatepay.com
# WebSocket: wss://ws.abacatepay.com/ws

abacatepay-cli login

Servidor de Teste

Para desenvolvimento e testes, use a flag -l:

# API: http://191.252.202.128:8080
# WebSocket: ws://191.252.202.128:8080/ws

abacatepay-cli -l login

Comandos

Comando Descrição
login Autenticar e iniciar listener
logout Remover credenciais
status Verificar se está autenticado
listen Escutar webhooks (requer autenticação prévia)

Flags do Login

Flag Descrição
-f <url> URL para encaminhar (pula o prompt)
--no-listen Apenas autentica, não inicia listener

Flags Globais

Flag Descrição
-v, --verbose Logs detalhados
-l, --local Usar servidor de teste
--version Versão da CLI

Autenticação

A CLI usa OAuth2 Device Flow:

  1. Execute abacatepay-cli login
  2. Abra a URL exibida no navegador
  3. Autorize o acesso na sua conta AbacatePay
  4. A CLI detecta a autorização automaticamente
  5. Informe a URL para encaminhar webhooks (ou pressione Enter para usar o padrão)

O token é armazenado no keyring nativo do sistema operacional:

  • macOS: Keychain
  • Linux: gnome-keyring ou kwallet
  • Windows: Credential Manager

Eventos Disponíveis

Evento Descrição
billing.paid Pagamento confirmado
withdraw.done Saque concluído
withdraw.failed Saque falhou

Consulte a documentação de webhooks para detalhes dos payloads.

Exemplo Completo

# Terminal 1: Servidor local
node server.js

# Terminal 2: CLI
abacatepay-cli login
# Abre URL no navegador, autoriza, informa URL do webhook
# Webhooks são encaminhados automaticamente

# Para parar: Ctrl+C

Build Multi-plataforma

# Linux
GOOS=linux GOARCH=amd64 go build -o abacatepay-cli-linux-amd64 ./cmd

# macOS Intel
GOOS=darwin GOARCH=amd64 go build -o abacatepay-cli-darwin-amd64 ./cmd

# macOS Apple Silicon
GOOS=darwin GOARCH=arm64 go build -o abacatepay-cli-darwin-arm64 ./cmd

# Windows
GOOS=windows GOARCH=amd64 go build -o abacatepay-cli.exe ./cmd

Troubleshooting

"não autenticado"

Execute abacatepay-cli login.

Token não salvo (Linux)

Instale o gnome-keyring:

# Debian/Ubuntu
sudo apt install gnome-keyring

# Fedora
sudo dnf install gnome-keyring

WebSocket não conecta

  1. Verifique autenticação: abacatepay-cli status
  2. Use modo verbose: abacatepay-cli -v login

Estrutura do Projeto

abacatepay-cli/
├── cmd/
│   └── main.go
├── internal/
│   ├── config/
│   ├── client/
│   ├── auth/
│   ├── logger/
│   └── webhook/
└── go.mod

Logs

Os logs são salvos em ~/.abacatepay/logs/:

  • abacatepay.log - Log geral (JSON)
  • transactions.log - Webhooks recebidos e encaminhados

Rotação automática: 10 MB por arquivo, 5 backups, 30 dias de retenção.

Análise com jq

# Erros
cat ~/.abacatepay/logs/abacatepay.log | jq 'select(.level=="ERROR")'

# Webhooks recebidos
cat ~/.abacatepay/logs/transactions.log | jq 'select(.msg=="webhook_received")'

# Tempo médio de encaminhamento
cat ~/.abacatepay/logs/transactions.log | jq 'select(.msg=="webhook_forwarded") | .duration_ms' | jq -s 'add/length'

Dependências

Licença

MIT

Suporte

  • Documentação: https://abacatepay.com/docs
  • Issues: https://github.com/AbacatePay/abacatepay-cli/issues

Extension points exported contracts — how you extend this code

TokenStore (Interface)
(no doc) [2 implementers]
internal/auth/store.go
Handler (FuncType)
(no doc)
internal/ws/connection.go

Core symbols most depended-on inside this repo

SetupDependencies
called by 4
internal/utils/utils.go
Get
called by 4
internal/auth/store.go
getKeyring
called by 3
internal/auth/store.go
ConnectWithRetry
called by 3
internal/ws/connection.go
CheckUpdate
called by 2
internal/utils/utils.go
DefaultConfig
called by 2
internal/logger/logger.go
Default
called by 2
internal/config/config.go
New
called by 1
internal/client/client.go

Shape

Function 35
Method 14
Struct 12
FuncType 1
Interface 1

Languages

Go100%

Modules by API surface

internal/auth/store.go15 symbols
internal/utils/utils.go9 symbols
internal/webhook/listener.go7 symbols
internal/auth/login.go6 symbols
internal/logger/logger.go5 symbols
internal/ws/connection.go3 symbols
internal/config/config.go3 symbols
internal/ws/connection_test.go2 symbols
cmd/update.go2 symbols
cmd/status.go2 symbols
cmd/logout.go2 symbols
cmd/login.go2 symbols

For agents

$ claude mcp add abacatepay-cli \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact