Plataforma Fiscal Varejo
Índice
1. Integrando a Plataforma Fiscal através da APIOne. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2. O que é a a APIOne? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
3. Como utilizá-la para Integração? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
4. Vantagens ao utilizar a APIOne? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
5. Usando a APIOne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
5.1. Integração da Plataforma Fiscal usando a BemaAPIOne + BemaOne.dll . . . . . . . . . . . . . . . . . . . . 3
6. O que é a BemaOne.dll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
7. Declaração das funções da BemaOne.dll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
7.1.JAVA(JNA) ........................................................................... 5
7.2.JAVA(JNI) ............................................................................ 5
7.3.C# ................................................................................... 6
8. Funções da biblioteca BemaOne.dll: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
8.1. Bematech_Fiscal_AbrirNota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
8.2. Bematech_Fiscal_EstornarNota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
8.3. Bematech_Fiscal_FecharNota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
8.4. Bematech_Fiscal_VenderItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
8.5. Bematech_Fiscal_EstornarVendaItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
8.6. Bematech_Fiscal_EfetuarPagamento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
8.7. Bematech_Fiscal_EstornarPagamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
8.8. Bematech_Fiscal_ListarNotas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
8.9. Bematech_Fiscal_InutilizarNumeracao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
8.10. Bematech_Fiscal_ConsultarNota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
8.11. Bematech_Fiscal_EnviarNotaEmail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
8.12. Bematech_Fiscal_CancelarNota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
8.13. Bematech_Fiscal_ObterStatusImpressora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
8.14. Bematech_Fiscal_ImprimirTextoLivre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
8.15. Bematech_Fiscal_ImprimirDocumentoFiscal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
8.16. Bematech_Fiscal_AcionarGaveta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
8.17. Bematech_Fiscal_ObterInformacoesSistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
8.18. Bematech_Fiscal_ListarConfiguracoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
8.19. Bematech_EfetuarConfiguracoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
8.20. Bematech_Fiscal_ObterInformacoesContingencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
8.21. Bematech_Fiscal_TrocaEstadoContingencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
9. Fluxos de operação usando a BemaOne.dll + APIOne. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
9.1. Venda Simples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
9.2. Obter informações do Sistema.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
10. Usando Serviços RestFul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
10.1. O que são Serviços RestFul? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
10.2. Entendendo o Funcionamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
10.3. Lista de Serviços RestFul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
11. Recursos da API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
11.1. Abrir Cupom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
11.2. Adicionar Item de venda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
11.3. Estornar Item de venda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
11.4. Adicionar Pagamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
11.5. Estornar Pagamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
11.6. Fechar Cupom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
11.7. Estornar Cupom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
11.8. Listar Documentos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
11.9. Listar Documentos (Paginada) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
11.10. Buscar documento por ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
11.11. Cancelar um documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
11.12. Enviar documento por email (ID) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
11.13. Buscar documento através de série/número . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
11.14. Enviar documento por email (série/número) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
11.15. Consultar status de uma impressora Bematech . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
11.16. Impressão de documento genérico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
11.17. Impressão de DANFE (Chave de acesso) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
11.18. Impressão de DANFE (Série/Número). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
11.19. Realizar abertura de gaveta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
11.20. Informações sobre o sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
11.21. Listagem de configurações do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
11.22. Realizar alteração de configurações do Fiscal Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
11.23. Localizar configuração específica do Fiscal Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
11.24. Obter informações sobre contingência . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
11.25. Alterar o modo de contingência . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
12. Exemplos JSON NFC-E. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
12.1. Método: GET (Fiscal Manager NFC-E e SAT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
12.2. Método: POST (Utilizando Fiscal Manager NFC-e) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
12.3. Método: DELETE (Utilizando Fiscal Manager NFC-E) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
13. Exemplos JSON SAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
13.1. Método: GET (Fiscal Manager NFC-E e SAT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
13.2. Método: POST (Utilizando Fiscal Manager SAT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
13.3. Método: POST (Utilizando Fiscal Manager SAT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
13.4. Método: DELETE (Utilizando Fiscal Manager SAT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
14. Fluxos de operação usando a integração direta através da APIOne. . . . . . . . . . . . . . . . . . . . . . . . . . 51
14.1. Venda Simples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
14.2. Obter informações do Sistema.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
15. Plataforma Fiscal.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
15.1. Componentes da plataforma fiscal: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
15.2. Pré-Requisitos da Plataforma Fiscal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
16.LEGISLAÇÃO........................................................................... 77
17.TERMOSEABREVIAÇÕES ............................................................... 78
18.CONTATOESUPORTETÉCNICO.......................................................... 78










  1. Integrando a Plataforma Fiscal através da APIOne.


  1. O que é a a APIOne?


A APIOne é ferramenta que integra a Plataforma Fiscal com a sua aplicação de automação comercial. Nossa API conta com um amplo conjunto de funções que permite a emissão de documentos fiscais (NFC-e e CF-e). Trabalhando com a tecnologia JSON, a integração de sua aplicação com a nossa plataforma fiscal agora pode ser executada de maneira direta, sem a necessidade de uso de middleware para interface com o Fiscal Manager. Ao utilizar a API você terá mais controle sobre o processo de emissão de notas, trazendo benefícios para a gestão de informações dentro da aplicação.





3. Como utilizá-la para Integração?
Por ser uma ferramenta versátil, você pode usar a API de forma direta, consumindo os recursos disponibilizados por ela, ou ainda se preferir você também pode usar a API através da BemaOne.dll, esta, por sua vez, atuará diretamente como uma interface entre o seu software e a Plataforma Fiscal. a API.

O uso da BemaOne.dll lhe permite trabalhar com a APIOne, mesmo em
linguagens mais antigas,


Usar a APIOne reduz o número de componentes de integração, facilita a atualização e a manutenção em sua aplicação e também melhora a performance na emissão de documentos uma vez que toda a integração utilizará um componente único.
No gráfico abaixo apresentamos os componentes para integração através da API.



























Figure 1. Integração através da API.

Além da APIOne, a Plataforma Fiscal também oferece outros métodos
de integração como o modo compatibilidade apresentado no diagrama gráfico abaixo:



































Figure 2. Integração através do modo compatibilidade.
Compare os gráficos e veja a diferença entre os métodos de integração.






  1. Vantagens ao utilizar a APIOne?











5. Usando a APIOne
Agora que já apresentamos a você as vantagens e a arquitetura da nova API, vamos ver em detalhes como iniciar a integração da Plataforma Fiscal através da APIOne.



5.1. Integração da Plataforma Fiscal usando a BemaAPIOne + BemaOne.dll
Neste método de integração a dll torna-se uma camada intermediária entre a sua aplicação e o Fiscal Manager e a API.

 

Antes de iniciar a integração lembre-se, o Fiscal Manager deve estar instalado e

 

 

configurado corretamente!

 

 

 

 

Para informações sobre o processo de instalação do Fiscal Manager, consulte: Pré-
Requisitos da Plataforma Fiscal + Instalação da Plataforma Fiscal (Fiscal Manager)


Uma vez que o Fiscal Manager esteja instalado e configurado corretamente, as rotinas de integração podem ser iniciadas.

A BemaOne.dll é uma camada intermediária entre seu software e o Fiscal Manager.





6. O que é a BemaOne.dll
A BemaOne.dll é um middleware intermediário que através de suas funções fará a integração entre a sua aplicação e o Fiscal Manager. Neste modelo de integração é a dll (através de seu conjunto de funções) quem consome os serviços disponibilizados na API.
O Fiscal Manager ao ser executado "sobe" também todas os serviços da API.



Vale lembrar que essa biblioteca foi desenvolvida utilizando um padrão de comunicação já conhecido no mercado de automação comercial, de forma que a sua utilização assemelha-se bastante a outras soluções já conhecidas do mercado como a Bemafi32.dll a BemaNFC-e.dll, porém com o diferencial que é a integração direta com a API.

Para

baixar

 

a

biblioteca

BemaOne.dll

acesse

nosso

Portal:

 

http://suporte.totvs.com.br

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



7. Declaração das funções da BemaOne.dll
Antes de conhecermos em detalhes as funções da biblioteca, listamos a declaração das funções da dll em alguns exemplos de linguagens, como Delphi, Java e etc.

A BemaOne.dll está diretamente vinculada a APIOne portanto, o Fiscal Manager
(NFC-e ou SAT) deve estar atualizado para o correto funcionamento da Plataforma Fiscal.
7.1. JAVA (JNA)
Declarando as funções em Java (JNA)

package nome_do_pacote;
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.ptr.PointerByReference;
public interface Bematech extends Library {
public Bematech instance = (Bematech) Native.loadLibrary("BemaOne32.dll", Bematech.class);
public String Bematech_Fiscal_AbrirNota (String dados); public String Bematech_Fiscal_EstornarNota ();
public String Bematech_Fiscal_FecharNota (String dados);
public String Bematech_Fiscal_VenderItem (String dados);
public String Bematech_Fiscal_EstornarVendaItem (String dados);
public String Bematech_Fiscal_EfetuarPagamento (String dados);
public String Bematech_Fiscal_EstornarPagamento (String dados);
public String Bematech_Fiscal_ListarNotas (String dados);
public String Bematech_Fiscal_InutilizarNumeracao (String dados);
public String Bematech_Fiscal_ConsultarNota (String dados);
public String Bematech_Fiscal_EnviarNotaEmail (String dados);
public String Bematech_Fiscal_CancelarNota (String dados);
public String Bematech_Fiscal_ObterStatusImpressora ();
public String Bematech_Fiscal_ImprimirTextoLivre (String dados); public String Bematech_Fiscal_ImprimirDocumentoFiscal (String dados); public String Bematech_Fiscal_AcionarGaveta (String dados);
public String Bematech_Fiscal_ObterInformacoesSistema (); public String Bematech_Fiscal_ListarConfiguracoes ();
public String Bematech_Fiscal_EfetuarConfiguracoes (String dados); public String Bematech_Fiscal_ObterInformacoesContingencia (); public String Bematech_Fiscal_TrocarEstadoContingencia ();
}





7.2. JAVA (JNI)
Declarando as funções em JAVA (JNI)

package nome_do_pacote;
public class Bematech {
public static native int AlteraSimboloMoeda(String simboloMoeda); public static native String Bematech_Fiscal_AbrirNota (String dados); public static native String Bematech_Fiscal_EstornarNota ();
public static native String Bematech_Fiscal_FecharNota (String dados);
public static native String Bematech_Fiscal_VenderItem (String dados);
public static native String Bematech_Fiscal_EstornarVendaItem (String dados);
public static native String Bematech_Fiscal_EfetuarPagamento (String dados);
public static native String Bematech_Fiscal_EstornarPagamento (String dados);
public static native String Bematech_Fiscal_ListarNotas (String dados);
public static native String Bematech_Fiscal_InutilizarNumeracao (String dados);
public static native String Bematech_Fiscal_ConsultarNota (String dados);
public static native String Bematech_Fiscal_EnviarNotaEmail (String dados);
public static native String Bematech_Fiscal_CancelarNota (String dados);
public static native String Bematech_Fiscal_ObterStatusImpressora ();
public static native String Bematech_Fiscal_ImprimirTextoLivre (String dados); public static native String Bematech_Fiscal_ImprimirDocumentoFiscal (String
dados);
public static native String Bematech_Fiscal_AcionarGaveta (String dados); public static native String Bematech_Fiscal_ObterInformacoesSistema (); public static native String Bematech_Fiscal_ListarConfiguracoes ();
public static native String Bematech_Fiscal_EfetuarConfiguracoes (String dados
);
public static native String Bematech_Fiscal_ObterInformacoesContingencia (); public static native String Bematech_Fiscal_TrocarEstadoContingencia ();
static
{
String OSName = System.getProperty("os.name"); OSName = OSName.toLowerCase();
System.loadLibrary("BemaOne32");
}
}





7.3. C#
Declarando as funções em C#

\[DllImport(
"BemaOne32.dll")]
public static extern
string Bematech_Fiscal_AbrirNota(string dados); \[DllImport(
"BemaOne32.dll")]
public static extern
string Bematech_Fiscal_EstornarNota(); \[DllImport(
"BemaOne32.dll")]
public static extern
string Bematech_Fiscal_FecharNota(string dados); \[DllImport(
"BemaOne32.dll")]
public static extern
string Bematech_Fiscal_VenderItem(string dados); \[DllImport(
"BemaOne32.dll")]
public static extern
string Bematech_Fiscal_EstornarVendaItem(string dados); \[DllImport(
"BemaOne32.dll")]
public static extern
string Bematech_Fiscal_EfetuarPagamento(string dados); \[DllImport(
"BemaOne32.dll")]
public static extern
string Bematech_Fiscal_EstornarPagamento(string dados); \[DllImport(
"BemaOne32.dll")]
public static extern
string Bematech_Fiscal_ListarNotas(string dados); \[DllImport(
"BemaOne32.dll")]
public static extern
string Bematech_Fiscal_InutilizarNumeracao(string dados); \[DllImport(
"BemaOne32.dll")]
public static extern
string Bematech_Fiscal_ConsultarNota(string dados); \[DllImport(
"BemaOne32.dll")]
public static extern
string Bematech_Fiscal_EnviarNotaEmail(string dados); \[DllImport(
"BemaOne32.dll")]
public static extern
string Bematech_Fiscal_CancelarNota(string dados); \[DllImport(
"BemaOne32.dll")]
public static extern
string Bematech_Fiscal_ObterStatusImpressora(); \[DllImport(
"BemaOne32.dll")]
public static extern
string Bematech_Fiscal_ImprimirTextoLivre(string dados); \[DllImport(
"BemaOne32.dll")]
public static extern
string Bematech_Fiscal_ImprimirDocumentoFiscal(string dados); \[DllImport(
"BemaOne32.dll")]
public static extern
string Bematech_Fiscal_AcionarGaveta(string dados); \[DllImport(
"BemaOne32.dll")]
public static extern
string Bematech_Fiscal_ObterInformacoesSistema(); \[DllImport(
"BemaOne32.dll")]
public static extern
string Bematech_Fiscal_ListarConfiguracoes(); \[DllImport(
"BemaOne32.dll")]
public static extern
string Bematech_Fiscal_EfetuarConfiguracoes(string dados); \[DllImport(
"BemaOne32.dll")]
public static extern
string Bematech_Fiscal_ObterInformacoesContingencia(); \[DllImport(
"BemaOne32.dll")]
public static extern string Bematech_Fiscal_TrocarEstadoContingencia();
Declarando as funções em Delphi

function Bematech_Fiscal_AbrirNota (dados:String) : PChar ; stdcall; External 'BemaOne32.dll';
function Bematech_Fiscal_EstornarNota () : PChar ; stdcall; External 'BemaOne32.dll';
function Bematech_Fiscal_FecharNota (dados:String) : PChar ; stdcall; External 'BemaOne32.dll';
function Bematech_Fiscal_VenderItem (dados:String) : PChar ; stdcall; External 'BemaOne32.dll';
function Bematech_Fiscal_EstornarVendaItem (dados:String) : PChar ; stdcall; External 'BemaOne32.dll';
function Bematech_Fiscal_EfetuarPagamento (dados:String) : PChar ; stdcall; External 'BemaOne32.dll';
function Bematech_Fiscal_EstornarPagamento (dados:String) : PChar ; stdcall; External 'BemaOne32.dll';
function Bematech_Fiscal_ListarNotas (dados:String) : PChar ; stdcall; External 'BemaOne32.dll';
function Bematech_Fiscal_InutilizarNumeracao (dados:String) : PChar ; stdcall; External 'BemaOne32.dll';
function Bematech_Fiscal_ConsultarNota (dados:String) : PChar ; stdcall; External 'BemaOne32.dll';
function Bematech_Fiscal_EnviarNotaEmail (dados:String) : PChar ; stdcall; External 'BemaOne32.dll';
function Bematech_Fiscal_CancelarNota (dados:String) : PChar ; stdcall; External 'BemaOne32.dll';
function Bematech_Fiscal_ObterStatusImpressora () : PChar ; stdcall; External 'BemaOne32.dll';
function Bematech_Fiscal_ImprimirTextoLivre (dados:String) : PChar ; stdcall; External 'BemaOne32.dll';
function Bematech_Fiscal_ImprimirDocumentoFiscal (dados:String) : PChar ; stdcall; External 'BemaOne32.dll';
function Bematech_Fiscal_AcionarGaveta (dados:String) : PChar ; stdcall; External 'BemaOne32.dll';
function Bematech_Fiscal_ObterInformacoesSistema () : PChar ; stdcall; External 'BemaOne32.dll';
function Bematech_Fiscal_ListarConfiguracoes () : PChar ; stdcall; External 'BemaOne32.dll';
function Bematech_Fiscal_EfetuarConfiguracoes (dados:String) : PChar ; stdcall; External 'BemaOne32.dll';
function Bematech_Fiscal_ObterInformacoesContingencia () : PChar ; stdcall; External 'BemaOne32.dll';
function Bematech_Fiscal_TrocarEstadoContingencia () : PChar ; stdcall; External 'BemaOne32.dll';
Declarando as funções em Visual Basic.

private Declare function Bematech_Fiscal_AbrirNota Lib "BemaOne32.dll" (ByVal dados as string) as string
private Declare function Bematech_Fiscal_EstornarNota Lib "BemaOne32.dll"() as string private Declare function Bematech_Fiscal_FecharNota Lib "BemaOne32.dll"(ByVal dados as string) as string
private Declare function Bematech_Fiscal_VenderItem Lib "BemaOne32.dll"(ByVal dados as string) as string
private Declare function Bematech_Fiscal_EstornarVendaItem Lib "BemaOne32.dll"(ByVal dados as string) as string
private Declare function Bematech_Fiscal_EfetuarPagamento Lib "BemaOne32.dll"(ByVal dados as string) as string
private Declare function Bematech_Fiscal_EstornarPagamento Lib "BemaOne32.dll"(ByVal dados as string) as string
private Declare function Bematech_Fiscal_ListarNotas Lib "BemaOne32.dll"(ByVal dados as string) as string
private Declare function Bematech_Fiscal_InutilizarNumeracao Lib "BemaOne32.dll"(ByVal dados as string) as string
private Declare function Bematech_Fiscal_ConsultarNota Lib "BemaOne32.dll"(ByVal dados as string) as string
private Declare function Bematech_Fiscal_EnviarNotaEmail Lib "BemaOne32.dll"(ByVal dados as string) as string
private Declare function Bematech_Fiscal_CancelarNota Lib "BemaOne32.dll"(ByVal dados as string) as string
private Declare function Bematech_Fiscal_ObterStatusImpressora Lib "BemaOne32.dll"() as string
private Declare function Bematech_Fiscal_ImprimirTextoLivre Lib "BemaOne32.dll"(ByVal dados as string) as string
private Declare function Bematech_Fiscal_ImprimirDocumentoFiscal Lib "BemaOne32.dll"(ByVal dados as string) as string
private Declare function Bematech_Fiscal_AcionarGaveta Lib "BemaOne32.dll"(ByVal dados as string) as string
private Declare function Bematech_Fiscal_ObterInformacoesSistema Lib "BemaOne32.dll"() as string
private Declare function Bematech_Fiscal_ListarConfiguracoes Lib "BemaOne32.dll"() as string
private Declare function Bematech_Fiscal_EfetuarConfiguracoes Lib "BemaOne32.dll"(ByVal dados as string) as string
private Declare function Bematech_Fiscal_ObterInformacoesContingencia Lib "BemaOne32.dll"() as string
private Declare function Bematech_Fiscal_TrocarEstadoContingencia Lib "BemaOne32.dll"() as string




8. Funções da biblioteca BemaOne.dll:
Todas as funções presentes na dll estão listadas abaixo, apresentando uma breve descrição e
também exemplos com o conteúdo do JSON utilizado em cada uma delas.

 

Todas as funções listadas abaixo, utilizam em seus parâmetros de envio e/ou

 

 

retorno o padrão JSON dentro de uma variável do tipo String.

 

 

 

 

 

 

 



8.1. Bematech_Fiscal_AbrirNota

Descrição:

Utilize esta função para iniciar a emissão de

 

uma nova nota.

 

 

Tipo:

String.

 

 

Exemplo:

Bematech_Fiscal_AbrirNota(dados)

 

 

Observações:

dados é uma string em formato JSON contendo

 

os parâmetros listados abaixo:

 

 

Retorno:

String de retorno em formato JSON.

 

 


Parâmetros de entrada da função.

{
"versao": "string",
"configuracao": {
"imprimir": false,
"email": false
},
"identificacao": {
"cuf": "string",
"cnf": "string",
"natOp": "string",
"indPag": 0,
"mod": "string",
"serie": "string",
"nnf": "string",
"dhEmi": "string",
"tpNF": "string",
"idDest": 0,
"tpImp": 0,
"tpEmis": 0,
"cdv": 0,
"tpAmb": 0,
"finNFe": 0,
"indFinal": 0,
"indPres": 0,
"procEmi": 0,
"verProc": "string",
"cMunFG": "string"
},
"emitente": {
"cnpj": "string",
"endereco": {
"nro": "string",
"uf": "string",
"cep": "string",
"fone": "string",
"xBairro": "string",
"xLgr": "string",
"cMun": "string",
"cPais": "string",
"xPais": "string",
"xMun": "string"
},
"ie": "string",
"crt": 0,
"xNome": "string",
"xFant": "string"
},
"destinatario": {
"cpf": "string",
"endereco": {
"nro": "string",
"uf": "string",
"cep": "string",
"fone": "string",
"xBairro": "string",
"xLgr": "string",
"cMun": "string",
"cPais": "string",
"xPais": "string",
"xMun": "string"
},
"indIEDest": 0,
"email": "string",
"xNome": "string"
}
}

Parâmetros de retorno da função.

{
"sucesso": false,
"codigo": 0,
"descricao": "string",
"numeroSessao": "string"
}
8.2. Bematech_Fiscal_EstornarNota

Descrição:

Esta função executa o estorno da ultima nota

 

emitida.

 

 

Tipo:

String.

 

 

Exemplo:

Bematech_Fiscal_EstornarNota()

 

 

Observações:

Obs: Esta funçao não possui parâmetros de

 

envio.

 

 

Retorno:

String de retorno em formato JSON.

 

 


Parâmetros de retorno da função.

{
"sucesso": false,
"codigo": 0,
"descricao": "string",
"numeroSessao": "string"
}





8.3. Bematech_Fiscal_FecharNota

Descrição:

Utilize esta função para fechar, ou seja concluir

 

a emissão de uma nota.

 

 

Tipo:

String.

 

 

Exemplo:

Bematech_FecharNota(dados)

 

 

Observações:

dados é uma string em formato JSON contendo

 

os parâmetros listados abaixo:

 

 

Retorno:

String de retorno em formato JSON.

 

 

Parâmetros de entrada da função.

{
"total": {
"icmsTotal": {
"vbc": 0.00,
"vicms": 0.00,
"vicmsDeson": 0.00,
"vbcst": 0.00,
"vst": 0.00,
"vii": 0.00,
"vipi": 0.00,
"vpis": 0.00,
"vcofins": 0.00,
"vnf": 0.00,
"vtotTrib": 0.00,
"vdesc": 0.00,
"vprod": 0.00,
"voutro": 0.00,
"vseg": 0.00,
"vfrete": 0.00
}
},
"informacaoAdicional": {
"infCpl": "string",
"observacoesContribuintes"

: \[

{
"xtexto": "string",
"xcampo": "string"
}
]
}
}

Parâmetros de retorno da função.

{
"sucesso": false,
"codigo": 0,
"descricao": "string",
}





8.4. Bematech_Fiscal_VenderItem

Descrição:

Utilize esta função para o registro de um item

 

dentro na nota.

 

 


Tipo:

String.

 

 

Exemplo:

Bematech_Fiscal_VenderItem(dados)

 

 

Observações:

dados é uma string em formato JSON contendo

 

os parâmetros listados abaixo:

 

 

Retorno:

String de retorno em formato JSON.

 

 


Parâmetros de entrada da função.

{
"nItem": 0,
"produto": {
"cProd": "string",
"cean": "string",
"xProd": "string",
"ncm": "string",
"nve": "string",
"extipi": "string",
"cfop": "string",
"uCom": "string",
"qCom": "string",
"vUnCom": 0,
"vProd": 0,
"indRegra": 0,
"ceanTrib": "string",
"uTrib": "string",
"qTrib": 0,
"vUnTrib": "string",
"vFrete": 0,
"vSeg": 0,
"vDesc": 0,
"vOutro": 0,
"vItem": 0,
"vRatDesc": 0,
"vRatAcr": 0,
"indTot": 0,
"cest": "string",
"declaracoesImportacao"

: \[

{
"ndi": "string",
"ddi": "2016-08-23T20:24:30.570Z",
"xLocDesemb": "string",
"ufDesemb": "string",
"dDesemb": "2016-08-23T20:24:30.570Z",
"tpViaTransp": 0,
"vafrmm": 0,
"tpIntermedio": 0,
"cnpj": "string",
"ufTerceiro": "string",
"cExportador": "string",
"adicoes"
: \[

{
"nAdicao": 0,
"nSeqAdic": 0,
"cFabricante": "string",
"vDescDI": 0,
"nDraw": 0
}
]
}
],
"detsExportacao"
: \[

{
"nDraw": 0,
"exportacaoIndireta": {
"nre": "string",
"chNFe": "string",
"qExport": 0
}
}
],
"xPed": "string",
"nItemPed": "string",
"nfci": "string",
"veiculo": {
"tpOp": 0,
"chassi": "string",
"cCor": "string",
"xCor": "string",
"pot": "string",
"cilin": "string",
"pesoL": "string",
"pesoB": "string",
"nSerie": "string",
"tpComb": "string",
"nMotor": "string",
"cmt": "string",
"dist": "string",
"anoMod": 0,
"anoFab": 0,
"tpPint": "string",
"tpVeic": 0,
"espVeic": 0,
"vin": "string",
"condVeic": 0,
"cMod": "string",
"cCorDENATRAN": 0,
"lota": 0,
"tpRest": 0
},
"medicamentos"
: \[

{
"nLote": "string",
"qLote": 0,
"dFab": "2016-08-23T20:24:30.570Z",
"dVal": "2016-08-23T20:24:30.570Z",
"vpmc": 0
}
],
"armamentos"
: \[

{
"tpArma": 0,
"nSerie": "string",
"nCano": "string",
"descr": "string"
}
],
"combustivel": {
"cProdANP": "string",
"pMixGN": 0,
"codif": "string",
"qTemp": 0,
"ufCons": "string",
"cide": {
"qbcProd": 0,
"vAliqProd": 0,
"vcide": 0
},
"encerrante": {
"nBico": "string",
"nBomba": "string",
"nTanque": "string",
"vEncIni": "string",
"vEncFin": "string"
}
},
"nrecopi": "string",
"obsFiscoDetalhamento"
: \[

{
"getxCampoDet": "string",
"getxTextoDet": "string"
}
]
},
"imposto": {
"vTotTrib": 0,
"icms": {
"icms00": {
"orig": 0,
"cst": "string",
"modBC": 0,
"vbc": 0,
"picms": 0,
"vicms": 0
},
"icms10": {
"orig": 0,
"cst": "string",
"modBC": 0,
"vbc": 0,
"picms": 0,
"vicms": 0,
"modBCST": 0,
"pmvast": 0,
"pRedBCST": 0,
"vBCST": 0,
"picmsst": 0,
"vicmsst": 0
},
"icms20": {
"orig": 0,
"cst": "string",
"modBC": 0,
"vbc": 0,
"picms": 0,
"vicms": 0,
"pRedBC": 0,
"vicmsDeson": 0,
"motDesICMS": 0
},
"icms30": {
"orig": 0,
"cst": "string",
"modBC": 0,
"vbc": 0,
"picms": 0,
"vicms": 0,
"modBCST": 0,
"pmvast": 0,
"pRedBCST": 0,
"vBCST": 0,
"picmsst": 0,
"vicmsst": 0,
"vicmsDeson": 0,
"motDesICMS": 0
},
"icms40": {
"orig": 0,
"cst": "string",
"vicmsDeson": 0,
"motDesICMS": 0
},
"icms41": {
"orig": 0,
"cst": "string",
"vicmsDeson": 0,
"motDesICMS": 0
},
"icms50": {
"orig": 0,
"cst": "string",
"vicmsDeson": 0,
"motDesICMS": 0
},
"icms51": {
"orig": 0,
"cst": "string",
"modBC": 0,
"vbc": 0,
"picms": 0,
"vicms": 0,
"vicmsDeson": 0,
"motDesICMS": 0,
"pRedBCST": 0,
"vicmsOp": 0,
"pDif": 0,
"vicmsDif": 0
},
"icms60": {
"orig": 0,
"cst": "string",
"vbcstRet": 0,
"vicmsstRet": 0
},
"icms70": {
"orig": 0,
"cst": "string",
"modBC": 0,
"vbc": 0,
"picms": 0,
"vicms": 0,
"modBCST": 0,
"pmvast": 0,
"pRedBCST": 0,
"vBCST": 0,
"picmsst": 0,
"vicmsst": 0,
"vicmsDeson": 0,
"motDesICMS": 0,
"pRedBC": 0
},
"icms90": {
"orig": 0,
"cst": "string",
"modBC": 0,
"vbc": 0,
"picms": 0,
"vicms": 0,
"modBCST": 0,
"pmvast": 0,
"pRedBCST": 0,
"vBCST": 0,
"picmsst": 0,
"vicmsst": 0,
"vicmsDeson": 0,
"motDesICMS": 0,
"pRedBC": 0
},
"icmsPart": {
"orig": 0,
"cst": "string",
"modBC": 0,
"vbc": 0,
"picms": 0,
"vicms": 0,
"modBCST": 0,
"pmvast": 0,
"pRedBCST": 0,
"vBCST": 0,
"picmsst": 0,
"vicmsst": 0,
"pRedBC": 0,
"pbcOp": 0,
"ufst": "string"
},
"icmsst": {
"orig": 0,
"cst": "string",
"vbcstRet": "string",
"vicmsstRet": "string",
"vbcstDest": "string",
"vicmsstDest": "string"
},
"icms101": {
"orig": 0,
"csosn": 0,
"pCredSN": 0,
"vCredICMSSN": 0
},
"icms102": {
"orig": 0,
"csosn": 0
},
"icms201": {
"orig": 0,
"csosn": 0,
"modBCST": 0,
"pmvast": 0,
"pRedBCST": 0,
"vbcst": 0,
"picmsst": 0,
"vicmsst": 0,
"pCredSN": 0,
"vCredICMSSN": 0
},
"icms202": {
"orig": 0,
"csosn": 0,
"modBCST": 0,
"pmvast": 0,
"pRedBCST": 0,
"vbcst": 0,
"picmsst": 0,
"vicmsst": 0
},
"icms500": {
"orig": 0,
"csosn": 0,
"vbcstRet": 0,
"vicmsstRet": 0
},
"icms900": {
"orig": 0,
"csosn": 0,
"modBC": 0,
"vbc": 0,
"pRedBC": 0,
"picms": 0,
"vicms": 0,
"modBCST": 0,
"pmvast": 0,
"pRedBCST": 0,
"vbcst": 0,
"picmsst": 0,
"vicmsst": 0,
"pCredSN": 0,
"vCredICMSSN": 0
}
},
"ipi": {
"clEnq": "string",
"cnpjProd": "string",
"cSelo": "string",
"qSelo": 0,
"cEnq": "string",
"ipiTrib": {
"cst": "string",
"vbc": 0,
"pipi": 0,
"qUnid": 0,
"vUnid": 0,
"vipi": 0
},
"ipint": {
"cst": "string"
}
},
"ii": {
"vbc": 0,
"vDespAdu": 0,
"vii": 0,
"viof": 0
},
"pis": {
"pisAliq": {
"cst": "string",
"vbc": 0,
"ppis": 0,
"vpis": 0
},
"pisQtde": {
"cst": "string",
"qbcProd": 0,
"vAliqProd": 0,
"vpis": 0
},
"pisnt": {
"cst": "string"
},
"pisOutr": {
"cst": "string",
"vbc": 0,
"ppis": 0,
"qbcProd": 0,
"vAliqProd": 0,
"vpis": 0
},
"pissn": {
"cst": "string"
}
},
"pisst": {
"vbc": 0,
"ppis": 0,
"qbcProd": 0,
"vAliqProd": 0,
"vpis": 0
},
"cofins": {
"cofinsAliq": {
"cst": "string",
"vbc": 0,
"pcofins": 0,
"vcofins": 0
},
"cofinsQtde": {
"cst": "string",
"qbcProd": 0,
"vAliqProd": 0,
"vcofins": 0
},
"cofinsnt": {
"cst": "string"
},
"cofinsOutr": {
"cst": "string",
"vbc": 0,
"pcofins": 0,
"qbcProd": 0,
"vAliqProd": 0,
"vcofins": 0
}
},
"cofinsst": {
"vbc": 0,
"pcofins": 0,
"qbcProd": 0,
"vAliqProd": 0,
"vcofins": 0
},
"issqn": {
"vbc": 0,
"vAliq": 0,
"vissqn": 0,
"cMunFG": 0,
"cListServ": "string",
"vDeducao": 0,
"vOutro": 0,
"vDescIncond": 0,
"vDescCond": 0,
"vissRet": 0,
"indISS": 0,
"cServico": "string",
"cMun": 0,
"cPais": 0,
"nProcesso": "string",
"indIncentivo": 0,
"cNatOp": "string"
},
"vItem12741": "string"
},
"impostoDevolvido": {
"pDevol": 0,
"ipiDevolvido": {
"vipiDevol": "string"
}
},
"infAdProd": "string"
}

Parâmetros de retorno da função.

{
"sucesso": false,
"codigo": 0,
"descricao": "string"
}





8.5. Bematech_Fiscal_EstornarVendaItem

Descrição:

Utilize esta função para estornar itens

 

registrados para a venda.

 

 

Tipo:

String.

 

 

Exemplo:

Bematech_Fiscal_EstornarVendaItem(dados)

 

 

Observações:

dados é uma string em formato JSON contendo

 

os parâmetros listados abaixo:

 

 

Retorno:

String de retorno em formato JSON.

 

 


Parâmetros de entrada da função.

{
"sessao": "string",
"sequencia": 0
}
Parâmetros de retorno da função.

{
"sucesso": false,
"codigo": 0,
"descricao": "string"
}





8.6. Bematech_Fiscal_EfetuarPagamento

Descrição:

Utilize esta função para registrar na nota a

 

forma de pagamento utilizada na mesma

 

 

Tipo:

String.

 

 

Exemplo:

Bematech_Fiscal_EfetuarPagamento(dados)

 

 

Observações:

dados é uma string em formato JSON contendo

 

os parâmetros listados abaixo:

 

 

Retorno:

String de retorno em formato JSON. Obs. é

 

possível utilizar mais de uma forma de

 

pagamento na mesma nota, desde que a

 

somatória total das mesmas seja igual ou maior

 

que o valor total da nota.

 

 


Parâmetros de entrada da função.

{
"nItem": 0,
"tPag": 0,
"vPag": 0,
"cartao": {
"cnpj": "string",
"tBand": 0,
"cAut": "string",
"tpIntegra": 0
},
"cAdmC": "string"
}

Parâmetros de retorno da função.

{
"sucesso": false,
"codigo": 0,
"descricao": "string"
}
8.7. Bematech_Fiscal_EstornarPagamento

Descrição:

Utilize esta função para estornar (cancelar) uma

 

forma de pagamento registrada.

 

 

Tipo:

String.

 

 

Exemplo:

Bematech_Fiscal_EstornarPagamento(dados)

 

 

Observações:

dados é uma string em formato JSON contendo

 

os parâmetros listados abaixo:

 

 

Retorno:

String de retorno em formato JSON.

 

 


Parâmetros de entrada da função.

{
"sessao": "string",
"sequencia": 0
}

Parâmetros de retorno da função.

{
"sucesso": false,
"codigo": 0,
"descricao": "string"
}





8.8. Bematech_Fiscal_ListarNotas

Descrição:

Utilize esta função para listar as notas emitidas

 

através de um intervalo de datas.

 

 

Tipo:

String.

 

 

Exemplo:

Bematech_Fiscal_EstornarPagamento(dados)

 

 

Observações:

dados é uma string em formato JSON contendo

 

os parâmetros listados abaixo:

 

 

Parâmetros de entrada.

{
"pagina": 0,
"dataInicial": "string",
"dataFinal": "string",
"serie": "string",
"numeroInicial": 0,
"numeroFinal": 0,
"status": "string",
"cancelado": false,
"inutilizado": false,
"situacaoSefaz": "string",
"pageSize": "string"
}

Parâmetros de retorno da função.

{
"sucesso": false,
"codigo": 0,
"descricao": "string"
}





8.9. Bematech_Fiscal_InutilizarNumeracao

Descrição:

Utilize esta Função para inutilizar a numeração

 

de uma nota.

 

 

Tipo:

String.

 

 

Exemplo:

Bematech_Fiscal_InutilizarNumeracao(dados)

 

 

Observações:

dados é uma string em formato JSON contendo

 

os parâmetros listados abaixo:

 

 

Retorno:

String de retorno em formato JSON.

 

 


Parâmetros de entrada da função.

{
"identificacao": {
"serie": "string",
"numero": "string"
},
"justificativa": "string"
}
Parâmetros de retorno da função.

{
"sucesso": false,
"codigo": 0,
"descricao": "string"
}





8.10. Bematech_Fiscal_ConsultarNota

Descrição:

Utilize esta função para consultar uma nota

 

emitida. A consulta pode ser executada através

 

do identificador d anota ou através da série e

 

número da mesma.

 

 

Tipo:

String.

 

 

Exemplo:

Bematech_Fiscal_InutilizarNumeracao(dados)

 

 

Observações:

dados é uma string em formato JSON contendo

 

os parâmetros listados abaixo:

 

 

Retorno:

String de retorno em formato JSON.

 

 


Parâmetros de entrada da função.

{
"id": "string",
"formato": "string"
}


{
"serie": 0,
"numero": 0,
"formato": "string"
}





8.11. Bematech_Fiscal_EnviarNotaEmail

Descrição:

Utilize esta função para transmitir via email

 

uma nota. Para localizar é filtro de pesquisa por

 

série ou número.

 

 

Tipo:

String.

 

 

Exemplo:

Bematech_Fiscal_InutilizarNumeracao(dados)

 

 

Observações:

dados é uma string em formato JSON contendo

 

os parâmetros listados abaixo:

 

 

Retorno:

String de retorno em formato JSON.

 

 


Parâmetros de entrada da função.

{
"id": "string",
"email": "string"
}

Parâmetros de retorno da função.

{
"id": "string",
"email": "string"
}





8.12. Bematech_Fiscal_CancelarNota

Descrição:

Utilize esta função para executar o

 

cancelamento de uma nota.

 

 

Tipo:

String.

 

 

Exemplo:

Bematech_Fiscal_InutilizarNumeracao(dados)

 

 

Observações:

dados é uma string em formato JSON contendo

 

os parâmetros listados abaixo:

 

 

Retorno:

String de retorno em formato JSON.

 

 


Parâmetros de entrada da função.

{
"id": "string",
"xJust": "string",
"dhEvento": "string"
}
Parâmetros de retorno da função.

{
"sucesso": false,
"codigo": 0,
"descricao": "string"
}





8.13. Bematech_Fiscal_ObterStatusImpressora

Descrição:

Utilize esta função para a executar a leitura de

 

status da impressora.

 

 

Tipo:

String.

 

 

Exemplo:

Bematech_Fiscal_InutilizarNumeracao()

 

 

Observações:

dados é uma string em formato JSON contendo

 

os parâmetros listados abaixo:

 

 

Retorno:

String de retorno em formato JSON.

 

 



{
"ovr": "string",
"offline": "string",
"wait": "string",
"bufStat": "string",
"pnes": "string",
"ps": "string",
"drawer": "string",
"noPaper": "string",
"error": "string",
"cover": "string",
"ca": "string",
"ce": "string",
"nre": "string",
"re": "string",
"hoh": "string",
"cmd": "string",
"firmwareVersion": "string"
}





8.14. Bematech_Fiscal_ImprimirTextoLivre

Descrição:

Utilize esta função para impressão de um texto

 

livre, bem como inclusão de comandos para

 

corte de papel e formatação de texto.

 

 

Tipo:

String.

 

 

Exemplo:

Bematech_Fiscal_ImprimirTextoLivre(Dados)

 

 

Observações:

dados é uma string em formato JSON contendo

 

os parâmetros listados abaixo:

 

 

Retorno:

String de retorno em formato JSON.

 

 


Parâmetros de entrada da função.

"dados": 0,
"base64": false
}

Parâmetros de retorno da função.

{
"sucesso": false,
"codigo": 0,
"descricao": "string",
"numeroSessao": "string"
}





8.15. Bematech_Fiscal_ImprimirDocumentoFiscal

Descrição:

Utilize esta função para impressão de uma nota

 

emitida, com ela é possível: Imprimir uma nota

 

através de sua chave de acesso. Imprimir uma

 

nota através da série e número do documento.

 

 

Tipo:

String.

 

 

Exemplo:

Bematech_Fiscal_ImprimirDocumentoFiscal(dad

 

os)

 

 

Observações:

dados é uma string em formato JSON contendo

 

os parâmetros listados abaixo:

 

 

Retorno:

String de retorno em formato JSON.

 

 

Parâmetros de entrada da função (Impressão via chave).

{
"chave": "string"
}

Parâmetros de entrada da função (Impressão através de série e número do doc).

{
"serie": 0,
"numero": 0
}

Parâmetros de retorno da função.

{
"sucesso": false,
"codigo": 0,
"descricao": "string",
"numeroSessao": "string"
}





8.16. Bematech_Fiscal_AcionarGaveta

Descrição:

Utilize esta função para acionar a abertura de

 

gaveta quando esta estiver conectada a

 

impressora.

 

 

Tipo:

String.

 

 

Exemplo:

Bematech_Fiscal_AcionarGaveta(dados)

 

 

Observações:

dados é uma string em formato JSON contendo

 

os parâmetros listados abaixo:

 

 

Retorno:

String de retorno em formato JSON.

 

 


Parâmetros de entrada da função.

{
"numero": 0
}
Parâmetros de retorno da função

{
"sucesso": false,
"codigo": 0,
"descricao": "string",
"numeroSessao": "string"
}





8.17. Bematech_Fiscal_ObterInformacoesSistema

Descrição:

Utilize esta função para obter informações

 

relacionadas ao sistema tais como: Dados do

 

certificado digital, Quantidade de notas emitidas

 

e Quantidade de notas rejeitadas.

 

 

Tipo:

String.

 

 

Exemplo:

Bematech_Fiscal_ObterInformacoesSistema()

 

 

Observações:

Obs.Função não possui parâmetros de envio.

 

 

Retorno:

String de retorno em formato JSON.

 

 


Parâmetros de retorno da função.

{
"versao": "string",
"totalNotasRejeitadas": 0,
"totalNotasRejeitasEmitidasContingencia": 0,
"certificado": {
"situacao": "string",
"dataExpiracao": "2016-08-23T20:24:30.672Z",
"diasParaExpiracao": 0
}
}





8.18. Bematech_Fiscal_ListarConfiguracoes

Descrição:

Utilize esta função para listar informações sobre

 

o sistema.

 

 

Tipo:

String.

 

 

Exemplo:

Bematech_Fiscal_ListarConfiguracoes()

 

 

Observações:

Função não possui parâmetros de envio.

 

 


Retorno:

String de retorno em formato JSON.

 

 


Parâmetros de retorno da função.

{
"configuracao"

: \[

{
"nome": "string",
"valor": "string"
}
]
}





8.19. Bematech_EfetuarConfiguracoes

Descrição:

Utilize esta função para efetuar configurações

 

na BemaOne.dll ou também aplicar

 

configurações relacionadas ao sistema.

 

 

Tipo:

String.

 

 

Exemplo:

Bematech_Fiscal_EfetuarConfiguracoes(dados)

 

 

Observações:

dados é uma string em formato JSON contendo

 

os parâmetros listados abaixo:

 

 

Retorno:

String de retorno em formato JSON.

 

 


Parâmetros de entrada da função (Caso de configurações da dll).

{
"sistema":
{
"path": "string",
"nivelLog": "string"
}
"nfe":
{
"timeoutWebservice": "string",
}
}
Parâmetros de entrada da função (Caso de configurações do sistema).

{
"configuracao"

: \[

{
"nome": "string",
"valor": "string"
}
]
}

Parâmetros retornados pela função.

{
"sucesso": false,
"codigo": 0,
"descricao": "string",
}





8.20. Bematech_Fiscal_ObterInformacoesContingencia

Descrição:

Utilize esta função para obter informações

 

relacionadas ao estado de contingência da

 

aplicação.

 

 

Tipo:

String.

 

 

Exemplo:

Bematech_Fiscal_ObterInformacoesContingenci

 

a()

 

 

Observações:

Obs.Função não possui parâmetros de envio.

 

 

Retorno:

String de retorno em formato JSON.

 

 


Parâmetros retornados pela função.

{
"situacao": "string",
"codigo": 0,
"notasEmContingencia": 0,
"dataEntradaContingencia": "2016-08-23T20:24:30.680Z",
"minutosEmContingencia": 0,
"minutosRestantesEmContingencia": 0
}
8.21. Bematech_Fiscal_TrocaEstadoContingencia

Descrição:

Utilize esta função para efetuar a troca do modo

 

de contingência da aplicação entre os modos:

 

Operação ON-LINE e Resolução de

 

contingências.

 

 

Tipo:

String.

 

 

Exemplo:

Bematech_Fiscal_TrocaEstadoContingencia()

 

 

Observações:

Obs.Função não possui parâmetros de envio.

 

 

Retorno:

String de retorno em formato JSON.

 

 


Parâmetros retornados pela função.

{
"situacao": "string",
"codigo": 0,
"notasEmContingencia": 0,
"dataEntradaContingencia": "2016-08-23T20:24:30.681Z",
"minutosEmContingencia": 0,
"minutosRestantesEmContingencia": 0
}

 

Cada uma destas funções ao ser executada irá consumir um recursos específico

 

 

da API.

 

 

 

 

 

 

 



9. Fluxos de operação usando a BemaOne.dll + APIOne.
Para entender melhor o fluxo de integração mostramos abaixo,através de um passo a passo a ordem de execução das funções em uma rotina de venda, bem como a execução de uma função que irá consultar informações diretamente do Fiscal Manager.
9.1. Venda Simples.
Considerando uma venda (NFC-e ou SAT), que possua 2 produtos e uma única forma de pagamento, as seguintes funções serão utilizadas:





Ao executar cada uma das funções com seus respectivos parâmetros, conforme descrito neste manual, o xml da venda será criado e populado.
Por sua vez, assim que concluída a operação, o próprio Fiscal Manager se encarregará de assinar digitalmente o arquivo e posteriormente transmiti-lo à Sefaz.
Nos casos de sucesso, após a conclusão do "cupom", a DANFE poderá ser impressa através da função:



Lembrando que cada uma das funções recebe um retorno de execução através de uma string com conteúdo em formato JSON, o tratamento destes retornos é de extrema importância para eventuais situações adversas durante a operação da
aplicação.

9.2. Obter informações do Sistema.
Nos casos onde serão capturadas informações do sistema, o fluxo operacional também é parecido, veja:


Considere a execução da leitura das informações do certificado digital, para tal utilize a seguinte função:



A dll receberá o JSON de retorno dentro de uma variável String. O tratamento do
JSON deverá ser efetuado de acordo com a definição da linguagem utilizada para o desenvolvimento da aplicação.
Em caso de sucesso o retorno recebido pela função seguirá o seguinte padrão:
Retorno da função Bematech_Fiscal_ObterInformacoesSistema

{
"versao": "string",
"totalNotasRejeitadas": 0,
"totalNotasRejeitasEmitidasContingencia": 0,
"certificado": {
"situacao": "string",
"dataExpiracao": "2016-08-23T20:24:30.672Z",
"diasParaExpiracao": 0
}
}

A string de retorno não possui quebra de linhas, a apresentação acima "identada"

 

 

tem como objetivo facilitar a visualização do conteúdo retornado.

 

 

 

 

 

 

 



10. Usando Serviços RestFul
A nova versão do Fiscal Manager contempla recursos para utilização de uma API RestFul.
Ao utilizar os serviços desta API a integração de seu aplicativo PDV pode ser ser executada diretamente através da API sem a utilização de nenhuma biblioteca para comunicação com o Fiscal Manager.

Ao efetuar as chamadas de funções (serviços) em seu software, é possível enviar e receber dados relacionados ao Fiscal Manager e também a impressora utilizada para impressão da DANFE ou CF-e (no caso do SAT).

Em um breve resumo utilizando a API você pode de forma nativa:









10.1. O que são Serviços RestFul?
Antes de prosseguirmos com mais detalhes sobre este novo método de integração, é importante apresentarmos um breve resumo do que é uma API RestFul.
Bom, Rest é a abreviação de "Representational State Transfer". Que basicamente trata-se de um conjunto de princípios web standard que utiliza protocolo HTTP e URL´s para comunicação.
Serviços RestFul são largamente utilizados em web services através de uso APIS que por sua vez, permitem acesso aos serviços disponibilizados.



10.2. Entendendo o Funcionamento
Um dos principais itens na arquitetura RestFul são as URLs do sistema e os seus resources. Um recurso (resource), usa os métodos do protocolo HTTP para se comunicar: No gráfico abaixo, ilustramos esta interação.

Arquitetura RestFul.
image::images/rest_aplication_use.png]"center"]
As ações executadas para estes serviços, utilizam a tecnologia JSON para troca de informações entre a Plataforma Fiscal (APIOne) e sua aplicação comercial.



10.3. Lista de Serviços RestFul
Agora que já conhecemos um pouco sobre a arquitetura RestFul, podemos voltar ao processo de integração do Fiscal Manager. Como já visto anteriormente, a integração através da API de serviços RestFul, está disponível nas versões:



Cada recurso da API possui uma URL que dá acesso aos detalhes do mesmo, esta documentação está vinculada ao Fiscal Manager para acessá-la utilize a URL: {*}http://localhost:9999/docs/#/*



Para melhor visualização utilize o Google Chrome.
Nos próximos tópicos abordaremos em detalhes cada um dos serviços RestFul disponíveis na API de integração com o Fiscal Manager.



11. Recursos da API
Neste tópico, apresentamos todos os recursos disponíveis para a integração com o Fiscal Manager NFC-E e SAT.


11.1. Abrir Cupom

Método:

POST

 

 

Descrição:

Utilize este recurso da API para iniciar/abrir um

 

novo

 

 

Modelo JSON (Envio e Retorno):

http://localhost:9999/docs/#!/cupom/abrirCupom

 

 


11.2. Adicionar Item de venda

Método: POST

Descrição:

Utilize este recurso para o registro de itens na

 

venda, lembrando que o registro de um item

 

envolve informações relacionadas ao produto e

 

também ao imposto vinculado a ele.

 

 

Modelo JSON (Envio e Retorno):

http://localhost:9999/docs/#!/cupom/adicionarIte

 

m

 

 


11.3. Estornar Item de venda

Método:

DELETE

 

 

Descrição:

Utilize este recurso da API quando houver a

 

necessidade de estorno de um item registrado na

 

venda.

 

 

Modelo JSON (Envio e Retorno):

http://localhost:9999/docs/#!/cupom/estornarIte

 

m

 

 


11.4. Adicionar Pagamento

Método:

POST

 

 

Descrição:

Utilize este recurso para registrar as formas de

 

pagamento a serem utilizadas para a totalização

 

da nota. Obs. É possível dentro da nota o registro

 

de mais de um meio de pagamento.

 

 

Modelo JSON (Envio e Retorno):

http://localhost:9999/docs/#!/cupom/adicionarPa

 

gamento

 

 


11.5. Estornar Pagamento

Método:

DELETE

 

 

Descrição:

Utilize este recurso quando houver necessidade

 

de estorno de um meio de pagamento registrado

 

na venda.

 

 

Modelo JSON (Envio e Retorno):

http://localhost:9999/docs/#!/cupom/estornarPag

 

amento

 

 


11.6. Fechar Cupom

Método:

POST

 

 

Descrição:

Utilize este recurso para fechar (concluir) a

 

operação de venda.

 

 


Modelo JSON (Envio e Retorno):

http://localhost:9999/docs/#!/cupom/fecharCupo

 

m

 

 


11.7. Estornar Cupom

Método:

POST

 

 

Descrição:

Utilize este recurso caso seja necessário o

 

estorno/cancelamento de uma venda.

 

 

Modelo JSON (Envio e Retorno):

http://localhost:9999/docs/#!/cupom/estornarCup

 

om

 

 


11.8. Listar Documentos

Método:

POST

 

 

Descrição:

Utilize este recurso quando houver necessidade

 

de inutilização de uma determinada faixa de

 

notas perante a Sefaz. Obs. Tal operação só é

 

permitida para documentos NFC-e e NF-e, não

 

sendo válida para documentos CF-e (SAT).

 

 

Modelo JSON (Envio e Retorno):_

http://localhost:9999/docs/#!/documento/inutiliza

 

r

 

 


11.9. Listar Documentos (Paginada)

Método:

GET

 

 

Descrição:

Utilize este recurso para listar documentos

 

emitidos através dos filtros de pesquisa

 

disponibilizados. Obs. Essa função permite a

 

listagem dos documentos de forma paginada.

 

 

Modelo JSON (Envio e Retorno):

http://localhost:9999/docs/#!/documento/search

 

 


11.10. Buscar documento por ID

Método:

GET

 

 

Descrição:

Utilize este recurso para efetuar a consulta de

 

um documento através do seu ID de

 

identificação.

 

 

Modelo JSON (Envio e Retorno):

http://localhost:9999/docs/#!/documento/getFrom

 

Identificador

 

 

11.11. Cancelar um documento

Método:

POST

 

 

Descrição:

Utilize este recurso para cancelar um

 

documento.

 

 

Modelo JSON (Envio e Retorno):

http://localhost:9999/docs/#!/documento/cancelar

 

 


11.12. Enviar documento por email (ID)

Método:

POST

 

 

Descrição:

Utilize este recurso para transmissão da nota via

 

email. Obs. para localização da nota podem ser

 

utilizados: seu identificador ou série e número

 

da mesma.

 

 

Modelo JSON (Envio e Retorno):

http://localhost:9999/docs/#!/documento/enviarD

 

ocumentoPorEmail

 

 


11.13. Buscar documento através de série/número

Método:

GET

 

 

Descrição:

Utilize este recurso para consultar uma

 

determinada nota através de seu número e série.

 

 

Modelo JSON (Envio e Retorno):

http://localhost:9999/docs/#!/documento/getFrom

 

Identificador_0

 

 


11.14. Enviar documento por email (série/número)

Método:

POST

 

 

Descrição:

Utilize este recurso para transmissão da nota

 

por email pesquisando a mesma através de seu

 

número e série.

 

 

Modelo JSON (Envio e Retorno):

http://localhost:9999/docs/#!/documento/enviarD

 

ocumentoPorEmail_0

 

 


11.15. Consultar status de uma impressora Bematech

Método: GET

Descrição:

Utilize este recurso para consulta de status de

 

uma impressora Bematech que esteja instalada e

 

configurada no Fiscal Manager. A consulta

 

retornará informações sobre os sensores de

 

papel, tampa e estado da impressora.

 

 

Modelo JSON (Envio e Retorno):

http://localhost:9999/docs/#!/impressora/consulta

 

rStatus

 

 


11.16. Impressão de documento genérico

Método:

POST

 

 

Descrição:

Utilize este recurso para a impressão de um

 

documento na impressora configurada no Fiscal

 

Manager. Obs. Esta operação recebe um

 

conteúdo binário para a impressão, e caso

 

receba um cabeçalho Content-Transfer-

 

Enconding com o valor base64, o conteúdo

 

recebido será também codificado em base64.

 

 

Modelo JSON (Envio e Retorno):

http://localhost:9999/docs/#!/impressora/impress

 

aoGenerica

 

 


11.17. Impressão de DANFE (Chave de acesso)

Método:

POST

 

 

Descrição:

Utilize este recurso para realizar a impressão de

 

uma DANFE através de sua chave de acesso.

 

 

Modelo JSON (Envio e Retorno):

http://localhost:9999/docs/#!/impressora/imprimi

 

rPorChave

 

 


11.18. Impressão de DANFE (Série/Número)

Método:

POST

 

 

Descrição:

Utilize este recurso para realizar a impressão de

 

uma DANFE através de sua chave de acesso.

 

 

Modelo JSON (Envio e Retorno):

http://localhost:9999/docs/#!/impressora/imprimi

 

rPorNumeracao

 

 


11.19. Realizar abertura de gaveta

Método: POST

Descrição:

Utilize este recurso para realizar o acionamento

 

da gaveta conectada a impressora. É

 

imprescindível que a impressora esteja

 

corretamente instalada e também configurada

 

no Fiscal Manager.

 

 

Modelo JSON (Envio e Retorno):

http://localhost:9999/docs/#!/impressora/abrirGa

 

veta

 

 


11.20. Informações sobre o sistema

Nome

Informações sobre o sistema

 

 

Método:

GET

 

 

Descrição:

Utilize este recurso para consultar informações

 

do Fiscal Manager, como: Quantidade de notas

 

rejeitadas e dados do certificado digital.

 

 

Modelo JSON (Envio e Retorno):

http://localhost:9999/docs/#!/sistema/getInformac

 

oesDoSistema

 

 


11.21. Listagem de configurações do sistema

Método:

GET

 

 

Descrição:

Utilize este recurso para consultar e visualizar

 

as configurações do Fiscal Manager.

 

 

Modelo JSON (Envio e Retorno):

http://localhost:9999/docs/#!/sistema/getConfigur

 

acoes

 

 


11.22. Realizar alteração de configurações do Fiscal Manager

Método:

POST

 

 

Descrição:

Utilize este recurso para aplicar ajustar

 

configurações específicas do Fiscal Manager.

 

 

Modelo JSON (Envio e Retorno):

http://localhost:9999/docs/#!/sistema/editarConfi

 

guracao

 

 


11.23. Localizar configuração específica do Fiscal Manager

Método: GET

Descrição:

Utilize este recurso para pesquisar uma

 

configuração específica do Fiscal Manager,

 

baseada em seu nome.

 

 

Modelo JSON (Envio e Retorno):

http://localhost:9999/docs/#!/sistema/getConfigur

 

acao

 

 


11.24. Obter informações sobre contingência

Método:

GET

 

 

Descrição:

Utilize este recurso para obter informações do

 

modo de contingência. Obs. O retorno da função

 

sempre indicará o estado atual do sistema em

 

relação a situação de operação ON-LINE ou

 

Contingência.

 

 

Modelo JSON (Envio e Retorno):

http://localhost:9999/docs/#!/sistema/getInformac

 

oesDeContingencia

 

 


11.25. Alterar o modo de contingência

Método:

GET

 

 

Descrição:

Utilize este recurso para alterar a forma do

 

modo de tratamento do modo de contingência

 

do Fiscal Manager, onde basicamente: Se a

 

aplicação estiver ON-LINE ao executar o método

 

a resolução das notas mudará para emissão em

 

contingência e vice-versa.

 

 

Modelo JSON (Envio e Retorno):

http://localhost:9999/docs/#!/sistema/alterarMod

 

oDeContingencia

 

 


  1. Exemplos JSON NFC-E


Os exemplos foram categorizados através do tipo de método utilizado.



12.1. Método: GET (Fiscal Manager NFC-E e SAT)

Recurso utilizado:

Informações sobre o sistema

 

 

Tipo de dados de Envio:

application/JSON

 

 

Tipo de dados de Retorno:

application/JSON

 

 


Detalhes da operação:

Este método deve consultar informações do

 

Fiscal Manager retornando um JSON com as

 

seguintes informações: Versão do Fiscal

 

Manager. Número total de notas rejeitadas.

 

Número total de Notas rejeitas emitidas em

 

contingência. Situação do Certificado digital.

 

Data de expiração do certificado. Dias restantes

 

para expirar.

 

 

_Observação _:

Em caso de sucesso a resposta será: (Status 200)

 

SuccessFull Operation.

 

 

Exemplo:

 


JSON de retorno.

{
"versao": "02.00.00 build 01",
"totalNotasRejeitadas": 1,
"totalNotasRejeitasEmitidasContingencia": 0,
"certificado": {
"situacao": "No prazo",
"dataExpiracao": "03/04/2017",
"diasParaExpiracao": 97
}
}





12.2. Método: POST (Utilizando Fiscal Manager NFC-e)

Recurso utilizado:

Abrir um cupom para venda.

 

 

Tipo de dados de Envio:

application/JSON

 

 

Tipo de dados de Retorno:

application/JSON

 

 

Detalhes da operação:

Este método abrirá o registro de uma venda.

 

 

_Observação _:

Em caso de sucesso a resposta será: (Status 200)

 

SuccessFull Operation.

 

 

Exemplo de JSON de envio

 


JSON de envio (NFC-E).

{
"versao": "3.10",
"configuracao": {
"imprimir": true,
"email": true
},
"identificacao": {
"cuf": "41",
"cnf": "00005000",
"natOp": "VENDA",
"indPag": 0,
"mod": "65",
"serie": "768",
"nnf": "5000",
"dhEmi": "2016-12-29T14:06:57-02:00",
"tpNF": "1",
"idDest": 1,
"tpImp": 4,
"tpEmis": 1,
"cdv": 8,
"tpAmb": 2,
"finNFe": 1,
"indFinal": 1,
"indPres": 1,
"procEmi": 0,
"verProc": "1.0.0.0",
"cMunFG": "4106902"
},
"emitente": {
"cnpj": "82373077000171",
"endereco": {
"nro": "0",
"uf": "PR",
"cep": "81320400",
"fone": "4184848484",
"xBairro": "CABRAL",
"xLgr": "AV Teste",
"cMun": "4106902",
"cPais": "1058",
"xPais": "BRASIL",
"xMun": "Curitiba"
},
"ie": "1018146530",
"crt": 3,
"xNome": "BEMATECH SA",
"xFant": "BEMATECH"
},
"destinatario": {
"cpf": "76643539129",
"endereco": {
"nro": "842",
"uf": "PR",
"cep": "80020320",
"fone": "41927598874",
"xBairro": "Centro",
"xLgr": "Marechal Deodoro",
"cMun": "4106902",
"cPais": "1058",
"xPais": "Brasil",
"xMun": "Curitiba"
},
"indIEDest": 9,
"email": "[email protected]",
"xNome": "NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL "
}
}





12.3. Método: DELETE (Utilizando Fiscal Manager NFC-E)


Recurso utilizado:

Estornar o registro de uma venda (cupom/nota).

 

 

Tipo de dados de Envio:

URL Request

 

 

Tipo de dados de Retorno:

application/JSON

 

 

Detalhes da operação:

Este irá estornar uma nota gerada.

 

 

Parâmetros de envio:

Número da sessão do cupom URL REQUEST:

 

http://localhost:9999/api/v1/documento/cupom/

 

Exemplo:

 

http://localhost:9999/api/v1/documento/cupom/6

 

7d60984590b40e5a7218e77d1fbdfd6

 

 

_Observação _:

Em caso de sucesso a resposta será: (Status 200)

 

SuccessFull Operation.

 

 

Exemplo de JSON de Retorno:

 


JSON de retorno (NFC-E).

{
"sucesso": true,
"codigo": 9500,
"descricao": "Operação realizada com sucesso"
}





13. Exemplos JSON SAT
Os exemplos foram categorizados através do tipo de método utilizado.
13.1. Método: GET (Fiscal Manager NFC-E e SAT)

Recurso utilizado: Informações sobre o sistema
Tipo de dados de Envio:application/JSON
Tipo de dados de Retorno: application/JSON
Detalhes da operação: Este método deve consultar informações do Fiscal Manager retornando
um JSON com as seguintes informações: Versão do Fiscal Manager. Número total de notas rejeitadas. Número total de Notas rejeitas emitidas em contingência. Situação do Certificado digital. Data de expiração do certificado. Dias restantes para expirar.
_Observação _:
Em caso de sucesso a resposta será: (Status 200) SuccessFull Operation.
Exemplo:
JSON de retorno.

{
"versao": "02.00.00 build 01",
"totalNotasRejeitadas": 1,
"totalNotasRejeitasEmitidasContingencia": 0,
"certificado": {
"situacao": "No prazo",
"dataExpiracao": "03/04/2017",
"diasParaExpiracao": 97
}
}





13.2. Método: POST (Utilizando Fiscal Manager SAT)

Recurso utilizado: Atualizar configurações do Fiscal Manager SAT. Tipo de dados de Envio:application/vnd+Bematech.fmsatconf-v1+json Tipo de dados de Retorno: application/vnd+Bematech.resposta-v1+json Detalhes da operação: Este irá cancelar uma nota gerada. _Observação _:
Em caso de sucesso a resposta será: (Status 200) SuccessFull Operation. Este método não possui Parâmetros de retorno.
Exemplo de JSON de envio
JSON de envio (SAT).

{
"configuracao"

: \[\{

"nome": "PROXY",
"valor": "0"
}, {
"nome": "PRINT_LOGO",
"valor": "1"
}]
}





13.3. Método: POST (Utilizando Fiscal Manager SAT)

Recurso utilizado: Abrir um cupom para venda.
Tipo de dados de Envio:application/JSON
Tipo de dados de Retorno: application/JSON
Detalhes da operação: Este método abrirá o registro de uma venda.
_Observação _:
Em caso de sucesso a resposta será: (Status 200) SuccessFull Operation.
Exemplo de JSON de envio
JSON de envio (SAT).

{
"identificacao": {
"cnpj": "16716114000172",
"numeroCaixa": "001",
"signAC": "SGR-SAT SISTEMA DE GESTAO E RETAGUARDA DO SAT"
},
"emitente": {
"cnpj": "61099008000141",
"ie": "111111111111",
"indRatISSQN": "S"
},
"destinatario": {
"cpf": "09324114107",
"xNome": "Paulo"
},
"entrega": {
"cpf": "09324114107",
"endereco": {
"xLgr": "Rua Teste",
"nro": "450",
"xCpl": "teste",
"xBairro": "Fazendinha",
"xMun": "Curitiba",
"uf": "PR"
}
}
}





13.4. Método: DELETE (Utilizando Fiscal Manager SAT)

Recurso utilizado: Estornar o registro de uma venda (cupom/nota).
Tipo de dados de Envio:application/JSON
Tipo de dados de Retorno: application/JSON
Detalhes da operação: Este irá estornar uma nota gerada.
_Observação _:
Em caso de sucesso a resposta será: (Status 200) SuccessFull Operation.
Exemplo de JSON de Retorno
JSON de retorno (NFC-E).

{
"sucesso": true
}





  1. Fluxos de operação usando a integração direta através da APIOne.


Para entender melhor o fluxo de integração quando somente a APIOne é utilizada no processo, apresentamos também alguns fluxos operacionais que ilustram as rotinas de integração.
14.1. Venda Simples.
Considerando uma venda (NFC-e ou SAT), que possua 2 produtos e uma única forma de pagamento, os seguintes recursos da API serão utilizados:

A listagem abaixo apresenta somente o nome dos métodos, para maiores
informações sobre "URL Request" e conteúdo do JSON, consulte neste manual o tópico: "Recursos da API"






Cada recurso utilizado, deve ser "populado", com um JSON e seus respectivos parâmetros (de acordo com a documentação da API). Ao ser executado, a API fará a "integração" com o Fiscal Manager que por sua vez é encarregado da montagem do arquivo XML da venda. Uma vez concluído o processo de venda, o Fiscal Manager assina digitalmente o xml e na sequência efetua a transmissão do mesmo a Sefaz.

Nos casos de sucesso, após a conclusão do "cupom", a DANFE poderá ser impressa através dos recursos:




Lembrando que cada uma dos recursos/serviços da API recebe um retorno de
execução também no formato JSON o tratamento destes retornos é de extrema importância para eventuais situações adversas durante a operação da aplicação.
14.2. Obter informações do Sistema.
Considere a execução da leitura de informações do sistema. para tal utilize o seguinte recurso da
APIOne:



A dll receberá o JSON de retorno dentro de uma variável String. O tratamento do
JSON deverá ser efetuado de acordo com a definição da linguagem utilizada para o desenvolvimento da aplicação.
Em caso de sucesso o retorno recebido pela função seguirá o seguinte padrão:
Retorno da função Bematech_Fiscal_ObterInformacoesSistema

{
"versao": "Fiscal Manager SAT - 3.0.0",
"totalNotasRejeitadas": 0,
"totalNotasRejeitasEmitidasContingencia": 0
}





15. Plataforma Fiscal.
A Plataforma Fiscal da Bematech, é composta por uma série de componentes que juntos permitem a integração de softwares de automação comercial para a emissão documentos NFC-e e CF-e.



15.1. Componentes da plataforma fiscal:




Existe também a versão SAT do Fiscal Manager, suas funcionalidades são
similares a versão NFC-e no entanto, o Fiscal Manager não transmite as notas para Sefaz mas sim para o hardware SAT que se encarregará do processo.
Além do Fiscal Manager a Plataforma Fiscal possui também um conjunto de componentes que oferece várias formas de integração com sua aplicação, dentre eles podemos citar:




Para utilizar a APIOne é importante que o Fiscal Manager esteja atualizado para a versão 02.00.00 Build 01.

Versões anteriores a 02.00.00 não contemplam as funcionalidades da APIOne.

15.2. Pré-Requisitos da Plataforma Fiscal
15.2.1. Certificado Digital:
Legalmente todos os documentos transmitidos eletronicamente ao Fisco devem ser assinados digitalmente, para tal, adotamos como padrão a utilização do certificado digital do tipo "e-CNPJ A1", abaixo listamos alguns benefícios deste tipo de certificado:









Durante a homologação e testes da Plataforma Fiscal, é a Software House quem deve providenciar um certificado digital. Concluídos os testes, fica à cargo do Contribuinte (Cliente) providenciar o certificado uso em ambiente de Produção.

O formato do arquivo para importação deve obedecer o padrão PFX.

15.2.2. Código CSC (Token do Contribuinte):
O CSC é um código de segurança alfanumérico disponibilizado pelo Fisco e de conhecimento apenas do Contribuinte. Sua função é, em conjunto com o Certificado Digital, garantir a autoria dos arquivos gerados e enviados aos servidores da Secretaria da Fazenda (SEFAZ).
Algumas observações pertinentes:






Caso a Software House ou o contribuinte não possuam uma IE (Inscrição Estadual) válida na UF, a homologação não precisa ser interrompida e para fins de desenvolvimento pode-se utilizar o código CSC genérico da SEFAZ Amazonas!
Para mais informações acesse: http://portalnfce.sefaz.am.gov.br/desenvolvedor/ambiente-de-homologacao-para-desenvolvedores/


15.2.3. Download
VocêpodefazerodownloaddoFiscalManageratualizadoatravésdolink:
suporte.totvs.com.br////wp01/?page_id=58
Disponibilizamos também, alguns exemplos de utilização do Fiscal Manager no link:
suporte.totvs.com.br////wp01/?page_id=56
15.2.4. Licenciamento
Pensando na praticidade das operações de rollout em seus clientes, a Plataforma Fiscal adotou o modelo de licenciamento online para os produtos de NFC-e e S@T, através do portal License Admin (LA). O LA consiste em um ambiente online onde o próprio desenvolvedor possui autonomia para inserir, ampliar ou reduzir a quantidade de licenças disponíveis da Plataforma Fiscal aos seus clientes.

Acessando o Portal LA pelo link: http://la.bematech.com.br/, para se cadastrar acesse o link "Novo Cadastro". Após preencher os dados do formulário, e confirmar seu cadastro, será enviado um link de para o email registrado. Concluído o cadastro e a confirmação do mesmo ao acessar o License Admin será exibido o DashBoard inicial da aplicação que apresenta as informações relevantes as licenças dos clientes vinculados a sua Software House. Todo o passo a passo para o cadastro e gestão de licenças, está disponível no link "Help" disponível no menu superior do portal (imagem abaixo) e sempre que necessário, você pode contar com nosso time suporte técnico para sanar eventuais dúvidas e questionamentos.
















Figure 3. Portal License Admin.
15.2.5. Instalação da Plataforma Fiscal (Fiscal Manager)
15.2.5.1. NFC-e
Ao iniciar a instalação a seguinte tela será apresentada:




































Figure 4. Configurando a instalação do Fiscal Manager.
Clicando no botão "Avançar", a próxima tela apresenta os termos de aceite de uso do Fiscal Manager:






























Figure 5. Termos de uso.
O próximo passo da instalação é definir o caminho onde o Fiscal Manager será instalado.






























Figure 6. Path da instalação.
Definido o path de instalação, clique em "Instalar" para que o processo seja iniciado.






























Figure 7. Iniciar Instalação.
Com o processo de instalação concluído o próximo passo é a configuração do Fiscal Manager, na próxima tela apresentada você deverá configurar a senha de acesso ao Painel de controle da aplicação.

 

Anote a senha mestre exibida na tela pois é através dela em caso de perda da

 

 

senha cadastrada que você poderá acessar novamente o Painel de Controle.

 

 

 

 


Também devem ser cadastrados o CNPJ e UF do contribuinte emissor de acordo com o que mostramos na tela abaixo:






























Figure 8. Senha de Acesso e CNPJ.
Na próxima tela você poderá configurar a forma de utilização do Fiscal Manager, Como o foco deste manual é o uso da APIOne, sua instalação não é necessária então desmarque esta opção e prossiga para os próximos passos da configuração.






























Figure 9. Virtual ECF e Modo compatibilidade.
O passo seguinte, é a importação do Certificado Digital, um dos pré-requisitos dos quais falamos anteriomente. Para isso, basta selecionar o arquivo ".pfx", do certificado inserir a senha e clicar em "Importar Certificado":

 

Com o certificado importado com sucesso os dados do mesmo serão apresentados

 

 

na tela.

 

 

 

 































Figure 10. Certificado Digital (e-CNPJ).
Com a importação do cerficado digital concluída, o próximo passo é o cadastro do do Código CSC e o cadastro do ID do PDV onde Plataforma será instalada, conforme exibido na tela abaixo:






























Figure 11. Cadastro de CSC e ID do PDV.

É imprescindível que o ID do PDV seja inserido, pois ele tem papel fundamental no processo de Licenciamento Online da Plataforma Fiscal.
Na próxima tela é possível aplicar configurações de proxy caso a rede tenha esta necessidade:






























Figure 12. Configuração de Proxy.
Logo em seguida é possível carregar o arquivo bitmap com a logotipo da empresa, respeitando as medidas (em pixels) de 256 x 136. Neste momento é possível também configurar a impressora que será utilizada para impressão das notas. No exemplo abaixo, estamos configurando uma MP-4200 TH, previamente instalada:






























Figure 13. Configuração de Impressora e Logotipo.

Logotipo da empresa: Deverá ser na extensão ".bmp" (imagem bitmap).


Impressão de notas: A impressora deverá estar previamente instalada no ambiente, de acordo com as orientações do fabricante. Ela também deverá estar ligada no momento da instalação.

Finalizadas as configurações o Fiscal Manager exibirá um resumo dos dados configurados e clicando em "Finalizar", a instalação será concluída conforme telas abaixo:






























Figure 14. Resumo de configurações.

































Figure 15. Conclusão do processo de instalação.
15.2.5.2. Instalação do Fiscal Manager SAT
Ao iniciar a instalação a seguinte tela será apresentada:

























Figure 16. Tela inicial.
Clicando no botão "Avançar", a próxima tela indicará o modo de instalação do Fiscal Manager SAT.

 

Para usar o método de integração através da API selecione a opção "Fiscal

 

 

Manager SAT- SINGLE"

 

 

 

 
































Figure 17. Modo de instalação.
O próximo passo da instalação é definir o caminho onde o Fiscal Manager será instalado.

























Figure 18. Path da instalação.
Definido o path de instalação, clique em "Instalar" para que o processo seja iniciado antes será exibida uma tela apresentando um resumo da instalação.






























Figure 19. Resumo dos itens a serem instalados.
Ao término do processo o instalador irá exibir a tela de conclusão, e não sequência iniciar o Painel de Controle do Fiscal Manager.

























Figure 20. Término da instalação.
O painel de controle do Fiscal Manager SAT é carregado através do browser padrão configurado em seu sistema operacional, para abrir a aplicação utilize:
Senha:fmsat Usuário:admin































Figure 21. Login e primeiro acesso.
Ao acessar o painel de controle em sua tela inicial você poderá visualizar algumas informações do
SAT, nas telas abaixo apresentamos um resumo das informações apresentadas:
• Informações da Instância


























Figure 22. Informações Gerais.
Esta tela apresenta informações do contribuinte e também do Hardware do SAT.



















Figure 23. Estatísticas.
Aqui são exibidas informações relacionadas a operação diária do SAT.
• Informações do Hardware SAT


























Figure 24. Informações gerais do SAT.
Neste Menu são exibidas informações relacionadas ao Status Operacional do SAT.




















Figure 25. Informações de rede.
Aqui são apresentadas informações relacionadas a parametrização e configuração de rede do SAT.
























Figure 26. Informações de transmissão.
Aqui são apresentadas informações relacionadas a parametrização e configuração de rede do SAT.

















Figure 27. Informações de hardware.
Neste Menu é possível visualizar informações relacionadas ao Hardware do SAT, tais como nível de bateria, versão e informações de memória. Através do Painel de controle também é possível visualizar a lista de notas emitidas, para tal no Menu Superior acesse o link "Operações". Na imagem abaixo apresentamos um exemplo da Janela de operações:





















Figure 28. Operações (Listagem de notas).
Ao acessar o menu configurações será possível também parametrizar o Fiscal Manager para operação com o SAT, nas telas abaixo apresentamos as opções de configuração disponíveis:
• Configurações do Fiscal Manager SAT








































Figure 29. Configurar dados do contribuinte (Básico).
Nesta são configurados os dados do contribuinte como CNPJ, IE IM e portas do SAT e da impressora utilizada para impressão das notas.







































Figure 30. Configurar dados do contribuinte (Avançado).
Na área de configurações avançadas podem ser configurados proxy e porta de comunicação entre outras informações.

Adicionalmente também é possível através da opção Importar/Exportar. Utilizar uma string JSON que possibilitará a execuçao de configurações de forma mais ágil quando por exemplo o estabelecimento possuir vários PDVS.







































Figure 31. Importar/Exportar Configurações.

Nos casos onde será utilizada a APIOne não é necessário executar configurações
do Virtual ECF, já que tais dados passam a ser enviados diretamente através da API.


Ainda sobre a área de configurações também é possível através dela a execução de backup do banco de dados e das notas em custódia, para tal basta seguir os passos apresentados abaixo:















Figure 32. Iniciar o Backup.



















Figure 33. Mensagem de alerta de execução.





Figure 34. Definição de local para gravação do backup.




16. LEGISLAÇÃO
Para maiores informações e detalhes sobre a legislação, tanto em relação a NFC-E quanto ao SAT, você consultar os links abaixo:



17. TERMOS E ABREVIAÇÕES















18. CONTATO E SUPORTE TÉCNICO
Nossa equipe está disponível para lhe apoiar! Para entrar em contato conosco, utilize um dos canais abaixo: