# Visão Geral Source: https://docs.abacatepay.com/pages/ai/overview Ferramentas e contexto especializado para integrar a AbacatePay com IA.
# AbacatePay + IA

Use a AbacatePay diretamente em agentes de IA, editors assistidos e ferramentas de automação — sem magia, sem atrito.

## O que está disponível Exponha toda a API da AbacatePay como ferramentas nativas para Claude Desktop, Cursor e qualquer cliente MCP. Crie cobranças, consulte clientes e gerencie assinaturas direto de uma conversa. Pacotes de contexto especializado que ensinam agentes de IA a integrar corretamente com a AbacatePay — regras de negócio, padrões técnicos e exemplos prontos. *** ## Para quem é cada ferramenta | | MCP Server | Skills | | ------------------ | ----------------------------------- | ------------------------------------------------ | | **Objetivo** | Executar ações na API via IA | Fornecer contexto para a IA gerar código correto | | **Ideal para** | Automações, assistentes, agentes | IDEs com AI coding (Cursor, Claude Code) | | **Formato** | Ferramentas MCP chamadas em runtime | Arquivos de contexto lidos pelo editor | | **Requer API key** | Sim | Não | *** ## Ecossistema Guia completo da API AbacatePay. Integração ergonômica de alto nível. Cliente HTTP tipado de baixo nível. # Chaves de API Source: https://docs.abacatepay.com/pages/authentication Aprenda como funcionam as chaves de API e como utilizá-las para acessar a AbacatePay A **chave de API** é sua credencial de acesso à AbacatePay. Ela identifica sua conta e autoriza cada requisição enviada para a nossa API. **Sem uma chave válida, nenhum pedido será aceito.** Toda requisição para a API da AbacatePay deve incluir sua chave no header `Authorization`. A chave também define o ambiente — uma chave de Dev mode simula transações, uma chave de Produção processa valores reais. Você não muda de URL para mudar de ambiente; muda a chave. ## O que você pode fazer com suas chaves As chaves de API são gerenciadas diretamente pelo dashboard. Com elas, você pode: * Ver todas as chaves ativas * Criar novas chaves para diferentes projetos * Revogar chaves comprometidas ou que não são mais usadas Todas as requisições usam o mesmo endpoint [api.abacatepay.com](https://api.abacatepay.com).\ O ambiente é definido **pela chave utilizada**: * Chaves criadas em **Dev mode** → transações simuladas * Chaves criadas em **Produção** → transações reais Saiba mais sobre o ambiente de testes aqui. Você receberá um **HTTP 401** quando: * A chave não for enviada no header * A chave estiver incorreta * A chave tiver sido revogada ## Permissões da chave de API Além de identificar sua conta, a chave de API define **quais recursos** você pode acessar. Quase todos os endpoints da API exigem que a chave tenha a permissão correspondente; sem ela, a requisição será recusada (por exemplo, com **403 Forbidden**). Ao criar ou gerenciar chaves no dashboard, você pode atribuir apenas as permissões necessárias para cada integração — por exemplo, uma chave só para leitura de clientes ou outra só para criar cobranças. Isso melhora a segurança e o princípio do menor privilégio. **Exceção:** o endpoint de **MRR** (`/public-mrr/mrr`) é público e não exige permissão de chave. ### Permissões disponíveis | Recurso | Permissões | | -------- | ---------------------------------------------------------------- | | Checkout | `CHECKOUT:CREATE`, `CHECKOUT:READ`, `CHECKOUT:DELETE` | | Coupon | `COUPON:CREATE`, `COUPON:READ`, `COUPON:UPDATE`, `COUPON:DELETE` | | Customer | `CUSTOMER:CREATE`, `CUSTOMER:READ`, `CUSTOMER:DELETE` | | Product | `PRODUCT:CREATE`, `PRODUCT:READ`, `PRODUCT:DELETE` | | Store | `STORE:READ`, `STORE:CREATE`, `STORE:DELETE` | | Withdraw | `WITHDRAW:CREATE`, `WITHDRAW:READ` | | Connect | `CONNECT:READ`, `CONNECT:CREATE`, `CONNECT:DELETE` | Cada endpoint da documentação indica qual permissão é necessária no topo da página. ## Troubleshooting Causas mais comuns, em ordem de frequência: 1. O header `Authorization: Bearer SUA_CHAVE` não está sendo enviado 2. A chave foi copiada com espaços extras ou caracteres invisíveis 3. A chave foi revogada no dashboard 4. Você está usando uma chave de Dev mode em uma URL que exige produção (ou vice-versa) Para confirmar que a chave está funcionando, teste diretamente: ```bash theme={null} curl https://api.abacatepay.com/v2/stores/get \ -H "Authorization: Bearer SUA_CHAVE" ``` A chave existe e é válida, mas não tem a permissão para o recurso solicitado. Acesse o dashboard, edite a chave e adicione a permissão necessária. Consulte a tabela de permissões acima para saber qual adicionar. No dashboard, as chaves de Dev mode têm um indicador visual. Se você não tem certeza, verifique o campo `devMode` em qualquer resposta da API — `true` significa Dev mode, `false` significa Produção. ## Boas práticas de segurança * Armazene suas chaves em variáveis de ambiente * Nunca publique sua chave em repositórios ou grupos * A AbacatePay **nunca** solicitará sua chave * Revogue imediatamente qualquer chave que possa ter vazado *** ## Como criar uma chave de API Siga os passos abaixo no dashboard: Interface da plataforma AbacatePay mostrando o botão de criação de chave Inicie a criação de uma nova chave de API. Formulário de criação de chave com campo de descrição Use nomes claros, como “Loja Principal” ou “Ambiente de testes”. Lista de chaves com opção para copiar Copie a chave e salve em um local seguro ou gerenciador de segredos. Depois disso, você já pode enviar requisições: ```bash theme={null} curl -X POST https://api.abacatepay.com/v2/transparents/create \ -H "Authorization: Bearer {{API_KEY}}" \ -H "Content-Type: application/json" \ --data '{ "amount": 1000, "method": "PIX" }' ``` O mesmo endpoint [api.abacatepay.com](https://api.abacatepay.com) é usado para o ambiente de desenvolvimento e produção. O ambiente é determinado automaticamente pela chave de API utilizada na requisição. # Autenticação & Perfis Source: https://docs.abacatepay.com/pages/cli/auth Comandos de login, logout, perfis múltiplos e gerenciamento de autenticação na AbacatePay CLI. Comandos para gerenciar a autenticação e sessão na AbacatePay CLI. *** ### `abacatepay login` Realiza a autenticação na AbacatePay. Abre o navegador para login via OAuth ou permite autenticação direta com API key. ```bash theme={null} abacatepay login [flags] ``` | Flag | Alias | Descrição | Padrão | | --------- | ----- | --------------------------- | ------- | | `--name` | - | Nome do perfil a ser criado | `""` | | `--key` | - | Sua API key da AbacatePay | `""` | | `--local` | `-l` | Usa servidor de teste | `false` | Use `--name` para criar múltiplos perfis e alternar entre diferentes contas ou ambientes. **Exemplos:** ```bash theme={null} # Login interativo via navegador abacatepay login # Login com API key específica abacatepay login --key "abc_prod_xxxxx" # Login criando um perfil nomeado abacatepay login --name producao --key "abc_prod_xxxxx" ``` ```text text theme={null} ╭────────────────────────────╮ │ │ │ 🥑 Signed in successfully │ │ │ │ Profile: default │ │ User: João Silva │ │ Email: joao@empresa.com │ │ │ ╰────────────────────────────╯ ``` ```json json theme={null} { "profile": "default", "user": "João Silva", "email": "joao@empresa.com", "status": "authenticated" } ``` ```text table theme={null} ┌─────────┬──────────────────┐ │ Profile │ default │ │ User │ João Silva │ │ Email │ joao@empresa.com │ │ Status │ Authenticated │ └─────────┴──────────────────┘ ``` *** ### `abacatepay logout` Encerra a sessão atual e remove as credenciais do perfil ativo. ```bash theme={null} abacatepay logout ``` ```text text theme={null} ╭─────────────────────────────╮ │ │ │ 🥑 Signed out successfully │ │ │ │ Profile: default │ │ │ ╰─────────────────────────────╯ ``` ```json json theme={null} { "title": "Signed out successfully", "profile": "default" } ``` Após o logout, você precisará fazer login novamente para usar comandos que requerem autenticação. *** ### `abacatepay whoami` Exibe informações do usuário autenticado e o perfil ativo. ```bash theme={null} abacatepay whoami ``` ```text text theme={null} ╭───────────────────────────╮ │ │ │ 🥑 User Information │ │ │ │ Status: Authenticated │ │ Profile: salve3 │ │ User: Mock User │ │ Email: mock@example.com │ │ │ │ │ ╰───────────────────────────╯ ``` ```json json theme={null} { "profile": "salve3", "user": "Mock User", "email": "mock@example.com", "status": "authenticated" } ``` ```text table theme={null} ┌─────────┬──────────────────┐ │ Profile │ salve3 │ │ User │ Mock User │ │ Email │ mock@example.com │ │ Status │ Authenticated │ └─────────┴──────────────────┘ ``` *** ### `abacatepay status` Verifica o status da conexão e autenticação com a AbacatePay. ```bash theme={null} abacatepay status ``` Use `abacatepay status` como diagnóstico rápido quando encontrar problemas de conectividade. ```text text theme={null} ╭────────────────────────────╮ │ │ │ 🥑 Connected successfully │ │ │ │ Profile: default │ │ Status: Online │ │ │ ╰────────────────────────────╯ ``` ```json json theme={null} { "profile": "default", "status": "online" } ``` ```text table theme={null} ┌─────────┬─────────┐ │ Profile │ default │ |─────────|─────────| │ Status │ Online │ └─────────┴─────────┘ ``` *** ## Perfis Comandos para gerenciar múltiplos perfis de autenticação. *** ### `abacatepay profile list` Lista todos os perfis configurados na máquina. ```bash theme={null} abacatepay profile list ``` ```text text theme={null} ✓ Configured Profiles * default (active) producao staging ``` ```json json theme={null} { "profiles": [ { "name": "default", "key": "abc_prod..." }, { "name": "producao", "key": "abc_prod..." }, { "name": "staging", "key": "abc_dev..." } ], "active": "default" } ``` ```text table theme={null} ┌───────────┬────────────┬────────┐ │ Name │ API Key │ Active │ ├───────────┼────────────┼────────┤ │ default │ abc_prod...│ 🥑 │ │ producao │ abc_prod...│ │ │ staging │ abc_dev... │ │ └───────────┴────────────┴────────┘ ``` *** ### `abacatepay profile delete` Remove um perfil salvo. Não é possível remover o perfil ativo. ```bash theme={null} abacatepay profile delete ``` ```bash theme={null} abacatepay profile delete staging ``` ```text theme={null} Profile 'staging' successfully removed. ``` Não é possível deletar o perfil ativo. Use `abacatepay switch` para mudar para outro perfil antes de deletar. *** ### `abacatepay switch` Alterna para outro perfil existente. ```bash theme={null} abacatepay switch ``` Requer conexão com a internet para verificar o status online. ```bash theme={null} abacatepay switch producao ``` ```text theme={null} Now using profile: producao ``` *** # Casos de Uso Source: https://docs.abacatepay.com/pages/cli/cases Cenários práticos de uso da AbacatePay CLI em desenvolvimento, testes e automação. Cenários práticos demonstrando o uso da AbacatePay CLI em diferentes situações. *** ### Teste rápido de integração local Teste sua integração localmente antes de ir para produção. ```bash theme={null} # 1. Autentique em modo teste abacatepay -l login # 2. Inicie o listener abacatepay -l listen --forward-to http://localhost:3000/webhooks # 3. Em outro terminal, crie uma cobrança e simule o pagamento abacatepay -l payments create pix abacatepay -l payments simulate pix_xxx ``` *** ### Debug de webhooks Diagnostique problemas com webhooks usando verificação local e modo verbose. ```bash theme={null} # Capture com verbose para ver detalhes abacatepay -v listen --forward-to http://localhost:3000/webhooks # Verifique a assinatura manualmente se falhar abacatepay verify \ --secret "whsec_seu_secret" \ --payload '{"id":"evt_123",...}' \ --signature "t=123456,v1=abc..." ``` *** ### Automação em CI/CD Integre a CLI em pipelines de CI/CD usando output JSON e variáveis de ambiente. ```bash theme={null} # Output JSON para scripts PAYMENT_ID=$(abacatepay -o json payments create pix | jq -r '.data.id') # Simular e verificar abacatepay payments simulate $PAYMENT_ID STATUS=$(abacatepay -o json payments check $PAYMENT_ID | jq -r '.data.status') if [ "$STATUS" = "PAID" ]; then echo "Pagamento confirmado!" fi ``` Em CI/CD, sempre use `-o json` para output estruturado e parseável. Evite depender de formatação de texto que pode mudar entre versões. *** ### Múltiplas contas/ambientes Alterne entre contas e ambientes (produção, sandbox, desenvolvimento). ```bash theme={null} # Criar perfis diferentes abacatepay login --name producao --key "abc_prod_xxx" abacatepay login --name sandbox --key "abc_dev_xxx" # Alternar entre perfis abacatepay switch producao abacatepay whoami abacatepay switch sandbox abacatepay -l listen ``` Sempre verifique o perfil ativo antes de executar comandos destrutivos ou criar cobranças reais. Use `abacatepay status` para confirmar. *** # Configuração Source: https://docs.abacatepay.com/pages/cli/flags Flags globais, formatos de output e configuração da AbacatePay CLI. ## Global Flags Flags disponíveis em todos os comandos: | Flag | Alias | Tipo | Padrão | Descrição | | ----------- | ----- | ------ | ------- | ----------------------------------------- | | `--verbose` | `-v` | bool | `false` | Habilita logging detalhado (nível debug) | | `--local` | `-l` | bool | `false` | Usa servidor de teste | | `--output` | `-o` | string | `text` | Formato de saída: `text`, `json`, `table` | ```bash theme={null} # Exemplo combinando flags abacatepay -v -l -o json payments create pix ``` A CLI suporta três formatos de saída, configuráveis via `--output` ou `-o`. ### text (padrão) Formato legível para uso interativo no terminal. ```bash theme={null} abacatepay whoami ``` ```text theme={null} ╭───────────────────────────╮ │ │ │ 🥑 User Information │ │ │ │ Status: Authenticated │ │ Profile: salve3 │ │ User: Mock User │ │ Email: mock@example.com │ │ │ │ │ ╰───────────────────────────╯ ``` ### json Formato estruturado para scripts, pipelines e CI/CD. ```bash theme={null} abacatepay -o json whoami ``` ```json theme={null} { "profile": "salve3", "user": "Mock User", "email": "mock@example.com", "status": "authenticated" } ``` Combine com `jq` para filtrar dados: ```bash theme={null} abacatepay -o json logs list | jq '.logs[] | select(.msg=="webhook_forwarded")' ``` ### table Formato tabular para visualização de listas. ```bash theme={null} abacatepay -o table profile list ``` ```text theme={null} ┌───────────┬────────────┬────────┐ │ Name │ API Key │ Active │ ├───────────┼────────────┼────────┤ │ default │ abc_prod...│ 🥑 │ │ staging │ abc_dev... │ │ └───────────┴────────────┴────────┘ ``` *** A CLI suporta dois ambientes: **produção** (padrão) e **teste**. ### Produção (padrão) ```bash theme={null} abacatepay login ``` Conecta automaticamente com `wss://ws.abacatepay.com/ws`. ### Servidor de Teste ```bash theme={null} abacatepay login -l ``` Conecta com o servidor de teste em `ws://191.252.202.128:8080/ws`. O ambiente de teste usa dados fictícios. Nunca use credenciais reais no modo `-l`. *** O token da sua conta é armazenado no keyring nativo do sistema: * **macOS**: Keychain * **Windows**: Credential Manager * **Linux**: gnome-keyring ou kwallet Instale o keyring no seu sistema: ```bash theme={null} # Debian/Ubuntu sudo apt install gnome-keyring # Fedora sudo dnf install gnome-keyring ``` Então tente novamente: ```bash theme={null} abacatepay login ``` *** Os logs são salvos em `~/.abacatepay/logs/`: * **abacatepay.log** - Log geral (JSON) * **transactions.log** - Webhooks recebidos e encaminhados Rotação automática: 10MB por arquivo, 5 backups, 30 dias de retenção. ```bash theme={null} # Ver erros cat ~/.abacatepay/logs/abacatepay.log | jq 'select(.level=="ERROR")' # Ver 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' ``` *** # Visão Geral Source: https://docs.abacatepay.com/pages/cli/overview Ferramenta oficial de linha de comando da AbacatePay para desenvolvimento, testes e automações. A **AbacatePay CLI** é a ferramenta oficial de linha de comando para interagir com a plataforma AbacatePay diretamente do terminal. Projetada para **desenvolvedores**, permite criar cobranças, escutar webhooks, simular pagamentos e automatizar fluxos — tudo sem sair do terminal. *** ## Principais Capacidades Login via OAuth, múltiplos perfis e gerenciamento de sessões. Escute, encaminhe e depure webhooks em tempo real. Crie, consulte e simule cobranças pelo terminal. Output em JSON, não-interativo e scriptável. Flags globais, formatos de output e ambientes. Verificação de webhooks, atualização e debugging. *** ## Instalação ### Go (recomendado) ```bash theme={null} go install github.com/AbacatePay/abacatepay-cli@latest ``` ### Homebrew (macOS / Linux) ```bash theme={null} brew install --build-from-source github.com/AbacatePay/abacatepay-cli ``` **Verificar instalação:** ```bash theme={null} abacatepay --version ``` ```bash theme={null} abacatepay login ``` O navegador abrirá para autenticação OAuth. Após autorizar, informe a URL do seu servidor local para receber webhooks. ```bash theme={null} abacatepay listen --forward-to http://localhost:3000/webhooks/abacatepay ``` Você também pode rodar apenas `abacatepay listen` para configurar o encaminhamento via menu interativo. Em outro terminal: ```bash theme={null} abacatepay payments create pix ``` Você também pode rodar apenas `abacatepay payments create` para escolher via menu, ou usar a flag `-i` para preencher os dados manualmente. *** ## Design & Filosofia A AbacatePay CLI foi projetada para ser: * **Explícita** — Nada de mágica escondida * **Scriptável** — Output estruturado e previsível * **Compatível com CI/CD** — Totalmente não-interativa com flags * **Rápida** — Inicialização rápida e footprint mínimo Output simples, fácil de parsear e integrar. Binário único, sem runtime adicional. Camada HTTP leve e tipada para integrações avançadas. Bibliotecas oficiais para diferentes linguagens. Código-fonte, issues e contribuições. Veja o ecossistema completo da AbacatePay. A AbacatePay CLI é mantida pela equipe AbacatePay e pela comunidade. # Pagamentos Source: https://docs.abacatepay.com/pages/cli/payments Comandos para criação, consulta e simulação de pagamentos PIX na AbacatePay CLI. Os comandos de pagamentos permitem criar, verificar e simular cobranças diretamente pela linha de comando. *** ### `abacatepay payments create` Cria uma nova cobrança de pagamento. Suporta PIX QR Code e Checkout. Por padrão, cria um pagamento com dados fictícios (mock). Use o modo interativo para especificar os detalhes manualmente. ```bash theme={null} abacatepay payments create [pix|checkout] [flags] ``` | Flag | Alias | Descrição | Padrão | | --------------- | ----- | ------------------------------------------ | ------- | | `--interactive` | `-i` | Ativa o modo interativo para inserir dados | `false` | Se você não especificar o método (`pix` ou `checkout`), a CLI exibirá um menu interativo para seleção. **Exemplos:** ```bash theme={null} # Criar PIX com dados mock abacatepay payments create pix # Criar checkout no modo interativo abacatepay payments create checkout -i # Selecionar método interativamente abacatepay payments create ``` ```text text theme={null} ╭────────────────────────╮ │ │ │ 🥑 PIX Payment Created │ │ │ │ ID: pix_abc123xyz│ │ Status: PENDING │ │ │ ╰────────────────────────╯ ``` ```json json theme={null} { "data": { "id": "pix_abc123xyz", "brCode": "00020126580014br.gov.bcb.pix0136...", "status": "PENDING" } } ``` ```text table theme={null} ┌────────────────┬──────────┐ │ ID │ Status │ ├────────────────┼──────────┤ │ pix_abc123xyz │ PENDING │ └────────────────┴──────────┘ ``` *** ### `abacatepay payments check` Consulta o status atual de um pagamento PIX pelo ID. ```bash theme={null} abacatepay payments check ``` ```bash theme={null} abacatepay payments check pix_abc123xyz ``` ```text text theme={null} ╭─────────────────────────╮ │ │ │ 🥑 PIX Status Check │ │ │ │ ID: pix_abc123xyz │ │ Status: PAID │ │ │ ╰─────────────────────────╯ ``` ```json json theme={null} { "data": { "id": "pix_abc123xyz", "status": "PAID" } } ``` Status possíveis: `PENDING` (aguardando), `PAID` (pago), `EXPIRED` (expirado). *** ### `abacatepay payments simulate` Simula o pagamento de uma cobrança PIX em ambiente de sandbox. ```bash theme={null} abacatepay payments simulate ``` ```bash theme={null} abacatepay payments simulate pix_abc123xyz ``` ```text text theme={null} ╭──────────────────────────╮ │ │ │ 🥑 PIX Payment Simulated │ │ │ │ ID: pix_abc123xyz │ │ Status: PAID │ │ │ ╰──────────────────────────╯ ``` ```json json theme={null} { "data": { "id": "pix_abc123xyz", "status": "PAID" } } ``` Após a simulação, o status do pagamento será alterado para `PAID` e os webhooks configurados serão disparados normalmente. Este comando só funciona em ambiente de sandbox. Em produção, os pagamentos devem ser realizados pelo fluxo real do PIX. *** # Utilitários Source: https://docs.abacatepay.com/pages/cli/utils Comandos auxiliares para verificação de webhooks, atualização e documentação na AbacatePay CLI. Comandos auxiliares para verificação de webhooks, atualização e documentação. *** ### `abacatepay verify` Verifica assinaturas de webhooks localmente, útil para debug e validação offline. ```bash theme={null} abacatepay verify --secret --payload --signature
``` | Flag | Tipo | Obrigatória | Descrição | | ------------- | ------ | ----------- | -------------------------------------------- | | `--secret` | string | Sim | Webhook signing secret (inicia com `whsec_`) | | `--payload` | string | Sim | Corpo JSON raw do payload | | `--signature` | string | Sim | Valor do header `X-Abacate-Signature` | O formato do header de assinatura segue o padrão: `t=TIMESTAMP,v1=SIGNATURE` ```bash theme={null} abacatepay verify \ --secret "whsec_abc123xyz789" \ --payload '{"id":"evt_123","event":"billing.paid"}' \ --signature "t=1705849200,v1=a1b2c3d4e5f6..." ``` ```text Sucesso theme={null} ╭───────────────────────────╮ │ │ │ 🥑 Signature Verified │ │ │ │ Timestamp: 1705849200 │ │ Secret: whsec_...x789 │ │ Status: VALID │ │ │ ╰───────────────────────────╯ ``` ```text Erro theme={null} ✗ Signature Mismatch Expected: a1b2c3d4e5f6... Received: 9z8y7x6w5v4u... ``` Se o timestamp da assinatura tiver mais de 5 minutos, um aviso será exibido. Isso pode indicar um replay attack. *** ### `abacatepay update` Atualiza a CLI para a versão mais recente. ```bash theme={null} abacatepay update ``` ```text Atualização Disponível theme={null} Update available: v1.5.0 Downloading and installing... Update complete ✨ ``` ```text Já Atualizado theme={null} You're already on the latest version (v1.4.2) ``` Execute `abacatepay update` periodicamente para garantir as últimas funcionalidades e correções de segurança. *** ### `abacatepay docs` Abre a documentação oficial da CLI no navegador. ```bash theme={null} abacatepay docs ``` *** # Webhooks & Eventos Source: https://docs.abacatepay.com/pages/cli/webhooks Comandos para escutar, simular e depurar webhooks e eventos na AbacatePay CLI. Comandos para escutar, simular e depurar webhooks durante o desenvolvimento. *** ### `abacatepay listen` Escuta webhooks em tempo real e os encaminha para sua aplicação local. ```bash theme={null} abacatepay listen [flags] ``` | Flag | Alias | Descrição | Padrão | | -------------- | ----- | ------------------------------------------- | ------------------------------------------- | | `--forward-to` | - | URL para onde os eventos serão encaminhados | `http://localhost:3000/webhooks/abacatepay` | | `--mock` | - | Simula webhooks sem conectar à API | `false` | O comando `listen` mantém uma conexão WebSocket ativa com a AbacatePay para receber eventos em tempo real. Todos os eventos recebidos são salvos no log local. Se você não especificar `--forward-to`, a CLI perguntará via prompt qual URL usar. **Exemplos:** ```bash theme={null} # Escutar e encaminhar para o endpoint padrão abacatepay listen # Encaminhar para URL personalizada abacatepay listen --forward-to http://localhost:8080/webhook # Modo simulação (sem conexão com a API) abacatepay listen --mock ``` Use `Ctrl+C` para interromper. Todos os eventos ficam salvos e podem ser consultados com `abacatepay logs list`. *** ### `abacatepay trigger` Dispara eventos de teste para simular webhooks durante o desenvolvimento. ```bash theme={null} abacatepay trigger ``` **Eventos disponíveis:** | Evento | Descrição | | --------------- | -------------------------------------- | | `billing.paid` | Simula o pagamento de uma cobrança Pix | | `payout.done` | Simula um saque concluído com sucesso | | `payout.failed` | Simula uma falha em saque | O evento `billing.paid` cria uma cobrança Pix real na API (em modo teste) e simula seu pagamento. Os eventos `payout.*` geram apenas payloads mock locais. ```bash theme={null} abacatepay trigger billing.paid ``` ```text text theme={null} ╭────────────────────────────────────────────────────────────────╮ │ │ │ 🥑 Billing.paid Triggered │ │ │ │ Charge ID: pix_abc123xyz │ │ Status: Simulated │ │ Note: Check your 'listen' terminal for the webhook event │ │ │ ╰────────────────────────────────────────────────────────────────╯ ``` ```json json theme={null} { "event": "billing.paid", "chargeId": "pix_abc123xyz" } ``` Execute `abacatepay listen` em outro terminal antes de usar `trigger` para receber os webhooks. *** ### `abacatepay events sample` Gera um payload JSON de exemplo para um tipo de evento específico. ```bash theme={null} abacatepay events sample ``` **Eventos:** `billing.paid`, `payout.done`, `payout.failed` ```bash theme={null} # Gerar sample de billing.paid abacatepay events sample billing.paid # Salvar em arquivo abacatepay events sample billing.paid > payload.json ``` ```json billing.paid theme={null} { "id": "evt_abc123", "event": "billing.paid", "devMode": true, "data": { "payment": { "amount": 1000, "fee": 0, "method": "PIX" }, "billing": { "id": "bill_xyz789", "externalId": "uuid-v4-example", "url": "https://abacatepay.com/pay/...", "amount": 1000, "status": "PAID" } } } ``` ```json payout.done theme={null} { "id": "evt_def456", "event": "payout.done", "devMode": true, "data": { "transaction": { "id": "txn_abc123", "status": "COMPLETE", "devMode": true, "receiptUrl": "https://abacatepay.com/receipt/...", "kind": "WITHDRAW", "amount": 5000, "platformFee": 0, "externalId": "uuid-v4-example", "createdAt": "2026-01-21T10:30:00Z", "updatedAt": "2026-01-21T10:30:00Z" } } } ``` ```json payout.failed theme={null} { "id": "evt_ghi789", "event": "payout.failed", "devMode": true, "data": { "transaction": { "id": "txn_xyz456", "status": "CANCELLED", "kind": "WITHDRAW", "amount": 3000, "platformFee": 0, } } } ``` Use este comando para entender a estrutura dos payloads e configurar corretamente o parsing na sua aplicação. *** ### `abacatepay events resend` Reenvia um evento passado para seu endpoint de webhook local. ```bash theme={null} abacatepay events resend [flags] ``` | Flag | Alias | Descrição | Padrão | | -------------- | ----- | ------------------------------------- | ----------------------------------------------------------- | | `--forward-to` | - | URL para onde o evento será reenviado | URL original ou `http://localhost:3000/webhooks/abacatepay` | O evento é buscado no arquivo de log local. O ID pode ser obtido através de `abacatepay logs list`. ```bash theme={null} abacatepay events resend evt_abc123xyz ``` ```text text theme={null} Webhook signing secret: whsec_abacate_local_dev_secret Resending event evt_abc123xyz to http://localhost:3000/webhooks/abacatepay... → [200 OK] billing.paid ╭───────────────────────────────╮ │ │ │ 🥑 Event resent successfully │ │ │ │ ID: evt_abc123xyz │ │ Status: 200 OK │ │ Duration: 45ms │ │ │ ╰───────────────────────────────╯ ``` ```json json theme={null} { "id": "evt_abc123xyz", "status": 200, "statusText": "OK", "duration": "45ms" } ``` O header `X-Abacate-Signature` é gerado automaticamente com assinatura válida para ambiente de desenvolvimento. *** ### `abacatepay logs list` Lista o histórico de eventos de webhook gravados localmente. ```bash theme={null} abacatepay logs list [flags] ``` | Flag | Alias | Descrição | Padrão | | --------- | ----- | --------------------------- | ------ | | `--limit` | `-n` | Número de entradas a exibir | `50` | | `--type` | `-t` | Filtrar por tipo de log | - | **Tipos de log disponíveis:** | Tipo | Descrição | | ------------------------ | ------------------------------- | | `webhook_received` | Webhook recebido da API | | `webhook_forwarded` | Webhook encaminhado com sucesso | | `webhook_forward_failed` | Falha ao encaminhar (erro HTTP) | | `webhook_forward_error` | Erro de conexão ao encaminhar | ```bash theme={null} # Listar últimos 50 logs abacatepay logs list # Listar últimos 10 logs abacatepay logs list -n 10 # Filtrar apenas webhooks recebidos abacatepay logs list -t webhook_received ``` ```text table theme={null} ┌─────────────────────────┬─────────────────────────┬───────────────┬────────────────────────────────────┐ │ Timestamp │ Type │ ID │ URL │ ├─────────────────────────┼─────────────────────────┼───────────────┼────────────────────────────────────┤ │ 2026-01-21T10:30:00Z │ webhook_forwarded [200] │ evt_abc123 │ http://localhost:3000/webhooks/abacatepay │ │ 2026-01-21T10:29:55Z │ webhook_received │ evt_abc123 │ http://localhost:3000/webhooks/abacatepay │ └─────────────────────────┴─────────────────────────┴───────────────┴────────────────────────────────────┘ ``` ```json json theme={null} { "logs": [ { "timestamp": "2026-01-21T10:30:00Z", "msg": "webhook_forwarded", "id": "evt_abc123", "url": "http://localhost:3000/webhooks/abacatepay", "statusCode": 200, "size_bytes": 1024, "raw_message": "{\"id\":\"evt_abc123\",\"event\":\"billing.paid\",...}", "event": "billing.paid", "level": "INFO" } ], "count": 1 } ``` *** ### `abacatepay logs tail` Exibe eventos de webhook em tempo real via streaming. ```bash theme={null} abacatepay logs tail ``` Este comando conecta ao WebSocket e exibe os eventos conforme chegam, sem encaminhá-los para nenhum endpoint. ```text theme={null} Streaming webhook events... Press Ctrl+C to stop [2026-01-21T10:30:00Z] billing.paid - evt_abc123xyz Amount: R$ 10,00 Status: paid ^C Listener stopped ``` Use `logs tail` para monitorar eventos sem processá-los. Para receber e encaminhar webhooks, use `abacatepay listen`. *** # Criar um Cliente Source: https://docs.abacatepay.com/pages/client/create POST /customers/create Permite que você crie um cliente para a sua loja. **Campo obrigatório**: Apenas o `email` é obrigatório para criar um cliente. **Recomendado**: Embora os demais campos sejam opcionais, é altamente recomendado fornecer `name`, `cellphone`, `taxId` e `zipCode` quando disponíveis, pois essas informações melhoram a experiência do cliente no checkout e facilitam a identificação. Cadastra um cliente para pré-preencher o checkout e reutilizar em várias cobranças. Só `data.email` é obrigatório. Inclua `name`, `taxId` e `cellphone` sempre que tiver — melhora a experiência no checkout. **Exemplo:** ```json theme={null} { "email": "joao@exemplo.com", "name": "João Silva", "taxId": "12345678900", "cellphone": "+5511999999999", "zipCode": "01310-100", "metadata": { "plano": "premium" } } ``` Guarde o `data.id` retornado e passe como `customerId` ao criar checkouts — o cliente não precisa preencher os dados novamente. Cliente é único por CPF/CNPJ. Se já existir um cadastro com o mesmo `taxId`, a API devolve o registro existente em vez de criar um duplicado. # Deletar um Cliente Source: https://docs.abacatepay.com/pages/client/delete POST /customers/delete Remove um cliente da sua loja. Esta operação é irreversível. Use com cuidado. Remove um cliente da sua loja pelo `id`. Requer a permissão `CUSTOMER:DELETE`. Deletar um cliente não cancela cobranças ou assinaturas vinculadas a ele. # Buscar um Cliente Source: https://docs.abacatepay.com/pages/client/get GET /customers/get Retorna os dados de um cliente específico baseado em filtros. Você pode usar essa rota para buscar um cliente por ID ou outros critérios. Retorna os dados de um cliente pelo seu `id`. Requer a permissão `CUSTOMER:READ`. Use para recuperar o `id` de um cliente antes de criar uma cobrança ou para verificar os dados cadastrados. # Listar Clientes Source: https://docs.abacatepay.com/pages/client/list GET /customers/list Retorna todos os clientes que você cadastrou com suporte a paginação. Você pode usar essa rota para visualizar todos os seus clientes e suas informações. **Alternativa**: Você também pode visualizar e gerenciar seus clientes pelo [Dashboard da AbacatePay](https://app.abacatepay.com/clientes). Retorna todos os clientes cadastrados na sua loja. Requer a permissão `CUSTOMER:READ`. Use `limit`, `after` e `before` para paginar e `startDate`/`endDate` (`YYYY-MM-DD`) para filtrar por data de criação. Consulte [Paginação e filtro por data](/pages/reference/introduction#paginação-e-filtro-por-data). Cada item segue o mesmo formato da resposta do [Criar Cliente](/pages/client/create), incluindo `id`, `email`, `name` e `taxId`. # Referência Source: https://docs.abacatepay.com/pages/client/reference Clientes para pré-preencher checkout e reutilizar em várias cobranças Use `/customers/create` para cadastrar um cliente antes de cobrar. O `customerId` retornado pode ser usado em várias cobranças e pré-preenche o checkout. Só `email` é obrigatório. Recomendado: `name`, `cellphone` e `taxId` quando tiver. **Exemplo:** ```json theme={null} POST /customers/create { "data": { "email": "customer@example.com", // obrigatório "taxId": "12345678900", // opcional "name": "João Silva", // opcional "cellphone": "+5511999999999", // opcional "zipCode": "01310-100" // opcional }, "metadata": { // opcional - dados extras da sua aplicação "customField": "value" } } ``` **Resposta:** ```json theme={null} { "data": { "id": "cust_abc123xyz", "devMode": false, "email": "customer@example.com", "taxId": "12345678900", "country": "BR", "name": "João Silva", "cellphone": "+5511999999999", "zipCode": "01310-100", "metadata": { "customField": "value" } }, "success": true, "error": null } ``` Cliente é único por CPF/CNPJ. Se já existir, a API devolve o existente em vez de criar outro. CPF/CNPJ inválido não é aceito. # O que é o Checkout? Source: https://docs.abacatepay.com/pages/concepts/checkout Entenda como funciona a cobrança por link e tela de pagamento da AbacatePay ## A ideia simples Um **checkout** é a tela onde seu cliente finaliza o pagamento. É aquela página que aparece quando você clica em "Comprar" em uma loja online — com o resumo do pedido e as opções de pagamento. Na AbacatePay, você não precisa construir essa tela. A gente gera ela automaticamente. Você só precisa dizer **o que está sendo vendido** e **qual o valor**. *** ## Como funciona na prática Pode ser pelo dashboard ou pela API. Você informa o produto e o valor. Um link único e seguro é criado. Ex: `https://app.abacatepay.com/pay/bill_abc123` Por WhatsApp, e-mail, Instagram — qualquer canal. Ele escolhe PIX ou cartão e conclui o pagamento na tela da AbacatePay. Recebe uma notificação imediata de que o pagamento foi confirmado. *** ## Dois tipos de checkout A tela de pagamento fica **no site da AbacatePay**. Você redireciona o cliente para lá e pronto. É o jeito mais rápido — zero configuração de interface. **Ideal para:** quem quer começar rápido sem precisar de designer ou desenvolvedor. A tela de pagamento fica **dentro do seu site**. A AbacatePay processa nos bastidores, mas o cliente nunca sai da sua página. **Ideal para:** quem quer uma experiência de compra mais profissional e integrada ao próprio site. Requer desenvolvimento. Se você está começando agora, use o **Checkout Hospedado**. É mais rápido e já funciona sem precisar de um desenvolvedor. *** ## Formas de pagamento aceitas | Forma de pagamento | Disponível? | | ---------------------- | ---------------- | | PIX | ✅ Sim | | Cartão de crédito | ✅ Sim | | Boleto | ✅ Sim | | Parcelamento (até 12x) | ✅ Sim, no cartão | *** ## Perguntas comuns Por padrão, o link não expira. Você pode configurar uma data de expiração ao criar a cobrança. Depende. Um link de pagamento comum (`ONE_TIME`) aceita apenas um pagamento. Se você quiser um link reutilizável, use um **Link de Pagamento** com `MULTIPLE_PAYMENTS` — ideal para doações ou pedidos avulsos. Sim. Você pode configurar o nome, logo e cores da sua loja no dashboard, e eles aparecem automaticamente na tela de checkout. A cobrança fica com status `PENDING`. Você pode reenviar o link para o cliente a qualquer momento. *** Siga o guia passo a passo e receba um pagamento real em minutos. # O que é a AbacatePay? Source: https://docs.abacatepay.com/pages/concepts/overview Entenda o que a AbacatePay faz pelo seu negócio — sem precisar ser desenvolvedor Esta seção é para quem quer **entender o produto** antes de integrar. Se você já é desenvolvedor e quer ir direto ao código, vá para [Guias → Autenticação](/pages/authentication). ## Em uma frase A AbacatePay é uma plataforma que permite ao seu negócio **cobrar clientes pela internet** — via PIX, cartão de crédito ou boleto — e **receber esse dinheiro na sua conta**. *** ## O problema que a AbacatePay resolve Imagine que você tem uma loja online, um serviço de assinatura ou vende infoprodutos. Para cobrar seus clientes, você precisaria: * Contratar um banco ou adquirente (processo longo e burocrático) * Lidar com dezenas de regras técnicas de cada meio de pagamento * Construir toda a tela de pagamento do zero * Gerenciar estornos, inadimplência, notificações... A AbacatePay cuida de tudo isso por você. Você foca no seu produto; a gente cuida do dinheiro. *** ## O que você pode fazer com a AbacatePay Crie um link de pagamento em segundos e compartilhe com seu cliente — pelo WhatsApp, e-mail ou Instagram. Funciona como um carrinho de compras, sem precisar de site. Gere um QR Code PIX na hora. O cliente escaneia e o dinheiro cai em segundos, qualquer dia, qualquer hora. Aceite cartão de crédito com parcelamento em até 12x. Tudo em uma tela de pagamento pronta, sem precisar construir nada. Configure uma cobrança recorrente e a AbacatePay cobra seu cliente automaticamente todo mês — ideal para cursos, mentorias ou serviços com mensalidade. Quando quiser, transfira o saldo acumulado para sua conta bancária de forma simples e rápida. Crie promoções com desconto percentual ou fixo e distribua para seus clientes. *** ## Como funciona o fluxo de um pagamento ``` Seu cliente → Tela de pagamento → AbacatePay → Você recebe a confirmação → Saldo disponível ``` 1. Você cria uma cobrança (via dashboard ou API) 2. A AbacatePay gera uma tela de pagamento segura 3. Seu cliente paga (PIX, cartão ou boleto) 4. Você recebe uma notificação automática 5. O valor entra no seu saldo na AbacatePay 6. Você saca para sua conta quando quiser *** ## Quem usa a AbacatePay? * **Infoprodutores** que vendem cursos e mentorias * **SaaS e startups** que cobram assinatura mensal * **E-commerces** que precisam de checkout rápido * **Freelancers** que querem um jeito simples de cobrar clientes * **Lojas físicas** que querem aceitar pagamento online *** ## Próximos passos Um guia passo a passo para você receber um pagamento real sem escrever código. Saiba mais sobre Checkout, PIX, Assinaturas e Saques em linguagem simples. # O que é o PIX? Source: https://docs.abacatepay.com/pages/concepts/pix Como usar o PIX para receber pagamentos instantâneos pelo seu negócio ## PIX: o que todo mundo já sabe O PIX é o sistema de pagamento instantâneo do Banco Central do Brasil. Funciona 24 horas por dia, 7 dias por semana, e o dinheiro cai na conta em segundos. Você já usa PIX no dia a dia. Na AbacatePay, a gente traz isso para o seu negócio de forma profissional. *** ## Como a AbacatePay usa o PIX A AbacatePay gera para você um **QR Code** ou um **código copia-e-cola** único para cada cobrança. Seu cliente escaneia ou cola no banco dele e o pagamento é confirmado em segundos. Uma imagem que o cliente escaneia com o aplicativo do banco. Ideal para cobranças em sites, landing pages ou imagens no WhatsApp. Um código de texto que o cliente cola no app do banco. Funciona em qualquer canal de texto — SMS, e-mail, chat. *** ## Quando usar PIX vs outras formas de pagamento? | | PIX | Cartão | Boleto | | ---------------------- | -------- | --------------- | -------------- | | **Confirmação** | Segundos | Minutos a horas | 1-3 dias úteis | | **Disponível** | 24/7 | 24/7 | Dias úteis | | **Parcelamento** | Não | Sim (até 12x) | Não | | **Taxa** | Menor | Maior | Média | | **Cancelamento fácil** | Sim | Sim | Sim | **Regra prática:** * Produto de baixo valor ou urgente → PIX * Produto de alto valor → cartão com parcelamento * Cliente sem cartão → boleto *** ## O que acontece depois que o cliente paga? 1. O pagamento é confirmado em segundos 2. O valor entra no seu **saldo na AbacatePay** 3. Você recebe uma **notificação automática** (se tiver webhook configurado) 4. Quando quiser, você **saca** o valor para sua conta bancária *** ## Perguntas comuns Sim. Por padrão, o QR Code PIX expira em 30 minutos após a criação. Você pode configurar um prazo diferente ao criar a cobrança. Sim, não há valor mínimo ou máximo definido pela AbacatePay. Limitações de valor do Banco Central podem se aplicar dependendo do banco do seu cliente. Você pode verificar o status da cobrança no dashboard. Se configurou webhooks, receberá uma notificação automática assim que o pagamento for confirmado. Se o cliente transferir um valor diferente do QR Code, o pagamento pode não ser confirmado automaticamente. Para evitar isso, sempre use o QR Code gerado pela AbacatePay — ele já tem o valor embutido. *** Siga o guia e gere seu primeiro QR Code em minutos. # Como receber seu dinheiro Source: https://docs.abacatepay.com/pages/concepts/saques Entenda como funciona o saldo e como transferir o dinheiro para sua conta bancária ## O fluxo do dinheiro Quando um cliente paga pelo AbacatePay, o dinheiro não vai diretamente para o seu banco. Ele vai primeiro para o seu **saldo na AbacatePay**. Depois, você faz um **saque** para transferir esse saldo para a sua conta. ``` Cliente paga → Saldo na AbacatePay → Você saca → Sua conta bancária ``` *** ## Por que funciona assim? Esse modelo é padrão no mercado de pagamentos. Ele permite que a AbacatePay: * Processe estornos sem problemas * Garanta a segurança das transações * Consolide múltiplos pagamentos antes de transferir *** ## Quando o dinheiro fica disponível? | Forma de pagamento | Disponibilidade no saldo | | ------------------ | ------------------------------------------------- | | PIX | Imediato após confirmação | | Cartão de crédito | Após o prazo de liquidação (consulte o dashboard) | | Boleto | Após a compensação bancária (1-3 dias úteis) | *** ## Como fazer um saque Entre em [app.abacatepay.com](https://app.abacatepay.com) com sua conta. No menu lateral, clique em **Saques** ou **Financeiro**. Digite o valor e os dados da conta de destino (banco, agência, conta e CPF/CNPJ do titular). Revise os dados e confirme. O valor é transferido normalmente no mesmo dia útil. *** ## Perguntas comuns Sim. O valor mínimo de saque é definido pela AbacatePay. Consulte o dashboard para ver o limite atual. Sim, desde que você forneça os dados bancários corretos do destinatário, incluindo o CPF ou CNPJ do titular da conta. Saques via PIX são instantâneos. Saques via TED levam até 1 dia útil para cair na conta de destino. Saques solicitados fora do horário comercial ou em fins de semana e feriados são processados no próximo dia útil. A AbacatePay cobra uma taxa sobre cada transação processada. Essa taxa é descontada automaticamente do valor recebido antes de entrar no seu saldo. Consulte a [página de precificação](https://abacatepay.com) para os valores atuais. *** Veja o FAQ com as perguntas mais comuns sobre saques e financeiro. # O que são Assinaturas? Source: https://docs.abacatepay.com/pages/concepts/subscriptions Entenda como cobrar seus clientes todo mês de forma automática ## A ideia Uma assinatura é uma **cobrança automática e recorrente**. Em vez de você precisar cobrar seu cliente toda vez, a AbacatePay faz isso automaticamente no intervalo que você definiu — mensal, semanal ou anual. Pense em como funciona o Netflix, Spotify ou qualquer academia: o cliente assina uma vez e é cobrado automaticamente todo mês. Você pode fazer exatamente isso para o seu negócio. *** ## Para que serve? Cobranças mensais para alunos de um curso ou programa de mentoria continuada. Plano mensal ou anual para o seu serviço ou ferramenta online. Acesso a grupo exclusivo, comunidade ou clube de assinantes. Produto ou serviço entregue periodicamente com cobrança automática. *** ## Como funciona o ciclo No dashboard, você define o produto, o preço e o ciclo (mensal, anual, semanal). Ele paga a primeira cobrança. A assinatura está ativa. No próximo ciclo (ex: daqui a 30 dias), a AbacatePay tenta cobrar o cliente automaticamente. A cada pagamento confirmado ou falha, você recebe uma notificação. Você ou o cliente podem cancelar a assinatura a qualquer momento pelo dashboard ou pela API. *** ## O que acontece se o pagamento falhar? A AbacatePay tenta cobrar de novo automaticamente. Você pode configurar: * **Quantas tentativas** fazer (até 10) * **Quantos dias esperar** entre cada tentativa (1 a 30 dias) Se todas as tentativas falharem, a assinatura é marcada como `FAILED` e você é notificado. *** ## Ciclos disponíveis | Ciclo | Frequência | | --------- | ----------- | | `WEEKLY` | Toda semana | | `MONTHLY` | Todo mês | | `YEARLY` | Todo ano | *** ## Perguntas comuns Sim. Defina o campo `trialDays` (de 1 a 90 dias) ao criar o produto. Durante o trial o cliente não é cobrado — a primeira cobrança pelo valor integral acontece automaticamente ao final do período. Veja mais em [Período de teste gratuito](/pages/subscriptions/reference#período-de-teste-gratuito-free-trial). Sim. Você pode alterar o plano de uma assinatura ativa a qualquer momento — o novo valor passa a valer no próximo ciclo. Sim. Você pode criar cupons e aplicá-los ao criar ou atualizar uma assinatura. Você pode cancelar pelo dashboard ou pela API. Se quiser que o próprio cliente cancele de forma self-service, você precisa criar essa funcionalidade no seu site usando a API da AbacatePay. *** Veja o guia completo para começar a receber mensalidades. # Taxas e tarifas Source: https://docs.abacatepay.com/pages/concepts/taxas Entenda quanto custa usar a AbacatePay — sem mensalidade, sem surpresas A AbacatePay **não cobra mensalidade**. Você paga apenas quando recebe ou movimenta dinheiro — e as taxas já são descontadas automaticamente do valor antes de entrar no seu saldo. *** ## Receber pagamentos | Forma de pagamento | Taxa | | --------------------------- | -------------------------- | | PIX | R\$ 0,80 por transação | | Cartão de crédito à vista | 3,50% + R\$ 0,60 | | Cartão parcelado (2x a 6x) | 4,00% + R\$ 0,60 | | Cartão parcelado (7x a 12x) | 4,50% + R\$ 0,60 | | Boleto bancário | R\$ 2,50 por boleto gerado | As taxas de cartão incidem sobre o **valor total da transação**. O valor fixo de R\$ 0,60 é cobrado independentemente do valor. *** ## Sacar dinheiro | Tipo de transferência | Custo | | ---------------------------------- | -------------------------- | | PIX (primeiros 20 saques do mês) | R\$ 0,80 por saque | | PIX (a partir do 21º saque no mês) | R\$ 2,50 por saque | | TED | R\$ 5,00 por transferência | O limite de saques com a taxa promocional de PIX é de 20 saques por mês. A partir do 21º saque no mês, a taxa de R\$ 2,50 passa a ser aplicada. O contador reinicia no início de cada mês calendário. O limite diário varia conforme a conta. Novas lojas começam com um limite menor que aumenta automaticamente após a verificação de conta. Consulte o dashboard para ver o limite atual da sua loja. *** ## Antecipação de recebíveis Recebíveis de cartão de crédito têm prazo de liquidação. Se você quiser antecipar e receber antes do prazo, é possível mediante taxa: | | Taxa | | ----------------------------------- | ------------ | | Antecipação de recebíveis de cartão | 1,50% ao mês | *** ## Como as taxas são cobradas Você **nunca paga separadamente**. O fluxo é sempre: ``` Cliente paga R$ 100,00 via PIX → AbacatePay desconta R$ 0,80 → R$ 99,20 entra no seu saldo ``` O campo `platformFee` nas respostas da API mostra exatamente quanto foi descontado em cada transação, em centavos. *** ## Perguntas frequentes Não. A taxa do boleto (R\$ 2,50) é cobrada apenas quando o boleto é **pago**. Se o cliente não pagar, nenhuma taxa é descontada. Você recebe cada parcela individualmente conforme a operadora de cartão a liquida. Se o cliente parcelou em 10x, você recebe 10 créditos separados ao longo dos meses — não o valor total de uma vez. Sim. O contador reinicia no início de cada mês calendário. Não. Criar conta, acessar o dashboard, criar produtos, cupons e links de pagamento são gratuitos. Você só paga quando há movimentação financeira. Sim. As taxas acima são as padrão. Dependendo do volume de transações da sua loja, as taxas podem ser negociadas. Entre em contato com o suporte para saber mais. *** Consulte as taxas da sua conta diretamente no dashboard em **Perfil → Taxas**, ou entre em contato: [ajuda@abacatepay.com](mailto:ajuda@abacatepay.com) # Criar um cupom Source: https://docs.abacatepay.com/pages/coupons/create POST /coupons/create Permite que você crie um novo cupom que pode ser usado por seus clientes para aplicar descontos. **Alternativa**: Você também pode criar e gerenciar seus cupons pelo [Dashboard da AbacatePay](https://app.abacatepay.com/cupons). Cria um cupom de desconto que seus clientes aplicam no checkout. `code` (único na sua loja), `discountKind` (`PERCENTAGE` ou `FIXED`) e `discount` (valor do desconto). **`PERCENTAGE`** desconta uma porcentagem do total. **`FIXED`** desconta um valor fixo em centavos. **Exemplo — 10% de desconto ilimitado:** ```json theme={null} { "code": "BEMVINDO10", "discountKind": "PERCENTAGE", "discount": 10, "maxRedeems": -1, "notes": "Cupom de boas-vindas" } ``` **Exemplo — R\$ 20,00 fixo, válido 50 vezes:** ```json theme={null} { "code": "PROMO20", "discountKind": "FIXED", "discount": 2000, "maxRedeems": 50 } ``` `-1` significa usos ilimitados. Qualquer valor positivo limita o número total de resgates. # Deletar um Cupom Source: https://docs.abacatepay.com/pages/coupons/delete POST /coupons/delete Remove um cupom da sua loja. Esta operação é irreversível. Use com cuidado. Remove permanentemente um cupom da sua loja pelo `code`. Requer a permissão `COUPON:DELETE`. Esta operação é irreversível. Se quiser apenas impedir novos usos sem deletar, use [Alternar Status](/pages/coupons/toggle) para desativar o cupom. # Buscar um Cupom Source: https://docs.abacatepay.com/pages/coupons/get GET /coupons/get Retorna os dados de um cupom específico baseado em filtros. Você pode usar essa rota para buscar um cupom por ID ou outros critérios. Retorna os dados de um cupom pelo seu `code`. Requer a permissão `COUPON:READ`. Use `redeemsCount` para acompanhar quantas vezes o cupom já foi utilizado e `status` para verificar se ainda está ativo. # Listar cupons Source: https://docs.abacatepay.com/pages/coupons/list GET /coupons/list Retorna todos os cupons que você criou com suporte a paginação. Você pode usar essa rota para visualizar todos os seus cupons, incluindo seus status (ativos, inativos ou expirados), descontos aplicados e quantas vezes foram utilizados. **Alternativa**: Você também pode visualizar e gerenciar seus cupons pelo [Dashboard da AbacatePay](https://app.abacatepay.com/cupons). Retorna todos os cupons da sua loja, incluindo ativos e inativos. Requer a permissão `COUPON:READ`. Use `limit`, `after` e `before` para paginar e `startDate`/`endDate` (`YYYY-MM-DD`) para filtrar por data de criação. Consulte [Paginação e filtro por data](/pages/reference/introduction#paginação-e-filtro-por-data). Cada item segue o mesmo formato da resposta do [Criar Cupom](/pages/coupons/create), incluindo `status`, `redeemsCount` e `maxRedeems`. # Referência Source: https://docs.abacatepay.com/pages/coupons/reference Crie cupons de desconto para seus clientes usarem uma ou várias vezes Cupons oferecem desconto percentual ou valor fixo aos clientes, com limite de uso e contagem de resgates. ## Criar cupom Use `/coupons/create`. Obrigatórios: `code` (único), `discount`, `discountKind` (`PERCENTAGE` ou `FIXED`). Opcionais: `maxRedeems`, `notes`, `metadata`. **Exemplo:** ```json theme={null} POST /coupons/create { "code": "MY_COUPON", // obrigatório - identificador único do cupom "discountKind": "PERCENTAGE", // obrigatório - tipo de desconto (PERCENTAGE ou FIXED) "discount": 10, // obrigatório - valor do desconto "maxRedeems": -1, // -1 = ilimitado; qualquer número positivo limita os usos "notes": "Cupom de desconto especial", "metadata": { "campaign": "black-friday" } } ``` **Resposta:** ```json theme={null} { "data": { "id": "MY_COUPON", "discountKind": "PERCENTAGE", "discount": 10, "maxRedeems": -1, "redeemsCount": 0, "status": "ACTIVE", "devMode": true, "notes": "Cupom de desconto especial", "createdAt": "2025-01-23T14:06:16.880Z", "updatedAt": "2025-01-23T14:06:16.880Z" }, "success": true, "error": null } ``` # Alternar Status de um Cupom Source: https://docs.abacatepay.com/pages/coupons/toggle POST /coupons/toggle Alterna o status de um cupom entre ativo e inativo. Use essa rota para ativar ou desativar um cupom sem precisar deletá-lo. Ativa ou desativa um cupom. Cupons inativos não podem ser aplicados em checkouts. Requer a permissão `COUPON:UPDATE`. Chame este endpoint sempre que quiser pausar uma promoção temporariamente ou reativá-la sem precisar recriar o cupom. # Dev mode, o que é? Source: https://docs.abacatepay.com/pages/devmode Entenda o Dev mode e aprenda a usar este ambiente para testar sua integração com segurança. O **Dev mode** é o ambiente de testes da AbacatePay.\ Ele permite que você experimente toda a plataforma sem risco, simulando pagamentos, cobranças e webhooks antes de ir para produção. ## O que é o Dev mode? Ao criar sua conta, você já começa no Dev mode.\ Nesse ambiente: * Os pagamentos são **simulados** * Nada é cobrado de verdade * Você pode testar quantas vezes quiser * Seus testes não afetam os dados de produção É o lugar ideal para montar e validar toda sua integração. * Teste sua integração com segurança * Simule diferentes tipos de pagamento * Configure webhooks sem risco * Valide o comportamento da sua aplicação ## Como usar o Dev mode Para começar: 1. Crie sua chave de API de desenvolvimento 2. Use essa chave em todas as requisições de teste 3. Configure webhooks para receber notificações simuladas 4. Teste o fluxo completo: criar cliente, gerar cobrança, pagar, receber webhook, etc. * Cubra todos os cenários (sucesso, erro e exceções) * Valide mensagens de erro e retornos da API * Confira se seus webhooks estão recebendo os eventos corretos * Revise o comportamento da sua aplicação em cada etapa ## Testando pagamentos com cartão No Dev mode, você pode simular pagamentos no cartão de crédito. As regras de cartões de teste são: ### Cartão aceito Use o seguinte cartão para simular um pagamento **aprovado**: | Campo | Valor | | ------------ | ----------------------------------------------------- | | **Número** | `4242 4242 4242 4242` | | **Validade** | Qualquer data futura (ex.: 12/30) | | **CVV** | Qualquer número com 3 ou 4 dígitos (ex.: 123 ou 1234) | ### Cartões rejeitados Os números abaixo são sempre **rejeitados** no Dev mode, para você testar o fluxo de falha: * `4000000000000002` * `4000000000009995` * `4000000000000127` * `4000000000000069` * `4000000000000101` ## Checklist antes de ir para produção Use esta lista para saber que sua integração está pronta. O progresso é salvo no seu navegador.
Progresso 0 / 9 concluídos