O projeto ACBRWebService é uma tentativa de usar a ACBR por meio de uma API REST. Devido ao tamanho da ACBR os benefícios são ilimitados, qualquer tipo de microservice pode se tornar poderoso havendo um endpoint para a ACBR. Por exemplo a classe ACBR Validador aceleraria qualquer projeto em que um backend precisaria validar documentos nacionais, Gerar uma DANFE por XML com muita simplicidade e obter o PDF em base64, transformar uma estação qualquer, ou mesmo um Raspberry em uma central de impressão, enviando comandos para uma impressora ESCPOS ou mesmo lendo um peso de Balança, a lista seria enorme.
É importante notar que o projeto inicialmente não vai se preocupar com autenticação da API, haja visto que inicialmente a idéia é utilizar junto a outro backend de outra linguágem de progração, ou serviços de automação como o N8N, você facilmente poderia inserir em uma imagem DOCKER do N8N e tornar uma ferramenta que já é poderosa, ainda mais.
Esse projeto não tem intenção de funcionar no Delphi, apenas no Lazarus, isso é devido não apenas por ser uma ferramenta gratuita, mas porque o RTTI do lazarus ao transformar um JSON em TObject ser mais eficiente, e somente por isso que o código desse repositório se tornou viável.
- Versão 3.2.0 do Free Pascal Compiler (FPC).
- Versão 2.2.0 do Lazarus.
- fpcupdeluxe instalado para compilar o código fonte. (https://github.com/LongDirtyAnimAlf/fpcupdeluxe/releases/tag/v2.2.0n)
- Git (para baixar as dependências)
- Componente ACBR (baixado automaticamente via Git mirror: https://github.com/macgayverarmini/acbr-mirror.git)
- FortesReport-CE4 (informações disponíveis em http://www.fortesinformatica.com.br/produtos/report-ce/).
- Horse (informações disponíveis em https://github.com/HashLoad/horse).
- Handle-Exception - (informações disponíveis em https://github.com/HashLoad/handle-exception)
- Jhonson - (informações disponíveis em https://github.com/HashLoad/jhonson)
- Python 3 (Para permitir converter a propriedade dos arquivos da ACBRDFe (inteira) em publish)
- Faça o download do fpcupdeluxe em https://github.com/LongDirtyAnimAlf/fpcupdeluxe.
- Instale o fpcupdeluxe seguindo as versões informada em requisitos.
- Instale o Git em sua máquina.
- Baixe e instale o Python3.
- Clone o repositório ACBRWebService em sua máquina.
- Execute o script
./download.shpara baixar automaticamente todas as dependências (ACBR, FortesReport-CE4, Horse, etc.). - Execute o comando na sua pasta clonada "python script_altera_acbr.py"
O projeto ACBRWebService é licenciado sob a mesma licença do projeto ACBR.
O nome "ACBR" no nome do projeto não é de autoria do desenvolvedor e pertence ao projeto ACBR. O uso do nome é apenas para chamar a atenção do projeto ACBR e para que no futuro ele possa ser incluído no repositório oficial.
Abra o terminal ou prompt de comando e navegue até a pasta onde deseja clonar o repositório. Em seguida, execute o seguinte comando:
git clone https://github.com/macgayverarmini/ACBRWebService.git
API Rest para integração com ACBR por HTTP
Qualquer requisição de qualquer tipo de eventos, uma chave personalizada chamada LoadXML pode ser usada, nela deve ir o XML em base64,
Quando informada, o componente da ACBR carrega o XML antes de carregar os demais parâmetros, permitindo realizar um cancelamento por XML.
{{baseurl}}/{{nfe}}/eventos
{
"config": {},
"eventos": [
{
"InfEvento": {
"CNPJ": "",
"cOrgao": 0,
"chNFe": "",
"detEvento": {
"IE": "",
"autXML": [],
"cOrgaoAutor": 0,
"chNFeRef": "",
"descEvento": "",
"dest": {
"CNPJCPF": "",
"IE": "",
"UF": "",
"idEstrangeiro": ""
},
"dhEmi": "1899-12-30T00:00:00",
"dhEntrega": "1899-12-30T00:00:00",
"dhHashComprovante": "1899-12-30T00:00:00",
"hashComprovante": "",
"idPedidoCancelado": "",
"itemPedido": [],
"latGPS": 0.0000000000000000E+000,
"longGPS": 0.0000000000000000E+000,
"nDoc": "",
"nProt": "",
"nProtEvento": "",
"tpAutor": "taEmpresaEmitente",
"tpAutorizacao": "taNaoPermite",
"tpNF": "tnEntrada",
"vICMS": 0.0000000000000000E+000,
"vNF": 0.0000000000000000E+000,
"vST": 0.0000000000000000E+000,
"verAplic": "",
"versao": "",
"xCondUso": "",
"xCorrecao": "",
"xJust": "",
"xNome": ""
},
"dhEvento": "1899-12-30T00:00:00",
"id": "",
"nSeqEvento": 0,
"tpAmb": "taProducao",
"tpEvento": "teNaoMapeado",
"versaoEvento": ""
}
}
]
}⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃
Qualquer requisição de qualquer tipo de eventos, uma chave personalizada chamada LoadXML pode ser usada, nela deve ir o XML em base64,
Quando informada, o componente da ACBR carrega o XML antes de carregar os demais parâmetros, permitindo realizar um cancelamento por XML.
{{baseurl}}/{{nfe}}/danfe
{
"config": {},
"xml": ""
}⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃
{{baseurl}}/{{nfe}}/eventos
{
"config": {},
"eventos": [
{
"InfEvento": {
"CNPJ": "00000000000000",
"cOrgao": 91,
"chNFe": "32220400000000000000550010000000681967374995",
"dhEvento": "2022-04-10T18:21:00",
"id": "",
"nSeqEvento": 0,
"tpAmb": "taHomologacao",
"tpEvento": "teManifDestConfirmacao"
}
}
]
}⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃
Qualquer requisição de qualquer tipo de eventos, uma chave personalizada chamada LoadXML pode ser usada, nela deve ir o XML em base64,
Quando informada, o componente da ACBR carrega o XML antes de carregar os demais parâmetros, permitindo realizar um cancelamento por XML.
{{baseurl}}/{{nfe}}/eventos
{
"config": {},
"eventos": [
{
"InfEvento": {
"LoadXML": "",
"CNPJ": "00000000000000",
"cOrgao": 91,
"chNFe": "32220400000000000000550010000000681967374995",
"dhEvento": "2022-04-10T18:21:00",
"id": "",
"nSeqEvento": 0,
"tpAmb": "taHomologacao",
"tpEvento": "teManifDestConfirmacao"
}
}
]
}⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃
{{baseurl}}/{{nfe}}/distribuicao
{
"config": {},
"CNPJCPF": "00000000000000",
"ListaArqs": [],
"NSU": "400",
"cUFAutor": 32,
"chNFe": "",
"ultNSU": ""
}⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃
{{baseurl}}/modelo/{{nfe}}/config
⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃
{{baseurl}}/modelo/{{diversos}}/extenso
⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃
{{baseurl}}/modelo/{{diversos}}/validador
⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃
{{baseurl}}/modelo/{{nfe}}/evento
⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃
{{baseurl}}/modelo/{{nfe}}/evento
⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃
{{baseurl}}/modelo/{{nfe}}/distribuicao
⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃
{{baseurl}}/{{diversos}}/extenso
{
"AboutACBr": "ACBrAbout",
"Formato": "extPadrao",
"Name": "",
"StrCentavo": "Centavo",
"StrCentavos": "Centavos",
"StrMoeda": "Real",
"StrMoedas": "Reais",
"Tag": 0,
"Texto": "",
"Valor": 150,
"ZeroAEsquerda": true
}⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃
{{baseurl}}/{{diversos}}/validador
{
"AboutACBr": "ACBrAbout",
"AjustarTamanho": false,
"Complemento": "",
"Documento": "12215052708",
"ExibeDigitoCorreto": false,
"IgnorarChar": "./-",
"Name": "",
"PermiteVazio": false,
"RaiseExcept": false,
"Tag": 0,
"TipoDocto": "docCPF"
}⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃ ⁃
Powered By: postman-to-markdown