1

Pitch: Sincronização de clientes do Odoo com a AbacatePay

AbacatePay Addons for Odoo 16

Módulos open-source que integram o Odoo 16 com a AbacatePay — plataforma brasileira de pagamentos via API REST com suporte a PIX, Checkouts, Links de Pagamento e Assinaturas.

Repositório: github.com/CristianoMafraJunior/abacatepay-addons


O que é o Odoo?

Odoo é um ERP open-source modular escrito em Python. Ele cobre praticamente tudo que uma empresa precisa: CRM, estoque, faturamento, contabilidade, e-commerce, RH e muito mais. A grande vantagem é sua arquitetura de módulos — você instala só o que precisa e pode criar os seus próprios estendendo o core sem modificá-lo.

No Brasil ele é amplamente usado por empresas de médio porte, mas ainda tem pouca integração nativa com ferramentas brasileiras de pagamento.

O que é a OCA?

A OCA (Odoo Community Association) é uma organização sem fins lucrativos que coordena o desenvolvimento de módulos open-source para o Odoo. Todos os módulos seguem padrões rígidos de qualidade — revisão de código, testes automatizados, pre-commit com pylint e flake8 — e são publicados sob licença AGPL-3.0.

Este projeto segue as convenções da OCA e está estruturado para futura contribuição ao ecossistema.


Por que isso existe?

O Odoo possui um sistema nativo de provedores de pagamento, mas ele é voltado para e-commerce. Empresas que usam o Odoo como ERP e querem cobrar clientes via PIX ou link de pagamento de forma programática não tinham nenhuma solução pronta com a AbacatePay.

A AbacatePay é uma das plataformas de pagamento mais simples e bem documentadas para desenvolvedores no Brasil — API REST limpa, sandbox com simulação de pagamentos e suporte a PIX, assinaturas e webhooks. Fazia sentido conectar as duas.


Módulos

abacatepay_base

Módulo base obrigatório. Armazena as credenciais da AbacatePay (API Key e modo sandbox) diretamente na empresa do Odoo, com suporte nativo a multi-empresa.

abacatepay_client

Sincronização de clientes entre o Odoo e a AbacatePay. Todo res.partner pode virar um Customer na AbacatePay, com rastreamento de status de sincronização, exportação em lote e gerenciamento via menu dedicado no app de Contacts.


Requisitos

  • Odoo 16.0 Community ou Enterprise
  • Python 3.10+
  • Biblioteca requests (já inclusa no Odoo)
  • Conta ativa na AbacatePay

Configuração

  1. Acesse Settings → Companies → [sua empresa]
  2. Vá até a aba AbacatePay
  3. Informe sua API Key (obtida em app.abacatepay.com)
  4. Ative o Modo Sandbox se quiser testar sem cobranças reais

Uso — Módulo abacatepay_client

Exportar contatos para a AbacatePay

Acesse Contacts → AbacatePay → Export Contacts e escolha:

  • Export All — exporta todos os contatos do Odoo que possuem e-mail
  • Select contacts — escolha contatos específicos
  • Skip Already Synced — não re-sincroniza contatos já enviados

Gerenciar clientes sincronizados

Acesse Contacts → AbacatePay → Customers para ver todos os contatos com status de sincronização:

StatusDescrição
Not SyncedAinda não enviado para a AbacatePay
SyncedSincronizado com sucesso
ErrorFalha na última sincronização

Sincronizar um contato individualmente

Abra qualquer contato em Contacts, vá até a aba AbacatePay e clique em Sync to AbacatePay.


Roadmap

  • abacatepay_base — credenciais por empresa
  • abacatepay_client — sincronização de clientes
  • abacatepay_product — sincronização de produtos
  • abacatepay_payment — geração de Checkouts e PIX a partir de faturas
  • abacatepay_webhook — recepção de eventos para atualização automática de pagamentos


Quer ver isso funcionando na prática?

Estou pensando em gravar um vídeo mostrando o fluxo completo: desde a configuração da API Key no Odoo, exportação de clientes, sincronização de produtos, geração de cobrança via PIX e confirmação automática do pagamento via webhook — tudo integrado dentro do ERP.

Se você toparia assistir, deixa uma star no repositório ou abre uma issue com o que gostaria de ver no vídeo. Isso me ajuda a entender se vale a pena produzir o conteúdo.


Autor

Cristiano Mafra Junior@CristianoMafraJunior

Carregando publicação patrocinada...