Manual Libbemafiscal
Manual Libbemafiscal
Portuguese
Contents
1 bemafiscal.so
A bemafiscal.so é uma biblioteca de comunicação de alto-nível, pela versatilidade e facilidade de progra-
mação em relação as outras bibliotecas. É utilizada em ambiente Linux 32 bits, realizando a comunicação
com as impressoras fiscais Bematech.
Todas as funções desta biblioteca são funções de alto-nível.
A biblioteca pode ser salva em qualquer uma das pastas de bibliotecas do sistema, de acordo com a con-
figuração de /etc/ld.so.conf∗. Normalmente, basta utilizar a pasta /usr/local/lib ou até mesmo /usr/lib. Para
utilizar outros diretórios, provavelmente será necessário alterar as configurações do ld.so.conf para que a
biblioteca seja encontrada.
O arquivo bemafiscal.xml (arquivo de configuração da biblioteca) deve estar em um dos seguintes di-
retórios:
• /etc/bemaconfig.xml
• /usr/lib/bemaconfig.xml
O arquivo de configuração é um arquivo XML, com codificação ISO-8859-1, e deve estar presente para o
correto funcionamento da biblioteca.
<Banco>001</Banco>
<Data>05042007</Data>
<Mensagem>Mensagem promocional</Mensagem>
<ImpressaoVerso>0</ImpressaoVerso>
<Linhas>1</Linhas>
</ChequeCopia>
</bematech>
Os parâmetros que devem ser configurados são descritos a seguir. Os emais são internos, utilizados e
alterados pela própria biblioteca a fim de permitir certas funcionalidades. Em nenhuma hipótese eles
devem ser manualmente alterados.
1.1.1 modoremoto.porta
1.1.2 configuracoes.modelo
Modelo da impressora sendo utilizada. Impressoras suportadas: KR4IBMFI, MP25FI, MP40FI, MP50FI,
MP2000FI, MP2100FI, MP3000FI e MP6000FI.
1.1.3 configuracoes.log
1.1.4 configuracoes.path
1.1.5 controleManual
Habilita o controle manual da abertura da porta serial. Isto é, o desenvolvedor será responsável por chamar
as funções Bematech_FI_AbrePortaSerial e Bematech_FI_FechaPortaSerial.
1.1.6 Cheque.Favorecido
1.1.7 Cheque.Cidade
2.1 Módulos
Cupom Fiscal ??
Código de Barras ??
Relatórios Fiscais ??
Inicialização ??
Informações da Impressora ??
Informações MFD ??
Informação ??
Gaveta de Dinheiro ??
Cheque ??
Utilidades ??
Outras ??
Download MFD ??
Internas ??
Monitor ??
3 Documentação do módulo
Funções
// exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_AbreBilhetePassagem("1", "1", "Curitiba", "São Paulo",
"Leito", "123", "Carlos", "Itapemirim", "11/01/02", "23:30:00",
"15", "D10");
Parâmetros:
imprimeValorFim Indição se será impresso o valor pago no fim do cupom. "1" - imprime "0" - não
imprime
imprimeEnfatizado Indica se as informações de embarque, poltrona e plataforma serão impressos
enfatizado. "1" - imprime enfatizado "0" - não imprime
embarque Local de embarque, com até 40 caracteres.
destino Local de destino, com até 40 caracteres.
linha Informações sobre a linha (Ex: Curitiba - São Paulo - Leito), com até 40 caracteres.
prefixo Prefixo, com até 40 caracteres.
agente Nome do vendedor, com até 40 caracteres.
agencia Nome da agência, com até 40 caracteres.
data Data de embarque, no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.
hora Hora de embarque, hhmmss ou hh:mm:ss.
poltrona Número da poltrona, com até 2 caracteres.
plataforma Número da plataforma, com até 3 caracteres.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
Nota:
Para o registro de itens, utilize a função Bematech_FI_VendeItem().
Os campos de código e descrição devem ser informados, porém não serão impressos.
É obrigatório pelo convênio SINIEF 06/89 no mínimo o registro da tarifa (num totalizador tributado)
e do seguro (no totalizador não incidência).
O canhoto do motorista somente será impresso se a emissão do cupom adicional for ativada durante a
lacração da impressora.
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_AbreBilhetePassagemMFD("Curitiba", "São Paulo",
"Curitiba/São Paulo - Leito", "Itapemirim", "22/04/02",
"11:30:00", "15", "D10", "3", "5.021.659-66", "Fulano de Tal",
"Rua sem Fim, 1000", "SP");
Parâmetros:
embarque Local de embarque, com até 40 caracteres.
destino Local de destino, com até 40 caracteres.
linha informações sobre a linha (Ex: Curitiba - São Paulo - Leito).
agencia Nome da agência, com até 40 caracteres.
data Data de embarque.
hora Hora de embarque.
poltrona Número da poltrona, com até 2 caracteres.
plataforma Número da plataforma, com até 3 caracteres.
tipo Tipo da passagem.
rg RG, com até 29 caracteres.
nome Nome do cliente, com até 30 caracteres.
endereco Endereço do cliente, com até 80 caracteres.
ufDestino UF destino, com 2 caracteres.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
Nota:
Para o registro de itens, utilize a função Bematech_FI_VendeItem().
O primeiro item a ser vendido deve possuir a descrição "TARIFA".
O tipo da passagem deve ser de acordo com a seguinte tabela:
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_AbreCupom("11.111.111-11");
// ou
iRetorno = Bematech_FI_AbreCupom("");
Parâmetros:
cpf CPF/CGC do cliente a ser impresso no cabeçalho do cupom com até 29 caracteres (opcional)
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
Nota:
O cupom fiscal deve estar fechado.
3.1.1.4 int Bematech_FI_AbreCupomMFD (const char ∗ cCPF, const char ∗ cNome, const char ∗
cEndereco)
Abre Cupom MFD.
Abre o cupom fiscal na impressora MFD e mantém a compatibilidade com a MP20 FI II.
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_AbreCupomMFD("10.123.154-98", "Fulano de Tal",
"Rua Sem Fim, 1000");
Parâmetros:
cCPF CPF ou CGC do cliente com até 29 caracteres.
cNome Nome do cliente com até 30 caracteres.
cEndereco Endereço do cliente com até 80 caracteres.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
O cupom fiscal deve estar fechado.
Na impressora fiscal Bematech MP-2100 TH FI o tamanho da descrição do endereço, impresso no
cabeçalho do cupom fiscal, foi reduzido de 80 para 79 caracteres. Para manter a compatibilidade, será
aceito o tamanho de 80 caracteres, mas internamente a impressora registrará apenas os 79 caracteres.
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_AcrescimoDescontoItemMFD("005", "D", "$", "1000");
Parâmetros:
cItem Número do item pertencente ao cupom fiscal com até 3 dígitos.
cAcrescimoDesconto Indica se é acrescimo "A" ou desconto "D".
cTipoAcrescimoDesconto Indica se o acréscimo ou desconto é por valor "$" ou por percentual "%".
cValorAcrescimoDesconto Valor do acréscimo ou desconto a ser efetuado, com até 14 dígitos para
acréscimo ou desconto por valor e 4 dígitos para percentual.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_AcrescimoDescontoItemMFD("A", "%", "10,00");
Parâmetros:
cTmpFlag Indicador de acréscimo ("A" ou "a") ou desconto ("D" ou "d").
cTipo Indicador de acréscimo ou desconto por valor "$" ou por percentual "%".
cTmpValor Valor do acréscimo ou desconto com até 14 digitos por valor ou 4 dígitos por percentual.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
O cupom deve estar subtotalizado.
O cupom não deve estar totalizado.
É permitido o registro de apenas uma operação válida para acréscimo e uma para desconto no subtotal.
// exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_AumentaDescricaoItem("Produto 123/776 - 001 abc");
Parâmetros:
descricao Descrição do item (até 200 caracteres)
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-30 Função incompatível com a impressora Yanco.
Nota:
Essa função deve ser utilizada antes da Bematech_FI_VendeItem, pois assim o item será impresso com
a nova descrição.
Este comando tem validade somente para a impressão de um item, voltando ao default que é a im-
pressão com 29 caracteres na descricao do item.
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_Autenticacao();
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).
Nota:
Deverá ser executada imediatamente após um recebimento não fiscal ou o término de um cupom fiscal.
Poderá ser repetido até 5 vezes para cada recebimento, após isso o comando será ignorado.
Na impressora fiscal Bematech, serão aguardados 5 segundos para o posicionamento do documento e
autenticará no documento a data, hora, número da loja, número do caixa e o número do último cupom
fiscal. Se decorrido os 5 segundos sem o posicionamento do documento, a impressora retornará ao seu
estado normal, retornando o status de "Comando Não Executado".
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_AutenticacaoMFD("5", "Autenticacao Mecanica !!!");
Parâmetros:
cLinhas Número de linhas que serão saltadas para imprimir o texto, sendo este um valor entre 1 e 99.
cTexto Texto a ser impresso com até 47 caracteres.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Deverá ser executada imediatamente após um recebimento não fiscal ou o término de um cupom fiscal.
Poderá ser repetido até 5 vezes para cada recebimento. Após isto, o comando será ignorado.
A impressora irá aguardar 5 segundos para o posicionamento do documento e autenticará no docu-
mento a data, hora, número da loja, número do caixa e o número do último cupom fiscal. Se decorrido
os 5 segundos sem o posicionamento do documento, a impressora retornará ao seu estado normal,
retornando o status de "comando não executado".
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_CancelaAcrescimoDescontoItemMFD("A", "005");
Parâmetros:
cFlag Indicador de cancelamento de acréscimo "A" ou desconto "D".
cItem Número do item a ser cancelado com até 3 dígitos e restrito aos 300 últimos registros efetuados.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_CancelaAcrescimoDescontoSubtotalMFD("D");
Parâmetros:
cFlag Indicador de cancelamento de acréscimo ("A" ou "a") ou cancelamento de desconto ("D" ou
"d").
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
O cupom deve estar subtotalizado.
O cupom não deve estar totalizado.
O cupom deve ter operações anteriores de acréscimo ou desconto no subtotal.
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_CancelaCupom();
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicacao
-2 Erro de parametros
-4 Arquivo de inicialização não encontrado ou inválido
-8 Erro ao criar ou gravar no arquivo texto
Nota:
No caso de cancelamento com o cupom ainda aberto, pelo menos um item deve ter sido vendido.
Não poderá ter ocorrido Redução Z e nem Leitura X após a emissão do cupom.
3.1.1.13 int Bematech_FI_CancelaCupomMFD (const char ∗ cCPF, const char ∗ cNome, const
char ∗ cEndereco)
Cancela Cupom MFD.
Cancela o cupom fiscal na impressora MFD e mantém a compatibilidade com a MP20 FI II.
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_CancelaCupomMFD("11.111.111-11", "Fulano de Tal",
"Rua Sem Fim, 1000");
Parâmetros:
cCPF CPF ou CGC do cliente com até 29 caracteres.
cNome Nome do cliente com até 30 caracteres.
cEndereco Endereço do cliente com até 80 caracteres.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_CancelaItemAnterior();
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
1 Ok
-2 Erro de parâmetros
-4 Arquivo de inicialização não encontrado ou inválido
-8 Erro ao criar ou gravar no arquivo texto
Nota:
O cupom fiscal deve estar aberto
Ao menos um ítem deve ter sido vendido
Não deve ter sido cancelado nenhum item imediatamente anterior
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_CancelaItemGenerico("005");
Parâmetros:
numeroItem Número do item a ser cancelado
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Comando não executado
-2 Erro de parâmetros
-4 Arquivo de inicialização não encontrado ou inválido
-8 Erro ao criar ou gravar no arquivo texto
Nota:
O cupom fiscal deve estar aberto.
Ao menos um ítem deve ter sido vendido.
O ítem não pode ter sido cancelado anteriormente e nem fora da faixa dos últimos itens vendidos.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_CupomAdicionalMFD();
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_EfetuaFormaPagamento("Dinheiro", "10,00");
Parâmetros:
formaPagamento Forma de pagamento
valorPago valor da forma de pagamento
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
Nota:
O fechamento do cupom com formas de pagamento deve ter sido iniciado.
// exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_EfetuaFormaPagamentoDescricaoForma("Cheque PRE", "75,00",
"Vencimento em 15/02/02");
Parâmetros:
formaPagamento Forma de pagamento, com até 16 caracteres.
valorPago Valor da forma de pagamento, com até 14 dígitos.
descricaoForma Descrição da forma de pagamento, com até 80 caracteres.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-24 Forma de pagamento não programada
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
-30 Função não compatível com a impressora YANCO
Nota:
Descrição será impressa uma linha após a forma de pagamento.
O fechamento do cupom com formas de pagamento deve ter sido iniciado.
A função verifica o indice da forma de pagamento se ainda não estiver cadastrada será programada.
// exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_EfetuaFormaPagamentoImpAntiga("Dinheiro", "10,00");
Parâmetros:
cFormaPagamento Descrição da forma de pagamento
cValorFormaPagamento Valor da forma de pagamento
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_EfetuaFormaPagamentoIndice("01", "75,00");
Parâmetros:
indice Índice da forma de pagamento, com até 2 caracteres.
valorForma Valor da forma de pagamento, com até 14 dígitos.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-24 Forma de pagamento não programada
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
// exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_EfetuaFormaPagamentoIndiceDescricaoForma("02", "75,00",
"Vencimento em 15/02/02");
Parâmetros:
cIndiceFormaPagamento Índice da forma de pagamento com 2 caracteres
cValorFormaPagamento Valor da forma de pagamento com até 14 dígitos
cDescricaoForma Descrição opcional da forma de pagamento com no máximo 80 caracteres
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-24 Forma de pagamento não programada
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
-30 Função não compatível com a impressora Yanco
Nota:
A descrição será impressa uma linha após a forma de pagamento.
O fechamento do cupom com formas de pagamento deve ter sido iniciado.
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_EfetuaFormaPagamentoIndiceMFD("01", "50,00", "2",
"Compra parcelada");
Parâmetros:
cIndiceForma Índice da forma de pagamento, com até 2 caracteres.
cValorFormaPagamento Valor da forma de pagamento com até 14 caracteres.
cParcelas Número de parcelas em que o pagamento será realizado, sendo este um valor entre 1 e 24.
cDescricaoForma Descrição da forma de pagamento, com até 80 caracteres.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-24 Forma de pagamento não programada
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
A função verifica se o índice da forma de pagamento encontra-se cadastrado. Caso não esteja, o mesmo
será programado.
O número de parcelas é utilizado para emissão do comprovante não fiscal vinculado. Poderá ser
emitido um comprovante para cada parcela.
A descrição será impressa uma linha após a forma de pagamento.
O fechamento do cupom com formas de pagamento deve ter sido indicado.
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_EfetuaFormaPagamentoMFD("Cartao VISA", "50,00", "2",
"Compra parcelada");
Parâmetros:
cFormaPagamento Forma de pagamento com até 16 caracteres.
cValorFormaPagamento Valor da forma de pagamento com até 14 caracteres.
cParcelas Indicador do número de parcelas em que o pagamento será realizado, devendo este número
ser entre 1 e 24.
cDescricaoForma Descrição da forma de pagamento com até 80 caracteres.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-24 Forma de pagamento não programada
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
O número de parcelas é utilizado para emissão do comprovante não fiscal vinculado. Poderá ser
emitido um comprovante para cada parcela.
A descrição será impressa uma linha após a forma de pagamento.
O fechamento do cupom com formas de pagamento deve ter sido iniciado.
// exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_EstornoFormasPagamento("Ticket", "Dinheiro", "50,00");
Parâmetros:
formaOrigem Descrição da forma de pagamento de origem, com até 16 caracteres.
formaDestino Descrição da forma de pagamento de destino, com até 16 caracteres.
valor Valor a ser estornado, com até 14 dígitos.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
// exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_FechaCupom("Dinheiro", "A", "$", "0000", "35,00",
"Obrigado, volte sempre !!!");
Parâmetros:
formaPagamento Forma de pagamento, com até 16 caracteres.
acrescimoOuDesconto "A" para Acréscimo, "D" para Desconto
tipoAcrescimoDesconto "$" para Acrescimo ou desconto por valor e "%" para percentual
valorAcrescimoDesconto Valor do acréscimo ou desconto.
valorPago Valor pago, com até 14 dígitos.
mensagem Mensagem promocional.
Retorna:
int com a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
Nota:
O cupom deve estar aberto.
O valor do acréscimo/desconto deve ter no máximo 14 dígitos se for por valor ou 4 dígitos se for por
percentual.
A mensagem promocional deve ter até 384 caracteres (8 linhas X 48 colunas) para a impressora fiscal
MP-20 FI II, e 320 caracteres (8 linhas X 40 colunas) para a impressora fiscal MP-40 FI II.
// exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_FechaCupomResumido("Ticket",
"Obrigado, volte sempre !!!");
Parâmetros:
formaPagamento Forma de pagamento, com até 16 caracteres.
mensagem Mensagem promocional.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).
Nota:
A mensagem promocional deve ter até 384 caracteres (8 linhas X 48 colunas) para a impressora fiscal
MP-20 FI II, e 320 caracteres (8 linhas X 40 colunas) para a impressora fiscal MP-40 FI II.
O cupom deve estar aberto.
Pelo menos 1 (um) item deve ter sido vendido e não pode ter sido cancelado.
A utilização dessa função elimina a obrigatoriedade de uso das funções Bematech_-
FI_IniciaFechamentoCupom, Bematech_FI_EfetuaFormaPagamento e Bematech_FI_-
TerminaFechamentoCupom que estão implementadas internamente na função.
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_IniciaFechamentoCupom("A", "%", "1000");
Parâmetros:
acrescimoOuDesconto "A" para Acrescimo e "D" para desconto
tipoAcrescimoDesconto "$" para Acrescimo ou desconto por valor e "%" para percentual
valorAcrescimoDesconto Valor do acréscimo ou desconto.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
Nota:
O cupom deve estar aberto.
Pelo menos um item deve ter sido vendido.
O valor do acréscimo/desconto deve ser menor que o subtotal do cupom.
O valor do acréscimo/desconto deve ter no máximo 14 dígitos se for por valor ou 4 dígitos se for por
percentual.
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_IniciaFechamentoCupomMFD("X", "%", "1200", "1000");
Parâmetros:
cAcrescimoDesconto Indicador de acréscimo "A", desconto "D" ou ambos "X" no fechamento do
cupom fiscal.
cTipoAcrescimoDesconto Indica se o acrésimo ou desconto será por valor "$" ou percentual "%".
cValorAcrescimo Valor do acréscimo a ser efetuado com até 14 dígitos por valor e 4 dígitos por
percentual.
cValorDesconto Valor do desconto a ser efetuado com até 14 dígitos por valor e 4 dígitos por per-
centual.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Para efetuar a forma de pagamento, use a função Bematech_FI_EfetuaFormaPagamentoMFD.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_SubTotalizaCupomMFD();
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função habilita as seguintes operações:
Acréscimo ou desconto em subtotal.
Cancelamento de acréscimo ou desconto em subtotal.
Totalização do cupom fiscal.
// exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_TerminaFechamentoCupom("Obrigado, volte sempre !!!");
Parâmetros:
mensagem Mensagem promocional
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
-36 Forma de pagamento não finalizada
Nota:
A mensagem promocional deve ter até 384 caracteres (8 linhas X 48 colunas) para a impressora fiscal
MP-20 FI II, e 320 caracteres (8 linhas X 40 colunas) para a impressora fiscal MP-40 FI II.
O cupom deve estar aberto.
A forma de pagamento deve ter sido efetuada.
Na impressora fiscal Bematech, serão impressas 8 linhas de texto.
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_TerminaFechamentoCupomCodigoBarrasMFD
("Obrigado, volte sempre !!!", "EAN13", "123456789012", 100, 1, 3,
0, 5, 4, 5);
Parâmetros:
cTmpMensagem Mensagem promocional com até 384 caracteres (8 linhas x 48 colunas).
cTipoCodigo Tipo do código que será impresso. Este poderá ser um dos 12 formatos suportados pela
impressora:
"EAN13"
"PDF417"
"ITF"
"EAN8"
"CODABAR"
"CODE128"
"CODE39"
"ISBN"
"MSI"
"PLESSEY"
"UPCA"
"UPCE"
iPosicaoCaracteres Posição do código de barras. Deve ser um número inteiro com valor entre 0 e 3.
Posição Formato de impressão
0 não imprime os caracteres do código
1 imprime os caracteres acima do código
2 imprime os caracteres abaixo do código (default)
3 imprime os caracteres acima e abaixo do código
iFonte Formato da fonte do código de barras. Deve ser um número inteiro com valor entre 0 e 1.
Fonte Formato da fonte
0 normal
1 condensado
iMargem Formato da margem do código de barras. Deve ser um número inteiro com valor entre 0 e
575 (dots pitch). O valor default "0", representa a não impressão de margem.
iCorrecaoErros Correção de erros de impressão do código. Deve ser um número inteiro com valor
entre 0 e 8.
iColunas Tamanho da coluna gráfica. Deve ser um inteiro com valor entre 0 e 30.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
A forma de pagamento deve ter sido efetuada.
Esta função só está disponível para as impressoras fiscais térmicas.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_TotalizaCupomMFD();
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_UsaUnidadeMedida("KG");
Parâmetros:
unidadeMedida Descrição da unidade de medida com no máximo 2 caracteres
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicacao
-30 Função incompatível com a imp. yanco
Nota:
Esta função deve ser usada, antes do envio da função Bematech_FI_VendeItem.
Esta função tem validade somente para a impressão de um item, voltando ao default que é a impressão
de 2 (dois) espaços em branco após a quantidade do item vendido.
Nas impressoras fiscais MP-2000 TH FI, MP-6000 TH FI, MP-25 FI e MP-50 FI está progra-
mação não existe. Caso você deseje utilizar a unidade de medida, utilize a função Bematech_FI_-
VendeItemDepartamento.
3.1.1.34 int Bematech_FI_VendeItem (const char ∗ codigo, const char ∗ descricao, const char ∗
aliquota, const char ∗ tipoQuantidade, const char ∗ quantidade, short int casasDecimais, const char
∗ unitario, const char ∗ tipoDesconto, const char ∗ desconto)
Vende Item.
Vende item após a abertura do cupom fiscal. Essa função permite também a venda de itens com 3 casas
decimais no valor unitário.
// exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_VendeItem("123", "Caneta", "1200", "I", "10", 2, "0,25",
"%", "0000");
Parâmetros:
codigo Código do produto, com até 14 caracteres para MP7000 TH FI e 13 caracteres para as demais.
descricao Descrição do produto, com até 29 caracteres.
aliquota Alíquota tributária a ser utilizada.
tipoQuantidade Tipo de quantidade I = Inteira, F = Fracionaria
quantidade Quantidade.
casasDecimais Número de casas decimais para quantidades inteiras, restrito a 2 ou 3.
unitario Valor unitário, com até 8 dígitos.
tipoDesconto Forma do desconto: ’$’ para desconto por valor e ” para desconto por percentual.
desconto Valor do desconto.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-3 Alíquota não programada
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
Nota:
A alíquota pode ser em forma de valor, o qual deve ser informado com o tamanho de 4 caracteres ou
5 com a vírgula, ou em forma de índice, então com 2 caracteres. Ex. (18,00 para o valor ou 05 para o
índice).
A quantidade deve ter até 4 dígitos para quantidades inteiras e até 7 dígitos para quantidades fra-
cionárias, sendo sempre 3 casas decimais.
O valor do desconto deve ser até 8 dígitos para descontos por valor (2 cadas decimais) ou 4 dígitos
para descontos percentuais.
Imagine que há duas alíquotas com o valor 12% cadastradas na impressora. A primeira cadastrada na
posição 01 como ICMS e a outra na posição 05 como ISS. Se você informar o valor 1200 ou 12,00
no parâmetro "alíquota" a função irá imprimir o item usando a alíquota 01 de ICMS. A função lê as
alíquotas da impressora e usa o índice da primeira ocorrência. Para usar a alíquota de ISS você deverá
passar o índice 05 e não o valor 1200 ou 12,00. Se você não tiver duas alíquotas com o mesmo valor
cadastradas na impressora use sempre o valor no parâmetro alíquota.
valida codigo
valida descricao
valida tipoQuantidade
valida quantidade
Valida valor unitario
// exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_VendeItemArredondamentoMFD("123", "Caneta", "1200", "UN",
"12", "0,25", "0", "0", false);
Parâmetros:
cCodigo Código do produto com até 14 caracteres.
cDescricao Descrição do produto com até 200 caracteres.
cAliquota Índice, com 2 caracteres, ou valor, com até 5 caracteres (duas casas decimais), da alíquota
tributária.
cUnidadeMedida Unidade de medida com até 2 caracteres.
cQtdFracionaria Quantidade fracionaria com até 7 caracteres (três casas decimais).
cUnitario Valor unitário com até 8 caracteres (três casas decimais).
cAcrescimo Acréscimo, com até 10 dígitos por valor (duas casas decimais) ou 4 dígitos para per-
centual.
cDesconto Desconto, com até 10 dígitos por valor (duas casas decimais) ou 4 dígitos para percentual.
iArredonda Variável, inteira, indicando se o item será arredondado "1" ou truncado "0".
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-3 Alíquota não programada
-4 Arquivo de configuração não encontrado ou parâmetro inválido para o nome da porta
-5 Erro ao abrir a porta de comunicação
// exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_VendeItemDepartamento("123", "Caneta", "1200", "0,25",
"10", "0", "0", "03", "UN");
Parâmetros:
cCodigo Código do produto, com até 49 caracteres.
cDescricao Descrição do produto, com até 201 carecteres.
Retorna:
int com a informação sobre a execução do comando
Nota:
Se a alíquota for o valor, deve ser informado com o tamanho de 4 caracteres ou 5 com a vírgula. Se for
o índice da alíquota, deve ser 2 caracteres. Ex. (18,00 para o valor ou 05 para o índice)
Na venda com departamento a quantidade é fracionária e são 3 casas decimais.
Caso não seja passado nenhum caracter, a unidade de medida não será impressa.
Obedece as mesmas situações descrita na função Bematech_FI_VendeItem.
Módulos
• Código de Barras
Funções
// exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_AbreComprovanteNaoFiscalVinculado("Cartao VISA", "", "");
Parâmetros:
formaPagamento Forma de pagamento, com até 16 caracteres.
valorPago Valor pago, com até 14 dígitos, sendo 2 casas decimais.
numeroCupom Número do cupom a que se refere o comprovante, com até 6 dígitos.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
Nota:
A forma de pagamento utilizada não pode ser dinheiro.
A forma de pagamento deve ter sido utilizada no cupom.
Só pode ser emitido um comprovante não fiscal por forma de pagamento.
Os parâmetros "Valor" e "Numero do Cupom" tornam-se obrigatórios se o comprovante emitido não
for referente ao último cupom fiscal emitido.
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_AbreComprovanteNaoFiscalVinculadoMFD("Cartao", "50,00",
"000165", "1.111.111-1", "Fulano de Tal", "Rua Sem Fim, 1000");
Parâmetros:
cFormaPagamento Descrição da forma de pagamento com até 16 caracteres.
cValor Valor pago na forma de pagamento do cupom a que se refere o comprovante, com até 14 dígitos
(2 casas decimais).
cNumeroCupom Número do cupom a que se refere o comprovante com até 6 dígitos.
cCPF CPF do cliente com até 29 caracteres.
cNome Nome do cliente com até 30 caracteres.
cEndereco Endereço do cliente com até 80 caracteres.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
Nota:
A forma de pagamento utilizada não pode ser dinheiro.
A forma de pagamento deve ter sido utilizada no cupom ao qual se refere o comprovante.
Só pode ser emitido um comprovante não fiscal por forma de pagamento.
Os parâmetros "Valor" e "Número do Cupom" tornam-se obrigatórios se o comprovante emitido não
for referente ao último cupom fiscal emitido.
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_AbreRecebimentoNaoFiscalMFD("1.111.111-11",
"Fulano de Tal", "Rua Sem Fim, 1000");
Parâmetros:
cCPF CPF ou CGC do cliente com até 29 caracteres.
cNome Nome do cliente com até 30 caracteres.
cEndereco Endereço do cliente com até 80 caracteres.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_AbreRelatorioGerencialMFD("05");
Parâmetros:
cTotalizador Índice do relatório sendo este um valor entre 1 e 30.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
O relatório deve estar programado.
O relatório permanecerá aberto por 2 minutos. Se não for enviado comando de fechamento durante
este período, o relatório será fechado automaticamente.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_AcionaGuilhotinaMFD(1);
Parâmetros:
iModo Variável, inteira, destinada a definir o tipo do corte do papel: "0" corte parcial e "1" corte total.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
A função só terá efeito dentro do Comprovante Não Fiscal Vinculado e Relatório Gerencial.
Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01 e
MP-2100 TH FI.
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_AcrescimoDescontoSubtotalRecebimentoMFD("D", "$",
"15,00");
Parâmetros:
cTmpFlag Indicador de acréscimo ("A" ou "a") ou desconto ("D" ou "d").
cTipo Indicador de acréscimo ou desconto por valor "$" ou por percentual "%".
cTmpValor Valor do acréscimo ou desconto com até 14 digitos por valor ou 4 dígitos por percentual.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
O recebimento não fiscal deve estar subtotalizado.
O recebimento não fiscal não pode estar totalizado.
É permitido o registro de apenas uma operação válida para acréscimo e uma para desconto no subtotal.
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_AcrescimoItemNaoFiscalMFD("005", "A", "$", "10,00");
Parâmetros:
NumeroItem Número do item não fiscal, com até 3 caracteres.
cAcrescimoDesconto Indica se é acrescimo "A" ou desconto "D".
cTipoAcrescimoDesconto Indica se o acréscimo ou desconto é por valor "$" ou por percentual "%".
cValorAcrescimoDesconto Valor do acréscimo ou desconto a ser efetuado.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função só está disponível para a versão 01.00.00, da impressora fiscal MFD.
O cupom não fiscal não pode estar subtotalizado.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_AtivaDesativaAlinhamentoEsquerdaMFD(1);
Parâmetros:
flag Indicador de ativação "1" ou desativação "0", do alinhamento da descrição à esquerda.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função só será executada, caso a impressora não tenha nenhum movimento no dia ou após a
redução Z.
Não será necessária sua execução no início de cada dia.
Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01.
// exemplo em C/C++
int iRetorno;
int iFlag = 1;
iRetorno = Bematech_FI_AtivaDesativaGuilhotinaMFD(iFlag);
Parâmetros:
flag Variável, inteira, para definir o tipo de corte do papel, sendo "0" para desativar e "1" para ativar a
guilhotina.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_AtivaDesativaTratamentoONOFFLineMFD(1);
Parâmetros:
flag Indicador de tratamento da tecla "ON LINE" da impressora: "0" desativado, "1" ativado.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Se esta funcionalidade estiver ativada, o "ON LINE" da impressora é bloqueado, evitando que ela entre
em "OFF LINE", caso a tecla "ON LINE" seja pressionada.
// exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_Bematech_FI_AvancaPapelAcionaGuilhotinaMFD(5, 1);
Parâmetros:
iLinhas Número de linhas para avançar antes de cortar o papel. Valor entre 0 e 255.
iModo Modo do corte de papel, sendo "0" corte total, "1" corte parcial ou "2" sem corte.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de configuração não encontrado ou parâmetro inválido para o nome da porta
-5 Erro ao abrir a porta de comunicação
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_CancelaAcrescimoDescontoSubtotalRecebimentoMFD("D");
Parâmetros:
cFlag Indicador de cancelamento de acréscimo ("A" ou "a") ou desconto ("D" ou "d"), dado no subto-
tal do recebimento.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
O recebimento não fiscal deve estar subtotalizado.
O recebimento não fiscal não pode estar totalizado.
O recebimento não fiscal deve ter operações anteriores de acréscimo ou desconto no subtotal.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_CancelaAcrescimoNaoFiscalMFD("005", "A");
Parâmetros:
NumeroItem Número do item não fiscal, com até 3 caracteres.
cAcrescimoDesconto Indica se é o cancelamento é por acréscimo "A" ou por desconto "D".
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função só está disponível para a versão 01.00.00, da impressora fiscal MFD.
O cupom não fiscal não pode estar subtotalizado.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_CancelaItemNaoFiscalMFD("005");
Parâmetros:
NumeroItem Número do item não fiscal a ser cancelado, com até 3 caracteres.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função só está disponível para a versão 01.00.00, da impressora fiscal MFD.
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_CancelaRecebimentoNaoFiscalMFD("11.111.111-11",
"Fulano de Tal", "Rua Sem Fim, 1000");
Parâmetros:
cCPF CPF ou CGC do cliente com até 29 caracteres.
cNome Nome do cliente com até 30 caracteres.
cEndereco Endereço do cliente com até 80 caracteres.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_EfetuaRecebimentoNaoFiscalMFD("03", "35,00");
Parâmetros:
cIndiceTotalizador Índice do totalizador com até 2 digitos para o recebimento.
cValorRecebimento Valor do recebimento com até 14 dígitos (duas casas decimais).
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
O comprovante deve ter sido aberto anteriormente.
O totalizador não fiscal deve estar programado.
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_EstornoNaoFiscalVinculadoMFD("11.111.111-11",
"Fulano de Tal", "Rua Sem Fim, 1000");
Parâmetros:
cCPF CPF do cliente com até 29 caracteres.
cNome Nome do cliente com até 30 caracteres.
cEndereco Endereço do cliente com até 80 caracteres.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Deve ser executado imediatamente após a impressão do comprovante vinculado.
Para imprimir um texto qualquer, dentro do cupom de estorno, a função Bematech_FI_-
UsaComprovanteNaoFiscalVinculado deve ser usada.
Para fechar o cupom de estorno, deve ser usada a função Bematech_FI_-
FechaComprovanteNaoFiscalVinculado.
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_EstornoNaoFiscalVinculadoPosteriorMFD("Dinheiro", "12,50",
"1712", "133", "123.456.789-10", "Fulano de Tal",
"Rua Sem Fim, 1000");
Parâmetros:
cFormaPagamento Descrição da forma de pagamento, com até 16 caracteres.
cValor Valor pago, com até 14 caracteres.
cCOOCupom COO do cupom fiscal com até 6 caracteres.
cCOOCDC COO do CDC a ser estornado com até 6 caracteres.
cCPF CPF do cliente com até 29 caracteres.
cNome Nome do cliente com até 30 caracteres.
cEndereco Endereço do cliente com até 80 caracteres.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de configuração não encontrado ou parâmetro inválido para o nome da porta
-5 Erro ao abrir a porta de comunicação
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_FechaComprovanteNaoFiscalVinculado();
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
Nota:
O comprovante não fiscal vinculado deve ter sido aberto.
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_FechaRecebimentoNaoFiscalMFD
("Obrigado, volte sempre !!!");
Parâmetros:
cMensagem Mensagem promocional com até 490 caracteres.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
O recebimento não fiscal é finalizado pelo comando de fechamento do cupom fiscal.
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_FechaRelatorioGerencial();
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
Nota:
O relatório gerencial deve estar aberto.
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_IniciaFechamentoRecebimentoNaoFiscalMFD("X", "%", "1200",
"1000");
Parâmetros:
cAcrescimoDesconto Indicador de acréscimo "A", desconto "D" ou ambos "X" no fechamento do
cupom.
cTipoAcrescimoDesconto Indica se o acrésimo ou desconto será por valor "$" ou percentual "%".
cValorAcrescimo Valor do acréscimo a ser efetuado, com até 14 dígitos por valor e 4 dígitos por
percentual.
cValorDesconto Valor do desconto a ser efetuado, com até 14 dígitos por valor e 4 dígitos por per-
centual.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Para efetuar a forma de pagamento, use a função Bematech_FI_EfetuaFormaPagamentoMFD.
O totalizador não fiscal deve estar programado.
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_LinhasEntreCupons(5);
Parâmetros:
linhas Número de linhas, entre 0 e 255.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
-30 Função não compatível com a impressora Yanco
// exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_RecebimentoNaoFiscal("05", "30,00", "Dinheiro");
Parâmetros:
indiceTotalizador Índice do totalizador para recebimento parcial, com até 2 dígitos.
valorPago Valor do recebimento, com até 14 dígitos por valor, separadas por ’;’ e até 5 valores.
formaPagamento Forma de pagamento, com até 16 caracteres por forma, separadas por ’;’ e até 5
formas.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
Nota:
O cupom fiscal deve estar fechado.
O totalizador deve estar cadastrado.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_ReimpressaoNaoFiscalVinculadoMFD();
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
O comando somente será executado se este for enviado imediatamente após a impressão do compro-
vante.
// exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_RelatorioGerencial
("Digite o texto a ser impresso aqui !!!");
Parâmetros:
texto Texto a ser impresso no relatório gerencial, com até 620 bytes.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).
Nota:
O cupom fiscal deve estar fechado.
Se qualquer função diferente da Bematech_FI_RelatorioGerencial for chamada com o relatório aberto,
efetuará seu fechamento automaticamente.
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_RelatorioGerencialImpAntiga("Mensagem!!");
Parâmetros:
cTexto Texto a ser impresso, com até 620 bytes
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicacao
-2 Parametro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicacao
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_ResetaImpressora();
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
-30 Função não compatível com a impressora Yanco
Nota:
Será executada somente se a impressora estiver em erro.
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_Sangria("25,00");
Parâmetros:
valorPago Valor da sangria, com até 14 dígitos (2 casas decimais).
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
Nota:
O cupom fiscal deve estar fechado.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_SegundaViaNaoFiscalVinculadoMFD();
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
O comando deverá ser executado imediatamente após a emissão da primeira via.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_SubTotalizaRecebimentoMFD();
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função habilita as seguintes operações:
Acréscimo ou desconto em subtotal de recebimento não fiscal.
Cancelamento de acréscimo ou desconto em subtotal de recebimento não fiscal.
Totalização do recebimento não fiscal.
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_Suprimento("50,00", "Dinheiro");
Parâmetros:
valorPago Valor para suprimento, com até 14 dígitos (2 casas decimais)
formaPagamento Forma de pagamento, com até 16 caracteres.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
Nota:
Caso a forma de pagamento não seja informada, o suprimento será feito em Dinheiro.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_TotalizaRecebimentoMFD();
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Para efetuar a forma de pagamento, use a função Bematech_FI_EfetuaFormaPagamentoMFD.
// exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_UsaComprovanteNaoFiscalVinculado
("Digite o texto a ser impresso aqui !!!");
Parâmetros:
texto Texto a ser impresso na forma de pagamento, com até 618 bytes.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
Nota:
Na impressora fiscal BEMATECH, só pode ser usado durante 2 (dois) minutos após a abertura do
comprovante não fiscal vinculado. Se esse tempo for ultrapassado, o comprovante será fechado auto-
maticamente.
// exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_UsaComprovanteNaoFiscalVinculadoTEF
("Digite o texto a ser impresso aqui !!!");
Parâmetros:
texto Texto a ser impresso no comprovante não fiscal vinculado, com até 618 bytes.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
Nota:
Na impressora fiscal BEMATECH, só pode ser usado durante 2 (dois) minutos após a abertura do
comprovante não fiscal vinculado. Se esse tempo for ultrapassado o comprovante é fechado automati-
camente.
Antes de executar a função Bematech_FI_UsaComprovanteNaoFiscalVinculadoTEF, você
deverá abrir o comprovante não-fiscal vinculado através da função Bematech_FI_-
AbreComprovanteNaoFiscalVinculado.
Após a impressão do texto no comprovante não-fiscal vinculado, use a função Bematech_FI_-
FechaComprovanteNaoFiscalVinculado para fechá-lo.
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_UsaRelatorioGerencialMFD("Entre com o texto aqui !!!");
Parâmetros:
cTexto Texto a ser impresso no relatório com até 618 caracteres.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
O relatório permanecerá aberto por 2 minutos. Se não for enviado o comando de fechamento durante
este período, o mesmo será fechado automaticamente.
Para abrir o relatório gerencial use a função Bematech_FI_AbreRelatórioGerencialMFD.
Para fechar o relatório gerencial use a função Bematech_FI_FechaRelatórioGerencial.
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_UsaRelatorioGerencialMFDTEF("Entre com o texto aqui !!!");
Parâmetros:
cTexto Texto a ser impresso no relatório com até 618 caracteres.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função pode ser utilizada para a impressão do texto da transação TEF.
Com o uso desta função, torna-se desnecessário o uso de outra função da API do sistema operacional
para travar o teclado e mouse.
O relatório permanecerá aberto por 2 minutos. Se não for enviado o comando de fechamento durante
este período, o mesmo será fechado automaticamente.
Para abrir o relatório gerencial use a função Bematech_FI_AbreRelatórioGerencialMFD.
Para fechar o relatório gerencial use a função Bematech_FI_FechaRelatórioGerencial.
Funções
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_CodigoBarrasCODABARMFD("123-ABC/001");
Parâmetros:
cCodigo Código a ser gerado no padrão CODABAR. A quantidade de caracteres é dada através da
relação com a largura das barras:
Largura Caracteres
0 20
1 12
2 08
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
Nota:
Esta função é utilizada somente nas impressoras fiscais térmicas.
Será acrescentado, automaticamente, o dígito verificador.
A impressão do código de barras só será executado dentro do Relatório Gerencial ou dentro do Com-
provante Não Fiscal Vinculado.
Aceita dígitos entre 0 e 9.
Aceita as letras A, B, C e D (maiúsculas ou minúsculas).
Aceita os caracteres: "$", "+", "-", ".", "/" e ":".
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_CodigoBarrasCODE128MFD("Bematech");
Parâmetros:
cCodigo Código a ser gerado no padrão CODE128. A quantidade de caracteres é dada através da
relação com a largura das barras:
Largura Caracteres
0 42
1 28
2 16
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função é utilizada somente nas impressoras fiscais térmicas.
Aceita os caracteres da tabela ASCII, na faixa de valores entre 001 e 127.
A impressão do código de barras só será executado dentro do Relatório Gerencial ou dentro do Com-
provante Não Fiscal Vinculado.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_CodigoBarrasCODE39MFD("abc-123");
Parâmetros:
cCodigo Código a ser gerado no padrão CODE39. A quantidade de caracteres é dada através da
relação com a largura das barras:
Largura Caracteres
0 15
1 09
2 06
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função é utilizada somente nas impressoras fiscais térmicas.
Será acrescentado, automaticamente, o dígito verificador.
A impressão do código de barras só será executado dentro do Relatório Gerencial ou dentro do Com-
provante Não Fiscal Vinculado.
Aceita dígitos entre 0 e 9.
Aceita as letras entre A e Z (maiúsculas ou minúsculas).
Aceita os caracteres: "espaço em branco", "$", "%", "+", "-", "." e "/".
As letras não podem ser maiúsculas e minúsculas simultaneamente.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_CodigoBarrasCODE93MFD("123-ABC");
Parâmetros:
cCodigo Código a ser gerado no padrão CODE93. A quantidade de caracteres é dada através da
relação com a largura das barras:
Largura Caracteres
0 15
1 09
2 06
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função é utilizada somente nas impressoras fiscais térmicas.
Será acrescentado, automaticamente, o dígito verificador.
A impressão do código de barras só será executado dentro do Relatório Gerencial ou dentro do Com-
provante Não Fiscal Vinculado.
Aceita os caracteres da tabela ASCII, na faixa de valores entre 001 e 127.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_CodigoBarrasEAN13MFD("123456789012");
Parâmetros:
cCodigo Código a ser gerado no padrão EAN13, com tamanho de 12 dígitos compreendidos entre 0 e
9.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função é utilizada somente nas impressoras fiscais térmicas.
Será acrescentado, automaticamente, o dígito verificador.
A impressão do código de barras só será executado dentro do Relatório Gerencial ou dentro do Com-
provante Não Fiscal Vinculado.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_CodigoBarrasEAN8MFD("1234567");
Parâmetros:
cCodigo Código a ser gerado no padrão EAN8, com tamanho de 7 dígitos compreendidos entre 0 e 9..
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função é utilizada somente nas impressoras fiscais térmicas.
Será acrescentado, automaticamente, o dígito verificador.
A impressão do código de barras só será executado dentro do Relatório Gerencial ou dentro do Com-
provante Não Fiscal Vinculado.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_CodigoBarrasISBNMFD("1-56592-292-X 90000");
Parâmetros:
cCodigo Código a ser gerado no padrão ISBN, com 9 dígitos, comporto por dígitos entre 0 e 9, "-
"(hifen) e "X".
Os caracteres "X" e "-"(hifen) não são somados.
Após o 9º dígito, podem aparecer ainda hifens seguidos por "X" ou algum número com o tamanho
de 5 caracteres, não somando o espaço após o "-X" ou após o número, como por exemplo:
1-56592-292-X 9000
1-56592-291-1 900000
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_CodigoBarrasITFMFD("0123456789012345");
Parâmetros:
cCodigo Código a ser gerado no padrão ITF. A quantidade de caracteres é dada através da relação
com a largura das barras:
Largura Caracteres
0 30
1 20
2 14
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função é utilizada somente nas impressoras fiscais térmicas.
Aceita dígitos entre 0 e 9.
A impressão do código de barras só será executado dentro do Relatório Gerencial ou dentro do Com-
provante Não Fiscal Vinculado.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_CodigoBarrasMSIMFD("123");
Parâmetros:
cCodigo Código a ser gerado no padrão MSI. A quantidade de caracteres é dada através da relação
com a largura das barras:
Largura Caracteres
0 16
1 10
2 07
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função é utilizada somente nas impressoras fiscais térmicas.
Será acrescentado, automaticamente, o dígito verificador.
Aceita dígitos entre 0 e 9.
A impressão do código de barras só será executado dentro do Relatório Gerencial ou dentro do Com-
provante Não Fiscal Vinculado.
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_CodigoBarrasPDF417MFD(4, 3, 2, 0,
"Bematech. Sempre presente nas melhores solucoes !!!");
Parâmetros:
iCorrecaoErros Quanto mais alto o nível, melhor a leitura do código, maior a impressão e menor o
número de informações que poderão ser impressas. Deverá ser um número inteiro entre 0 e 8.
iAltura Altura do caractere do código (pitch - 1 pitch = altura de 0,125mm). Deverá ser um número
inteiro entre 1 e 8.
iLargura Largura do caractere do código (pitch - 1 pitch = altura de 0,125mm). Deverá ser um número
inteiro entre 1 e 4.
iColunas "0" (zero) utiliza o máximo de colunas que o mecanismo permite para a largura informada
(pitch). Caso não caiba na linha, a impressora ajusta automaticamente para o máximo de colunas
permitido. Deverá ser um número inteiro entre 0 e 30.
cCodigo Código a ser gerado no padrão PFD417 com até 1024 caracteres.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função é utilizada somente nas impressoras fiscais térmicas.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_CodigoBarrasPLESSEYMFD("123-ABC");
Parâmetros:
cCodigo Código a ser gerado no padrão PLESSEY. A quantidade de caracteres é dada através da
relação com a largura das barras:
Largura Caracteres
0 13
1 07
2 04
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função é utilizada somente nas impressoras fiscais térmicas.
Será acrescentado, automaticamente, o dígito verificador.
Aceita dígitos entre 0 e 9.
Aceita as letras A, B, C, D, E e F (maiúsculas ou minúsculas).
As letras não podem ser maiúsculas e minúsculas simultaneamente.
A impressão do código de barras só será executado dentro do Relatório Gerencial ou dentro do Com-
provante Não Fiscal Vinculado.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_CodigoBarrasUPCAMFD("12345678901");
Parâmetros:
cCodigo Código a ser gerado no padrão UPCA, com tamanho de 11 dígitos compreendidos entre 0 e
9.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
Nota:
Esta função é utilizada somente nas impressoras fiscais térmicas.
Será acrescentado, automaticamente, o dígito verificador.
A impressão do código de barras só será executado dentro do Relatório Gerencial ou dentro do Com-
provante Não Fiscal Vinculado.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_CodigoBarrasUPCEMFD("123456");
Parâmetros:
cCodigo Código a ser gerado no padrão UPCE, com tamanho de 6 dígitos compreendidos entre 0 e 9.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função é utilizada somente nas impressoras fiscais térmicas.
Será acrescentado, automaticamente, o dígito verificador.
A impressão do código de barras só será executado dentro do Relatório Gerencial ou dentro do Com-
provante Não Fiscal Vinculado.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_ConfiguraCodigoBarrasMFD(100, 1, 3, 0, 5);
Parâmetros:
Altura Altura do código de barras. Deve ser um número inteiro entre 1 e 255. (162 - default).
Largura Largura do código de barras. Deve ser um número inteiro com valor entre 0 e 2.
Largura Formato das barras
0 barras finas
1 barras médias (default)
2 barras grossas
PosicaoCaracteres Posição do código de barras. Deve ser um número inteiro com valor entre 0 e 3.
Posição Formato de impressão
0 não imprime os caracteres do código
1 imprime os caracteres acima do código
2 imprime os caracteres abaixo do código (default)
3 imprime os caracteres acima e abaixo do código
Fonte Formato da fonte do código de barras. Deve ser um número inteiro com valor entre 0 e 1.
Fonte Formato da fonte
0 normal
1 condensado
Margem Formato da margem do código de barras. Deve ser número um inteiro com valor entre 0 e
575 (dots pitch). O valor default "0", representa a não impressão de margem.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função é utilizada somente nas impressoras fiscais térmicas.
A configuração do código de barras deve ser realizada dentro do Relatório Gerencial ou dentro do
Comprovante Não Fiscal Vinculado.
Módulos
Funções
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_FechaRelatorioXouZ();
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
Nota:
Essa função funciona apenas na impressora Yanco. Foi implementada apenas para compatibilização.
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_LeituraX();
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicacao
-2 Erro de parametros
-4 Arquivo de inicialização não encontrado ou inválido
-8 Erro ao criar ou gravar no arquivo texto
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_LeituraXSerial();
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
O cupom fiscal deve estar fechado.
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_ReducaoZ("08/01/2000", "18:00:00");
// ou
iRetorno = Bematech_FI_ReducaoZ("", "");
Parâmetros:
data Data atual no formato ddmmaa ou dd/mm/aa ou dd/mm/aa.
hora Hora a ser alterada no formato hhmmss ou hh:mm:ss.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Comando não executado
-2 Erro de parâmetros
-4 Arquivo de inicialização não encontrado ou inválido
Nota:
Somente será aceito um ajuste de +/- 5 minutos. Se os valores estiverem fora dessa faixa serão limita-
dos a 5 minutos.
O cupom fiscal deve estar fechado.
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_ReducaoZImpAntiga();
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
Funções
// exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_LeituraMemoriaFiscalData("01/01/2002", "05/01/2002");
Parâmetros:
dataInicial Data inicial, no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.
dataFinal Data final, no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
Nota:
O cupom fiscal deve estar fechado.
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_LeituraMemoriaFiscalDataMFD("01/04/02", "15/04/02", "c");
Parâmetros:
cDataInicial Data inicial dos dados da memória fiscal a serem lidos, no formato dd/mm/aa, ddmmaaaa
ou dd/mm/aaaa.
cDataFinal Data final dos dados da memória fiscal a serem lidos, no formato dd/mm/aa, ddmmaaaa
ou dd/mm/aaaa.
cFlagLeitura Indicador de leitura completa "c" ou simplificada "s".
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
O cupom fiscal deve estar fechado.
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_LeituraMemoriaFiscalReducao("0100", "0110");
Parâmetros:
reducaoInicial Redução inicial, com até 4 dígitos
reducaoFinal Redução final, com até 4 dígitos
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
Nota:
O cupom fiscal deve estar fechado.
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_LeituraMemoriaFiscalReducaoMFD("0010", "0015", "c");
Parâmetros:
cReducaoInicial Redução inicial dos dados da memória fiscal a serem lidos com até 4 dígitos.
cReducaoFinal Data final dos dados da memória fiscal a serem lidos com até 4 dígitos.
cFlagLeitura Indicador de leitura completa "c" ou simplificada "s".
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
O cupom fiscal deve estar fechado.
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_LeituraMemoriaFiscalSerialData("01/04/2002",
"15/04/2002");
Parâmetros:
dataInicial Data inicial da leitura da memória fiscal, no formato ddmmaa, dd/mm/aa, ddmmaaaa ou
dd/mm/aaaa.
dataFinal Data final da leitura da memória fiscal, no formato ddmmaa, dd/mm/aa, ddmmaaaa ou
dd/mm/aaaa.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
O cupom fiscal deve estar fechado.
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_LeituraMemoriaFiscalSerialDataMFD("01/04/02", "15,04,02",
"c");
Parâmetros:
cDataInicial Data inicial da leitura no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.
cDataFinal Data final da leitura no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.
cFlagLeitura Indicador de leitura da memória fiscal completa "c" ou simplificada "s".
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
O cupom fiscal deve estar fechado.
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_LeituraMemoriaFiscalSerialReducao("0100", "0110");
Parâmetros:
reducaoInicial Número da redução inicial da leitura da memória fiscal, com até 4 dígitos.
reducaoFinal Número da redução final da leitura da memória fiscal, com até 4 dígitos.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
O cupom fiscal deve estar fechado.
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_LeituraMemoriaFiscalSerialReducaoMFD("01/04/02",
"15,04,02", "c");
Parâmetros:
cReducaoInicial Número da redução inicial, com até 4 caracteres.
cReducaoFinal Número da redução final, com até 4 caracteres.
cFlagLeitura Indicador de leitura da memória fiscal completa "c" ou simplificada "s".
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
O cupom fiscal deve estar fechado.
3.6 Inicialização
Funções
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_AlteraSimboloMoeda(" R");
Parâmetros:
simboloMoeda Símbolo da moeda. O $ (cifrão) é inserido automaticamente.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
-30 Função não compatível com a impressora Yanco
Nota:
O cupom fiscal deve estar fechado.
Será executada somente após uma Redução Z.
Na impressora fiscal Bematech modelo MP-2100 TH FI, a programação do símbolo da moeda é feita
somente por Intervenção Técnica.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_AtivaDesativaCancelamentoCupom2HorasMFD(1);
Parâmetros:
flag Variável, inteira, destinada a indicar se o cancelamento automático encontra-se habilitado "1" ou
desabilitado "0". desabilitado.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função só será executada, caso a impressora não tenha nenhum movimento no dia ou após a
Redução Z.
Não será necessária sua execução no início de cada dia.
Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.03.03 ou MP-2100 TH
FI.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_AtivaDesativaCorteTotalMFD(1);
Parâmetros:
flag 1 para ativar e 0 para desativar o corte total do papel.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de configuração não encontrado ou parâmetro inválido para o nome da porta
-5 Erro ao abrir a porta de comunicação
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_AtivaDesativaSensorPoucoPapelMFD(1);
Parâmetros:
flag 1 para ativar e 0 para desativar o corte total do papel.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de configuração não encontrado ou parâmetro inválido para o nome da porta
-5 Erro ao abrir a porta de comunicação
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_AtivaDesativaVendaUmaLinhaMFD(1);
Parâmetros:
flag Indicador de ativação "1" ou desativação "0", da venda de item em apenas uma linha.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função só será executada, caso a impressora não tenha nenhum movimento no dia ou após a
redução Z.
Não será necessária sua execução no início de cada dia.
Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01.
Para que o item possa ser impresso em uma única linha, o seu código e sua descrição (juntos) não
podem ultrapassar 16 caracteres; a quantidade deve possuir até 2 dígitos (entre 1 e 99) e o valor
unitário deve possuir até 3 dígitos inteiros (entre 0,01 e 999,99).
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_ConfiguraCorteGuilhotinaMFD(100);
Parâmetros:
tempo Tempo de acionamento
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de configuração não encontrado ou parâmetro inválido para o nome da porta
-5 Erro ao abrir a porta de comunicação
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_EspacoEntreLinhas(2);
Parâmetros:
dots Espaço entre linhas, entre 0 e 255 dots
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
-30 Função não compatível com a impressora Yanco
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_ForcaImpactoAgulhas(2);
Parâmetros:
impacto Força de impacto das agulhas de impressão, de 1 (fraco) a 3 (forte).
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
Nota:
O padrão das impressoras é utilizar impactos fracos.
A seleção de uma força de impacto diferente da default implica na diminuição da vida útil do cabeçote
de impressão.
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_NomeiaDepartamento(5, "Gasolina");
Parâmetros:
indice Índice do departamento a ser nomeado.
departamento Nome do departamento, com até 10 caracteres.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
-30 Função não compatível com a impressora Yanco
Nota:
O cupom fiscal deve estar fechado.
Será executada somente após uma Redução Z.
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_NomeiaRelatorioGerencialMFD("2", "Resumo de vendas");
Parâmetros:
cIndice Índice do relatório, sendo este um valor entre 2 e 30.
cDescricao Nome do relatório, com até 17 caracteres.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
A impressora possui um relatório default pré-programado: "Relatório Gerencial", no índice "01".
Só será possível nomear um relatório gerencial, caso a impressora ainda não tenha iniciado o seu
movimento.
Não é possível alterar ou apagar um relatório gerencial já gravado.
Na impressora fiscal Bematech MP-2100 TH FI, o tamanho da descrição das formas de pagamento
foi reduzido de 17 para 15 caracteres. Para manter a compatibilidade, será aceito o tamanho de 17
caracteres, mas internamente a impressora registrará apenas os 15 caracteres.
// exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_NomeiaTotalizadorNaoSujeitoIcms(5, "Conta de Luz");
Parâmetros:
indice Índice do totalizador a ser nomeado
totalizador Descrição do totalizador, com até 19 caracteres
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_ProgramaAliquota("0500", 1);
Parâmetros:
aliquota Valor da alíquota a ser programada.
vinculo 0 indica que a alíquota está vinculada ao ICMS e 1 ao ISS
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicacao
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).
-30 Função incompatível com a imp. yanco
Nota:
O cupom fiscal deve estar fechado.
Nas impressoras fiscais MP-2000 TH FI, MP-6000 TH FI, MP-25 FI e MP-50 FI a programação da
alíquota somente será permitida após uma Redução Z.
valida código
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_ProgramaArredondamento();
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-30 Função incompatível com impressora Yanco.
Nota:
O cupom fiscal deve estar fechado.
Será executada somente após uma Redução Z.
Nas impressoras fiscais MP-2000 TH FI, MP-6000 TH FI, MP-25 FI e MP-50 FI está programação
não existe. Elas somente operam em modo de truncamento.
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_ProgramaCaracterAutenticacao
("001,002,004,008,016,032,064,128,064, 032,016,008,004,002,129,129,129,129");
Parâmetros:
parametros String com os 18 valores para programação do caracter gráfico, separados por vírgula.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
Nota:
Exemplo de programação do caracter gráfico:
1 2 3 4 5 6 7 8 9101112131415161718
bit 0 (1) X X X X X
bit 1 (2) X X
bit 2 (4) X X
bit 3 (8) X X
bit 4 (16) X X
bit 5 (32) X X
bit 6 (64) X X
bit 7 (128) X X X X X
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_ProgramaFormaPagamentoMFD("Cartao", "1");
Parâmetros:
cFormaPagamento Forma de pagamento a ser realizada, com até 16 caracteres.
cOperacaoTef Se setado para "1", indica que a forma de pagamento permite TEF. Se "0" a forma de
pagamento não permite TEF.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Na impressora fiscal Bematech MP-2100 TH FI, o tamanho da descrição das formas de pagamento
foi reduzido de 16 para 15 caracteres. Para manter a compatibilidade, será aceito o tamanho de 16
caracteres, mas internamente a impressora registrará apenas os 15 caracteres.
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_ProgramaHorarioVerao();
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK,ST1,ST2)
Nota:
A programação do horário de verão será realizada somente após uma Redução Z.
Para desprogramar, somente 1 (uma) hora após a Redução Z e não pode ter havido movimento na
impressora nesse período.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_ProgramaIdAplicativoMFD("APPTESTE.EXE");
Parâmetros:
cIdAplicativo Identificação do nome do aplicativo, com até 84 caracteres.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função só será executada, caso o cupom fiscal esteja fechado.
Não será necessária sua execução a cada início de dia.
Função disponível para a impressora fiscal MP-2100 TH FI.
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_ProgramaTruncamento();
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
-30 Função não compatível com a impressora Yanco
Nota:
O cupom fiscal deve estar fechado.
Será executada somente após uma Redução Z.
Nas impressoras fiscais MP-2000 TH FI, MP-6000 TH FI, MP-25 FI e MP-50 FI está programação
não existe. Elas somente operam em modo de truncamento.
3.6.1.19 int Bematech_FI_RetornoImpressoraMFD (short int ∗ iACK, short int ∗ iST1, short int ∗
iST2, short int ∗ iST3)
Retorno Impressora MFD. Ler o status da impressora após cada comando enviado.
Parâmetros:
→ iACK ponteiro para o recebimento do ACK
→ iST1 ponteiro para o recebimento do
→ iST2 ponteiro para o recebimento do
→ iST3 ponteiro para o recebimento do
Retorna:
int com a informação sobre a execução do comando
// Exemplo em C/C++
char cVerificaCancelamentoCupom2Horas[3];
int iRetorno;
iRetorno =
Bematech_FI_VerificaCancelamentoCupom2HorasMFD
(cVerificaCancelamentoCupom);
Parâmetros:
→ cFlag Variável, com 3 posições, destinada a receber a verificação referente ao cancelamento au-
tomático do cupom às duas horas habilitado "1" ou desabilitado "0".
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Módulos
Funções
// Exemplo em C/C++
char cAcrescimos[15];
int iRetorno;
iRetorno = Bematech_FI_Acrescimos(cAcrescimos);
Parâmetros:
→ acrescimos Variável, com 15 caracteres, destinado a receber o valor acumulado dos acréscimos
efetuados nos cupons.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cCancelamentos[15];
int iRetorno;
iRetorno = Bematech_FI_Cancelamentos(cCancelamentos);
Parâmetros:
→ cancelamentos Variável, com 15 caracteres, destinada a receber o valor acumulado dos itens e dos
cupons cancelados.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cGCC_IE[34];
int iRetorno;
iRetorno = Bematech_FI_CGC_IE(cGCC_IE);
Parâmetros:
→ cgcie Variável, com 34 caracteres, destinada a receber o CGC/IE cadastrado na impressora.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Os primeiros 18 caracteres são referentes ao CGC cadastrado no equipamento, os 15 demais a inscrição
estadual.
// Exemplo em C/C++
char cContadoresTotalizadoresNF[45];
int iRetorno;
iRetorno =
Bematech_FI_ContadoresTotalizadoresNaoFiscais
(cContadoresTotalizadoresNF);
Parâmetros:
→ contadores Variável, com 45 caracteres, destinada a receber os contadores dos totalizadores.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
A impressora fiscal permite a progamação de até 50 totalizadores não fiscais, porém esta função retorna
somente os contadores dos 9 primeiros totalizadores cadastrados.
O conteúdo da variável retornada será 36 dígitos separados de 4 em 4 por vírgula, representando os 9
primeiros totalizadores, por exemplo:
0001,0003,0001,0005,0004,0002,0003,0004,0007
O primeiro valor corresponde ao número de veses que o totalizador 01 foi usado e assim sucessiva-
mente.
// Exemplo em C/C++
char cDadosUltimaReducao[632];
int iRetorno;
iRetorno = Bematech_FI_DadosUltimaReducao(cDadosUltimaReducao);
Parâmetros:
→ dados Variável, com 632 caracteres, destinado a receber os dados da impressora no momento da
última redução Z.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
São retornados os valores das seguintes informações separados por vírgulas:
Modo de Redução Z.........................: 2 bytes
Grande Total..............................: 18 bytes
Cancelamentos.............................: 14 bytes
Descontos.................................: 14 bytes
Tributos..................................: 64 bytes
Totalizadores Parciais Tributados.........:266 bytes
Sangria...................................: 14 bytes
Suprimentos...............................: 14 bytes
Totalizadores não sujeitos ao ICMS........:126 bytes
Contadores dos TP’s não sujeitos ao ICMS..: 36 bytes
Contador de ordem de operação.............: 6 bytes
Contador de operações não sujeitas ao ICMS: 6 bytes
Número de Alíquotas cadastradas...........: 2 bytes
Data do movimento.........................: 6 bytes
Acréscimos................................: 14 bytes
Acréscimo financeiro......................: 14 bytes
No campo "Modo de Redução Z" o valor "00" indica redução por comando e "01" redução automática.
Nos campos "Grande Total", "Cancelamentos", "Descontos", "Sangria" e "Suprimentos", estão in-
clusas as 2 casas decimais.
No campo "Tributos" o retorno são de 16 alíquotas x 4 dígitos.
O valor do campo "Totalizadores Parciais Tributados" inclui as alíquotas Isenção (II), Não Incidência
(NN) e Substituição Tributária (FF).
A estrutura do campo comentado acima é de 16 alíquotas (224 bytes) mais II, NN e FF (42 bytes).
No total 19 alíquotas são retornadas. Para cada alíquota, são 14 dígitos para o valor, incluindo 2 casas
decimais.
No campo "Totalizadores não sujeitos ao ICMS", o retorno são 9 totalizadores não fiscais, com 14
dígitos, incluíndo as 2 casas decimais.
O campo "Contadores dos TP’s não sujeitos ao ICMS", indica quanto cada totalizador não fiscal foi
utilizado, sendo 9 totalizadores de 4 dígitos cada.
O campo "Acréscimos" informa o que foi concedido na venda do item ou no fechamento do cupom
fiscal, com 14 dígitos, incluíndo as 2 casas decimais.
O campo "Acréscimo financeiro" é um totalizador extinto nas versões 3.10 ou posterior, das impresso-
ras fiscais.
// exemplo em C/C++
char cDescontos[15];
int iRetorno;
iRetorno = Bematech_FI_Descontos(cDescontos);
Parâmetros:
→ descontos Variável, com 15 caracteres, destinada a receber o valor acumulado dos descontos com
2 casas decimais.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
int iRetorno, iFlagFiscais;
iRetorno = Bematech_FI_FlagsFiscais(iFlagFiscais);
Parâmetros:
→ flag Variável, inteira, destinada a receber um número referente ao flag fiscal da impressora.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Discriminação dos valores para o flag fiscal:
Descrição Valor
Cupom fiscal aberto 1
Fechamento de formas de pagamento iniciado 2
Horário de verão selecionado 4
Já houve redução Z no dia 8
Não utilizado 16
Permite cancelar cupom fiscal 32
Não utilizado 64
Memória fiscal sem espaço 128
// Exemplo em C/C++
char cGrandeTotal[19];
int iRetorno;
iRetorno = Bematech_FI_GrandeTotal(cGrandeTotal);
Parâmetros:
→ grandeTotal Variável, com 19 caracteres, destinada a receber o grande total da impressora.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
int iRetorno, int iMonitoramentoPapel;
iRetorno = Bematech_FI_MonitoramentoPapel(iMonitoramentoPapel);
Parâmetros:
→ linhas Variável, inteira, destinado a receber o número de linhas impressas após o status de pouco
papel.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cNumeroCupom[7];
int iRetorno;
iRetorno = Bematech_FI_NumeroCupom(cNumeroCupom);
Parâmetros:
→ numeroCupom Variável, com 7 caracteres, destinada a receber o número do último cupom emitido.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// exemplo em C/C++
char cNumeroCuponsCancelados[5];
int iRetorno;
iRetorno =
Bematech_FI_NumeroCuponsCancelados(cNumeroCuponsCancelados);
Parâmetros:
→ numeroCancelamentos Variável, com 5 caracteres, destinada a receber o número de cupons can-
celados.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// exemplo em C/C++
char cNumeroReducoes[5];
int iRetorno;
iRetorno = Bematech_FI_NumeroReducoes(cNumeroReducoes);
Parâmetros:
→ reducoes Variável, com 5 caracteres, destinada a receber o número de reduções Z realizadas na
impressora.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cNumeroSerie[16];
int iRetorno;
iRetorno = Bematech_FI_NumeroSerie(cNumeroSerie);
Parâmetros:
→ numeroSerie Variável, com 16 caracteres, destinada a receber o número de série da impressora.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Nas impressoras fiscasi MP-2000 TH FI, MP-25 TH FI e MP-50 TH FI, serão retornados os 15
primeiros caracteres de seu número serial. O número serial nestas impressoras é alfanumérico com
o tamanho de 20 caracteres.
// Exemplo em C/C++
char cRetornoAliquotas[80];
int iRetorno;
iRetorno = Bematech_FI_RetornoAliquotas(cRetornoAliquotas);
Parâmetros:
→ valorAliquotas Variável, com 80 caracteres, destinada a receber o retorno das alíquotas cadastradas
na impressora.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
Nota:
As alíquotas retornadas estarão separadas por vírgula. Ex: 1200,1700,0500,1800.
3.7.1.15 int Bematech_FI_RetornoImpressora (short int ∗ ack, short int ∗ st1, short int ∗ st2)
Retorno Impressora.
Lê o retorno da impressora referente ao último comando enviado.
// exemplo em C/C++
int iRetorno, iACK = 0, iST1 = 0, iST2 = 0;
iRetorno = Bematech_FI_RetornoImpressora(iACK, iST1, iST2);
Parâmetros:
→ ack Variável, inteira, destinada a receber o valor do registrador ACK.
→ st1 Variável, inteira, destinada a receber o valor do registrador ST1.
→ st2 Variável, inteira, destinad a receber o valor do registrador ST2.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
Nota:
Essa função deve ser usada após a execução de qualquer outra função, para ler o status da impressora,
referente a função executada.
Se o retorno o ACK, ST1 e ST2 for "0,0,0", corresponde que a impressora não possui nenhum status
de execução, significando que nenhuma função fora executada anteriormente.
// Exemplo em C/C++
int iRetornoIndiceAliquota;
iRetornoIndiceAliquota = Bematech_FI_RetornoIndiceAliquota("1200");
Parâmetros:
aliquota Alíquota a ser pesquisada.
Retorna:
Índice em que a alíquota está cadastrada na impressora.
Nota:
O retorno igual a "0" indica alíquota não cadastrada.
// Exemplo em C/C++
char cSubTotal[15];
iRetorno = Bematech_FI_SubTotal(cSubTotal);
Parâmetros:
→ subTotal Variável, com 15 caracteres, destinada a receber o retorno do valor do subtotal do cupom.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cTotalIcmsCupom[14];
int iRetorno;
iRetorno = Bematech_FI_TotalIcmsCupom(cTotalIcmsCupom);
Parâmetros:
→ ICMS Variável, com 14 caracteres, destinada a receber o valor total do ICMS pago no cupom.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-4 O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar no arquivoiRetornoStatus STATUS.TXT ou RETORNO.TXT
// Exemplo em C/C++
char cNumeroUltimoItemVendido[5];
int iRetorno;
iRetorno = Bematech_FI_UltimoItemVendido(cNumeroUltimoItemVendido);
Parâmetros:
→ item Variável, com 5 caracteres, destinada a receber o número do último item vendido.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// exemplo em C/C++
char cAliquotasISS[80];
int iRetorno;
iRetorno = Bematech_FI_VerificaAliquotasIss(cAliquotasISS);
Parâmetros:
→ flags Variável, com 80 caracteres, destinado a receber as alíquotas de vinculação ao ISS.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cAliquotasISSImpAntiga[82];
int iRetorno;
iRetorno =
Bematech_FI_VerificaAliquotasIssImpAntiga(cAliquotasISSImpAntiga);
Parâmetros:
→ cFlags Variável, com 82 posições, destinada a receber os flags de vinculação ISS (Indicam quais
aliquotas são ISS).
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cDepartamentos[1020];
int iRetorno;
iRetorno = Bematech_FI_VerificaDepartamentos(cDepartamentos);
Parâmetros:
→ departamentos Variável, com 1020 caracteres, destinado a receber as informações dos departa-
mentos.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função retorna as informações dos departamentos na seguinte ordem:
Valor acumulado para cada departamento.........................: 20 bytes
Valor com o número de vezes em que o departamento foi utilizado: 20 bytes
Descrição do departamento......................................: 10 bytes
// Exemplo em C/C++
char cFormasPagamento[3017];
int iRetorno;
iRetorno = Bematech_FI_VerificaFormasPagamento(cFormasPagamento);
Parâmetros:
→ formasPagamento Variável, com 3017 caracteres, destinado a receber as formas programadas.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função retorna as informações das formas de pagamento na seguinte ordem:
Descricao da forma de pagamento.....................................................................
Valor acumulado (2 casas decimais)..................................................................
Valor recebido no último cupom (2 casas decimais)...................................................
Valor indicando se a forma foi usada para a emissão do cupom não fiscal vinculado (1 usado, 0 não us
São retornadas 50 formas de pagamento mais a forma "Valor Recebido" e "Troco" obedecendo a ordem
descrita anteriormente. As formas de pagamento são separadas por vírgula, como no exemplo abaixo:
Dinheiro 00000000000000041558000000000000000015580,
Cartao Credito 00000000000000039470000000000000000000000,
Cheque 00000000000000028940000000000000000000000,
Ticket 00000000000000009000000000000000000000000,
00000000000000000000000000000000000000000,
00000000000000000000000000000000000000000,
.
.
.
Valor Recebido 00000000000000118968000000000000000015580,
Troco 00000000000000000000000000000000000000000
// Exemplo em C/C++
char VerificaIndiceAliquotasIss[49];
int iRetorno;
iRetorno =
Bematech_FI_VerificaIndiceAliquotasIss(VerificaIndiceAliquotasIss);
Parâmetros:
→ flags Variável, com 49 caracteres, destinado a receber os índices das alíquotas de vinculação ao
ISS.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Os índices retornados estarão separados por vírgula, por exemplo: 03,05.
// Exemplo em C/C++
char cIndiceAliquotasISSImpAntiga[49];
int iRetorno;
iRetorno =
Bematech_FI_VerificaIndiceAliquotasIssImpAntiga
(cIndiceAliquotasISSImpAntiga);
Parâmetros:
→ cIndices Variável, com 49 posições, destinada a receber a posição das alíquotas de ISS.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Os índices retornados estarão separados por vírgula. Por exemplo: 01,03,05.
// Exemplo em C/C++
char cRecebimentoNF[2201];
int iRetorno;
iRetorno = Bematech_FI_VerificaRecebimentoNaoFiscal(cRecebimentoNF);
Parâmetros:
→ recebimentos Variável, com 2201 caracteres, destinado a receber os recebimentos não fiscais não
vinculados programados na impressora.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função retorna as informações para os 50 totalizadores não fiscais não vinculados na seguinte
ordem:
Valor indicando quantas vezes cada recebimento foi utilizado: 4 bytes
Valor acumulado para cada recebimento (2 casas decimais)....: 20 bytes
Descrição do recebimento....................................: 19 bytes
// Exemplo em C/C++
int iVerificaReducaoZAutomatica = 0;
int iRetorno;
iRetorno =
Bematech_FI_VerificaReducaoZAutomatica(iVerificaReducaoZAutomatica);
Parâmetros:
→ flag Variável, inteira, destinada a receber a verificação da execução de redução Z automática "1"
ou por comando "0".
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cVerificaSensorPoucoPapel[3];
int iRetorno;
iRetorno =
Bematech_FI_VerificaSensorPoucoPapelMFD(cVerificaSensorPoucoPapel);
Parâmetros:
→ cFlag Variável, com 3 posições, destinada a receber a verificação referente ao sensor de pouco
papel habilitado "1" ou desabilitado "0".
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução
// Exemplo em C/C++
char cTotalizadoresNF[180];
int iRetorno;
iRetorno =
Bematech_FI_VerificaTotalizadoresNaoFiscais(cTotalizadoresNF);
Parâmetros:
→ totalizadores Variável, com 180 caracteres, destinada a receber a descrição dos totalizadores não
fiscais programados.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Os totalizadores virão separados por vírgula.
A impressora permite a programação de até 50 totalizadores não fiscais, porém esta função retorna
somente os 9 primeiros cadastrados.
// Exemplo em C/C++
char cTotalizadoresParciais[446];
int iRetorno;
iRetorno =
Bematech_FI_VerificaTotalizadoresParciais(cTotalizadoresParciais);
Parâmetros:
→ totalizadores Variável, com 446 caracteres, destinada a receber os totalizadores parciais cadastra-
dos.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função retorna as seguintes informações, separadas por vírgula:
Totalizadores parciais tributados..........: 224 bytes
Isenção....................................: 14 bytes
Não incidência.............................: 14 bytes
Substitução................................: 14 bytes
Totalizadores parciais não sujeitos ao ICMS: 126 bytes
Sangria....................................: 14 bytes
Suprimento.................................: 14 bytes
Grande Total...............................: 18 bytes
// Exemplo em C/C++
char cVersaoFirmware[5];
int iRetorno;
iRetorno = Bematech_FI_VersaoFirmware(cVersaoFirmware);
Parâmetros:
→ versao Variável, com 5 caracteres, destinada a receber a versão do firmware da impressora.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
Nota:
Nas impressoras fiscasi MP-2000 TH FI, MP-6000 TH FI, MP-25 TH FI e MP-50 TH FI, serão retor-
nados os 4 primeiros caracteres de sua versão de firmware. A versão de firmware, nestas impressoras,
tem o tamanho de 6 caracteres.
Funções
// Exemplo em C/C++
char cClicheProprietario[187];
int iRetorno;
iRetorno = Bematech_FI_ClicheProprietario(cClicheProprietario);
Parâmetros:
→ cliche Variável, com 187 caracteres, destinada a receber o clichê do proprietário cadastrado na
impressora.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cContadorBilhetePassagem[7];
int iRetorno;
iRetorno =
Bematech_FI_ContadorBilhetePassagem(cContadorBilhetePassagem);
Parâmetros:
→ contadorBilhete Variável, com 7 caracteres, destinado a receber o número de bilhetes de passagem
emitidas.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cContadorRelatoriosGerenciais[7];
int iRetorno;
iRetorno =
Bematech_FI_ContadorRelatoriosGerenciaisMFD
(cContadorRelatoriosGerenciais);
Parâmetros:
→ cContadorRelatorios Variável, com 7 posições, destinada a receber o número de relatórios geren-
ciais emitidos.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// exemplo em C/C++
int iRetorno;
char sDados[1279];
iRetorno = Bematech_FI_DadosUltimaReducaoMFD(sDados);
Parâmetros:
→ dados Buffer, com 1279 caracteres, destinado a receber os dados da última redução.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo ini não encontrado ou parâmetro inválido para o nome da porta
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)
Nota:
São retornados os valores das seguintes informações separados por vírgulas:
Modo de redução Z: 2 bytes (se 00 redução por comando se 01
Contador de reinício de operação: 4 bytes
Contador de redução z: 4 bytes
Contador de ordem de operação: 6 bytes
Contador Geral de operações não fiscais: 6 bytes
Contador de cupom fiscal: 6 bytes
Contador Geral de relatório gerencial: 6 bytes
Contador de fita detalhe emitida: 6 bytes
Contador de operação não fiscal cancelada: 4 bytes
Contador de cupom fiscal cancelado: 4 bytes
Contadores específicos de operações não fiscais: 120 bytes
Contadores específicos de relatórios gerenciais: 120 bytes
Contador de comprovantes de débito ou crédito: 4 bytes
Contador de comprovantes de débito ou crédito não emitidos: 4 bytes
Contador de comprovantes de débito ou crédito cancelados: 4 bytes
Totalizador geral: 18 bytes
Totalizadores Parciais Tributados: 224 bytes
Totalizador de isenção de ICMS: 14 bytes
Totalizador de não incidência de ICMS: 14 bytes
Totalizador de substituição tributária de ICMS: 14 bytes
Totalizador de isenção de ISSQN: 14 bytes
Totalizador de não incidência de ISSQN: 14 bytes
Totalizador de substituição tributária de ISSQN: 14 bytes
Totalizador de descontos em ICMS: 14 bytes
Totalizador de descontos em ISSQN: 14 bytes
Totalizador de acréscimos em ICMS: 14 bytes
Totalizador de acréscimos em ISSQN: 14 bytes
Totalizador de cancelamentos em ICMS 14 bytes
Totalizador de cancelamentos em ISSQN: 14 bytes
Totalizadores parciais não sujeitos ao ICMS: 392 bytes
Totalizador de sangria: 14 bytes
Totalizador de suprimento: 14 bytes
Totalizador de cancelamentos de não fiscais: 14 bytes
Totalizador de descontos de não fiscais: 14 bytes
Totalizador de acréscimos de não fiscais: 14 bytes
Alíquotas tributárias: 64 bytes
Data do movimento: 6 bytes
// Exemplo em C/C++
char cData[7];
char cHora[7];
int iRetorno;
iRetorno = Bematech_FI_DataHoraImpressora(cData, cHora);
Parâmetros:
→ data Variável, com 7 caracteres, destinada a receber a data atual da impressora no formato ddmmaa.
→ hora Variável, com 7 caracteres, destinada a receber a hora atual da impressora no formato hh-
mmss.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cData[7];
char cHora[7];
int iRetorno;
iRetorno = Bematech_FI_DataHoraReducao(cData, cHora);
Parâmetros:
→ data Variável, com 7 caracteres, destinada a receber a data da última redução no formato ddmmaa.
→ hora Variável, com 7 caracteres, ddestinada a receber a hora da última redução no formato hh-
mmss.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cData[7];
int iRetorno;
iRetorno = Bematech_FI_DataMovimento(cData);
Parâmetros:
→ data Variável, com 7 caracteres, destinada a receber a data do último movimento.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// exemplo em C/C++
int iRetorno;
char sMarca[16];
char sModelo[21];
char sTipo[8];
iRetorno =
Bematech_FI_MarcaModeloTipoImpressoraMFD(sMarca, sModelo, sTipo);
Parâmetros:
→ marca Buffer com 16 bytes para receber a marca da impressora.
→ modelo Buffer com 21 bytes para receber o modelo da impressora.
→ tipo Buffer com 8 bytes para receber o tipo da impressora.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo ini não encontrado ou parâmetro inválido para o nome da porta
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)
// Exemplo em C/C++
char cMinutosImprimindo[5];
int iRetorno;
iRetorno = Bematech_FI_MinutosImprimindo(cMinutosImprimindo);
Parâmetros:
→ minutos Variável, com 5 caracteres, destinada a receber o tempo em que a impressora está ou
esteve imprimindo.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cMinutosLigada[5];
int iRetorno;
iRetorno = Bematech_FI_MinutosLigada(cMinutosLigada);
Parâmetros:
→ minutos Variável, com 5 caracteres, destinada a receber o tempo em que a impressora está ligada.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cNumeroCaixa[5];
int iRetorno;
iRetorno = Bematech_FI_NumeroCaixa(cNumeroCaixa);
Parâmetros:
→ caixa Variável, com 5 caracteres, destinada a receber o número do caixa cadastrado na impressora.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cNumeroIntervencoes[5];
int iRetorno;
iRetorno = Bematech_FI_NumeroIntervencoes(cNumeroIntervencoes);
Parâmetros:
→ intervencoes Variável, com 5 caracteres, destinada a receber o número de intervenções técnicas
feitas na impressora.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cNumeroLoja[5];
int iRetorno;
iRetorno = Bematech_FI_NumeroLoja(cNumeroLoja);
Parâmetros:
→ loja Variável, com 5 caracteres, destinada a receber o número da loja cadastrada na impressora.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cNumeroOperacoesNF[7];
int iRetorno;
iRetorno = Bematech_FI_NumeroOperacoesNaoFiscais(cNumeroOperacoesNF);
Parâmetros:
→ operacoes Variável, com 7 caracteres, destinada a receber o número de operações não fiscais exe-
cutadas na impressora.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// exemplo em C/C++
int iRetorno;
char sNumeroSerie[21];
iRetorno = Bematech_FI_NumeroSerieMFD(sNumeroSerie);
Parâmetros:
→ numeroSerie Buffer com 21 bytes para receber o número de série da impressora.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo ini não encontrado ou parâmetro inválido para o nome da porta
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).
// Exemplo em C/C++
char cNumeroSubstituicoesProprietario[5];
int iRetorno;
iRetorno =
Bematech_FI_NumeroSubstituicoesProprietario
(cNumeroSubstituicoesProprietario);
Parâmetros:
→ substituicoes Variável, com 5 caracteres, destinada a receber o número de substituições de propri-
etário.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cSimboloMoeda[3];
int iRetorno;
iRetorno = Bematech_FI_SimboloMoeda(cSimboloMoeda);
Parâmetros:
→ moeda Variável, com 3 caracteres, destinada a receber o símbolo da moeda cadastrado na impres-
sora.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// exemplo em C/C++
int iRetorno;
char Valor[16];
iRetorno = Bematech_FI_ValorFormaPagamento("Cheque", Valor);
Parâmetros:
formaPagamento Forma de pagamento a ser lida, com até 16 caracteres.
→ valorForma Buffer com 16 bytes para receber o valor da forma de pagamento.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-2 Parâmetro inválido na função
-24 Forma de pagamento não programada
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
// Exemplo em C/C++
char cValorPagoUltimoCupom[15];
int iRetorno;
iRetorno = Bematech_FI_ValorPagoUltimoCupom(cValorPagoUltimoCupom);
Parâmetros:
→ valor Variável, com 15 caracteres, destinada a receber o valor pago no último cupom.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Valor pago no último cupom é diferente do valor total do cupom, por exemplo: o Valor do cupom é de
R$15,00 e o cliente pagou R$20,00. O valor retornado por esta função será o valor pago pelo cliente,
ou seja, R$20,00.
// exemplo em C/C++
int iRetorno;
char Valor[15];
iRetorno =
Bematech_FI_ValorTotalizadorNaoFiscal("Rec. Prestacao", Valor);
Parâmetros:
totalizador Totalizador, com até 19 caracteres.
→ valorTotalizador Buffer com 15 bytes para receber o valor do totalizador.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-2 Parâmetro inválido na função
-25 Totalizador não fiscal não programado
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
// Exemplo em C/C++
char cEpromConectada[2];
int iRetorno;
iRetorno = Bematech_FI_VerificaEpromConectada(cEpromConectada);
Parâmetros:
→ flag Variável, com 2 caracteres, destinada a receber o flag de Eprom conectada "1" ou desconectada
"0".
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Os retornos provenientes da impressora são: Eprom conectada "55h" e desconcetada "AAh".
3.8.1.22 int Bematech_FI_VerificaEstadoImpressora (short int ∗ ack, short int ∗ st1, short int ∗
st2)
Verifica Estado Impressora.
Retorna o estado da impressora.
// Exemplo em C/C++
int iRetorno, iACK, iST1, iST2;
iRetorno = Bematech_FI_VerificaEstadoImpressora(iACK, iST1, iST2);
Parâmetros:
→ ack Variável, inteira, destinada a receber o primeiro byte de retorno.
→ st1 Variável, inteira, destinada a receber o segundo byte de retorno.
→ st2 Variável, inteira, destinada a receber o terceiro byte de retorno.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Todas as funções, executadas na impressora, possuem bytes de retorno, que significam o estado atual
após o envio.
Cada byte é tratado da seguinte maneira:
ACK (06h ou 6d) : Byte indicativo de recebimento correto.
ST1 e ST2 : Bytes de estado da impressora.
NAK (15h ou 21d) : Byte indicativo de recebimento incorreto.
Nas impressoras fiscais matriciais, os retornos de execução são obtidos, apenas, pelos bytes ACK, ST1
e ST2.
Nas impressoras fiscal MFD (somente), existe um outro retorno chamado ST3 (retorno estendido),
onde informações mais detalhadas podem ser obtidas, sendo este habilitado pela função Bematech_-
FI_HabilitaDesabilitaRetornoEstendidoMFD().
Abaixo seguem as estruturas do ST1 e ST2:
ST1:
Composição do Byte de Retorno Mensagem da Impressora Valor de Retorn
bit 7 Fim de papel 128
bit 6 Pouco papel 64
bit 5 Erro no relógio 32
bit 4 Impressora em erro 16
bit 3 Primeiro dado de CMD não foi ESC (18h) 8
bit 2 Comando inexistente 4
bit 1 Cupom fiscal aberto 2
bit 0 Número de parâmetro de CMD inválido 1
ST2:
Composição do Byte de Retorno Mensagem da Impressora Valor de Retorn
bit 7 Tipo de parâmetro de CMD inválido 128
bit 6 Memória fiscal lotada 64
bit 5 Erro na memória RAM CMOS não volátil 32
bit 4 Alíquota não programada 16
bit 3 Capacidade de alíquotas esgotada 8
bit 2 Cancelamento não permitido 4
bit 1 CNPJ/IE do proprietário não programados 2
bit 0 Comando não executado 1
Lógica de Tratamento:
// exemplo em C/C++
char cModoOperacao[2];
int iRetorno;
iRetorno = Bematech_FI_VerificaModoOperacao(cModoOperacao);
Parâmetros:
→ modo Variável, com 2 caracteres, destinada a receber o modo de operação da impressora, sendo
modo normal "1" e intervenção técnica "0".
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Os retornos provenientes da impressora são: Modo normal "55h" e intervenção técnica "AAh".
// Exemplo em C/C++
int iRetorno, iTipoImpressora;
iRetorno = Bematech_FI_VerificaTipoImpressora(iTipoImpressora);
Parâmetros:
→ tipoImpressora Variável, inteira, destinada a receber o tipo da impressora, esta podendo ser:
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// exemplo em C/C++
char cModoTruncamento[2];
int iRetorno;
iRetorno = Bematech_FI_VerificaTruncamento(cModoTruncamento);
Parâmetros:
→ flag Variável, com 2 caracteres, destinado a receber o flag indicativo de impressora em modo de
truncamento "1" ou arredondamento "0".
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Funções
// Exemplo em C/C++
char cCNPJMFD[21];
int iRetorno;
iRetorno = Bematech_FI_CNPJMFD(cCNPJMFD);
Parâmetros:
→ cCNPJ Variável, com 21 posições, destinada a receber o CNPJ cadastrado na impressora.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cComprovantesNFNaoEmitidos[5];
int iRetorno;
iRetorno =
Bematech_FI_ComprovantesNaoFiscaisNaoEmitidosMFD
(cComprovantesNFNaoEmitidos);
Parâmetros:
→ cComprovantes Variável, com 5 posições, destinada a receber o número de comprovantes não
fiscais não emtidos.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cComprovantesCredito[5];
int iRetorno;
iRetorno =
Bematech_FI_ContadorComprovantesCreditoMFD(cComprovantesCredito);
Parâmetros:
→ cComprovante Variável, com 5 posições, destinada a receber o número de comprovantes de crédito
emitidos.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cContadorCupomFiscal[7];
int iRetorno;
iRetorno = Bematech_FI_ContadorCupomFiscalMFD(cContadorCupomFiscal);
Parâmetros:
→ cContadorCupom Variável, com 7 posições, destinada a receber o número de cupons fiscais emi-
tidos.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cTotalizadoresNaoFiscais[150];
int iRetorno;
iRetorno =
Bematech_FI_ContadoresTotalizadoresNaoFiscaisMFD
(cTotalizadoresNaoFiscais);
Parâmetros:
→ cContadores Variável, com 150 posições, destinada a receber o número de vezes em que os total-
izadores não sujeitos a ICMS foram usados.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
O conteúdo da variável retornada será 120 dígitos separados de 4 em 4 por vírgula que representam os
30 totalizadores, como por exemplo:
"0001,0003,0001,0005,0004,0002,0003,0004,0007,..."
O primeiro valor corresponde ao número de vezes que o totalizador "01" fora usado, o segundo corre-
sponde ao totalizador "02" e assim sucessivamente.
// Exemplo em C/C++
char cContadorFitaDetalhe[7];
int iRetorno;
iRetorno = Bematech_FI_ContadorFitaDetalheMFD(cContadorFitaDetalhe);
Parâmetros:
→ cContadorFita Variável, com 7 posições, destinada a receber o número de vezes em que foi im-
pressa a fita detalhe.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cContadorOperacoesNFCanceladas[5];
int iRetorno;
iRetorno =
Bematech_FI_ContadorOperacoesNaoFiscaisCanceladasMFD
(cContadorOperacoesNFCanceladas);
Parâmetros:
→ cContadorOperacoes Variável, com 5 posições, destinada a receber o número de de operações não
fiscais canceladas na MFD.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cDataHora[13];
int iRetorno;
iRetorno = Bematech_FI_DataHoraUltimoDocumentoMFD(cDataHora);
Parâmetros:
→ cData Variável, com 13 posições, destinada a receber a data e hora do último documento ar-
mazenado na MFD.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cDataMovimento[7];
int iRetorno;
iRetorno = Bematech_FI_DataMovimentoUltimaReducaoMFD(cDataMovimento);
Parâmetros:
→ cData Variável, com 7 caracteres, destinada a receber a data do movimento da última redução Z.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01.
// Exemplo em C/C++
int iFlagsFiscais3;
int iRetorno;
iRetorno = Bematech_FI_FlagsFiscais3MFD(iFlagsFiscais3);
Parâmetros:
→ flag Variável, inteira, destinada a receber os flags fiscais III.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Discriminação dos valores para o flag fiscal:
Descrição Valor
Impressora com pouco papel 1
Sensor de pouco papel habilitado 2
Cancelamento automático de cupom às duas horas habilitado 4
Desconto em ISSQN desabilitado "0" ou habilitado "1" 8
Redução Z automática desabilitada "0" ou habilitada "1" 16
Impressora ON-LINE "0" ou OFF-LINE "1" 32
NÃO UTILIZADO 64
Abertura detectada 128
Os valores citados acima podem vir somados, o que indica mais de um estado.
Esta função está disponível apenas para os modelos MP-4000 TH FI e MP-7000 TH FI.
// Exemplo em C/C++
char cGrandeTotalMFD[19];
int iRetorno;
iRetorno = Bematech_FI_GrandeTotalUltimaReducaoMFD(cGrandeTotalMFD);
Parâmetros:
→ cGrandeTotal Variável, com 19 posições, destinada a receber o grande total da última redução Z.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
Nota:
Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01.
// Exemplo em C/C++
char cCOOInicial[7];
char cCOOFinal[7];
int iRetorno;
iRetorno = Bematech_FI_InicioFimCOOsMFD(cCOOInicial, cCOOFinal);
Parâmetros:
→ COOini Variável, com 7 posições, destinada a receber a informação do COO inicial.
→ COOfim Variável, com 7 posições, destinada a receber a informação do COO final.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função deve ser usada após a redução Z, para que o COO inicial e final tenha referência ao dia do
movimento atual.
Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01.
// Exemplo em C/C++
char cGTInicial[19];
char cGTFinal[19];
int iRetorno;
iRetorno = Bematech_FI_InicioFimGTsMFD(cGTInicial, cGTFinal);
Parâmetros:
→ GTini Variável, com 19 posições, destinada a receber a informação do GT inicial.
→ GTfim Variável, com 19 posições, destinada a receber a informação do GT final.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função deve ser usada após a redução Z, para que o GT inicial e final tenha referência ao dia do
movimento atual.
Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01.
// Exemplo em C/C++
char cIEMFD[21];
int iRetorno;
iRetorno = Bematech_FI_InscricaoEstadualMFD(cIEMFD);
Parâmetros:
→ cIE Variável, com 21 posições, destinada a receber a inscrição estadual cadastrada na impressora.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cIMMFD[21];
int iRetorno;
iRetorno = Bematech_FI_InscricaoMunicipalMFD(cIMMFD);
Parâmetros:
→ cIM Variável, com 21 posições, destinada a receber a inscrição municipal cadastrada na impres-
sora.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cMinutosDocumentosFiscais[5];
int iRetorno;
iRetorno =
Bematech_FI_MinutosEmitindoDocumentosFiscaisMFD
(cMinutosDocumentosFiscais);
Parâmetros:
→ cMinutos Variável, com 5 posições, destinada a receber o tempo em que a impressora emitiu doc-
umentos fiscais.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cNumeroSerieMFD[21];
int iRetorno;
iRetorno = Bematech_FI_NumeroSerieMemoriaMFD(cNumeroSerieMFD);
Parâmetros:
→ cNumeroSerie Variável, com 21 posições, destinada a receber o número de série da MFD.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cValorPercentual[7];
int iRetorno;
iRetorno = Bematech_FI_PercentualLivreMFD(cValorPercentual);
Parâmetros:
→ cValor Variável, com 7 posições, destinada a receber o percentual livre da MFD.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função só está disponível para a versão 01.00.00, da impressora fiscal MFD.
// Exemplo em C/C++
char cReducoesRestantes[5];
int iRetorno;
iRetorno = Bematech_FI_ReducoesRestantesMFD(cReducoesRestantes);
Parâmetros:
→ cReducoes Variável, com 5 posições, destinada a receber o número de reduções restantes na im-
pressora.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
int iStatus;
int iRetorno;
iRetorno = Bematech_FI_StatusEstendidoMFD(iStatus);
Parâmetros:
→ status Variável inteira destinada a receber o status de relatório gerencial ou comprovante não-fiscal
aberto.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Função disponível para a impressora térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01.
// Exemplo em C/C++
char cSubTotalComprovanteNF[15];
int iRetorno;
iRetorno =
Bematech_FI_SubTotalComprovanteNaoFiscalMFD(cSubTotalComprovanteNF);
Parâmetros:
→ cSubTotal Variável, com 15 posições, destinada a receber o subtotal do comprovante não fiscal.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01.
// Exemplo em C/C++
char cTamanhoTotalMFD[11];
int iRetorno;
iRetorno = Bematech_FI_TamanhoTotalMFD(cTamanhoTotalMFD);
Parâmetros:
→ cTamanho Variável, com 11 posições, destinada a receber o tamanho total da MFD.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cTempoOperacional[5];
int iRetorno;
iRetorno = Bematech_FI_TempoOperacionalMFD(cTempoOperacional);
Parâmetros:
→ cTempo Variável, com 5 posições, destinada a receber o tempo em que a impressora está opera-
cional.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cTempoRestante[5];
int iRetorno;
iRetorno = Bematech_FI_TempoRestanteComprovanteMFD(cTempoRestante);
Parâmetros:
→ cTempo Variável, com 5 posições, destinada a receber o tempo restante para o comprovante aberto.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
Nota:
O tempo é retornado à variável em segundos.
O limite destes comprovantes é de 2 minutos.
Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01.
// Exemplo em C/C++
char cTotalIssCupom[14];
int iRetorno;
iRetorno = Bematech_FI_TotalIssCupomMFD(cTotalIssCupom);
Parâmetros:
→ ISS Variável, com 14 posições, destinada a receber o valor total do ISS pago no cupom.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de configuração não encontrado ou parâmetro inválido para o nome da porta
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar no arquivo texto
// Exemplo em C/C++
char cTamanhoEspacoLivreMFD[11];
int iRetorno;
iRetorno =
Bematech_FI_Bematech_FI_TotalLivreMFD(cTamanhoEspacoLivreMFD);
Parâmetros:
→ cTamanho Variável, com 11 posições, destinada a receber a quantidade de bytes livres na MFD.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cUFProprietario[3];
int iRetorno;
iRetorno = Bematech_FI_UFProprietarioMFD(cUFProprietario);
Parâmetros:
→ cUF Variável, com 3 posições, destinada a receber a UF do proprietário cadastrada na impressora.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01.
// Exemplo em C/C++
char cValorPagamento[14];
int iRetorno;
iRetorno =
Bematech_FI_ValorFormaPagamentoMFD("Cheque", cValorPagamento);
Parâmetros:
cFormaPagamento Descrição da forma de pagamento a qual se deseja retornar seu valor, com até 16
caracteres.
→ cValorForma Variável, com 15 posições, destinada a receber o valor da forma de pagamento dese-
jada.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-24 Forma de pagamento não programada
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cValorTotalizadorNF[15];
int iRetorno;
iRetorno =
Bematech_FI_ValorTotalizadorNaoFiscalMFD("Rec. Prestacao",
cValorTotalizadorNF);
Parâmetros:
cTotalizador Descrição do totalizador, com até 19 caracteres.
→ cValorTotalizador Variável, com 15 posições, destinada a receber o valor acumulado do totalizador
não fiscal.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-2 Parâmetro inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-25 Totalizador não fiscal não programado
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
3.9.1.30 int Bematech_FI_VerificaEstadoImpressoraMFD (short int ∗ ack, short int ∗ st1, short
int ∗ st2, short int ∗ st3)
Verifica Estado Impressora MFD.
Ler o estado da impressora
// exemplo em C/C++
int iRetorno;
short int iAck, iSt1, iSt2, iSt3;
iRetorno =
Bematech_FI_VerificaEstadoImpressoraMFD(&iAck, &iSt1, &iSt2, &St3);
Parâmetros:
→ ack Buffer para receber o ack
→ st1 Buffer para receber o st1
→ st2 Buffer para receber o st2
→ st3 Buffer para receber o st3
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-4 O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
// Exemplo em C/C++
int iFlagCorteMFD;
int iRetorno;
iRetorno = Bematech_FI_VerificaFlagCorteMFD(iFlagCorteMFD);
Parâmetros:
→ flag Variável, inteira, destinada a receber o flag de acionamento da guilhotina.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01.
// Exemplo em C/C++
char cFormasPagamento[920];
int iRetorno;
iRetorno = Bematech_FI_VerificaFormasPagamentoMFD(cFormasPagamento);
Parâmetros:
→ cFormas Variável, com 920 posições, destinada a receber as formas de pagamento programadas
na impressora.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Essa função retorna as informações das formas de pagamento na seguinte ordem:
Descricao da forma de pagamento............................................: 16 bytes
Valor acumulado da forma (duas casas decimais).............................: 14 bytes
Valor recebido no último cupom (duas casas decimais).......................: 14 bytes
Valor indicando se a forma permite operação TEF (1 permite, 0 não permite ): 1 byte
São retornadas 20 formas de pagamento mais a forma "Valor Recebido" e "Troco" obedecendo a ordem
descrita anteriormente. As formas de pagamento vêem separadas por vírgula.
Veja exemplo a seguir:
Dinheiro 00000000000000041558000000000000000015580,
Cartao Credito 00000000000000039470000000000000000000000,
Cheque 00000000000000028940000000000000000000000,
Ticket 00000000000000009000000000000000000000000,
.
.
.
Valor Recebido 00000000000000118968000000000000000015580,
Troco 00000000000000000000000000000000000000000
A impressora MFD permite programar até 20 formas de pagamento e essas formas não são mais
apagadas na redução Z (conforme ocorria na impressora MP20 FI II).
As formas que não estiverem programadas estarão com os valores zerados e a descrição em branco
(veja exemplo acima).
// Exemplo em C/C++
char cRecebimentos[1078];
int iRetorno;
iRetorno = Bematech_FI_VerificaRecebimentoNaoFiscalMFD(cRecebimentos);
Parâmetros:
→ cValorRecebimento Variável, com 1078 posições, destinada aos recebimentos não fiscais não vin-
culados programados na impressora.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função retorna as informações para os 30 totalizadores não fiscais não vinculados na seguinte
ordem:
Descrição do recebimento...................................: 19 bytes
Valor acumulado para cada recebimento (duas casas decimais): 14 bytes
A impressora permite programar até 28 totalizadores não fiscais não vinculados. Os totalizadores
"Sangria" e "Suprimento" são pré-programados.
// Exemplo em C/C++
char cRelatoriosGerenciais[660];
int iRetorno;
iRetorno =
Bematech_FI_VerificaRelatorioGerencialMFD(cRelatoriosGerenciais);
Parâmetros:
→ cRelatorios Variável, com 660 posições, destinada a receber os relatórios gerenciais programados
e seus valores acumulados.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função retorna as informações para os 30 relatórios gerenciais na seguinte ordem:
Número de vezes que o relatório foi utilizado.: 4 bytes
Descrição do relatório.......................: 17 bytes
Exemplo:
0005Relatorio Geral ,
0002Relatorio 3 ,
0001Relatorio 4 ,
.
.
.
0004Relatorio 30 ,
// Exemplo em C/C++
char cTotalizadoresNF[600];
int iRetorno;
iRetorno =
Bematech_FI_VerificaTotalizadoresNaoFiscaisMFD(cTotalizadoresNF);
Parâmetros:
→ cTotalizadores Variável, com 600 posições, destinada a receber a descrição dos totalizadores não
fiscais programados.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
A impressora MFD permite programar até 28 totalizadores não fiscais e possui dois (2) pré-
programados: Sangria e Suprimento.
Os totalizadores virão separados por vírgula.
// Exemplo em C/C++
char cTotalizadoresParciais[890];
int iRetorno;
iRetorno =
Bematech_FI_VerificaTotalizadoresParciaisMFD(cTotalizadoresParciais);
Parâmetros:
→ cTotalizadores Variável, com 890 posições, destinada a receber os totalizadores parciais progra-
mados na impressora.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
São retornadas as seguintes informações separadas por vírgula:
Totalizadores parciais tributados: 224 bytes
Isenção de ICMS: 14 bytes
Não incidência de ICMS: 14 bytes
Substitução de ICMS: 14 bytes
Isenção de ISSQN: 14 bytes
Não incidência de ISSQN: 14 bytes
Substitução de ISSQN: 14 bytes
Descontos sobre ICMS: 14 bytes
Acréscimos sobre ICMS: 14 bytes
Cancelamentos sobre ICMS: 14 bytes
Descontos sobre ISSQN: 14 bytes
Acréscimos sobre ISSQN: 14 bytes
Cancelamentos sobre ISSQN: 14 bytes
Totalizadores não fiscais + sangria e suprimento: 420 bytes
Descontos sobre não fiscais: 14 bytes
Acréscimos sobre não fiscais: 14 bytes
Cancelamentos sobre não fiscais: 14 bytes
Grande Total: 18 bytes
// exemplo em C/C++
int iRetorno;
char sVersaoFirmware[7];
iRetorno = Bematech_FI_VersaoFirmwareMFD(sVersaoFirmware);
Parâmetros:
→ versao Buffer com 7 caracteres para receber a versão do firmware.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo ini não encontrado ou parâmetro inválido para o nome da porta
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)
3.10 Informação
Funções
// Exemplo em C/C++
int iRetorno, iFlagVinculacaoISS1, iFlagVinculacaoISS2;
iRetorno =
Bematech_FI_FlagsVinculacaoIss(iFlagVinculacaoISS1,
iFlagVinculacaoISS2);
Parâmetros:
→ iFlag1 Variável, inteira, destinada a receber o flag1, referente as alíquotas da posição 1 a 8.
→ iFlag2 Variável, inteira, destinada a receber o flag2, referente as alíquotas da posição 9 a 16.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Os valores podem vir somados, o que indica mais de uma alíquiota vinculada.
// Exemplo em C/C++
char cModeloImpressora[11];
int iRetorno;
iRetorno = Bematech_FI_ModeloImpressora(cModeloImpressora);
Parâmetros:
→ modelo Modelo da impressora com 11 caracteres. Os tipos de retorno poderão ser:
MP20FI
MP40FI
MP25FI
MP50FI
MP2000FI
MP2100FI
MP3000FI
MP4000FI
MP6000FI
MP7000FI
4610-KR4
4679-3B4
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução (impressora desconhecida)
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
char cModeloImpressora[11];
char cVersaoFirmware[7];
int iRetorno;
iRetorno =
Bematech_FI_ModeloVersaoImpressora(cModeloImpressora,
cVersaoFirmware);
Parâmetros:
→ modelo Modelo da impressora com 11 caracteres. Os tipos de retorno poderão ser:
MP20FI
MP40FI
MP25FI
MP50FI
MP2000FI
MP2100FI
MP3000FI
MP4000FI
MP6000FI
4610-KR4
4679-3B4
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função independe da configuração de Impressora MFD no arquivo ".INI".
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_RegistroTipo60M();
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo ini não encontrado ou parâmetro inválido para o nome da porta
-5 Erro ao abrir a porta de comunicacao
-8 Erro ao criar ou gravar no arquivo status.txt ou retorno.txt.
Nota:
Informações geradas pela função:
Tipo do relatório 2 bytes
Subtipo 1 byte
Data de emissão 8 bytes no formato AAAAMMDD
Número de série 20 bytes
Situacao Trib. 4 bytes
Valor acumulado situacao trib. 12 bytes
Espacos em branco 79 bytes
Será gerado um registro para cada situacao tributaria utilizada no dia, um para F,I, N, um para CANC,
DESC e ISS.
Algumas informações geradas no relatório tipo 60 mestre são referentes aos dados da última redução
Z. Portanto, essa função deve ser executada após a redução Z.
// exemplo em C/C++
int iRetorno;
char Valor[19];
iRetorno = Bematech_FI_VendaBruta(Valor);
Parâmetros:
→ vendaBruta Buffer com 19 bytes para receber o valor da venda bruta.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-2 Parâmetro inválido na função
-24 Forma de pagamento não programada
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
// exemplo em C/C++
int iRetorno;
char cVersao[5];
iRetorno = Bematech_FI_VersaoSO(cVersao);
Parâmetros:
→ versao Buffer com 5 bytes para receber a versão da biblioteca.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO
-27 Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)
Funções
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_AcionaGaveta();
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// exemplo em C/C++
int iRetorno, iEstadoGaveta;
iRetorno = Bematech_FI_VerificaEstadoGaveta(iEstadoGaveta);
Parâmetros:
→ flag Variável, inteira, destinada a receber o estado da gaveta, onde "0" indica gaveta aberta e "1"
fechada.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
Nota:
Em alguns modelos de gaveta, este retorno poderá ser invertido, ou seja, o retorno que corresponde
a "gaveta aberta", poderá ser o retorno para "gaveta fechada". Caso isso ocorra, mude a chave
"ModoGaveta" (encontrado nas configurações do arquivo BemaFI32.ini), para "1" e efetue o teste
de retorno, abrindo e fechando a gaveta.
3.12 Cheque
Funções
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_CancelaImpressaoCheque();
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
Nota:
Função usada somente na impressora MP-40 FI II.
// exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_ImprimeCheque("353", "50,00", "Bematech S/A", "Curitiba",
"10/01/02", "");
Parâmetros:
cNumeroBanco Número do banco, com 3 dígitos.
cValor Valor do cheque, com até 14 dígitos.
cFavorecido Favorecido, com até 45 caracteres.
cCidade Cidade, com até 27 caracteres.
cData Data, no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.
cMsg Mensagem, com até 120 caracteres.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-7 Banco não encontrado no arquivo BemaFI32.ini
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
Nota:
A mensagem será impressa 1 (uma) linha após a cidade.
Função usada somente na impressora BEMATECH MP-40 FI II.
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_ImprimeChequeMFD("001", "50,00", "Fulano de Tal",
"Curitiba", "18/04/02", "", "0", "0");
Parâmetros:
cNumeroBanco Número do banco, com 3 caracteres.
cValor Valor do cheque com até 14 caracteres.
cFavorecido Favorecido com até 45 caracteres.
cCidade Cidade com até 27 caracteres.
cData Data no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.
cMsg Comentário com até 120 caracteres. Esta mensagem será impressa uma linha após a cidade,
caso não tenha sido indicada para impressão no verso.
cImpressaoVerso Indicador de impressão na frente do cheque "0" ou no verso "1".
cLinhas Número de linhas a serem saltadas antes da impressão da mensagem, sendo este um valor
entre 0 e 35. Este campo só é utilizado na impressão da mensagem no verso do cheque.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-7 Banco não localizado no arquivo de configuração - BemaFI32.ini
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_Bematech_FI_ImprimeChequeMFDEx("001", "50,00", "Bematech",
"Curitiba", "25/10/2008", "Obrigado, Volte Sempre!!", "0");
Parâmetros:
cNumeroBanco Número do banco, com 3 caracteres.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-7 Banco não localizado no arquivo de configuração - BemaFI32.ini
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_ImprimeCopiaCheque();
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-7 Banco não encontrado no arquivo BemaFI32.ini
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
Nota:
Função usada somente na impressora BEMATECH MP-40 FI II.
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_ImprimeInformacaoChequeMFD(1, 2,
"Teste de impressao no verso do cheque");
Parâmetros:
iPosicao Variável, inteira, destinada a definir a posição da impressão: "0" impressão frontal e "1"
impressão no verso.
iLinhas Variável, inteira, destinada a definir o número de avanços de linha antes da impressão.
cMensagem Texto a ser impresso, limitado a 240 caracteres ou 3 linhas.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função só está disponível para a versão 01.00.00, da impressora fiscal MFD.
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_IncluiCidadeFavorecido("Londrina", "José");
Parâmetros:
cCidade Nome da cidade com até 27 caracteres
cFavorecido Nome do favorecido com até 45 caracteres
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
-1 Erro de execução
-2 Parâmetro inválido na função
Nota:
Após gravar o nome da cidade e do favorecido no arquivo de configuração não é mais necessário passar
essas informações como parâmetros para a função Bematech_FI_ImprimeCheque(), a não ser que seja
necessário imprimir uma cidade ou um favorecido diferente aos que estão programados.
Função usada somente na impressora BEMATECH MP-40 FI II.
// Exemplo em C/C++
char cCodigoCMC7[37];
int iRetorno;
iRetorno = Bematech_FI_LeituraChequeMFD(cCodigoCMC7);
Parâmetros:
→ cCMC7 Variável, com 37 posições, destinada a receber o código CMC7 do cheque.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-9 Time-out na leitura do cheque
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_ProgramaMoedaPlural("Reais");
Parâmetros:
moedaPlural Moeda no plural, com até 22 caracteres.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
Nota:
Função usada somente na impressora BEMATECH MP-40 FI II.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_ProgramaMoedaSingula("Real");
Parâmetros:
moedaSingular Moeda no singular, com até 19 caracteres
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
Nota:
Função usada somente na impressora BEMATECH MP-40 FI II.
// Exemplo em C/C++
int iRetorno, iStatusCheque;
iRetorno = Bematech_FI_VerificaStatusCheque(iStatusCheque);
Parâmetros:
→ status Variável, inteira, destinada a receber o status do cheque. Os valores de status são:
1 - Impressora OK.
2 - Cheque em impressão.
3 - Cheque posicionado.
4 - Aguardando o posicionamento do cheque.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Função usada somente na impressora MP-40 FI II.
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_ViraChequeMFD();
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de configuração não encontrado ou parâmetro inválido para o nome da porta
-5 Erro ao abrir a porta de comunicação
3.13 Utilidades
Funções
• int Bematech_FI_ImpressaoCarne (const char ∗titulo, const char ∗parcela, const char ∗datas, int
quantidade, const char ∗texto, const char ∗cliente, const char ∗rgcpf, const char ∗cupom, int vias, int
assina)
• int Bematech_FI_InfoBalanca (const char ∗port, int model, char ∗weight, char ∗precoKilo, char
∗total)
// exemplo em C/C++
char cPorta[] = "/dev/ttyS0";
char cPeso[7], cPrecoKilo[7], cTotal[7];
int iRetorno;
iRetorno =
Bematech_FI_InfoBalanca(cPorta, 1, cPeso, cPrecoKilo, cTotal);
Parâmetros:
baudRate Baudrate da porta serial utilizada pela impressora (ex: CBR_9600)
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_ConfiguraCharset("UTF-8");
Parâmetros:
encoding Charset a ser utilizado como interface biblioteca/aplicação. Valores permitidos: UTF-8 ou
ISO-8859-1.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
-2 Erro de parâmetros
3.13.1.3 int Bematech_FI_ImpressaoCarne (const char ∗ titulo, const char ∗ parcela, const char
∗ datas, int quantidade, const char ∗ texto, const char ∗ cliente, const char ∗ rgcpf, const char ∗
cupom, int vias, int assina)
Impressão Carnê.
Imprime um carnê de pagamentos.
// exemplo em C/C++
char cTitulo[] = "Carne de Pgto";
char cValorParcela[] = "10,00;10,00;10,00";
char cData[] = "30/06/03;30/07/03;30/08/03";
int iQtdeParcela = 3;
char cTexto[] = "Texto a ser impresso no carnê";
char cCliente[] = "Fulano de Tal";
char cRGC[] = "1234567890-12345";
char cCOOCupom[] = "000257";
int iVia = 1;
int iAssinatura = 0;
int iRetorno;
iRetorno = Bematech_FI_ImpressaoCarne(cTitulo cValorParcela, cData,
iQtdeParcela, cTexto, cCliente, cRGC, cCOOCupom,
iVia, iAssinatura);
Parâmetros:
titulo Titulo do carnê que será impresso centralizado e expandido em cada via. Limitado em 20
caracteres.
parcela Valores de cada parcela, separados por ’;’, com duas casas decimais obrigatóriamente. Exem-
plos: "23,23;1.200,00;100", "2323;120000;1,00".
datas Datas de vencimento de cada parcela, separadas por ’;’. Exemplo:
"10/10/2003;10/11/2003;10/12/2003;10/01/2004".
quantidade Quantidade de parcelas. Deve ser diferente de zero.
texto Texto livre de até 200 caracteres.
cliente Nome do cliente para assinatura com até 30 caracteres.
rgcpf RG ou CPF do cliente. Pode ser nulo ou vazio.
cupom COO do Cupom Fiscal com 6 caracteres.
vias Quantidade de vias, 1 ou 2 apenas.
assina Habilita ou não a assinatura do cliente, no qual 1 habilita e 0 desabilita.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução
-2 Erro de parâmetros
Nota:
Caso a assinatura do cliente seja habilitada, será impressa uma linha tracejada como local de assinatura.
O número do cupom fiscal e a quantidade de vias só serão impressos no cupom se forem diferentes de
zero e um, respectivamente.
Para o parâmetro Parcelas, quando passado um número menor de parcelas na string do que passado no
parâmetro quantidade, o valor das parcelas não passadas será iguado ao último valor válido na string.
Por exemplo, caso seja passado "20,00;12000;340" em parcelas e 6 em quantidade, o valor de cada
parcela será impresso da seguinte forma, respectivamente: R$ 20,00 ... R$ 120,00 ... R$ 3,40 ... R$
3,40 ... R$ 3,40 ... R$ 3,40. Caso o valor passado em quantidade sema menor do que o número de
parcelas encontradas em parcelas, a função retorna erro de parâmetros.
Para o parâmetro Datas, quando passado um número menor de datas do que passado no parâmetro
quantidade, as datas ausentes serão calculadas e impressas com acréscimo de um mês, a partir da
última data válida. Por exemplo, caso seja passado "20/09/1999;31/12/1999" no parâmetro datas e 5
no parâmetro quantidade, serão impressas no carnê as seguinte datas, respectivamente: 20/09/1999 ...
31/12/1999 ... 31/01/2000 ... 29/02/2000 (ano bissexto) ... 31/03/2000.
3.13.1.4 int Bematech_FI_InfoBalanca (const char ∗ port, int model, char ∗ weight, char ∗ precoK-
ilo, char ∗ total)
Info Balança.
Requisita informações da balança pela serial.
// exemplo em C/C++
char cPorta[] = "/dev/ttyS0";
char cPeso[7], cPrecoKilo[7], cTotal[7];
int iRetorno;
iRetorno =
Bematech_FI_InfoBalanca(cPorta, 1, cPeso, cPrecoKilo, cTotal);
Parâmetros:
port Nome da porta em que a balança está conectada (Ex: "/dev/ttyS0").
model Identificador do modelo da impressora, sendo 1 para modelo BP6, 2 para modelo CS15, 3 para
modelo SA-110-0 e 4 para modelo SA-110-4.
→ weight Buffer com 7 caracteres para o retorno do peso medido pela balança no formato "KKggg"
(Ex: "01200" igual à 1Kg e 200g).
→ precoKilo Buffer com 7 caracteres para o retorno do preço por quilo, configurado na balança, no
formato "RRRCC" (Ex: "01234" igual à R$12,34/Kg).
→ total Buffer com 7 caracteres para o retorno do preço total do produto no formato "RRRCCC".
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução
-2 Erro de parâmetros
-33 Condição de alívio de prato (para modelos CS) ou peso negativo (para modelos BP)
-34 Peso instável
-35 Peso excedido
Nota:
Para as balanças da família BP, o parâmetro weight é no formato "SKKggg" (Ex: "013200" igual à
13Kg e 200g e "-00020" igual à -20g).
Os parâmetros precoKilo e total não são retornados pelas balanças da família BP.
3.14 Outras
Módulos
• Download MFD
Funções
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_AberturaDoDia("50,00", "Dinheiro");
Parâmetros:
valorSuprimento Valor para suprimento, com até 14 dígitos (2 casas decimais).
formaPagamento Descrição da forma de pagamento, com até 16 caracteres.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
Nota:
Se a forma de pagamento não for especificada, será utilizado Dinheiro.
Caso deseje não efetuar um suprimento, informe o valor 0 (zero).
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_AtivaDesativaCorteProximoMFD();
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função ativará ou desativará o corte do papel, do documento que será impresso, retornando a
configuração default, ou seja, corte sempre ativado.
Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01 e
MP-2100 TH FI.
2004012947080005718500147004300000000144323430000000014420587000000000001175600000000000053930000000035640
000000005000000000279917000000000018101200000000001788
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_DadosSintegra("010104", "310104");
Parâmetros:
dataInicial Data inicial, no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.
dataFinal Data final, no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
Nota:
Os campos "Situação Tributária de ICMS" e "Valor acumulado na Situação Tributária" poderão ser
repetidos de acordo com o número de alíquotas utilizadas nas vendas.
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_DadosSintegraMFD("010104", "310104");
Parâmetros:
cDataInicial Data inicial no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.
cDataFinal Data final no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
O retorno das informações geradas por esta função, serão gravadas no arquivo "RETORNO.TXT", na
seguinte ordem:
Data: 8 bytes
Número de Serie: 20 bytes
Número Sequencial do ECF: 3 bytes
Contador de Redução Z: 6 bytes
Contador de Reinício de Operação: 6 bytes
GT Final: 16 bytes
GT Inicial: 16 bytes
Venda Bruta: 16 bytes
Venda Líquida: 16 bytes
Cancelamentos: 12 bytes
Cancelamentos ISS: 12 bytes
Descontos: 12 bytes
Descontos: 12 bytes
Acréscimos: 12 bytes
Acréscimos ISS: 12 bytes
O campo "Data", no formato AAAAMMDD, refere-se a data em que a Redução Z fora emitida.
Os campos "Situação Tributária de ICMS" e "Valor Acumulado na Situação Tributária" poderão ser
repetidos de acordo com o número de alíquotas utilizadas nas vendas.
Os campos já estão formatados no tamanho que o relatório Sintegra exige.
Cada linha do arquivo "RETORNO.TXT" corresponde a um dia de movimento na impressora.
Segue abaixo um exemplo do conteúdo do arquivo "RETORNO.TXT":
200401294708000571850014700430000000014432343000000001442058700000000000117560000000000005393000000003
000000005000000000279917000000000018101200000000001788
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_FechamentoDoDia();
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_GeraRelatorioSintegraMFD(63, "DOWNLOAD.MFD",
"SINTEGRA.TXT", "11", "2003", "BEMATECH S/A",
"Estrada de Santa Candida", "263", "Industria", "Santa Candida",
"Curitiba", "82630490", "41 351-2700", "41 351-2863",
"Fulano de Tal")
Parâmetros:
iRelatorios Variável inteira, com o tamanho de um byte, onde são definidos os relatórios a serem
gerados. Segue a seguinte estrutura:
1 - gera o relatório tipo 60M (Mestre).
2 - gera o relatório tipo 60A (Analítico).
4 - gera o relatório tipo 60D (Diário).
8 - gera o relatório tipo 60I (Item).
16 - gera o relatório tipo 60R (Resumo mensal).
32 - gera o relatório tipo 75.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Para gerar mais de um relatório, deve-se enviar a soma dos valores da variável "iRelatorios", por
exemplo:
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_HabilitaDesabilitaRetornoEstendidoMFD("1");
Parâmetros:
cFlagRetorno Variável destinada a habilitar (1) ou desabilitar (0) o retorno estendido.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 - COMANDO OK
1 - COMANDO INVÁLIDO
2 - ERRO DESCONHECIDO
3 - NÚMERO DE PARÂMETRO INVÁLIDO
4 - TIPO DE PARÂMETRO INVÁLIDO
5 - TODAS ALÍQUOTAS JÁ PROGRAMADAS
6 - TOTALIZADOR NÃO FISCAL JÁ PROGRAMADO
7 - CUPOM FISCAL ABERTO
8 - CUPOM FISCAL FECHADO
9 - ECF OCUPADO
10 - IMPRESSORA EM ERRO
11 - IMPRESSORA SEM PAPEL
12 - IMPRESSORA COM CABEÇA LEVANTADA
13 - IMPRESSORA OFF LINE
14 - ALÍQUOTA NÃO PROGRAMADA
15 - TERMINADOR DE STRING FALTANDO
16 - ACRÉSCIMO OU DESCONTO MAIOR QUE O TOTAL DO CUPOM FISCAL
17 - CUPOM FISCAL SEM ITEM VENDIDO
18 - COMANDO NÃO EFETIVADO
19 - SEM ESPAÇO PARA NOVAS FORMAS DE PAGAMENTO
20 - FORMA DE PAGAMENTO NÃO PROGRAMADA
21 - ÍNDICE MAIOR QUE NÚMERO DE FORMA DE PAGAMENTO
22 - FORMAS DE PAGAMENTO ENCERRADAS
23 - CUPOM NÃO TOTALIZADO
24 - COMANDO MAIOR QUE 7Fh (127d)
185 - MAIS QUE DUAS ALÍQUOTAS DIFERENTES NO BILHETE DE PASSAGEM NÃO PER-
MITIDO
186 - ACRÉSCIMO OU DESCONTO EM ITEM NÃO PERMITIDO
187 - CANCELAMENTO DE ACRÉSCIMO OU DESCONTO EM ITEM NÃO PERMITIDO
188 - CLICHE JÁ IMPRESSO
189 - TEXTO OPCIONAL DO CHEQUE EXCEDEU O MÁXIMO PERMITIDO
190 - IMPRESSÃO AUTOMÁTICA NO VERSO NÃO PERMITIDO NESTE EQUIPAMENTO
191 - TIMEOUT NA INSERÇÃO DO CHEQUE
192 - OVERFLOW NA CAPACIDADE DE TEXTO DO COMPROVANTE DE CRÉDITO OU
DÉBITO
193 - PROGRAMAÇÃO DE ESPAÇOS ENTRE CUPONS MENOR QUE O MÍNIMO PERMITIDO
194 - EQUIPAMENTO NÃO POSSUI LEITOR DE CHEQUE
195 - PROGRAMAÇÃO DE ALÍQUOTA COM VALOR NULO NÃO PERMITIDO
196 - PARÂMETRO BAUD RATE INVÁLIDO
197 - CONFIGURAÇÃO PERMITIDA SOMENTE PELA PORTA DOS FISCO
198 - VALOR TOTAL DO ITEM EXCEDE 11 DÍGITOS
199 - PROGRAMAÇÃO DA MOEDA COM ESPAÇOS EM BRACO NÃO PERMITIDO
200 - CASAS DECIMAIS DEVEM SER PROGRAMADAS COM 2 OU 3
201 - NÃO PERMITE CADASTRAR USUÁRIOS DIFERENTES NA MESMA MFD
202 - IDENTIFICAÇÃO DO CONSUMIDOR NÃO PERMITIDA PARA SANGRIA OU SUPRI-
MENTO
203 - CASAS DECIMAIS EM QUANTIDADE MAIOR DO QUE A PERMITIDA
204 - CASAS DECIMAIS DO UNITÁRIO MAIOR DO QUE O PERMITIDA
205 - POSIÇÃO RESERVADA PARA ICMS
206 - POSIÇÃO RESERVADA PARA ISS
207 - TODAS AS ALÍQUOTAS COM A MESMA VINCULAÇÃO NÃO PERMITIDO
208 - DATA DE EMBARQUE ANTERIOR A DATA DE EMISSÃO
209 - ALÍQUOTA DE ISS NÃO PERMITIDA SEM INSCRIÇÃO MUNICIPAL
210 - RETORNO PACOTE CLICHE FORA DA SEQUÊNCIA
211 - ESPAÇO PARA ARMAZENAMENTO DO CLICHE ESGOTADO
212 - CLICHE GRÁFICO NÃO DISPONÍVEL PARA CONFIRMAÇÃO
213 - CRC DO CLICHE GRÁFICO DIFERENTE DO INFORMADO
214 - INTERVALO INVÁLIDO
215 - USUÁRIO JÁ PROGRAMADO
217 - DETECTADA ABERTURA DO EQUIPAMENTO
218 - CANCELAMENTO DE ACRÉSCIMO/DESCONTO NÃO PERMITIDO
// exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_ImpressaoFitaDetalhe("2", "000001", "000100", "1");
Parâmetros:
cTipo 0 - total, 1 - por data, 2 - por COO
cDadoInicial Data ou COO inicial, sendo data no formato DDMMAA ou DDMMAAA ou ainda
COO com no máximo 6 dígitos
cDadoFinal Data ou COO final, sendo data no formato DDMMAA ou DDMMAAA ou ainda COO
com no máximo 6 dígitos
cUsuario Número de ordem do proprietário do ECF com até 3 dígitos
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao gerar o arquivo
Nota:
Os parâmetros cDadoInicial e cDadoFinal são obrigatórios se o tipo de download for por data ou por
COO.
O parâmetro cUsuario é obrigatório se o download for por COO.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_ImprimeClicheMFD();
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função só está disponível para a versão 01.00.00, da impressora fiscal MFD.
Este comando permite que as informações fixas do clichê do proprietário sejam impressas antes da
definição do tipo do próximo documento a ser impresso. A utilização deste comando associado à pro-
gramação previa do espaço entre cupons com valor adequado permitirá ao usuário diminuir o consumo
da bobina de papel.
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_ImprimeConfiguracoesImpressora();
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2)
Nota:
Serão impressas as seguintes configurações:
Data da impressora 27/06/2001
Hora da impressora 11:38:37
Versão do firmware 0310
Número de série 4708991023070
Número da loja 0001
Número do caixa 0001
Símbolo da moeda R$
Modo de operação Arredondamento
Horário de verão Não
Já houve redução Z Não
Memória fiscal Com espaço
Versão da dll 1.9
log da dll Desabilitado
Lin. Imp. após pouco papel 0
Tipo Impressora fiscal + gaveta+autenticação
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_ImprimeDepartamentos();
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido na função
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Uma leitura X será emitida antes.
Essas informações eram impressas na leitura X até a versão 3.0 e foram retiradas por solicitação do
fisco.
// exemplo em C/C++
char cCupom[6];
int iACK, iST1, iST2;
int iRetorno;
iRetorno = Bematech_FI_NumeroCupom(cCupom);
iRetorno = Bematech_FI_RetornoImpressora(iACK, iST1, iST2);
iRetorno = Bematech_FI_LeArquivoRetorno(cCupom)
Parâmetros:
→ cDados Variável destinada a receber a informação lida do arquivo "RETORNO.TXT".
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
Nota:
O tamanho de "cDados" varia de acordo com a informação a ser lida. Por exemplo: número do cupom
(6 bytes), número de série (15 bytes).
Esta função só deverá ser usada, caso esteja trabalhando como "Cliente/Servidor" (Windows Terminal
Service ou Frame-Relay).
Esta função deve ser usada logo após a função que originou o retorno da informação da impressora.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_MapaResumo();
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
As informações serão geradas no arquivo "RETORNO.TXT", no diretório configurado no parâmetro
"path" do arquivo .ini.
O diretório default configurado é o raiz (C:\).
As informações contidas no mapa resumo podem variar de estado para estado.
Esta função gera o relatório com as informações padrões que são usadas na maiorias dos estados. Este
relatório terá o seguinte layout:
Contador de Redução Z..: 0312
COO....................: 000026
Venda Bruta............: 43,73
Venda Líquida..........: 25,50
Cancelamentos..........: 11,14
Acréscimos.............: 2,33
Descontos..............: 7,09
ISS....................: 0,00
Isenção................: 0,00
Não Incidência.........: 1,95
Substituição Tributária: 23,55
1200...................: 0,00
1700...................: 0,00
Após a linha "Substituição Tributária" serão gravadas as informações de vendas referente as alíquotas
de ICMS. Portanto, o número de linhas irá variar de acordo com o número de alíquotas de ICMS
cadastradas na impressora.
As informações contidas no mapa resumo serão referentes aos dados da última redução Z. Desta forma,
para gerar o mapa resumo referente ao movimento do dia, esta função deve ser executada após a
redução Z. Caso contrário, o mapa resumo será gerado com as informações referentes ao movimento
do dia anterior.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_MapaResumoMFD();
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
As informações serão geradas no arquivo "RETORNO.TXT", no diretório configurado no parâmetro
"path" do arquivo .ini.
O diretório default configurado é o raiz (C:\).
As informações contidas no mapa resumo podem variar de estado para estado.
Esta função gera o relatório com as informações padrões que são usadas na maiorias dos estados. Este
relatório terá o seguinte layout:
Contador de Redução Z: 0312
COO..................: 000026
Venda Bruta..........: 43,73
Venda Líquida........: 25,50
Cancelamentos ICMS...: 11,14
Cancelamentos ISSQN..: 0,00
Acrescimos ICMS......: 2,33
Acrescimos ISSQN.....: 0,00
Descontos ICMS.......: 7,09
Descontos ISSQN......: 0,00
Substituicao ICMS....: 23,55
Substituicao ISSQN...: 0,00
Isencao ICMS.........: 0,00
Isencao ISSQN........: 0,00
Nao incidencia ICMS..: 0,00
Nao incidencia ISSQN.: 0,00
1200.................: 0,00
1700.................: 0,00
ISS..................: 0,00
O campo "Venda Bruta" é calculado seguindo a fórmula: Soma das alíquotas de ICMS e ISS + II +
NN + FF + SI + SN + SF + Cancelamentos + Descontos.
O campo "Venda líquida", é calculado seguindo a fórmula: Venda bruta - ISS - SI - SN - SF - Cance-
lamentos (ICMS e ISSQN) - Descontos (ICMS e ISSQN) da última redução.
Após a linha "Não incidencia ISQN" serão gravadas as informações de vendas referente as alíquotas
de ICMS. Portanto, o número de linhas irá variar de acordo com o número de alíquotas de ICMS
cadastradas na impressora.
As informações contidas no mapa resumo serão referentes aos dados da última redução Z. Desta forma,
para gerar o mapa resumo referente ao movimento do dia, esta função deve ser executada após a
redução Z. Caso contrário, o mapa resumo será gerado com as informações referentes ao movimento
do dia anterior.
// Exemplo em C/C++
char cNumeroSerieCriptografado[21];
int iRetorno;
iRetorno =
Bematech_FI_NumeroSerieCriptografado(cNumeroSerieCriptografado);
Parâmetros:
→ cNumSerie Variável, destinada a receber o número de série criptografado da impressora. Seu
tamanho deverá ser de 16 caracteres para impressoras do convênio 156/94 (MP-20 FI II e MP-40
FI II) ou 21 caracteres para demais impressoras - convênio 85/01.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Para os modelos MP-25 FI, MP-50 FI, MP-2000 TH FI, MP-2100 TH FI e MP-6000 TH FI, a chave
"Impressora" deve estar igual a "1" no arquivo de configuração ".INI", para que sejam retornados os
20 caracteres para a criptografia. Caso esta chave seja igual a "0", o retorno possuirá somente 15
caracteres.
// Exemplo em C/C++
char cNumeroSerieCriptografado[21];
char cNumeroSerieDescriptografado[21];
int iRetorno;
iRetorno =
Bematech_FI_NumeroSerieCriptografado(cNumeroSerieCriptografado);
iRetorno =
Bematech_FI_NumeroSerieDescriptografado(cNumeroSerieDescriptografado);
Parâmetros:
cNumSerieCriptografado Variável, com o número de série criptografado pela função Bematech_FI_-
NumeroSerieCriptografado.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_RegistrosTipo60();
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Esta função deve ser utilizada diariamente, após a emissão da Redução Z.
Os campos já estão formatados no tamanho que o relatório do Sintegra exige.
Esta função deve ser utilizada nas impressoras fiscais matriciais (MP-20 FI II e MP-40 FI II).
Para as impressoras fiscais térmicas com MFD, utilize a função Bematech_FI_-
RelatorioSintegraMFD().
O retorno das informações geradas por esta função, serão gravadas no arquivo RETORNO.TXT, na
seguinte ordem:
Campo Conteúdo
Tipo 60
Subtipo A
Data de Emissão Data de Emissão dos Cupons Fiscais
Número de Série do ECF Número de Série do ECF
Situação Tributária/Alíquota Identificador da Situação Tributária/Alíquota do ICMS
Valor Acumulado no Totalizador Parcial Valor acumulado no final do dia no totalizador parcial
Brancos
Campo Conteúdo
Tipo 60
Subtipo M
Data de Emissão Data de Emissão dos Cupons Fiscais
Número de Série do ECF Número de Série do ECF
Número do ECF Número do ECF
Modelo do Documento Fiscal Código do Modelo Documento Fiscal
COO Inicial Primeiro Cupom Fiscal Emitido
COO Final Último Cupom Fiscal Emitido
Contador de Redução Z Reduções Z
Contador de Reinício de Operação Reinício de Operações
Venda Bruta Valor da Venda Bruta
Grande Total Valor do GT
Brancos
// Exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_RelatorioSintegraMFD(63, "SINTEGRA.TXT", "11", "2003",
"BEMATECH S/A", "Estrada de Santa Candida", "263", "Industria",
"Santa Candida", "Curitiba", "82630490", "41 351-2700",
"41 351-2863", "Fulano de Tal");
Parâmetros:
iRelatorios Variável, inteira, com o tamanho de um byte, onde são definidos os relatórios a serem
gerados. Segue a seguinte estrutura:
1 - gera o relatório tipo 60M (Mestre).
2 - gera o relatório tipo 60A (Analítico).
4 - gera o relatório tipo 60D (Diário).
8 - gera o relatório tipo 60I (Item).
16 - gera o relatório tipo 60R (Resumo mensal).
32 - gera o relatório tipo 75.
cArquivo Path e nome do arquivo onde o relatório será gerado. Por exemplo: "C:/SINTEGRA.TXT".
cMes Mês da geração do relatório, no formato MM.
cAno Ano da geração do relatório, no formato AAAA.
cRazaoSocial Razão social, com até 35 caracteres.
cEndereco Endereço, com até 34 caracteres.
cNumeroTmp Número do endereço, com até 5 caracteres.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-2 Parâmetro inválido
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
Para gerar mais de um relatório, deve-se enviar a soma dos valores da variável "iRelatorios", por
exemplo:
Relatório tipo 60M + tipo 60A + tipo 75: iRetorno = 34.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_RelatorioTipo60Analitico();
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
Nota:
As informações serão geradas no arquivo "RETORNO.TXT", no diretório configurado no parâmetro
"path" do arquivo .ini.
O diretório default configurado é o raiz (C:\).
O relatório gerado terá o seguinte layout:
Tipo do relatório.........: 60
Subtipo...................: A
Data de emissão...........: 12/05/03
Número de série...........: 5708990400028
Cancelamentos.............: 11,14
Descontos.................: 7,09
F.........................: 18,55
I.........................: 0,00
N.........................: 1,95
1200......................: 0,00
1700......................: 0,00
ISS.......................: 0,00
Após a linha "N..." serão gravadas as informações de vendas referentes às alíquotas tributárias. Por-
tanto, o número de linhas irá variar de acordo com o número de alíquotas cadastradas na impressora.
As informações contidas no relatório Tipo 60 Analítico são referentes aos dados da última Redução Z.
Desta forma, para gerar o relatório referente ao movimento do dia você deve executar essa função após
a Redução Z, caso contrário as informações geradas serão referentes ao movimento do dia anterior.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_RelatorioTipo60AnaliticoMFD();
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
As informações serão geradas no arquivo "RETORNO.TXT", no diretório configurado no parâmetro
"path" do arquivo .ini.
O diretório default configurado é o raiz (C:\).
O relatório gerado terá o seguinte layout:
Tipo do relatório.........: 60
Subtipo...................: A
Data de emissão...........: 12/05/2003
Número de série...........: 5708990400028
Cancelamentos.............: 11,14
Descontos.................: 7,09
F.........................: 18,55
I.........................: 0,00
N.........................: 1,95
1200......................: 0,00
1700......................: 0,00
ISS.......................: 0,00
Após a linha "N..." serão gravadas as informações de vendas referentes às alíquotas tributárias. Por-
tanto, o número de linhas irá variar de acordo com o número de alíquotas cadastradas na impressora.
As informações contidas no relatório Tipo 60 Analítico são referentes aos dados da última Redução Z.
Desta forma, para gerar o relatório referente ao movimento do dia você deve executar essa função após
a Redução Z, caso contrário as informações geradas serão referentes ao movimento do dia anterior.
// Exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_RelatorioTipo60Mestre();
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 Ok
0 Erro de comunicação
-4 Arquivo de inicialização não encontrado ou inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar arquivo STATUS.TXT ou RETORNO.TXT
-27 Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3)
Nota:
As informações serão geradas no arquivo "RETORNO.TXT", no diretório configurado no parâmetro
"path" do arquivo .ini.
O diretório default configurado é o raiz (C:\).
O relatório gerado terá o seguinte layout:
Tipo do relatório.........: 60
Subtipo...................: M
Data de emissão...........: 12/05/03
Número de série...........: 5708990400028
Número do equipamento.....: 0001
Modelo do documento fiscal: 2D
COO inicial...............: 000001
COO final.................: 000012
Contador de reduções......: 0307
Reinicio de Operacao......: 0129
Venda Bruta...............: 38,73
Totalizador geral.........: 6.169,21
As informações contidas no relatório Tipo 60 Mestre são alimentadas pelas funções: Bematech_FI_-
AberturaDoDia() e Bematech_FI_FechamentoDoDia().
A função Bematech_FI_RelatorioTipo60Mestre deve ser executada após a função Bematech_FI_-
FechamentoDoDia() ou após a Redução Z (caso a redução tenha sido executada automaticamente
pela impressora).
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_ReloadINIFile();
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
1 - OK.
0 - Erro de comunicação.
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_VerificaImpressoraLigada();
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Impressora Ligada
0 Erro de comunicação
-4 O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows
-5 Erro ao abrir a porta de comunicação
-6 Impressora desligada ou cabo de comunicação desconectado
Funções
• int Bematech_FI_DownloadMFD (const char ∗cArquivo, const char ∗cTipoDownload, const char
∗cDadoInicial, const char ∗cDadoFinal, const char ∗cUsuario)
• int Bematech_FI_DownloadSB (const char ∗cArquivo)
• int Bematech_FI_FormatoDadosMFD (const char ∗cArquivoMFD, const char ∗cDestino, const char
∗cFormato, const char ∗cTipoDownload, const char ∗cDadoInicial, const char ∗cDadoFinal, const
char ∗cUsuario)
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_DownloadMF("MFISCAL.MF");
Parâmetros:
cArquivo Nome do arquivo a ser gerado (Ex. "Download.mf")
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao gerar o arquivo
Nota:
Esta função é utilizada somente nas impressoras fiscais térmicas.
// exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_DownloadMFD("DOWNLOAD.MFD", "2", "000001", "000010", "1");
Parâmetros:
cArquivo Nome do arquivo a ser gerado (Ex: mp2100.mfd)
cTipoDownload Tipo do download a ser efetuado.
cDadoInicial Data ou COO inicial, sendo a data nos formatos DDMMAA ou DDMMAAA ou ainda
o COO com no máximo 6 dígitos
cDadoFinal Data ou COO final, sendo a data nos formatos DDMMAA ou DDMMAAA ou ainda o
COO com no máximo 6 dígitos
cUsuario Número de ordem do proprietário do ECF. Exemplo: primeiro proprietário "cUsuario = 1"
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
-5 Erro ao abrir a porta de comunicação
-8 Erro ao gerar o arquivo
Nota:
cTipoDownload deve ser "0" para download total, "1" para download por data ou "2" para download
por COO
A numeração dos COOs é diferente para cada proprietário.
Os parâmetros cDadoInicial e cDadoFinal são obrigatorios se o tipo de download for por data ou por
COO.
O parâmetro cUsuario é obrigatório se o download for por COO.
Esta função é utilizada somente nas impressoras fiscais térmicas.
Esta função não retornará os status ACK, ST1 e ST2 da impressora, pois ela é utiliza, apenas, para o
download da MFD.
// exemplo em C/C++
int iRetorno;
iRetorno = Bematech_FI_DownloadSB("DOWNLOAD.SB");
Parâmetros:
cArquivo nome do arquivo a ser gerado (Ex. "Download.sb")
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-2 Parâmetro inválido
Nota:
Esta função é utilizada somente nas impressoras fiscais térmicas.
// exemplo em C/C++
int iRetorno;
iRetorno =
Bematech_FI_FormatoDadosMFD("DOWNLOAD.MFD", "SAIDA.TXT", "2", "2",
"000001", "000010", "1");
Parâmetros:
cArquivoMFD Nome do arquivo MFD que contém a origem dos dados MFD, exemplo: "DOWN-
LOAD.MFD".
cDestino Nome do arquivo que será gerado, exemplo: "SAIDA.TXT".
cFormato Tipo do arquivo de saída desejado.
cTipoDownload Tipo do download, se é total, por data ou por COO.
cDadoInicial Data ou COO inicial, sendo a data no formato DDMMAA ou DDMMAAAA ou ainda
o COO com no máximo 6 dígitos.
cDadoFinal Data ou COO final, sendo a data no formato DDMMAA ou DDMMAAAA ou ainda o
COO com no máximo 6 dígitos.
cUsuario Número de ordem do proprietário do ECF, exemplo: primeiro proprietário "cUsuario = 1".
Nota:
cTipoDownload deve ser "0" para download total, "1" para download por data ou "2" para download
por COO
A numeração dos COOs é diferente para cada proprietário.
Os parâmetros cDadoInicial e cDadoFinal são obrigatorios se o tipo de download for por data ou por
COO.
O parâmetro cUsuario é obrigatório se o download for por COO.
Esta função é utilizada somente nas impressoras fiscais térmicas.
O arquivo MFD de origem deve ser gerado através da função Bematech_FI_DownloadMFD.
Esta função não retornará os status ACK, ST1 e ST2 da impressora, pois ela é utilizada, apenas, para
gerar o download da MFD nos formatos citados acima.
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
-1 Erro de execução da função
-2 Parâmetro inválido
-8 Erro ao criar ou gravar arquivo
3.16 Internas
Funções
Parâmetros:
Porta Porta
Retorna:
int com a informação sobre a execução do comando
Retorna:
int com a informação sobre a execução do comando
Parâmetros:
iValor Data a ser convertida.
→ cValor Data convertida.
Parâmetros:
cTexto comando a ser enviado para o driver
Retorna:
int com a informação sobre a execução do comando
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Erro de execução da função
-4 O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows
-5 Erro ao abrir a porta de comunicação
-8 Erro ao criar ou gravar no arquivoiRetornoStatus STATUS.TXT ou RETORNO.TXT
Nota:
Esta função deve ser chamada no momento da abertura do cupom fiscal para gravar os valores atuais.
Os totalizadores serão gravados na chave "TotalizadoresParciais" na seção "Info" do arquivo de con-
figuração.
Parâmetros:
cRetorno retorno a ser gravado
Retorna:
int com a informação sobre a execução do comando
Parâmetros:
cStatus status de execução do comando
Retorna:
int com a informação sobre a execução do comando
Parâmetros:
fp Arquivo a ser gerado o cabeçalho.
Parâmetros:
cArquivo nome do arquivo a ser gerado (Ex: "mp2000.mfd")
cCOOInicial COO inicial com até 6 digitos
cCOOFinal COO final com até 6 digitos
cUsuario número de ordem do proprietário do ECF
Retorna:
int com a informação sobre a execução do comando
Parâmetros:
cArquivo nome do arquivo a ser gerado (Ex: "mp2000.mfd")
tmpDataInicial data inicial no formato DDMMAA ou DDMMAAAA
tmpDataFinal data final no formato DDMMAA ou DDMMAAAA
Retorna:
int com a informação sobre a execução do comando
Parâmetros:
cArquivo nome do arquivo a ser gerado (Ex: "mp2000.mfd")
Retorna:
int com a informação sobre a execução do comando
Retorna:
int com a informação sobre a execução do comando
Retorna:
void.
Parâmetros:
cValor Valor a ser formatado, com no máximo 20 dígitos
→ cValorFormatado ponteiro para receber o valor formatado
Parâmetros:
cModeloImpressora Modelo da impressora.
cNumeroSerie Número de série da impressora.
cData Data que conterá no nome do arquivo.
→ cNomeArquivo Nome do arquivo Cotepe.
Retorna:
int contendo a informação sobre a execução do comando.
Valores retornados:
0 Erro de comunicação
>0 Tamanho do código do item (13 ou 14).
Nota:
Função destinada à compatibilização da venda de item com a impressora MP-7000 TH FI.
Nas impressoras anteriores, o código do produto na venda de item possuía 13 bytes, apartir da MP-
7000 TH FI este código passou para 14 bytes.
Parâmetros:
formaPagamento Forma de pagamento
→ indiceFormaPagamento ponteiro para receber o índice da forma de pagamento
Retorna:
int com a informação sobre a execução do comando
Valores retornados:
1 Ok
0 Erro de comunicação
-1 Comando não executado
-2 Erro de parâmetros
-4 Arquivo de inicialização não encontrado ou inválido
-8 Erro ao criar ou gravar no arquivo texto
-24 Forma de pagamentoto não programada e sem espaço para programá-la
Amendment:
Rodrigo R. Olimpio - 03/07/2001
Foi incluido o parametro "char ∗ cIndiceFormaPagamento" e a função foi alterada de "char ∗" para
"int". Essa alteração foi realizada para corrigir o uso do malloc. A variável estava sendo alocada mas
não desalocada. Toda vez que a função era chamada o malloc alocava outra variável.
Parâmetros:
→ cDestino ponteiro para receber a string alterada
cOrigem string numérica de origem
Parâmetros:
cString Valor
Parâmetros:
cStringParametro String passada como parâmetro
iPosicaoInicial Posição inicial da string a ser retornada
cCaracter Caracter para a posição final
→ cStringRetornada ponteiro para receber parte da string retornada
Retorna:
int com o final da string
Parâmetros:
→ cData Data do arquivo .RFD.
Parâmetros:
buffer Buffer contendo os dados a serem criptografados.
size Tamanho do buffer.
key Chave que auxiliará na criptografia.
3.17 Monitor
Para utilizar o Bematech Monitor é necessário instalar a biblioteca tanto no servidor quanto no cliente,
assim como é necessário instalar o bematechmonitor no cliente e o bematechmonitorservice no servidor.
Os arquivos leia-me.txt contém informações mais detalhadas sobre a instalação de cada módulo.
Além disso, a aplicação a ser utilizada também deve ser instalada no servidor.
Após instalar as bibliotecas, é necessário configurá-las para que trabalharem via rede e não localmente,
como é o padrão. Para tal, basta configurar as seguintes variáveis:
<configuracoes>
<ConfigRede>0</ConfigRede>
</configuracoes>
<ModoRemoto>
<IP>10.0.1.100</IP>
<Porta>5001</Porta>
</ModoRemoto>
3.17.1.1 configuracoes.ConfigRede Modo de rede a ser utilizado. Preencha com 0 para modo local, 4
para modo cliente e 5 para modo servidor.
3.17.1.2 modoremoto.ip Indica o IP do servidor. Deve ser preenchido apenas no cliente. Será ignorado
se presente no servidor.
3.17.1.3 modoremoto.porta Indica a porta em uso no servidor. Deve ser preenchido tanto no cliente
quanto no servidor. Essa porta será utilizada para a conexão dos clientes e das aplicações e deve estar
liberada por firewalls, caso existam.
Além da biblioteca, não é necessário configurar mais nada no cliente. Apenas é necessário garantir
que o serviço bematechmonitor esteja rodando. O serviço pode ser iniciado através de (como root)
/etc/init.d/bematechmonitor start
4 Documentação do exemplo
4.1 fiscal.cpp
#include <bemafiscal/declares.h>
#include <stdio.h>
int main()
{
int iRetorno, iCasasDecimais, iAltura, iLargura, iPosicaoCaracteres, iFonte, iMargem, iCorrecaoErros, i
char *cCPF, *cNome, *cEndereco, *cCodigo, *cDescricao, *cAliquota, *cTipoQuantidade, *cQuantidade, *cUn
*cAcrescimoDesconto, *cTipoAcrescimoDesconto, *cValorAcrescimoDesconto, *cValor, *cFormaPagamento, *cValor
*cFormaOrigem, *cFormaDestino;
// Vende Item 1
cCodigo = "123";
cDescricao = "Caneta";
cAliquota = "II";
cTipoQuantidade = "I";
cQuantidade = "100";
iCasasDecimais = 2;
cUnitario = "2,50";
cTipoDesconto = "%";
cDesconto = "0000";
iRetorno = Bematech_FI_VendeItem(cCodigo, cDescricao, cAliquota, cTipoQuantidade, cQuantidade, iCasasDe
// Vende Item 2
cCodigo = "456";
cDescricao = "Lapis";
cAliquota = "NN";
cTipoQuantidade = "I";
cQuantidade = "100";
iCasasDecimais = 2;
cUnitario = "1,30";
cTipoDesconto = "%";
cDesconto = "0000";
iRetorno = Bematech_FI_VendeItem(cCodigo, cDescricao, cAliquota, cTipoQuantidade, cQuantidade, iCasasDe
// Vende Item 3
cCodigo = "789";
cDescricao = "Borracha";
cAliquota = "FF";
cTipoQuantidade = "I";
cQuantidade = "50";
iCasasDecimais = 2;
cUnitario = "2,00";
cTipoDesconto = "%";
cDesconto = "0000";
iRetorno = Bematech_FI_VendeItem(cCodigo, cDescricao, cAliquota, cTipoQuantidade, cQuantidade, iCasasDe
// Vende Item 4
cCodigo = "258";
cAliquota = "II";
cTipoQuantidade = "I";
cQuantidade = "15";
iCasasDecimais = 2;
cUnitario = "5,00";
cTipoDesconto = "%";
cDesconto = "0000";
iRetorno = Bematech_FI_VendeItem(cCodigo, cDescricao, cAliquota, cTipoQuantidade, cQuantidade, iCasasDe
4.2 gerencial.cpp
#include <bemafiscal/declares.h>
#include <stdio.h>
int main()
{
int iRetorno;
char *cIndiceRelatorio, *cTexto;
4.3 nao_fiscal.cpp
#include <bemafiscal/declares.h>
#include <stdio.h>
#include <string.h>
int main()
{
int iRetorno;
char *cCPF, *cNome, *cEndereco, *cIndiceTotalizador, *cValorRecebimento, *cNumeroItem, *cAcrescimoDesco
*cValorAcrescimoDesconto, *cFormaPagamento, *cValorPago, *cMensagem, *cValor, cNumeroCupom[7];
// Efetua Suprimento
cValor = "300,00";
cFormaPagamento = "Dinheiro";
iRetorno = Bematech_FI_Suprimento(cValor, cFormaPagamento);
// Efetua Sangria
cValor = "200,00";
iRetorno = Bematech_FI_Sangria(cValor);
}