# Conferência de extracto QA — entrega na8085 10/11/2026, `SGF-BANK-RECONCILIATION-QA-v1`, conforme [âmbito autorizado](SGF_BANK_RECONCILIATION_SCOPE.md). Mesma instalação, entrada **Financeiro → Conferência de extracto QA → Abrir extracto, conferência e histórico**, ou `/finance/bank` após escolha da função autorizada. ## Resultado conservado Um extracto **artificial interno** `QA-BANCO-LOCAL`, MZN,2026-11: abertura0, débito20, crédito20 e fecho0. O saldo intermédio−20 é explícito no exercício; não significa autorização de descoberto, caixa disponível ou saldo bancário real. A conta de liquidação não foi classificada como banco. Importação13 → revisão14 do extracto → proposta13 da linha `QA-OUT-20` para a linha contabilística4/diário2 → revisão14 → proposta13 da linha `QA-IN-20` para a linha5/diário3 → revisão14 → conferência final14, diferença0. **Um cabeçalho, duas linhas e sete eventos** conservados na8085; relatório CSV interno com assinatura verificável. O leitor nativo conferiu as duas linhas **efectivamente existentes** de `QA-LIQUIDACAO`,20/reversão20, por SELECT no livro físico ligado à mesma composição/empresa/unidade. Confere IDs fixados, conta, data, moeda, sinal/valor e fotografia do diário; não toma correspondência por igualdade de valor nem oferece toda a contabilidade. Reutiliza a ligação nativa existente, sem novo PGrole; o adaptador apenas executa leituras, não é uma concessão de escrita nem uma nova role SELECT-only. Não foram criados pagamentos/estornos/comissões/ajustes ou lançamentos para preparar ou fechar o exercício. Caixa950 fechada,27 lançamentos, período contabilístico, IVA com quatro versões e regras com quatro eventos/dois cálculos intactos. Não existe SGC/portal/banco/API de instituição em execução neste percurso. ## Controlos e histórico CSV UTF-8 limitado8192 bytes e ao caso artificial aprovado, com validação de cabeçalho, conta/período/moeda, ordem/data/referência, sinais, montantes, abertura/fecho e saldos intermédios. Não é importador bancário geral. Ficheiro não substitui fotografia anterior; mesmo ficheiro/chave recupera a origem sem duplicação. Com outra chave e o mesmo ficheiro, devolve o extracto existente sem criar eventos ou linhas, inclusive depois da conferência final; isso não reabre o processo. Extracto importado não cria correspondências. Revisão distinta do extracto precede propostas individuais; revisão de cada proposta exige alvo exacto e preparador ainda autorizado. Proposta por rever não permite outra para a mesma linha. Uma linha contabilística ou de extracto já conferida não pode ser usada novamente. Finalização exige as duas correspondências revistas e nenhuma proposta pendente. Não há reabertura de conferência finalizada, Caixa ou período. Prévia cifrada600s em savepoint revertido, impacto antes da confirmação, contexto/autor/direitos/versão/origem revalidados sob lock da empresa. `br_statements` fixa CSV/SHA e linhas; `br_events` fixa predecessor, proposta exacta, autor/preparador/data/fundamento/estados e correspondências; `br_commands` fixa chave/hash/resultado. Triggers exigem acesso/revisão distinta/versão, protegem história append-only e impedem duplicação de correspondências. Guarda física QA e PUBLIC revogado. Recibo próprio recuperável noutra sessão por GET, sem executar de novo. Fonte alterada bloqueia a conferência/relatório, sem preencher saldos zero. Interface exige escolha explícita das duas linhas e da decisão, protege campos durante operação incerta e conserva histórico/consulta depois da finalização. Upload/leitura de ficheiro limitado ao CSV QA; botão do exemplo só preenche após escolha do utilizador. Não lê ficheiros por caminhos recebidos do cliente. Linhas de extracto são **limitadas a duas por este contrato**, com filtro de estado. Histórico é SQL25/100 e foi percorrido além100 eventos. Não se declara importação/paginação de extractos de volume arbitrário. O relatório é derivado das fotografias imutáveis da conferência, com checksum no download e auditoria; não se declarou arquivo independente do binário/renderer para retenção legal de longo prazo. ## Acessos e provas `bank_reconciliation.view/import/prepare/review`: **oito concessões por cada uma das duas bases QA existentes**,16 no conjunto, exactamente [como aprovado](integration/sgf-bank-reconciliation-access-proposal.json). Importação/preparação13, revisão14 e consultas13–17. Não herdados de Caixa/recebíveis. Sem novo utilizador/PGrole/direito PUBLIC/acesso real. Rootflag desligada; somente a8085 disponibilizada com vínculo privado por hash. |Prova|Resultado| |---|---| |37 regressão, rollback integral|Importação/prévia, sinais/moeda/valor, revisão distinta, fase de extracto, versões antigas, linha/pedido repetidos, correspondência manual, finalização/relatório, origem alterada, falha após importação com rollback/recuperação e dados anteriores intactos.| |Concorrência na regressão|Segunda revisão503/Retry-After5 durante o lock da empresa; libertação→409 por versão antiga. Uma revisão válida, recuperação da primeira chave sem duplicação.| |11 SQL/fronteiras, rollback|126 eventos de metadados (63 propostas/recusas) além dos dois eventos de concorrência;128 percorridos em25 e100/28. Filtros, actor/contexto/unidade/módulo, histórico imutável e writer indevido. Fixtures não são correspondências confirmadas.| |28 HTTP na8085|Leitor nativo actual, duas linhas reais do QA, sete confirmações/repetições, dois pares conferidos individualmente, finalização/relatório/checksum, sinais/IDs/reutilização/actor/módulo/tenant, recibo noutra sessão e ecrã. Progresso guardado para não repetir operações válidas.| |15 DOM→HTTP|Consulta do estado final, duas correspondências visíveis, formulário fechado, filtros/histórico100/detalhe, recibo e integração com Caixa950/IVA4/regras2cálculos. **Zero POSTs de negócio**. Não é navegador ou aceitação visual.| |Três HTTP do relatório|Resposta CSV/checksum preservados através do mesmo tratamento HTTP limitado para ocupação. Não foi repetido o percurso de sete decisões.| |Preservação SELECT-only|20 conjuntos originais completos e binding idênticos; apenas oito concessões aprovadas adicionadas. Sem append nativo ou alteração dos exemplos anteriores.| Total94 verificações dirigidas, concorrência separada. [Índice verificável](proofs/sgf-bank-reconciliation-20261110.json). **Distinção de origem das provas:** a regressão existente não contém os dois lançamentos20/20. Os testes de componente/persistência/concorrência injectaram um fornecedor de origem artificial **apenas no harness CLI**, como autorizado, com `source_kind=regression_harness_fixture`. Não foram criados lançamentos/pagamentos para preparar testes. O leitor instalado não tem fallback ou origem de regressão; a execução HTTP8085 comprovou `source_kind=native_qa_ledger` e as duas linhas efectivas. Não apresentar a prova com origem simulada como integração nativa total da regressão. Uma ambiguidade de nome no trigger de finalização foi detectada/corrigida só na regressão antes da instalação; a execução de negócio foi revertida e a prova final passou com a guarda corrigida. Não foram somadas tentativas falhadas como provas válidas. ## Limitações restantes Amostra artificial de duas linhas/um período/uma conta de exercício. Não é integração bancária, reconciliação geral, pagamento, livro bancário real ou confirmação da natureza de uma conta. Recusa do extracto mantém o processo bloqueado; protocolo geral de correcção/substituição/reenvio de extractos não faz parte desta entrega. Proposta de correspondência recusada pode ser preparada novamente, sem apagar a recusa. Sem novos motores legais, remunerações, modelos oficiais, rácios financeiros amplos ou capacidade de implantação. Visual continua pendente, via bloqueada não repetida; carga sustentada, retenção/órfãos, arranque completo, conformidade e implantação exigem evidência própria. Seis registos/cache/trabalho alheio preservados; sem novas bases/portas/demos, SGC, publicação/candidata, aceitação/checkpoint ou dados/acessos reais. Dumps e dados privados fora do repositório.