Shioaji Pro
為 agent 交易鋪路:交易終端全程由 coding agent 打造,介面 100% 開源、桌面版內建 AI Agent 與全套專業下單面板 — 這個終端就是能力證明。
Translation pending
Conciliação diária de vendas PIX, crédito e débito entre PDV, maquininha e banco
Translation pending
AI summary · website content
FinanceHTML · PythonGitHub @hylaryfariasOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Conciliação diária de PIX, débito e crédito em três pontas: PDV (relatório de cupons), maquininha Sicredi (relatórios do portal) e extrato bancário.
pip install python-calamine pandas openpyxl
python3 scripts/pdv_pix.py entrada/<relatorio_cupons>.xlsx saida
Gera saida/pdv_pix_<inicio>_a_<fim>.xlsx com o resumo de PIX por loja e dia e a lista
por cupom. Formas de pagamento do PDV tratadas como PIX de maquininha:
PIX MAQUININHA, PIX - TEF, TEF - PIX.
entrada/ arquivos recebidos (PDV, portal Sicredi, extrato)scripts/ leitores e motor de cruzamentosaida/ resultados de cada rodadapython3 scripts/concilia_pix_banco.py entrada/<extrato>.xlsx entrada/<pdv_cupons>.xlsx entrada/<portal_loja>.xlsx ...
Período de fechamento = o coberto pelo portal (ou --de/--ate). Regra medida (ROBS, 54 de 54): PIX cai D0 em dia útil; sábado, domingo e feriado caem no próximo dia útil. Sem taxa. Venda após a última data do extrato fica como "aguarda extrato", nunca como divergência.
scripts/concilia_cupom.py, roda depois das três formas): soma o
que sobrou sem par em cada cupom e procura na máquina, em qualquer modalidade, 1 a 4 vendas
com a mesma soma (36 h antes a 30 min depois do cupom, até 3 h entre si). Mesa dividida com
divisão de formas diferente nos dois lados. O painel marca "conciliado por total da comanda".python3 scripts/concilia_cartao.py entrada/<pdv_cupons>.xlsx entrada/<portal_loja>.xlsx ...
Gera saida/concilia_credito_*.xlsx e saida/concilia_debito_*.xlsx: PDV × maquininha pelo
valor bruto, cupom a cupom (PDV pode lançar de 30 min antes a 36 h depois da máquina). A ponta
do banco (D+1 útil, MDR, antecipação) é a etapa 2, ainda não iniciada.
Quando o PDV baixou com a forma errada e o caixa já fechou, o ajuste é feito no painel
(botão "Transferir para…" na pendência), com justificativa, autor e hora. Fica no banco de dados
do artefato, coleção ajustes, e é lido de volta a cada rodada com a ferramenta de dados do
artefato. O painel aplica os ajustes em cima dos números gerados.
Dois cupons baixados e um só pagamento na máquina é falta de caixa, mesmo com cupons idênticos (mesmo caixa, valor e minuto). O motor mantém "SEM PAR NA MAQUININHA" e preenche "Cupom igual" com o vizinho que casou, para a loja explicar. Vale (Ticket, Alelo, Pluxee, Fepas, Elo/Visa voucher) passado na máquina no mesmo minuto de uma baixa de cartão/PIX sem par vira "PROVÁVEL FORMA ERRADA: VOUCHER", transferível no painel para Voucher.
Regra da Hylary (20/10): toda baixa com forma errada que tenha evidência na máquina (mesmo valor,
mesma loja, poucos minutos de diferença: PIX baixado e cartão na máquina, crédito × débito, dinheiro
baixado e PIX na máquina, vale baixado como cartão) é transferida direto, sem clique um a um. O registro
continua igual: um documento em ajustes no painel (id <loja>_<data>_<cupom>_<origem>_<aut>), com a
justificativa e a autorização da máquina, e a cópia em ajustes/ajustes.csv. Só o que não tem par
claro continua como pendência para decisão.
A venda vai da abertura do caixa até a reabertura da loja às 10h. O PDV já informa o dia de
movimento; a Sicredi e o extrato viram à meia-noite. Todos os leitores convertem a maquininha
para o mesmo dia do PDV (pdv_pix.dia_movimento: datetime − 10 h), então o cruzamento, as
planilhas de saida/ e o painel usam um dia só. A coluna "Data calendário" guarda a data
original. portal_sicredi.ler_portais junta os Históricos de uma mesma loja (semanas diferentes,
exports sobrepostos) antes de cruzar. Exemplo: BIGGS 13, 09/10, PIX = R$ 2.440,69 nos dois lados
(40 cupons: 35 do dia, 2 do delivery fechados às 00:48 e 3 da madrugada).
Com o dia único, só sobra "virada" o cupom fechado no PDV depois das 10h do dia seguinte ao pagamento na máquina (raro). O painel marca o Δ desses dias como "virada de dia ✓", lista o cupom nos dois dias (com a data do outro lado em laranja) e cria uma pendência informativa "CONCILIADO · VIRADA DE DIA" por cupom. Não é divergência e não entra no em aberto. Exemplo: BIGGS 13, 09/10, PIX −R$ 95,08 = cupons 11328 e 11330 do delivery, pagos 09/10 à noite e fechados 10/10 00:48.
Quando a diferença entre PDV e máquina apareceu na contagem física do caixa (sobra ou falta),
o dia é fechado no painel pelo botão "Fechar dia…" na coluna "Fechamento" da tabela de dias (o botão
existe em todo dia com relatório da máquina, para a conferência diária, inclusive nos que já batem), com o
valor conferido no caixa, justificativa, autor e hora. Fica na coleção fechamentos do artefato
(id <loja>_<pix|credito|debito>_<data>). O dia e as pendências daquela data saem do em aberto, a
loja fecha, e o registro aparece ao abrir o dia (com botão "Reabrir dia"). Primeiro caso: MAPOLI,
PIX, 08/10, R$ 6,00 a mais na máquina que sobrou no caixa físico.
python3 scripts/gera_painel.py entrada/<pdv_cupons>.xlsx --de 2026-10-08 --ate 2026-10-14
Lê as planilhas de saida/ e grava painel/index.html (template em painel/template.html,
cores e tipografia do Manual de Identidade Visual · Grupo Ragga). Publicado em
https://claude.ai/artifact/8hmLnVrM6CiE3omwzP7oms — republicar a cada rodada.
O mesmo painel/index.html roda fora do Claude em https://conciliacao-diaria.vercel.app.
vercel.json publica só a pasta painel/ (as planilhas de entrada/ e saida/ não vão
pro site). Os ajustes, fechamentos e vistos ficam num Redis e passam por api/dados.js.
Configuração, uma vez só, no projeto da Vercel:
conciliacao-diaria. Isso cria a variável REDIS_URL.
(Também funciona com Upstash: KV_REST_API_URL/KV_REST_API_TOKEN pelo Marketplace
ou UPSTASH_REDIS_REST_URL/UPSTASH_REDIS_REST_TOKEN direto do site da Upstash.)Sem senha por padrão: quem tiver o link vê e grava. Se um dia quiser proteger, basta
criar a variável PAINEL_SENHA em Settings → Environment Variables e redeployar; o
painel passa a pedir a senha uma vez e guarda no navegador.
Na primeira abertura com o banco vazio, api/dados.js importa ajustes/seed_painel.json
(cópia do que estava gravado no painel do Claude em 22/10). A partir daí, o que for
gravado na Vercel fica na Vercel; o painel do Claude e o da Vercel não se sincronizam.
Quem estiver com o painel aberto vê o que os outros gravam em até 5 s (o painel pergunta
ao banco se a versão mudou e só baixa os dados quando mudou).
ajustes/importar.json é o caminho do Claude para gravar no banco sem acesso direto a ele:
ajustes, fechamentos e vistos listados ali entram no banco na primeira leitura depois do
deploy (cada versão do arquivo é aplicada uma vez; nunca sobrescreve o que já está gravado;
remover apaga ids). Depois de importado, o conteúdo pode ser substituído pelo lote seguinte.
python3 scripts/concilia_cartao_banco.py "entrada/extrato_todas_*.xlsx" entrada/portal/*detalhado*.xlsx --de 2026-10-01 --ate 2026-10-24 --aluguel "entrada/aluguel/*.xlsx" --recebimentos "entrada/recebimentos/*.xlsx"
Chave: (loja, data de pagamento, produto, bandeira). O portal informa, venda a venda, o líquido
(bruto − MDR) e a data efetiva do pagamento (sem ela, D+1 útil da data calendário); o extrato traz
o crédito já separado nesse eixo (SICREDI DEBITO VISA, SICREDI ANTEC MASTER, SICREDI CREDITO ELO).
Débito bate centavo a centavo. Crédito desconta a antecipação automática, cuja taxa muda por dia e sai do
próprio extrato (as bandeiras concordam entre si). Parte da ELO cai fora da antecipação, em D+2, pelo
líquido exato. O aluguel das máquinas é descontado da liquidação do dia da cobrança: o Histórico de
aluguel do portal (um arquivo por EC, entrada/aluguel/aluguel_<EC>_<AAAA-MM>.xlsx) entra no cálculo.
Melhor ainda é o Relatório Detalhado de Recebimentos Pagos (portal Sicredi, Meus Domicílios, um por EC,
entrada/recebimentos/recebimentos_<EC>_<de>_a_<ate>.xlsx): cada "Código de pagamento" é uma linha do extrato
e traz, venda a venda, o desconto de antecipação exato e as linhas "compensado por UR - Cobrança de Aluguel"
que mostram de qual liquidação (e bandeira) o aluguel saiu. Com ele o lote fecha sem deduzir taxa nem ratear
aluguel por tentativa (medido: ROBS, R$ 918,00 saíram em 02/10, 05/10 e de um voucher em 15/10).
Status por lote: CONCILIADO, DIVERGENTE, SEM CRÉDITO, AGUARDA EXTRATO, AGUARDA PORTAL (venda ainda sem
data efetiva no Histórico exportado; reexportar resolve), VENDA ANTES DO PERÍODO. Saída em
saida/concilia_cartao_banco_<de>_a_<ate>.xlsx; o painel lê as abas Recebimentos e Por dia de venda.
scripts/isaias_taxa.py --loja "ISAIAS 01 - MARINGA" --de 2026-10-01 --ate 2026-10-20 cruza o relatório de
cupons (totais + operador, entrada/pdv_totais_*.xlsx) e o analítico (entrada/pdv_analitico_*.xlsx) com o
Histórico de vendas da Sicredi, sem depender da forma de pagamento: casa valor exato (até 36 h, comanda virada)
e cupom × 1,10 = máquina (até 2 h), o par mais próximo no tempo primeiro. Gera saida/isaias_taxa_servico_<de>_a_<ate>.xlsx
com a prova par a par (terminal exclusivo do caixa, minutos até o fechamento, concorrentes livres).