Abre o caixa do PDV
POST/store-front/cashier/:idbankaccount/open
Abre uma nova sessão de caixa (StoreFrontCashier) ou retoma a sessão atual quando o caixa já está aberto pelo mesmo usuário.
Pré-condições
- Lock Redis (
storeFrontCashierOpenPost:<IDBankAccount>, TTL 10s) — evita abertura concorrente do mesmo caixa. - Conta precisa ser caixinha do PDV —
BankAccount.BankNumber = '000'. Se não for, retornaBanco informado não é do tipo Caixinha. - Tipo de pedido padrão —
BankAccount.IDTypeOrderprecisa estar preenchido (configurado no cadastro da conta). - Caixa não pode estar aberto por outro usuário — se está, retorna
Caixa já esta aberto e precisa fechar antes de abrir novamente. Se for o mesmo usuário, a chamada é idempotente — retoma a sessão existente sem criar nova. - Usuário não pode ter outro caixa aberto — se tem, retorna
Usuário já possui outro caixa aberto. - Senha — validada com
bcrypt.comparecontraUser.Password. Senha errada →Senha incorreta. Usuário sem senha →Usuário não tem senha cadastrada.
Validações condicionais (parâmetro CompanyParameter)
Quando CompanyParameterIDWorks.CheckConfigCashierOpen = 1, o handler valida configurações fiscais antes de abrir:
Company.NfceUltima,NfceSerie,NfceCSC,NfceCSCidpreenchidos (campos para emissão de NFCe).- Existe pelo menos uma
TypeTaxcomIssueNFCe=1para a empresa. - Essa
TypeTaxtem pelo menos uma configuraçãoStockKeepingUnitIcmsTaxInterstate(ICMS para consumidor final). - Existe pelo menos um
TypePaymentativo comEnableFrenteCaixa=1.
Falha em qualquer um → mensagem específica (Precisa preencher o número da última NFCe..., Não existe nenhuma regra fiscal para emissão de NFCe..., etc.).
Side-effects
- Cria registro em
StoreFrontCashier(ou reutiliza o existente em retomada). - Se
InitialBalancedifere doBalanceatual em mais de R$ 0,01, gera lançamentoAccountsPayableReceivableBankStatementcom descrição "Ajuste abertura de caixa" (crédito se positivo, débito se negativo) — registra a divergência declarada pelo operador ("o caixa tinha mais/menos do que o sistema dizia"). - Grava
CommentsOpenquando preenchido.
Resposta
Retorna o caixa aberto com o contexto operacional (IDStoreFrontCashier, RecordTimestampOpen, Login, tipo de pedido, política comercial, armazém, faturador, flag IssueNFCe) — tudo que o front precisa para inicializar a tela do PDV.
Request
Responses
- 200
- 400
- 500
Caixa aberto (ou retomado). Resposta inclui o contexto operacional para inicializar o PDV.
Erros (prefixo [BadRequest]):
Caixa já esta em processo de abertura(lock Redis)Caixa não existeBanco informado não é do tipo CaixinhaBanco informado não tem tipo de pedido padrão cadastradoCaixa já esta aberto e precisa fechar antes de abrir novamenteUsuário não localizadoUsuário não tem senha cadastradaSenha incorretaUsuário já possui outro caixa abertoErro ao abrir caixa. Verificar se o mesmo já esta abertoNão existe tipo de pedido padrão para frente de caixa- Validações fiscais (com
CheckConfigCashierOpen=1):Precisa preencher o número da última NFCe...,Precisa preencher a séria da NFCe...,Precisa preencher ID CSC...,Precisa preencher código de contribuinte...,Não existe nenhuma regra fiscal para emissão de NFCe...,Não existe nenhuma configração de ICMS na regra fiscal para consumidor final,Não existe tipo de pagamento configurado para frente de caixa
Erro interno (prefixo Error:).