Ato COTEPE/ICMS nº 10 de 28/06/2007

Norma Federal - Publicado no DO em 03 jul 2007

Estabelece o Protocolo de Comunicação e a Especificação de Comandos do equipamento Emissor de Cupom Fiscal (EsC-ECF).

O Secretário-Executivo do Conselho Nacional de Política Fazendária - CONFAZ, no uso de suas atribuições que lhe confere o art. 12, XIII, do Regimento da Comissão Técnica Permanente do ICMS - COTEPE/ICMS, de 12 de dezembro de 1997, por este ato, torna público que a Comissão, na sua 129ª reunião ordinária, realizada nos dias 18 a 20 de junho de 2007, em Brasília, DF, aprovou o Protocolo de Comunicação e a Especificação de Comandos do equipamento Emissor de Cupom Fiscal (EsC-ECF).

Art. 1º Fica aprovado o Anexo Único deste ato contendo o Protocolo de Comunicação e a Especificação de Comandos do equipamento Emissor de Cupom Fiscal (EsC-ECF) que descreve as camadas do protocolo de comunicação com o computador externo, bem como os comandos e respostas da comunicação remota realizada por meio de modem interno, conforme previsto no Convênio ICMS 85/01, de 28 de setembro de 2001.

Art. 2º Este ato entra em vigor na data de sua publicação no Diário Oficial da União.

MANUEL DOS ANJOS MARQUES TEIXEIRA

ANEXO ÚNICO
PROTOCOLO DE COMUNICAÇÃO E ESPECIFICAÇÃO DE COMANDOS DO EQUIPAMENTO EMISSOR DE CUPOM FISCAL - "ESC-ECF"

Versão 01.00

REVISÕES

Versão Data Observações 
01.00.E 29-Maio-2007 Versão inicial. 

1. Protocolo de Comunicação

1.1. Parâmetros

No caso da interface de comunicação ser RS232 a sugestão é:

Velocidade: 38400 57600 ou 115200bps.

Bits de Dados: 8

Paridade: Sem paridade

Bits de Parada: 1

Controle e Fluxo: Nenhum

1.2. Cabo RS232

No caso da interface de comunicação ser RS232 e o conector DB9 a configuração do cabo deve obedecer a seguinte pinagem:

3 - Tx ------------------//----------------Rs - 2

(PC) 2 - Rs ------------------//----------------Tx - 3 (ECF)

5 - GND ---------------//----------------GND - 5

-------? RTS -7

-------? CTS - 8

-------? DTR - 4

-------? DSR - 6

Onde:

Rs - Recepção

Tx - Transmissão

GND - Terra

1.3. Composição dos Pacotes

A comunicação entre o ECF e o aplicativo ocorre mediante a troca de pacotes, ou seja, blocos de bytes, pela porta de comunicação.

Cada pacote é iniciado sempre por um caractere de controle que permitirá ao receptor identificar a natureza da requisição ou o tipo de informação nele contida, podendo ser seguido, ou não, de campos de dados.

1.3.1. Caracteres de Controle

A tabela a seguir apresenta os caracteres de controle utilizados no protocolo acompanhados dos respectivos significados:

Código Hexa Decimal Significado Utilização 
SOH 0x01 Start Of Heading Envio de Comando Resultado de Comando
ENQ 0x05 ENQuiry Solicitação de Status
ACK 0x06 ACKnowledge Aceite de Comando Enviado
WAK 0 x11 17 Wait for AcKnowledge ECF Ocupado
NAK 0x15 21 Negative AcKnowledge Erro de Protocolo
SYN 0x16 22 SYNchronous Idle Solicitação de Sincronismo Resposta de Sincronismo

1.3.2. Campos de Dados

O Caractere de Controle de cada Pacote pode ou não ser seguido de Campos de Dados. Nesses campos estarão representados os dados necessários à execução da requisição implícita no Pacote.

A seguir estão descritos os diversos Campos de Dados utilizados:

1.3.2.1. SEQ - Seqüência do Pacote de Comando

O campo Seqüência do Pacote de Comando possui o tamanho de um byte e seu conteúdo é binário contendo valores no intervalo de 0 (0x00) a 255 (0xFF).

O campo seqüência deverá ser incrementado pelo aplicativo a cada pacote de comando enviado.

O ECF rebaterá seu conteúdo quando do envio do resultado ou de um erro na execução do comando.

1.3.2.2. SPR - Seqüência do Pacote de Resposta

O campo Seqüência do Pacote de Resposta possui o tamanho de um byte e seu conteúdo é binário contendo valores no intervalo de 0 (0x00) a 255 (0xFF).

Esse campo será enviado no Pacote de Solicitação de Status e deverá ser iniciado com 0 (zero) após o envio de cada comando. Caso a resposta ao comando possua mais de um pacote, esse campo deverá ser incrementado de uma unidade a cada solicitação de um novo pacote de resposta.

Caso a resposta possua mais de 255 pacotes o número do pacote retorna a 0, continuando a incrementação enviando os demais pacotes na seqüência.

1.3.2.3. CMD - Código do Comando

O campo Código do Comando possui o tamanho de um byte e seu conteúdo é binário representando um código de comando válido (1 -255).

Esse campo deverá conter o código de comando a ser executado pelo ECF.

1.3.2.4. EXT - Extensão de Comando

O campo Extensão de Comando possui o tamanho de um byte e seu conteúdo é binário representando um código de comando válido.

Esse campo representa a extensão do código de comando a ser executado pelo ECF quando o campo CMD contiver o valor 0xFF, para todos os outros valores de CMD esse campo deverá conter 0x00.

1.3.2.5. TBC - Tamanho do Buffer de Comando

O campo Tamanho do Buffer de Comando possui o tamanho de dois bytes e seu conteúdo é binário no formato INTEL (Byte Low /Byte High).

Esse campo deverá conter o tamanho em bytes do campo Buffer existente no Pacote de Comando.

1.3.2.6. BCD - Buffer de Comando

O campo Buffer de Comando possui tamanho variável de 0 até 1024 bytes e seu conteúdo é ASCII.

Esse campo deverá conter os parâmetros necessários à execução do comando.

1.3.2.7. TBR - Tamanho do Buffer de Resposta

O campo Tamanho do Buffer de Resposta possui o tamanho de dois bytes e seu conteúdo é binário no formato INTEL (Byte Low /Byte High).

Esse campo conterá o tamanho em bytes do campo Buffer de Resposta existente no pacote de Resultado de Comando.

1.3.2.8. BRS - Buffer de Resposta

O campo Buffer de Resposta possui tamanho variável de até 4096 bytes e seu conteúdo é ASCII.

Esse campo conterá os dados solicitados ao ECF quando houver Resultado de Comando.

1.3.2.9. CHK - Checksum

O campo Checksum possui o tamanho de um byte e seu conteúdo é binário.

O conteúdo desse campo deverá ser calculado através da soma, sem sinal módulo 256, de todos os bytes do pacote de comando ou de resposta, excetuando-se o caractere de controle inicial (SOH).

Na recepção de um pacote de Resultado de Comando esse campo deverá ser conferido pelo aplicativo para verificar se a transmissão do pacote terminou isenta de problemas.

Esse campo contém o código do erro retornado em um pacote de Resultado de Comando com Erro.

1.3.2.10. CAT - Categoria do Retorno

O campo Categoria possui o tamanho de um byte e seu conteúdo é binário.

Esse campo contém o Código da Categoria de Ocorrências retornado em um pacote de Resultado de Comando.

1.3.2.11. RET - Retorno

O campo Retorno possui o tamanho de 4 (quatro) bytes e seu conteúdo é binário.

Esse campo contém o Código do Retorno devolvido em um pacote de Resultado de Comando dependente do Código da Categoria de Ocorrências

1.4. Especificação dos Pacotes

1.4.1. Solicitação de Sincronismo

Solicita ao ECF a transmissão do último SEQ enviado pelo aplicativo e processado pelo ECF, com ou sem erro.

Formato:

SYN 

1.4.2. Resposta de sincronismo

Envia ao aplicativo o último SEQ recebido e processado pelo ECF, com ou sem erro.

Formato:

SYN SEQ 

1.4.3. Solicitação de Status

Solicita ao ECF o estado da execução do último comando enviado.

Formato:

ENQ SPR 

1.4.4. Comando

Envia ao ECF um comando para a execução de uma função ou de uma leitura de dados.

Formato:

SOH SEQ CMD EXT TBC BCD CHK 

1.4.5. Aceite de Comando Enviado

Informa ao aplicativo que o pacote de comando foi aceito pelo ECF.

Formato:

ACK 

1.4.6. Erro de Protocolo

Informa ao aplicativo que o pacote de comando foi recebido pelo ECF e não será executado em função de um erro de protocolo.

Formato:

NAK CAT RET 

1.4.7. ECF Ocupado

Informa ao aplicativo que o ECF encontra-se ocupado executando algum comando.

Importante: A implementação desse recurso é obrigatória e o ECF deverá ser capaz de monitorar a porta de comunicação durante a execução de um comando ou rotina interna.

Formato:

WAK CAT RET 

1.4.8. Resultado de Comando

Retorna ao aplicativo o status da execução do último comando aceito pelo ECF.

Formato:

SOH CMD EXT CAT RET TBR BRS CHK 

1.5. Fluxos de Comunicação

1.5.1. Sincronismo

APLICATIVO  ECF 
O aplicativo envia o Pacote de Solicitação de Sincronismo  
SYN   
  De acordo com o estado do ECF, podem ocorrer as seguintes situações: 
 Situação 1 O ECF responde com um pacote Resposta de sincronismo sinalizando que está em repouso, ou seja, não está executando nenhum comando ou rotina interna, informando o seqüencial do último comando recebido.
  SYN SEQ 
O aplicativo deverá prosseguir com o Fluxo de Solicitação de Status.   
 Situação 2 O ECF responde com um pacote de ECF ocupado sinalizando que está executando algum comando ou rotina interna.
  WAK CAT RET 
O aplicativo deverá aguardar 500ms e executar novamente o Fluxo de Sincronismo.   
  Situação 3 
  O aplicativo não recebe resposta em função do ECF estar desligado ou a conexão serial estar interrompida. 
O aplicativo identifica a ocorrência de timeout após aguardar 200ms e deve executar novamente o fluxo (o ECF poderá estar desligado).   

1.5.2. Envio de Comandos

APLICATIVO  ECF 
O aplicativo envia o Pacote de Comando  
SOH SEQ CMD EXT TBC BCD CHK   
  De acordo com o estado do ECF, podem ocorrer as seguintes situações: 
 Situação 1 O ECF responde com um pacote de Aceite de Comando Enviado.
  ACK 
 Situação 2 O ECF responde com um pacote de Erro de Protocolo.
  NAK CAT RET 
 Situação 3 O ECF responde com um pacote de ECF ocupado sinalizando que está executando algum comando ou rotina interna.
  WAK CAT RET 
O aplicativo deverá aguardar 500ms e executar novamente o Fluxo de Solicitação de Status.   
  Situação 4 O aplicativo não recebe resposta em função do ECF estar desligado ou a conexão serial estar interrompida.
O aplicativo identifica a ocorrência de timeout após aguardar 200ms.   

1.5.3. Solicitação de Status

APLICATIVO     ECF  
O aplicativo envia o Pacote de Solicitação de Status    
ENQ SPR      
    De acordo com o estado do ECF, podem ocorrer as seguintes situações:  
  Situação 1  O ECF responde com um pacote de Resultado de Comando. 
    SOH SEQ CMD EXT CAT RET TBR BRS CHK  
  Situação 2  O ECF responde com um pacote de ECF ocupado sinalizando que está executando algum comando ou rotina interna. 
    WAK CAT RET  
O aplicativo deverá aguardar 500ms e executar novamente o Fluxo de Solicitação de Status.      
    Situação 3  O aplicativo não recebe resposta em função do ECF estar desligado ou a conexão serial estar interrompida. 
O aplicativo identifica a ocorrência de timeout após aguardar 200ms e deve executar novamente o fluxo (o ECF poderá estar desligado).      

1.6. Códigos das Categorias de Retorno

1.6.1. Comando realizado com sucesso - Categoria, CAT, 0 (0x00)

Indica sucesso na execução do comando.

Nessa categoria o RET está dividido em:

Byte  Conteúdo  
0  Cada bit representa um status retornado pelo ECF conforme a seguir:  
  Bit  Valor  Significado  
  0  0  Indica a existência de um outro pacote de resposta para o comando executado.  
    1  Indica que esse é o último pacote de resposta para o comando executado.  
  1  0  Indica Status de Papel OK  
    1  Indica Status de papel - Pouco papel  
  2  0  Em operação normal  
    1  Em MIT  
  3  0  Tampa Fechada  
    1  Tampa Aberta  
  4  0  Livre do Fabricante  
    1    
  5  0  Livre do Fabricante  
    1    
  6  0  Reservado ao Fisco  
    1    
  7  0  Reservado ao Fisco  
    1    
1  Reservado ao Fisco  
2  Esse byte irá conter o campo de dados SPR rebatido  
3  Livre do fabricante  
Reserva-se 10 bits ao Fisco para padronização futura de status  

1.6.2. Comando com retorno de erro de execução - Categoria, CAT, diferente de zero (0xYY).

Indica erro na execução do comando.

Nessa categoria o RET está dividido em :

Byte  Conteúdo  
0  Motivo da ocorrência  
1  Reservado ao Fisco  
2  Livre do fabricante  
3  Livre do fabricante  

Os códigos de retorno foram agregados em categorias afins que possuem um descritivo do erro e os motivos que podem ocasionar o erro. O detalhamento do motivo da ocorrência do erro - terceira coluna da tabela abaixo - serão codificados em binário, em ordem crescente, no primeiro byte do campo RET. Detalhamento adicional, que não contemple nenhum motivo de ocorrência dos listados abaixo, serão opcionais do fabricante nos bytes 2 e 3, reservando-se ao Fisco a possibilidade, no futuro, de implementação desse ou qualquer outro detalhamento no primeiro ou segundo byte - bytes 0 e 1 do campo RET.

Categorias de Retorno:

Categoria  Descritivo do Retorno/Erro  Motivo da ocorrência  
00  Sem erro  00  
01*  Comando Inválido*  01 O comando enviado para a impressora não existe no software básico.  
02  Erro em parâmetro do comando  01 Conteúdo de parâmetro inválido no comando.  
    02 Falta parâmetro no comando.  
    03 Excesso de parâmetros no comando.  
    04 COO inicial maior que COO final. 05 CRZ inicial maior que CRZ final.  
    06 Data inicial maior que Data final.  
03  Overflow de capacidade  01 Excedeu a capacidade máxima do totalizador.  
04  Erro de contexto  01 Comando só pode ser executado em MIT.  
    02 Comando não pode ser executado em MIT.  
    03 Comando não pode ser executado localmente.  
    04 Comando não pode ser executado remotamente.  
05  Erro em cupom fiscal  01 O comando enviado não pode ser executado, pois existe um Cupom Fiscal aberto.  
    02 O comando enviado não pode ser executado, pois existe um Comprovante Não Fiscal aberto.  
    03 O comando enviado não pode ser executado, pois existe um Comprovante de Crédito ou Débito aberto.  
    04 O comando enviado não pode ser executado, pois existe um Estorno de Comprovante de Crédito ou Débito aberto.  
    05 O comando enviado não pode ser executado, pois existe um Relatório Gerencial aberto.  
    06 O comando enviado não pode ser executado, pois o ECF está em repouso.  
    07 A quantidade máxima de itens em um Cupom Fiscal foi ultrapassada.  
    08 A quantidade de parcelas somente pode ser especificada para os pagamentos que envolvam meios que aceitem a emissão de CCD.  
    09 O limite máximo de pagamentos por documento já foi atingido.  
    10 O cancelamento de um Cupom Fiscal somente será permitido após o estorno de todos os CCDs emitidos.  
    11 Comando não pode ser executado em documento não pago.  
    12 Comando não pode ser executado após desconto ou acréscimo em Subtotal  
    13 Comando de acréscimo/desconto já executado.  
    14 Comando de consumidor já executado no clichê  
06  Erro em Comprovante Não Fiscal  01 O comando enviado não pode ser executado, pois existe um Cupom Fiscal aberto.  
    02 O comando enviado não pode ser executado, pois existe um Comprovante Não Fiscal aberto.  
    03 O comando enviado não pode ser executado, pois existe um Comprovante de Crédito ou Débito aberto.  
    04 O comando enviado não pode ser executado, pois existe um Estorno de Comprovante de Crédito ou Débito aberto.  
    05 O comando enviado não pode ser executado, pois existe um Relatório Gerencial aberto.  
    06 A quantidade máxima de itens em um Comprovante Não Fiscal foi ultrapassada.  
    07 A quantidade de parcelas somente pode ser especificada para os pagamentos que envolvam meios que aceitem a emissão de CCD.  
    08 O limite máximo de pagamentos por documento já foi atingido.  
    09 O cancelamento de um Comprovante Não Fiscal somente será permitido após o estorno de todos os CCDs emitidos.  
    10 Comando não pode ser executado em documento não pago.  
    11 Comando não pode ser executado após desconto ou acréscimo em Subtotal.  
    12 Comando de acréscimo/desconto já executado.  
    13 Comando de consumidor já executado no clichê  
07  Erro em Relatório gerencial ou CCD  01 O comando enviado não pode ser executado, pois existe um Cupom Fiscal aberto.  
    02 O comando enviado não pode ser executado, pois existe um Comprovante Não Fiscal aberto.  
    03 O comando enviado não pode ser executado, pois existe um Comprovante de Crédito ou Débito aberto.  
    04 O comando enviado não pode ser executado, pois existe um Estorno de Comprovante de Crédito ou Débito aberto.  
    05 O comando enviado não pode ser executado, pois existe um Relatório Gerencial aberto.  
    06 Não existe CCD para o pagamento especificado.  
    07 O CCD especificado já foi impresso.  
    08 O CCD especificado já foi re-impresso.  
    09 O CCD especificado já foi estornado.  
    10 O CDD não especificado no estorno não foi impresso.  
    11 O limite máximo de CCDs por cupom foi excedido.  
    12 Comando enviado não pode ser executado dentro de CCD.  
    13 Documento anterior diferente de Cupom Fiscal e Comprovante Não fiscal.  
    14 Envio de texto genérico para CCD ou Relatório Gerencial já fechado.  
08  Erro em Redução Z  01 Redução Z pendente ou já realizada na data  
09  Integridade  01 Memória Fiscal inicializada em outro ECF  
    02 Memória de Fita Detalhe inicializada em outro de ECF.  
    03 Marca do ECF, Tipo ou Modelo incompatível com o gravado na Memória Fiscal.  
    04 Número de série da MF diferente do gravado na MFD.  
    05 Não foi localizado o número de série na MF.  
    06 Não foi localizado na MF o registro do BR.  
    07 Não foi localizado na MF o Símbolo da moeda.  
    08 Não foram localizados na MF os símbolos de criptografia do GT.  
    09 Não foi localizado na MF o CNPJ/IE ou IM do usuário.  
    10 Versão do Software básico inválida.  
    11 Memória fiscal foi desconectada.  
    12 MFD foi desconectada.  
    13 Erro de gravação na Memória fiscal.  
    14 Erro de gravação na MFD.  
    15 Erro na recuperação de dados da MF.  
    16 Erro na recuperação de dados da MFD.  
    17 Checksum inválido no comando recebido pelo ECF.  
10  Cheque/CMC-7  01 Documento não inserido  
11  Autenticação  01 Excedida a quantidade permitida. 02 Não permitida na condição  
12  Sem Papel  01  
13  Relógio  01 Qualquer alteração do relógio não permitida.  
    02 Entrada ou saída de verão não permitida.  
    03 Relógio com data/hora anterior ao último documento gravado na MFD.  
    04 Data/hora do relógio inválida.  
14  Programação  01 Índice de alíquota de ICMS já existente.  
    02 Índice de alíquota de ISSQN já existente.  
    03 Índice de ISSQN não permitido.  
    04 Índice de Meio de pagamento já existente.  
    05 Índice de Não Fiscal já existente.  
    06 Índice de relatório gerencial já existente.  
    07 Excedida a quantidade máxima.  
15  Protocolo  01 Caractere de controle inválido no comando recebido pelo ECF.  
    02 Checksum inválido no comando recebido pelo ECF  
16  Específicos de fabricante    

*Quando o aplicativo for de versão anterior do EsC-ECF, o ECF deverá aceitar o comando e enviar mensagem informando para providenciar a atualização do aplicativo.

A categoria do retorno e o motivo da ocorrência são de implementações obrigatórias segundo a tabela, entretanto a implementação de um detalhamento da categoria de retorno, campo RET, diferente das listadas acima é opcional, e seu conteúdo será especificado pelo fabricante no terceiro e quarto bytes - bytes 2 e 3 do campo RET.. No caso de não implementação, o segundo, terceiro e quarto bytes deverão vir sempre em zero.

2. PROGRAMAÇÃO

2.1. Introdução

2.1.1. Grupos de comandos

Os comandos estão divididos em 3 grupos distintos:

Comandos de implementação obrigatória - Os comandos constantes deste grupo são aqueles que, por convênio, são de implementação obrigatória e deverão obedecer rigosoramente o padrão definido neste documento. (códigos de comando 1 a 149)

Comandos de implementação opcional - Os comandos constantes deste grupo são aqueles que, por convênio, são de implementação opcional, que se implementados deverão obedecer rigorosamente o padrão especificado neste documento. (códigos de comando 150 a 254)

Comandos do Fabricante - Os comandos constantes deste grupo são aqueles cuja funcionalidade não está definida nos itens a) e b) acima, que terão especificação determinada pelo fabricante. (código de comando 255)

2.1.2. Padrão de mensagem

Todos os comandos seguem o padrão de mensagem de envio e de recepção estabelecidos no protocolo especificado neste documento.

Formato de envio:

SOH SEQ CMD EXT TBC BCD CHK 

Formato de recepção:

SOH SEQ CMD EXT CAT RET TBR BRS CHK 

CMD = Código do Comando com tamanho de 1 (um) byte e seu conteúdo binário de 1 a 255

EXT = Extensão do Comando, possui tamanho de 1 (um) byte e seu conteúdo é binário.

CAT = Categoria possui o tamanho de 1 (um) byte e seu conteúdo é binário.

RET = Retorno possui o tamanho de 3 (três) bytes e seu conteúdo é binário.

2.1.3. Parâmetros

Um comando pode, opcionalmente, ser acompanhado de parâmetros.

Os parâmetros são posicionais, e de tamanho variável, devendo cada um, obrigatoriamente, ser finalizado com um caractere pipe "|" mesmo que o seu conteúdo seja nulo.

Exemplo do comando:

No Buffer de Resposta os campos serão posicionais, de tamanho variável, finalizados pelo caractere pipe "|" mesmo que seu conteúdo seja nulo.

Exemplo do comando:

Os parâmetros e os retornos, quando presentes, são caracterizados segundo:

Formato Tipo de informação aceita no campo, conforme tabela abaixo. 
Min Tamanho mínimo do campo. Se zero, trata-se de campo opcional. 
Max Tamanho máximo do campo (não inclui o delimitador pipe "|"). 

O campo Formato é codificado conforme:

N  Campo numérico. Compreende caracteres "0" (0x30) a "9" (0x39)  
A  Campo alfanumérico. Compreende os caracteres estampáveis igual ou superior a " " (0x20 ), exceto " | " e 0x7f.  Um campo alfanumérico obrigatório não pode conter apenas espaços A codificação dos caracteres obedecerá a Code Page 1252 (Latin I) 
H  Campo alfanumérico com suporte a caracteres de controle do fabricante.  
D  Data e Hora, no formato DDMMAAAAHHMMSS  O campo será o caractere "V" (0x56) se em Horário de Verão, ou " " (0x20) se não. 
B  Campo binário (qualquer caractere: 0x00 a 0xFF)  

Os parâmetros opcionais estão caracterizados pelo tamanho mínimo zero, no descritivo de cada comando.

Para efeito de abertura de dia, a data do movimento deve ser entendida como a data do primeiro Cupom Fiscal, Nota Fiscal de Venda a Consumidor, Bilhete de Passagem ou Comprovante Não-Fiscal emitido após a última Redução Z, ou a data de emissão da Redução Z, no caso de não ter havido emissão de nenhum daqueles documentos após a última Redução Z conforme convênio.

Nos comandos onde há texto livre, os campos deverão ter o line feed indicando a quebra de linha. Caso contrário o software básico fará a quebra automaticamente de acordo com o número de caracteres permitido pelo mecanismo impressor.

2.2. Lista de comandos

Número  Comando  
1  Abertura de Cupom Fiscal  
2  Registro de Item em Cupom Fiscal  
3  Cancelamento de Item Fiscal ou Comprovante Não Fiscal  
4  Pagamento Cupom Fiscal e Comprovante Não Fiscal  
5  Encerramento de Cupom Fiscal  
6  Abertura de Gaveta  
7  Cancelamento de Cupom Fiscal e Comprovante Não Fiscal  
8  Abertura de CCD  
9  Texto livre para CCD e Relatório Gerencial  
10  Fechamento de CCD ou Gerencial  
11  Aciona Guilhotina  
12  Abertura de Relatório Gerencial  
13  Abertura de Estorno de CCD  
14  Emissão de Segunda via de CCD  
15  Re-impressão de CCD  
16  Abertura de Comprovante Não fiscal  
17  Registro de Item em Comprovante Não Fiscal  
18  Encerramento de Comprovante Não Fiscal  
19  Estorno de Meio de Pagamento  
20  Leitura X  
21  Redução Z  
22  Leitura da MF por data/CRZ  
23  Sangria/Fundo de Troco  
24  Mensagem Complementar - Identificação do Aplicativo  
25  Interrompe Leituras  
26  Captura Eletrônica de Dados  
27  Desconto ou Acréscimo em Item  
28  Cancela Desconto ou Acréscimo em Item  
29  Desconto ou Acréscimo em Subtotal  
30  Cancela Desconto ou Acréscimo em Subtotal  
   
   
80  Entrada/Saída de Horário de Verão  
81  Inserir Alíquota ICMS ou ISSQN  
82  Habilitar I,F,N,IS,FS,NS  
83  Desabilitar I,F,N,IS,FS,NS  
84  Inserir Registradores de Meios de Pagamento  
85  Inserir Registradores de Operações Não Fiscais  
86  Inserir Relatório Gerencial  
87  Inserir o número do ECF na tabela de ECFs da rede  
88  Configurar o ECF para atender à chamada  
   
100  Re-impressão de MFD  
101  Ajuste de Relógio  
   
140*  Identificação do ECF - Registro E01  
141*  Pesquisa de Atualização de Software Básico - Registros E01, E02 e E07  
142*  Pesquisa de Intervenção Técnica - Registros E01, E02 e E09  
143*  Leitura de Memória de Trabalho - Registros E01, E02 e E11  
144*  Leitura de Memória Fiscal - Registro E01, E02, E12 e E13  
145*  Comando de Passagem do Canal Virtual  
146*  Obtenção do mapa de ECFs operacionais ligados à rede de modems  
147*  Pesquisa de Versão da Especificação de Comandos  
   
150  Identificação do Consumidor no Rodapé  
151  Cancelamento Parcial de Item  
152  Preenchimento de Cheque  
153  Autenticação  
154  Operador  
255  Comando de Fabricante  

*Observações:

1. Os comandos de códigos nºs 140 a 147 são os únicos usados no monitoramento remoto de estabelecimentos;

2. O comando 145 é reservado exclusivamente ao monitoramento remoto de estabelecimentos;

3. O comando 146 deverá preencher o campo definido no Inciso II da cláusula sexta-A do Convênio nº 85/2001 com zeros e sua resposta deverá indicar neste campo o número de ordem do ECF definido em MIT para dar resposta automática à chamada telefônica;

4. Os comandos 140 a 145 e 147, bem como suas respostas, deverão preencher o campo definido no Inciso II da cláusula sexta-A do Convênio-ICMS nº 85/2001 com o número de ordem do ECF a quem se destina o comando ou resposta no canal virtual;

5. No campo definido no Inciso III da Cláusula sexta-A, os dois primeiros bytes serão equivalentes alfanuméricos dos comandos binários padronizados no presente documento - CMD -, se for o caso, e o terceiro e quarto bytes, preenchidos com zeros e reservados ao Fisco.

2.3. Comandos de Implementação Obrigatória

2.3.1. Abertura de Cupom Fiscal

Inicia a emissão de um Cupom Fiscal.

Comando: 1 (0x01)

Modo: Operação Normal

Parâmetros:

Descritivo  Formato  Min  Máx  Conteúdo  
CNPJ/CPF do Consumidor  A  0  20    
Nome do Consumidor  A  0  30    
Endereço do Consumidor  A  0  79    

Retorno:

BRS - Buffer de Resposta  Formato  Min  Máx  Conteúdo  
COO  N  1  6    
Data/Hora atual  D  15  15    
Valor da Venda Bruta  N  1  14    
Número de série do ECF  A  1  20  Número de fabricação  

Exemplo do Comando:

1 99999999999999999999|MARIA DA SILVA|AVENIDA BRASIL 123|

2.3.2. Registro de Item em Cupom Fiscal

Registra item em cupom fiscal.

Comando: 2 (0x02)

Modo: Operação Normal.

Parâmetros:

Descritivo  Formato  Min  Máx  Conteúdo  
Código do Produto*  A  0  14    
Descritivo  A  1  233    
Situação Tributária - Tipo + Índice  A  1  2  T, S, I, F, N, IS, FS, NS  
  N  1  2  Índice = 1 a 30 se tipo T ou Tipo S  Demais = 1 2 ou 3 
Unidade  A  1  3    
Quantidade  N  1  7    
Preço unitário  N  1  8    
Indicador do tipo de cálculo  A  1  1  A = Arredondado  T = Truncado 

* Opcional apenas quando se tratar de item vinculado a totalizador tributado pelo ISSQN

Retorno:

BRS - Buffer de Resposta  Formato  Min  Máx  Conteúdo  
Número do Item  N  1  3  1 a 999  
Valor do Item  N  1  8    
Valor do Subtotal  N  1  13    

Exemplo do Comando:

2 78900012345678|SABAO EM PO|T1|UN|3000|4200|

(programada quantidade e preço unitário com 3 decimais)

2.3.3. Cancelamento de Item Fiscal ou Não Fiscal

Cancela um item de cupom fiscal ou item de cupom não fiscal.

Comando: 3 (0x03)

Modo: Operação Normal.

Parâmetros:

Descritivo  Formato  Min  Máx  Conteúdo  
Número de seqüência do item  N  1  3    

Retorno:

BRS - Buffer de Resposta  Formato  Min  Máx  
Valor do subtotal  N  1  13    

Exemplo do Comando:

3 2|

(Cancela item número 2)

2.3.4. Pagamento em Cupom Fiscal ou Comprovante Não Fiscal

Efetua o pagamento do valor do subtotal do cupom fiscal ou comprovante não fiscal.

Comando: 4 (0x04)

Modo: Operação Normal.

Parâmetros:

Descritivo  Formato  Min  Máx  Conteúdo  
Índice do Pagamento  N  1  2  De 1 a 30  
Valor  N  1  13    
Número de Parcelas  N  1  2  De 1 a 99  
Informações adicionais  A  0  84    

Quando o número de parcelas informado for maior que 1, será impressa na informação suplementar a expressão: N. PARC: XX onde XX será o número de parcelas. Neste caso o campo de informações adicional terá seu máximo reduzido a 73 caracteres.

Retorno:

BRS - Buffer de Resposta  Formato  Min  Máx  Conteúdo  
Valor a pagar faltante  N  1  13    

O índice de pagamento "1" será pré-programado pelo software básico como "DINHEIRO" não admitindo CCD.

O número de parcelas informado indicará o número de CCDs disponíveis para impressão para a referida forma de pagamento.

Caso haja troco, o valor a pagar faltante será zero.

Exemplo do Comando:

4 02|1000|2|Parcelado pelo cartão|

2.3.5. Encerramento de Cupom Fiscal

Encerra um cupom fiscal e dependendo dos parâmetros enviados imprime as 8 linhas de mensagem promocional, aciona a guilhotina e imprime o cupom adicional.

Comando: 5 (0x05)

Modo: Operação Normal.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Imprime adicional 0 = Não imprime adicional 1 = Imprime adicional
Aciona Guilhotina 0 = Não aciona Guilhotina 1 = Aciona Guilhotina
Mensagem Promocional   

* Limitado ao buffer de envio de comando e/ou 8 linhas impressas

Retorno:

BRS - Buffer de Resposta Formato Min Máx Conteúdo 
COO   
Data/Hora atual 15 15   
Valor da Venda Bruta 14   
Seqüência do pagamento*   
Indicador do meio de pagamento*   
Valor* 13   
Número de Parcelas*   

*Até 20 ocorrências dentro do buffer de resposta, uma para cada pagamento que admita CCD.

Exemplo do Comando:

5 0|1|Mensagem Promocional|

2.3.6. Abertura de Gaveta

Abre a gaveta.

Comando: 6 (0x06)

Modo: Operação Normal/Intervenção Técnica.

Parâmetros: Nenhum

Exemplo do Comando:

6

2.3.7. Cancelamento de Cupom Fiscal e Comprovante Não Fiscal

Cancela um cupom fiscal ou um cupom não fiscal em emissão ou já emitido.

Comando: 7 (0x07)

Modo: Operação Normal.

Parâmetros: Nenhum

Exemplo do Comando:

7

2.3.8. Abertura de CCD

Inicia a emissão de um Comprovante de Crédito e Débito.

Comando: 8 (0x8)

Modo: Operação Normal.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Seqüência do Pagto Seqüência do pagamento no cupom ou comprovante 
Índice do meio de pagamento De 2 a 30 
Número da Parcela   
CNPJ 20   
Nome 30   
Endereço 79   

O CCD deverá ser emitido imediatamente após o Cupom Fiscal/Não Fiscal. Se não forem informados os campos de seqüência de pagamento e número da parcela, os CCDs serão emitidos em ordem crescente de seqüência e parcela.

Retorno:

BRS - Buffer de Resposta Formato Min Máx 
COO   
Data/Hora atual 15 15   
Valor da venda Bruta 14   
Número de Série do ECF 20 Número de Fabricação 
Seqüência do pagamento   
Número da Parcela   
Número de parcelas faltantes   

Exemplo do Comando:

8 1|4|1|123.123.123/0001-01|MARIA DA SILVA|AVENIDA BRASIL 123|

CCD de seqüência 1 (um) do pagamento, meio de pagamento 4, parcela 1 (um).

2.3.9. Texto Livre para CCD e Relatório Gerencial

Imprime as linhas de texto livre em CCD ou relatório gerencial.

Comando: 09 (0x09)

Modo: Operação Normal.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Mensagem   

* Limitado ao tamanho do buffer de comando As linhas serão quebradas no line feed ou no limite do mecanismo impressor.

Exemplo do Comando:

9 Texto da Operadora|

2.3.10. Fechamento de CCD ou Gerencial

Encerra o CCD ou o relatório gerencial, acionando a guilhotina de acordo com o parâmetro.

Comando: 10 (0x0A)

Modo: Operação Normal.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Aciona Guilhotina 0 = Não aciona Guilhotina 1 = Aciona Guilhotina

Retorno:

BRS - Buffer de Resposta Formato Min Máx Conteúdo 
COO   
Data/Hora atual 15 15   
Valor da venda Bruta 14   

Exemplo do Comando:

10 1|

Fecha o documento e aciona guilhotina.

2.3.11. Aciona Guilhotina

Aciona a guilhotina

Comando: 11 (0x0B)

Modo: Operação Normal/MIT.

Parâmetros: Nenhum

Exemplo do Comando:

11

2.3.12. Abertura de Relatório Gerencial

Inicia a emissão de um relatório gerencial.

Comando: 12 (0x0C)

Modo: Operação Normal.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Índice do Relatório Gerencial De 1 a 30 

O índice de relatório Gerencial "01" será pré-programado pelo software básico como "Gerencial Geral" e utilizado para emissão do relatório dos parâmetros de configuração na saída de Intervenção.

Retorno:

BRS - Buffer de Resposta Formato Min Máx Conteúdo 
COO   
Data/Hora atual D 15 15     
Valor da venda Bruta 14   
Número de Série do ECF 20 Número de fabricação 

Exemplo do Comando:

12 5

Emissão do Relatório Gerencial de índice 5

2.3.13. Abertura de Estorno de CCD

Inicia o comprovante de estorno de CCD.

Comando: 13 (0x0D)

Modo: Operação Normal.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
COO   
CNPJ 20   
Nome 30   
Endereço 79   

O estorno de CCD poderá ser emitido desde que não tenha havido após o CCD, emissão de outro documento que não seja CCD.

Retorno:

BRS - Buffer de Resposta Formato Min Máx Conteúdo 
COO   
Data/Hora atual 15 15   
Valor da venda Bruta 14   
Número de Série do ECF 20 Número de fabricação 
Seqüência do pagamento   
Número da Parcela   

Exemplo do Comando:

13 123|123.123.123/0001-01|Maria da Silva |Rua do Ouvidor, 128|

2.3.14. Emissão de Segunda Via de CCD

Emite a 2ª via do Comprovante de Crédito ou Débito ou Estorno de Comprovante de Crédito ou Débito.

Comando: 14 (0x0E)

Modo: Operação Normal.

Parâmetros: Nenhum

A segunda via de CCD só poderá ser emitidos imediatamente após a impressão do CCD.

Exemplo do comando:

14

2.3.15. Re-impressão de CCD

Reimprime o Comprovante de Crédito ou Débito ou Estorno de Comprovante de Crédito ou Débito.

Comando: 15 (0x0F)

Modo: Operação Normal.

Parâmetros: Nenhum

A re-impressão de CCD só poderá ser emitida imediatamente após a impressão do CCD.

Exemplo do comando:

15

2.3.16. Abertura de Comprovante Não Fiscal

Inicia a emissão de um Comprovante Não Fiscal.

Comando: 16 (0x10)

Modo: Operação Normal.

Parâmetros:

Descritivo  Formato  Min  Máx  Conteúdo  
CNPJ/CPF  A  0  20    
Nome  A  0  30    
Endereço  A  0  79    

Retorno:

BRS - Buffer de Resposta  Formato  Min  Máx  Conteúdo  
COO  N  1  6    
Data/Hora atual  D  15  15    
Valor da venda Bruta  N  1  14    
Número de Série do ECF  A  1  20  Número de fabricação  

Exemplo do Comando:

16 123.123.123/001-01|Maria da Silva|Rua do Ouvidor, 128|

2.3.17. Registro de Item em Comprovante Não Fiscal

Registra o item de Comprovante Não Fiscal.

Comando: 17 (0x11)

Modo: Operação Normal.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Índice do Item Não fiscal cadastrado 
Valor 13   

O índice 01 será pré-programado pelo Software Básico como "Fundo de Troco", o índice 02 como "Sangria". Estes índices só poderão ser utilizados com o comando 23 - Operação de Fundo de Troco/Sangria.

Retorno:

BRS - Buffer de Resposta Formato Min Max Conteúdo 
Número do item 13   
Subtotal 13   

Exemplo do Comando:

17 3|1000|

2.3.18. Encerramento de Comprovante Não Fiscal

Finaliza a emissão de um comprovante Não Fiscal.

Comando: 18 (0x12)

Modo: Operação Normal.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Aciona Guilhotina 0 = Não aciona Guilhotina 1 = Aciona Guilhotina
Mensagem Promocional   

* Limitado ao buffer de envio de comando e/ou 8 linhas de impressas

Retorno:

BRS - Buffer de Resposta Formato Min Máx Conteúdo 
COO   
Data/Hora atual 15 16   
Valor da venda Bruta 14   
Seqüência do pagamento*   
Indicador do meio de pagamento*   
Valor* 13   
Número de Parcelas*   

*Até 20 ocorrências dentro do buffer de resposta, uma para cada pagamento que admita CCD.

Exemplo do Comando:

18 1|Mensagem Promocional|

2.3.19. Estorno de Meio de Pagamento

Efetua a troca de um meio de pagamento utilizado por outro.

Comando: 19 (0x13)

Modo: Operação Normal.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Índice do meio de pagamento a ser estornado   
Índice do meio de pagamento a ser somado   
Valor 13   
Mensagem   

* Limitado ao buffer de comando e/ou a 8 linhas impressas.

Retorno:

BRS - Buffer de Resposta Formato Min Máx Conteúdo 
COO   
Data/Hora atual 15 15   
Valor da venda Bruta 14   
Número de Série do ECF 20 Número de Fabricação 
Seqüência do pagamento*   
Indicador do meio de pagamento*   
Valor* 13   
Número de Parcelas*   

* Até 20 ocorrências dentro do buffer de resposta, uma para cada pagamento que admita CCD.

Exemplo do Comando:

19 1|2|1000|Mensagem |

Estorno do meio de pagamento índice um, soma no meio de pagamento índice 2, no valor de R$ 10,00

2.3.20. Leitura X

Realiza a impressão do relatório de Leitura X.

Comando: 20 (0x14)

Modo: Operação Normal/Intervenção Técnica.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Mídia 1 - Envia txt pela serial

No envio do TXT pela porta serial o valor do COO deverá estar em branco.

Retorno:

BRS - Buffer de Resposta Formato Min Máx Conteúdo 
Texto da leitura X (*)   

(*) No caso do parâmetro de mídia ser igual a "0" o BRS será vazio.

Exemplo do Comando:

20 0|

2.3.21. Redução Z

Emite a Redução Z permitindo o ajuste do relógio interno do ECF em mais ou menos 5 minutos.

Comando: 21 (0x15)

Modo: Operação Normal.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Data   
Hora   

O ajuste será de no máximo cinco minutos a maior ou a menor em relação ao horário da impressora, quando possível. Se os parâmetros enviados forem Nulos a Redução Z será feita sem ajuste de horário.

Retorno:

BRS - Buffer de Resposta Formato Min Máx Conteúdo 
Data do Movimento ddmmaaaa 

Exemplo do Comando:

21 22122006|1040|

2.3.22. Leitura da MF por Data ou CRZ

Realiza a Impressão do relatório de Leitura da Memória Fiscal por Data ou por Redução Z.

Comando: 22 (0x16)

Modo: Operação Fiscal/Intervenção Técnica.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Mídia 0 - Imprime no ECF 1 - Gera txt pela serial
Tipo 1 - Analítico 2 - Simplificado
Modo 1 - Data 2 - CRZ
Referencia inicial (Data ou CRZ)   
Referencia final (Data ou CRZ)   

No envio do TXT pela serial será enviado valor do COO deverá estar em branco

Retorno:

BRS - Buffer de Resposta Formato Min Máx Conteúdo 
Texto da leitura da MF (*)   

(*) No caso do parâmetro de mídia ser igual a "0" o BRS será vazio.

Exemplo do Comando:

22 0|1|2|20|32

Emissão da LMF analítica por CRZ, CRZi = 20, CRZf = 32

2.3.23. Sangria/Fundo de Troco

Realiza a emissão do Cupom de Sangria ou de Fundo de Troco.

Comando: 23 (0x17)

Modo: Operação Normal.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Tipo 0 - Sangria 1 - Fundo de Troco
Valor 13   
Mensagem Suplementar   

Retorno:

BRS - Buffer de Resposta Formato Min Máx Conteúdo 
COO   
Data/Hora atual 15 15   
Valor da venda Bruta 14   
Número de Série do ECF 20 Número de Fabricação 

Exemplo do comando:

23 0|10000| Mensagem suplementar |

(Sangria de 100,00)

2.3.24. Mensagem Complementar - Identificação do Aplicativo

Cadastra até duas linhas de comentário que serão impressas no rodapé dos documentos emitidos.

Comando: 24 (0x18)

Modo: Operação Fiscal/MIT.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Texto 84   

Exemplo do comando:

24 Texto da mensagem complementar|

2.3.25. Interrompe Leituras

Interrompe processos de leitura da MF ou da MFD.

Comando: 25 (0x19)

Modo: Operação Fiscal/MIT.

Parâmetros: Nenhum

Retorno:

BRS - Buffer de Resposta Formato Min Máx Conteúdo 
COO   
Data/Hora atual 15 15   
Valor da venda Bruta 14   

Exemplo do comando:

25

2.3.26. Captura Eletrônica de Dados

Realiza a leitura de totalizadores, contadores e demais parâmetros do ECF, enviando os dados para a aplicação via porta serial.

Comando: 26 (0x1A)

Modo: Operação Normal/Intervenção Técnica.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Grupo 
Índice 

Retorno:

BRS - Buffer de Resposta Formato Min Máx Conteúdo 
       

* Ver item 3.6. Tabela para Leitura dos Contadores, Totalizadores e demais parâmetros do ECF.

Exemplo do Comando:

26 4|1|

Leitura do totalizador de GT

2.3.27. Desconto ou Acréscimo em Item

Aplica um desconto ou acréscimo no item de venda em um Cupom Fiscal ou em item de um Comprovante Não Fiscal.

Comando: 27 (0x1B)

Modo: Operação Normal.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Operação 0 - Desconto 1 - Acréscimo
Tipo 0 - % 1 - Valor
Valor N1 13     
Número do item Se nulo será considerado o último item registrado  

Retorno:

BRS - Buffer de Resposta Formato Min Máx Conteúdo 
Valor líquido do item 13   
Subtotal do cupom 13   

Exemplo do comando:

27 0|1|130||

Aplica um desconto de R$ 1,30 ao último registro efetuado.

2.3.28. Cancelamento de Desconto ou Acréscimo em item

Efetua o cancelamento do desconto ou do acréscimo em item de Cupom Fiscal ou de Comprovante Não Fiscal.

Comando: 28 (0x1C)

Modo: Operação Normal.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Operação 0 - Desconto 1 - Acréscimo
Número do item   

Retorno:

BRS - Buffer de Resposta Formato Min Máx Conteúdo 
Valor líquido do item 13   
Subtotal do cupom 13   

Exemplo do comando:

28 0| 12|

Cancela desconto no item 12.

2.3.29. Desconto ou Acréscimo em Subtotal

Aplica um desconto ou acréscimo ao total em um Cupom Fiscal ou em um Comprovante Não Fiscal.

Comando: 29 (0x1D)

Modo: Operação Normal.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Operação 0 - Desconto 1 - Acréscimo
Tipo 0 - % 1 - Valor
Valor 13   

Retorno:

BRS - Buffer de Resposta Formato Min Máx Conteúdo 
Subtotal do cupom 13   

Exemplo do comando:

29 0|1|120|

Aplica um desconto de R$ 1,20 ao subtotal do cupom.

2.3.30. Cancela Desconto ou Acréscimo em Subtotal

Cancela um desconto ou um acréscimo ao subtotal de um Cupom Fiscal ou de um Comprovante Não Fiscal.

Comando: 30 (0x1E)

Modo: Operação Normal.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Operação 0 - Desconto 1 - Acréscimo

Retorno:

BRS - Buffer de Resposta Formato Min Máx Conteúdo 
Subtotal do cupom 13   

Exemplo do comando:

30 0|120|

Cancela um desconto de R$ 1,20 no subtotal do Cupom Fiscal ou do Comprovante Não Fiscal.

2.3.31. Entrada e Saída de Horário de Verão

Coloca o ECF em Horário de Verão ou Em horário Normal.

Comando: 80 (0x50)

Modo: Operação Normal/Intervenção Técnica.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Modo 0 - Sai de horário verão 1 - Entra em horário verão

Exemplo do Comando:

80 0|

2.3.32. Inserir Alíquota de ICMS/ISSQN

Insere os dados das alíquotas de ICMS ou ISSQN no ECF.

Comando: 81 (0x51)

Modo: Operação Normal/Intervenção Técnica.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Índice 1 a 30 
Tipo da Situação Tributária T ou S 
Valor da % 0000 

Exemplo do Comando:

81 1|T|0840|

Insere alíquota T08,40 no índice 1 (um)

2.3.33. Habilitar F, I, N, FS, IS, NS.

Habilita os totalizadores de F, I, N, FS, IS, NS de índices dois e 3.

Comando: 82 (0x52)

Modo: Operação Normal/Intervenção Técnica.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
2 ou 3 
2 ou 3 
2 ou 3 
FS 2 ou 3 
IS 2 ou 3 
NS 2 ou 3 

Os totalizadores F1, I1, N1, FS1, IS1 e NS1 serão automaticamente habilitados pelo Software Básico.

Os totalizadores de índice 2 e 3 poderão ser habilitados ou desabilitados de acordo com as necessidades da aplicação.

Exemplo do comando:

82 2||2|||2|

Habilita os totalizadores F2, N2, NS2.

2.3.34. Desabilitar F, I, N, FS, IS, NS.

Desabilita os totalizadores de F, I, N, FS, IS, NS de índices 2 e 3.

Comando: 83 (0x53)

Modo: Intervenção Técnica.

Parâmetros:

Descritivo Formato Min Máx 
F  N  2 ou 3 
2 ou 3 
2 ou 3 
FS 2 ou 3 
IS 2 ou 3 
NS 2 ou 3 

Os totalizadores de índice 2 e 3 poderão ser desabilitados, se habilitados anteriormente, de acordo com as necessidades da aplicação.

Exemplo do comando:

83 2||2|||2|

Desabilitar os totalizadores F2, N2, NS2.

2.3.35. Inserir Registradores de Meios de Pagamento

Insere os registradores de meio de pagamento.

Comando: 84 (0x54)

Modo: Operação Normal/Intervenção Técnica.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Índice 2 a 20 
Nome 15   
Vinculado CCD 0 = sem CCD 1 = com CCD

01 - DINHEIRO, sem CCD (Fixo).

Exemplo do comando:

84 2|Cartão Crédito|1|

Inserir o meio de pagamento de índice 2, nome Cartão Crédito, com CCD.

2.3.36. Inserir Registradores de Operações Não Fiscais

Insere os registradores de Operações Não Fiscais.

Comando: 85 (0x55)

Modo: Operação Normal/Intervenção Técnica.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Índice 3 a 30 
Nome 15   

01 - Sangria e 02 - Fundo de Troco (fixos)

Exemplo do comando:

85 2|Conta de Luz|

Inserir o registrador não fiscal de índice 2, nome Conta de Luz.

2.3.37. Inserir Relatório Gerencial

Insere os contadores de Relatório Gerencial.

Comando: 86 (0x56)

Modo: Operação Normal/Intervenção Técnica.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Índice 2 a 30 
Nome 15   

01 - Gerencial Geral (fixo)

Exemplo do comando:

86 2| Média de Venda/Hora |

Inserir o Relatório Gerencial de índice 2, nome "Média de Venda/Hora".

2.3.38. Inserir o número do ECF na tabela de ECFs da rede

Insere o ECF na tabela da rede.

Comando: 87 (0x57)

Modo: Operação Normal/Intervenção Técnica.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Índice 1 a 999 
Número de Sequência do ECF   

Exemplo do comando:

87 1| 001 |

Insere o ECF de número seqüencial igual a 001.

2.3.39. Configurar o ECF para atender à chamada

Configura o ECF para atender à chamada telefônica.

Comando: 88 (0x58)

Modo: Intervenção Técnica.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Tipo 0 = Não atende 1 = Atende

Exemplo do comando:

88 1

Programa o ECF para atender a ligação.

2.3.40. Re-impressão MFD

Re-imprime as operações realizadas gravadas na MFD.

Comando: 100 (0x64)

Modo: Intervenção Técnica.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Tipo 1 - Data 2 - COO
Referencia Inicial (Data ou COO)   
Referencia Final (Data ou COO)   

Exemplo do Comando:

100 2|1125|1230|

Re-impressão de COOi = 1125 a COOf = 1230

2.3.41. Ajuste de Relógio

Faz o ajuste do relógio.

Comando: 101 (0x65)

Modo: Intervenção Técnica.

Parâmetros:

Descritivo Formato Min Máx 
Data ddmmaaaa 
Hora hhmmss 
Flag de Horário de Verão V ou espaço 

Exemplo do Comando:

101 22122006|104000|V|

2.3.42. Identificação do ECF - Registro E01

Gera o Registro do Tipo E01 previsto no Ato Cotepe/ICMS nº 17/04

Comando: 140 (0x8C)

Modo: Operação Normal/Intervenção Técnica.

Parâmetros: Nenhum

Retorno:

BRS - Buffer de Resposta Formato Min Máx Conteúdo 
Registro Tipo E01      Para o registro E01 os campos de 1 ao 13. Os campos de 14 ao 18 devem ser preenchidos com brancos ou zeros de acordo com o respectivo tipo de dado. 

Exemplo do Comando:

140

2.3.43. Pesquisa de Atualização de Software Básico - Registros E01, E02 e E07

Gera os Registros do Tipo E01, E02 e E07 previsto no Ato Cotepe/ICMS nº 17/04

Comando: 141 (0x8D)

Modo: Operação Normal/Intervenção Técnica.

Parâmetros: Nenhum

Retorno:

BRS - Buffer de Resposta Formato Min Máx Conteúdo 
Registro Tipo E01, E02 e E07      Para o registro E01 os campos de 1 ao 13. Os campos de 14 ao 18 devem ser preenchidos com brancos ou zeros de acordo com o respectivo tipo de dado. 

Exemplo do Comando:

141

2.3.44. Pesquisa de Intervenção Técnica - Registros E01, E02 e E09

Gera os Registros do Tipo E01, E02 e E09 previsto no Ato Cotepe/ICMS nº 17/04

Comando: 142 (0x8E)

Modo: Operação Normal/Intervenção Técnica.

Parâmetros: Nenhum

Retorno:

BRS - Buffer de Resposta Formato Min Máx Conteúdo 
Registro Tipo E01, E02 e E09      Para o registro E01 os campos de 1 ao 13. Os campos de 14 ao 18 devem ser preenchidos com brancos ou zeros de acordo com o respectivo tipo de dado. 

Exemplo do Comando:

142

2.3.45. Leitura de Memória de Trabalho - Registros E01, E02 e E11

Gera os Registros do Tipo E01, E02 e E011 previsto no Ato Cotepe/ICMS nº 17/04

Comando: 143 (0x8F)

Modo: Operação Normal/Intervenção Técnica.

Parâmetros: Nenhum

Retorno:

BRS - Buffer de Resposta Formato Min Máx Conteúdo 
Registro Tipo E01, E02 e E11      Para o registro E01 os campos de 1 ao 13. Os campos de 14 ao 18 devem ser preenchidos com brancos ou zeros de acordo com o respectivo tipo de dado. 

Os campos que envolvem valores monetários serão criptografados.

Exemplo do Comando:

143

2.3.46. Leitura de Memória Fiscal - Registro E01, E02, E12 e E13

Gera os Registros do Tipo E01, E02, E12 e E13 previsto no Ato Cotepe/ICMS nº 17/04

Comando: 144 (0x90)

Modo: Operação Normal/Intervenção Técnica.

Parâmetros: Número de Reduções

Descritivo Formato Min Máx Conteúdo 
Número de Reduções Variando de 1 a 60 correspondente às últimas N reduções efetuadas 

Retorno:

BRS - Buffer de Resposta Formato Min Máx Conteúdo 
Registro Tipo E01, E02, E12 e E13      Correspondente às N últimas reduções solicitadas  

Os campos que envolvem valores monetários serão criptografados.

Exemplo do Comando:

144 10

Corresponde à solicitação das 10 últimas reduções realizadas.

2.3.47. Comando de Passagem do Canal Virtual.

Comando: 145 (0x91)

Modo: Operação Normal/Intervenção Técnica - exclusivamente via modem Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Tipo 0 - ECF Anterior 1 - Próximo ECF2 - ECF Específico
Número de Seqüência do ECF Número de Seqüência do ECF quando o parâmetro Tipo for igual a 2 

Retorno:

BRS - Buffer de Resposta Formato Min Máx Conteúdo 
Registro Tipo E01      Para o registro E01 os campos de 1 ao 13. Os campos de 14 ao 18 devem ser preenchidos com brancos ou zeros de acordo com o respectivo tipo de dado. 

Exemplo do Comando:

145 0| |

Passar para o próximo ECF

Em caso de falha ou de perda de energia elétrica, o canal virtual retornará sempre para o ECF habilitado em MIT para atendimento da ligação telefônica.

2.3.48. Obtenção do mapa de ECFs operacionais ligados à rede de modems.

Envia o número de ordem de cada ECF com modem ligado à rede remota.

Comando: 146 (0x92)

Modo: Operação Normal/Intervenção Técnica.

Parâmetros: Nenhum

Retorno:

BRS - Buffer de Resposta Formato Min Máx Conteúdo 
Um a três bytes por número de ordem de cada ECF do mapa da rede que está on line 2889 Variando de 1 a 999 por ECF 
Número de ordem, dentre os ECFs acima, daquele programado em MIT para dar resposta automática à chamada telefônica e funcionar como canal virtual inicial 1 a 999 

Exemplo do Comando:

146

2.3.49. Pesquisa de Versão da Especificação de Comandos

Envia a versão da especificação de comandos implementada no software básico.

Comando: 147 (0x93)

Modo: Operação Normal/Intervenção Técnica.

Parâmetros: Nenhum

Retorno:

BRS - Buffer de Resposta Formato Min Máx Conteúdo 
Identifica a versão da EsC-ECF implementada no software básico, relativamente à versão inicial 01.00, e o fabricante do ECF. Indica acréscimo nos comandos anteriores 
  Indica correção nos comandos anteriores 
Indica o fabricante do ECF Código do fabricante  

Exemplo do Comando:

147

2.4. Comandos de Implementação Opcional

2.4.1. Identificação do Consumidor no Rodapé

Totaliza um Cupom Fiscal ou Comprovante Não Fiscal.

Comando: 150 (0x96)

Modo: Operação Normal.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
CNPJ do Consumidor 20   
Nome do Consumidor 30   
Endereço do Consumidor 79   

Só poderá ser enviado se não houve impressão dos dados do consumidor no cabeçalho.

Exemplo do comando:

150 999.999.999/9999-99|João da Silva|Rua do Ouvidor, 28|

2.4.2. Cancelamento Parcial de item

Comando: 151 (0x97)

Modo: Operação Normal.

Parâmetros:

Descritivo Formato Min Máx 
Número do item   
Quantidade   

Retorno:

BRS - Buffer de Resposta Formato Min Máx Conteúdo 
Valor Líquido do item 13   
Subtotal do cupom 13   

Exemplo do comando:

151 1|3000|

Cancela 3 unidades do item 1. (Programada quantidade com 3 decimais)

2.4.3. Preenchimento de Cheque

Preenche os campos do cheque.

Comando: 152 (0x98)

Modo: Operação Normal.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Banco   
Valor 10   
Favorecido 80   
Local 30   
Data Se campo vazio será utilizada a data da impressora 
Quantidade de dígitos do ano a ser impressa Default AA 
Linha adicional 240   

Importante: Em função das diferenças entre os mecanismos, cada fabricante aceitará o número de caracteres máximo compatível com o seu mecanismo. O que exceder ao tamanho será truncado pelo Software Básico.

A tabela de bancos com as coordenadas de campo estará armazenada na impressora.

Exemplo do comando:

152 237|12000|Maria da Silva|São Paulo|||Bom para 22.01.2007|

Preenche o cheque no valor de R$ 120,00 com a data do dia da emissão.

2.4.4. Autenticação

Comando: 153 (0x99)

Modo: Operação Normal.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Texto   

* Depende do mecanismo impressor

Exemplo do Comando:

153 Texto da Autenticação|

2.4.5. Operador

Registra os dados do Operador a ser impresso no cupom fiscal.

Comando: 154 (0x9A)

Modo: Operação Normal/MIT.

Parâmetros:

Descritivo Formato Min Máx Conteúdo 
Texto 20   

Exemplo do comando:

154 1233 - Cristina|

2.5. Comandos do Fabricante

2.5.1. O comando 255

Os comandos do fabricante são identificados pelo campo CMD = 255 e o campo de EXT diferente de 0, e que deverá identificar a funcionalidade do comando, conforme definição do fabricante.

Os comandos de leitura serial da MFD e os comandos de programação do ECF deverão ser implementados neste grupo.

Somente poderão ser implementados comandos cuja funcionalidade não esteja definida no grupo de Comandos de implementação obrigatória ou Comandos de implementação opcional

2.6. Tabela para Leitura dos Contadores, Totalizadores e demais parâmetros do ECF - Comando 26.

A tabela está organizada de forma a conter grupos de leituras agregados por funcionalidade. Cada grupo possui índices para endereçar informações específicas, sendo que o índice 0 significa a leitura de todo o grupo.

Em qualquer caso as informações serão enviadas no buffer de resposta sem máscara e separadas pelo caractere pipe "|".

Grupo  Índice  Buffer de resposta  
1. Contadores Fixos  0. Todo o grupo de contadores fixos  índice|valor|índice|valor... índice|valor| (o índice e o valor de todos os contadores).  
  1. COO - Contador de Operação  índice|valor|  
  2. GNF - Contador Geral Não Fiscal  índice|valor|  
  3. CRO - Contador Reinício de Operação  índice|valor|  
  4. CRZ - Reduções Z  índice|valor|  
  5. CCF -  índice|valor|  
  6. CVC  índice|valor|  
  7. CFD  índice|valor|  
  8. CCD  índice|valor|  
  9. GRG  índice|valor|  
  10. NFC  índice|valor|  
  11. CFC  índice|valor|  
  12. CNC  índice|valor|  
  13. CBC  índice|valor|  
  14. NCN  índice|valor|  
  14. RZR - Reduções restantes  índice|valor|  
  16. CMV  índice|valor|  
  17. CBP  índice|valor|  
2. Contador Relatório Gerencial  0. Todos os Relatórios Gerenciais programados  índice|valor|índice|valor...índice|valor| (o índice e o valor de todos os contadores)  
  1 a 30 - Específico do índice  índice|valor|   (específico do índice solicitado) 
3. Contador e totalizador de Operações Não Fiscais  0. Todos os Não Fiscais programados  índice|contador|valor|...índice|contador|valor|  (o índice, o contador e o valor de todos os contadores). 
  1 a 30 - Específico do índice  índice|contador|valor|  (específico do índice solicitado) 
4. Totalizadores Gerais  0. Todos os totalizadores gerais  índice|valor|índice|valor...índice|valor|  (o índice e o valor de todos os totalizadores) 
  1. GT  índice|valor|  
  2. VB  índice|valor|  
  3. Cancelamentos ICMS  índice|valor|  
  4. Desconto ICMS  índice|valor|  
  5. Cancelamento ISSQN  índice|valor|  
  6. Desconto ISSQN  índice|valor|  
  7. Venda líquida ICMS  índice|valor|  
  8. Acréscimo ICMS  índice|valor|  
  9. Acréscimo ISSQN  índice|valor|  
     
5. Totalizadores ICMS/ISSQN  0. Todos os totalizadores programados  índice|tipo|%|valor... índice|tipo|%|valor|  (o índice, tipo, % e o valor acumulado de todos os totalizadores). 
  1 a 30 - Específico do Índice  índice|tipo|%|valor|  (o índice, tipo, % e o valor acumulado específico do índice solicitado). 
6. Totalizadores F, I, N.  0. Todos os programados  tipo|valor|......|tipo|valor|  (o tipo e valor acumulado de todos os programados) 
  1. F1, I1, N1, FS1, IS1, NS1.  tipo|valor|......|tipo|valor|  (o tipo e valor acumulado do grupo 1) 
  2. F2, I2, N2, FS2, IS2, NS2.  tipo|valor|......|tipo|valor|  (o tipo e valor acumulado do grupo 2) 
  3. F3, I3, N3, FS3, IS3, NS3  tipo|valor|......|tipo|valor|  (o tipo e valor acumulado do grupo 3) 
7. Totalizadores de Meios de Pagamento  0. Todos os programados  Índice|valor|....índice|valor|  (índice e valor acumulado de todos os meios de pagamento programados + troco) 
  1. a 20 - Específico do Índice  Índice|valor|  (índice e valor acumulado específico do índice solicitado) 
  21. Troco  Índice|valor|  
8. Status do Movimento     ddmmaaaa|status|COOi|Gti|  (data do movimento, Status, COO inicial e GT inicial). Status = 0 - Não houve movimento Status = 1 - Com movimento aberto Status = 2 - Redução Pendente 
     
9. Relógio     ddmmaaaahhmmssf  Onde: ddmmaaaa - data do relógio hhmmss - horário do relógio f - flag de verão (V= horário de verão) 
10. Tempo Emitindo-Doc Fiscal/Tempo Operacional     hhmmss|hhmmss|  
11. Tabela de Alíquotas  0. Todas as cadastradas  1. Índice da Alíquota (1 a 30) Se 0:  Índice|tipo|alíquota|. ...índice|tipo|alíquota| Se 1: Índice|tipo|alíquota| 
12. Tabela de Operações Não Fiscais  0. Todas as Cadastradas  1. Índice das Operações Não Fiscais (1 a 30) Se 0: Índice|nome|.......índice|nome|  Se 1: Índice|nome| 
13. Relatório Gerencial  0. Todos os cadastrados  1. Índice do Relatório Gerencial Se 0: Índice|nome|.......índice|nome|  Se 1: Índice|nome| 
14. Meios de Pagamento  0. Todos os meios cadastrados  1. índice do Meio de Pagamento Se 0: Índice|nome|CCD|...índice|nome|CCD|  Se 1: Índice|nome|CCD| 
15. Parâmetros  0. Todo o grupo  Todos os campos separados por pipe "|"  
  1. Marca  Marca  
  2. Modelo  Modelo  
  3. Tipo ECF  Tipo ECF  
  4. Número de série + MF adicional  Número de série + MF adicional  
  5. Número do ECF na Loja  Número do ECF na Loja  
  6. Número MFD  Número MFD  
  7. Número Usuário  Número Usuário  
  8. CNPJ  CNPJ  
  9. IE  IE  
  10. IM  IM  
  11. Moeda  Moeda  
  12. Casas decimais valor  Casas decimais valor  
  13. Casas decimais quantidade  Casas decimais quantidade  
  14. Versão atual software básico  Versão atual software básico  
  15. Razão Social  Razão Social  
  16. Nome Fantasia  Nome Fantasia  
  17. Endereço  Endereço  
  18. Leituras da criptografia do GT  Criptografia do GT  
  19. Parâmetro de ISS habilitado  0 = não habilitado  1 = habilitado 
  20. Versão do EsC-ECF  01.00  
     
16. Status  1. Gaveta  0 = Fechada  1 = Aberta 
  2. Bobina papel  0 - Ok  1 - Pouco Papel 2 - Sem Papel 
  3. Tampa  0 - OK  1 - Aberta 
  4. Modo de Operação  0 - Normal  1 - Intervenção 2 - Em erro 
  5. Contexto  0 - Repouso  10 - Cupom Fiscal Aberto 11 - Cupom Fiscal Subtotalizado 12 - Cupom Fiscal Em pagamento 13 - Cupom Fiscal Pago e Não finalizado 20 - Comprovante Não Fiscal Aberto 21 - Comprovante Não Fiscal Subtotalizado 22 - Comprovante Não Fiscal em Pagamento 23 - Comprovante Não Fiscal Pago e Não Finalizado 30 - CCD Aberto 31 - Estorno de CCD Aberto 32 - Relatório Gerencial Aberto 
17. Dados da RZ gravados na MF  CRZ  * Serão lidas as RZs que estiverem disponíveis. Caso contrário retorna erro. CRZ  Data Movimento (ddmmaaaa) Data da gravação (ddmmaaaahhmmssf) CRO COO inicial (RZ anterior + 1) COO da Redução Número Usuário GT Desconto ICMS Acréscimo ICMS Cancelamentos ICMS Desconto ISSQN Acréscimo ISSQN Cancelamento ISSQN Total acumulador de Não Fiscais Quantidade de acumuladores fiscais parciais Tipo acumulador 
Alíquota 

Base de cálculo 

(Se repete para cada acumulador fiscal) 

Versão do Software básico 

Parâmetro de habilitação de desconto em ISS 

CNPJ 

IE 

IM