Esqueça a complexidade do IBS, da CBS e das regras de transição. Uma API unificada que calcula a retenção correta por transação — e fala a língua de quem integra.
{ "valor_total": 15990, // centavos "cep_destino": "13083-970", "vendedor": { "cnpj": "12345678000190", "regime": "regular" }, "itens": [ { "ncm": "22021000", "valor": 990 }, { "ncm": "10063021", "valor": 15000 } ] }
{ "valor_liquido": 13247, "tributos": { "cbs": 1407, "ibs": 1336, "total_retido": 2743 }, "destino": { "municipio": "Campinas", "uf": "SP" }, "itens": [ { "ncm": "22021000", "aliquota": "padrao" }, { "ncm": "10063021", "aliquota": "reduzida_60" } ] }
A Oevon é a camada de cálculo entre o seu sistema e a infraestrutura de pagamento. Ela conversa com a Plataforma Pública do Split Payment por baixo — e devolve a retenção pronta.
Tudo que você precisa para sair do zero ao primeiro split calculado numa tarde.
Um endpoint, um JSON. Envia a transação, recebe a retenção de IBS e CBS calculada por destino. Sem ler 500 páginas de regulamento.
Mais de 10 cenários reais — cesta básica, venda interestadual, devolução, fornecedor no Simples — para testar sem tocar na plataforma do governo.
Em vez de um código críptico, uma mensagem clara: "o CNPJ do vendedor não está ativo como contribuinte de IBS". Você sabe o que corrigir.
cURL, JavaScript e Python prontos na documentação. Cola, troca a chave, roda. O primeiro request leva minutos, não dias.
Uptime e latência visíveis em tempo real. Quando a plataforma do governo oscila, você vê antes do seu cliente reclamar.
Bibliotecas em Node.js, Python e Go para não fazer requisição HTTP na mão. Webhooks com retry e idempotência nativa no mesmo roadmap.
O mesmo request, na linguagem que você já usa.
curl https://api.oevon.com.br/v1/split \ -H "Authorization: Bearer sk_test_oev..." \ -H "Content-Type: application/json" \ -d '{ "valor_total": 15990, "cep_destino": "13083-970", "vendedor": { "cnpj": "12345678000190", "regime": "regular" }, "itens": [{ "ncm": "10063021", "valor": 15000 }] }'
const oevon = require('oevon')('sk_test_oev...'); const split = await oevon.split.create({ valor_total: 15990, cep_destino: '13083-970', vendedor: { cnpj: '12345678000190', regime: 'regular' }, itens: [{ ncm: '10063021', valor: 15000 }] }); console.log(split.tributos.total_retido); // 2743
import oevon oevon.api_key = "sk_test_oev..." split = oevon.Split.create( valor_total=15990, cep_destino="13083-970", vendedor={"cnpj": "12345678000190", "regime": "regular"}, itens=[{"ncm": "10063021", "valor": 15000}] ) print(split.tributos.total_retido) # 2743
Cada chamada fica registrada com payload completo de request e response, status e tempo de resposta. Quando algo quebra, você vê exatamente onde — em segundos, não em tickets.
Explorar o painel →"tributos": { "cbs": 1407, "ibs": 1336 }, "destino": "Campinas/SP"
"erro": "cnpj_vendedor_inativo", "mensagem": "O CNPJ não está ativo como contribuinte de IBS."
"tributos": { "cbs": 0, "ibs": 0 }, "categoria": "cesta_basica_nacional"
Crie uma chave de teste e faça o primeiro cálculo de retenção em minutos.