Você está aqui: Página Inicial > Legislação > Atos COTEPE/ICMS > 2007 > ATO COTEPE/ICMS 10/07

ATO COTEPE/ICMS 10/07

ATO COTEPE/ICMS Nº 10, DE 28 DE JUNHO DE 2007

·          Publicado no DOU de 03.07.07

 

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

 

 


Protocolo de Comunicação

Parâmetros

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

Velocidade:           38400 57600 ou 115200 bps.

Bits de Dados:       8

Paridade:              Sem paridade
Bits de Parada:             1
Controle e Fluxo:           Nenhum

 

Cabo RS-232

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

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.

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

1

Start Of Heading

Envio de Comando

Resultado de Comando

ENQ

0x05

5

ENQuiry

Solicitação de Status

ACK

0x06

6

ACKnowledge

Aceite de Comando Enviado

WAK

0x11

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

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:

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.

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 d e 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.

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.

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.

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.

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.

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.

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.

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.

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.

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

Especificação dos Pacotes

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

Resposta de sincronismo

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

Formato:

SYN

SEQ

Solicitação de Status

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

Formato:

ENQ

SPR

Comando

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

Formato:

SOH

SE

CMD

EXT

TBC

BCD

CHK

Aceite de Comando Enviado

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

Formato:

ACK

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

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

Resultado de Comando

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

Formato:

SOH

SEQ

CMD

EXT

CAT

RET

TBR

BRS

CHK

 

Fluxos de Comunicação

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).

 

 

 

 

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.

 

 

 

 


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).

 

 


Códigos das Categorias de Retorno

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

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 CCD’s 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. 02Nã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 terceito 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.

Programação

Introdução

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)

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.

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.

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 ECF’s 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 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 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 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.

 

Comandos de Implementação Obrigatóri

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|       

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

 

N

 

1

 

1

 

2

 

2

 

T, S, I, F, N, IS, FS, NS

 

Í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)

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

Conteúdo

Valor do subtotal

N

1

13

 

 

Exemplo do Comando:

     3 2|       

(Cancela item número 2)

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 CCD’s 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

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

N

1

1

0 = Não imprime adicional

1 = Imprime adicional

Aciona Guilhotina

N

1

1

0 = Não aciona Guilhotina

1 = Aciona Guilhotina

Mensagem Promocional

H

0

*

 

 

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

 

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

 

Seqüência do pagamento*

N

1

2

 

Indicador do meio de pagamento*

N

1

2

 

Valor*

N

1

13

 

Número de Parcelas*

N

1

2

 

               

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

 

Exemplo do Comando:

     5 0|1|Mensagem Promocional|

Abertura de Gaveta

Abre a gaveta.

Comando:             6 (0x06)

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

Parâmetros:                      Nenhum

Exemplo do Comando:

      6          

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

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

N

0

2

Seqüência do pagamento no cupom ou comprovante

Índice do meio de pagamento

N

1

2

De 2 a 30

Número da Parcela

N

0

2

 

CNPJ

A

0

20

 

Nome

A

0

30

 

Endereço

A

0

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 CCD’s serão emitidos em ordem crescente de seqüência e parcela.

 

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

Seqüência do pagamento

N

1

2

 

Número da Parcela

N

1

2

 

Número de parcelas faltantes

N

1

2

 

 

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).

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

H

0

*

 

     * 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|   

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

N

1

1

0 = Não aciona Guilhotina

1 = Aciona Guilhotina

 

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

 

 

Exemplo do Comando:

     10 1|     

Fecha o documento e aciona guilhotina.

Aciona Guilhotina

Aciona a guilhotina

Comando:             11 (0x0B)

Modo:                   Operação Normal/MIT.

Parâmetros:                      Nenhum

Exemplo do Comando:

     11

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

N

1

2

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

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:

     12 5

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

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

N

1

6

 

CNPJ

A

0

20

 

Nome

A

0

30

 

Endereço

A

0

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

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

Seqüência do pagamento

N

1

2

 

Número da Parcela

N

1

2

 

 

Exemplo do Comando:

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

Emissão de Segunda Via de CCD

Emite a 2 a 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

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

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|

 

 

 

R egistro de Item em Comprovante Não Fisca L

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

N

1

2

03 a 30

Valor

N

1

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

N

1

13

 

Subtotal

N

1

13

 

 

Exemplo do Comando:

     17 3|1000 E ncerramento 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

N

1

1

0 = Não aciona Guilhotina

1 = Aciona Guilhotina

Mensagem Promocional

H

0

*

 

* 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

N

1

6

 

Data/Hora atual

D

15

16

 

Valor da venda Bruta

N

1

14

 

Seqüência do pagamento*

N

1

2

 

Indicador do meio de pagamento*

N

1

2

 

Valor*

N

1

13

 

Número de Parcelas*

N

1

2

 

 

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

Exemplo do Comando:

     18 1|Mensagem Promocional|

 

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

N

1

2

 

Índice do meio de pagamento a ser somado

N

1

2

 

Valor

N

1

13

 

Mensagem

H

0

*

 

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

 

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

Seqüência do pagamento*

N

1

2

 

Indicador do meio de pagamento*

N

1

2

 

Valor*

N

1

13

 

Número de Parcelas*

N

1

2

 

 

     * 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

 

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

N

1

1

0 – Imprime no ECF

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 (*)

H

1

*

 

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

 

Exemplo do Comando:

     20 0|

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

N

1

8

 

Hora

N

1

6

 

 

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

N

8

8

ddmmaaaa

 

Exemplo do Comando:

     21 22122006|1040|

 

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

N

1

1

0 – Imprime no ECF

1 – Gera txt pela serial

Tipo

N

1

1

1 – Analítico

2 - Simplificado

Modo

N

1

1

1 – Data

2 - CRZ

Referencia inicial (Data ou CRZ)

N

1

8

 

Referencia final (Data ou CRZ)

N

1

8

 

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 (*)

H

1

*

 

 

(*) 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

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

N

1

1

0 – Sangria

1 – Fundo de Troco

Valor

N

1

13

 

Mensagem Suplementar

H

0

*

 

 

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:

23 0|10000| Mensagem suplementar |

(Sangria de 100,00)

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

A

1