Usina de Concreto via API REST
Integração direta via API REST entre sistemas de automação de usina (Topcon, Kartrak e similares) e o CRTI ERP, sem o integrador local em Java.
- Softwares Pretendidos (Homologação)
- Diferença: Integrador Local (Java) vs. API REST
- Pré-requisitos
- Configuração no ERP
- Fluxo de Comunicação (Resumo)
- Observações Importantes
Este documento descreve a integração direta via API REST entre sistemas de automação de usinas de concreto (Topcon, Kartrak e similares) e o CRTI ERP, sem a necessidade do integrador local em Java.
A intenção é permitir que o software da usina converse diretamente com o ERP via HTTPS/JSON, trocando lotes de ordem de carga, retornos de carregamento e confirmações de processamento em tempo real.
Hoje o caminho homologado é o Integrador Local em Java. Esta documentação cobre o novo modelo, que está em desenvolvimento/validação. O endpoint e o formato do payload já estão definidos.
Softwares Pretendidos (Homologação)
A integração via API REST foi desenhada para conversar com sistemas de automação de usinas que já falam REST/JSON. A curto prazo a intenção é homologar:
- TOPCON
- KARTRAK
- COMMAND ALKON (em paralelo com o integrador Java)
- (Demais vendors a definir conforme demanda comercial)
Caso o software da usina não exponha uma API REST própria, mantenha-se o uso do Integrador Local em Java, que faz a ponte lendo layouts legados (INSTAL, SAUC, SAI, SHM, COMMAND ALKON) e convertendo para o mesmo payload JSON usado pela API.
Diferença: Integrador Local (Java) vs. API REST
Ambos entregam o mesmo resultado no ERP (lançamento de ordem de carga, retorno de carregamento e confirmação), mas o “como” é bem diferente:
| Aspecto | Integrador Local (Java) | API REST |
|---|---|---|
| Onde roda | Serviço Windows na máquina da usina (CRTI Integrador Usina Concreto) |
No próprio software da usina (Topcon/Kartrak/etc.) |
| Instalação | Instalar .zip + instalar_servico.bat |
Nenhuma instalação adicional, só configuração no ERP |
| Layout de dados | Arquivo TXT/CSV/XML em diretório de remessa/retorno | Chamada HTTP/JSON direta |
| Direção do dado | ERP escreve remessa → usina lê, processa, escreve retorno → ERP lê | ERP expõe endpoint, usina consulta (GET) e envia (POST) |
| Trigger | “Enviar para Integração Usina” no ERP + leitura de pasta | Webhook/polling configurado no lado da usina |
| Latência | Minutos (depende do poll do integrador sobre a pasta) | Segundos (HTTP em tempo real) |
| Falha de comunicação | Arquivo fica pendente na pasta até ser processado | Erro HTTP 5xx deve ser tratado pelo cliente com retry |
| Quando usar | Sistemas sem API (INSTAL, SAUC, SAI, SHM, COMMAND ALKON via arquivo) | Sistemas modernos com API REST (Topcon, Kartrak, integrações nativas) |
| Autenticação | Token fixo (chave de API do ERP) | Chave Única do ERP + credenciais próprias do vendor (ver Credenciais da integração) |
Em resumo: o Integrador Local é um tradutor de arquivos que roda do lado da máquina do usuário/usina; a API REST é conversa direta, moderna, sem serviço intermediário.
Pré-requisitos
Lado do ERP:
- CRTI ERP com módulo de Usina de Concreto ativo e a filial configurada.
- Pelo menos um Ponto de Carga cadastrado e com o campo Código de Integração preenchido (esse código é a chave que amarra o payload ao ponto de carga da usina).
- Um usuário dedicado para a integração, com permissão de escrita no módulo de vendas/ordem de carga.
- A Chave Única do ERP (
X-API-Key), gerada no próprio ERP pela CRTI e entregue à usina. Ela não é fornecida pela usina, nem no caso da Topcon. Ver Credenciais da integração.
Lado da usina/sistema terceiro:
- O software precisa conseguir fazer
GETePOSTHTTPS com JSON. - O software precisa receber da CRTI e armazenar a Chave Única do ERP de forma segura (variável de ambiente / cofre).
Não é necessário: instalar Java na máquina da usina, criar pasta de remessa/retorno, ou liberar Windows Service /
instalar_servico.bat.
Configuração no ERP
1. Credenciais da integração
A integração usa credenciais distintas em cada direção. Elas não se substituem, e a origem de cada uma é diferente:
| Credencial | Onde se cadastra | Direção | Quem define |
|---|---|---|---|
Chave Única do ERP (header X-API-Key) |
Configurações do Sistema > Permissões > Usuários > Credenciais B2B | usina → ERP (/api/v1/**) |
CRTI. Gerada pelo próprio ERP, exibida uma única vez e entregue à usina |
Webhook Secret (header X-Webhook-Key) |
Ponto de Carga (Concreto), campo Webhook Secret (tipo TOPCON) | Topcon → ERP (retorno de produção) | CRTI. Valor arbitrário definido pela CRTI (ou combinado com a Topcon) e informado a ela |
| Chave do endpoint da Topcon (campo X-Api-Key) | Ponto de Carga (Concreto), campo X-Api-Key (tipo TOPCON) | ERP → Topcon | Topcon |
| ID da Usina (GUID) | Ponto de Carga (Concreto), campo ID da Usina (GUID) (tipo TOPCON) | payload ERP → Topcon | Topcon |
Atenção: nenhuma chave de acesso ao ERP é fornecida pela usina. Tanto a Chave Única do ERP quanto o Webhook Secret são definidos do lado da CRTI e repassados ao parceiro. Da Topcon vêm apenas as credenciais do endpoint dela: a chave do campo X-Api-Key do Ponto de Carga e o GUID da usina.
Duas credenciais diferentes com nome parecido. A Chave Única do ERP, gerada na tela de Usuários, viaja no header
X-API-Keydas chamadas que a usina faz ao ERP. O campo X-Api-Key do cadastro de Ponto de Carga é outra coisa: é a chave da Topcon, que o ERP envia ao chamar o endpoint dela. São valores distintos, de origens distintas, e um nunca deve ser preenchido com o outro.
Webhook de retorno. O retorno de produção da Topcon é um webhook exposto pelo ERP,
autenticado pelo Webhook Secret no header X-Webhook-Key:
POST https://[nomedocliente].crti.com.br/vendas/usina_concreto/{codigoPontoCarga}/retorno/webhook
X-Webhook-Key: webhook_secret_cadastrado_no_ponto_de_carga
Content-Type: application/json
{codigoPontoCarga} é o Código do Cliente do Ponto de Carga. Se o header não corresponder
ao Webhook Secret cadastrado, o ERP recusa a chamada.
2. Cadastrar usuário dedicado e gerar a Chave Única do ERP
Esta é a credencial que a usina usa para se autenticar no ERP. Ela é gerada pelo próprio ERP, em Configurações do Sistema > Permissões > Usuários > Credenciais B2B: não é informada pelo cliente nem pela usina. A chave aparece uma única vez no momento da criação, então copie-a e entregue-a à usina. O passo a passo completo está em Autenticação via Chave Única (X-API-Key).
Entre os softwares de usina, atualmente somente a Topcon utiliza esse método de autenticação.
Não confundir com o campo X-Api-Key do Ponto de Carga. A chave gerada aqui autentica a usina no ERP. O campo X-Api-Key do cadastro de Ponto de Carga é a chave da Topcon, que o ERP usa para chamar o endpoint dela, e vem da própria Topcon. Os dois valores não se misturam.
3. Cadastrar o Ponto de Carga com Código de Integração
- Acesse o cadastro de Ponto de Carga (Vendas > Cadastros > Ponto de Carga Concreto).
- No campo Código de Integração, informe o código acordado com a usina (ex.:
PC-CURITIBA-01).
Cada Ponto de Carga deve ter um código único. O código é case-sensitive e identifica o ponto de carga no payload JSON; sem ele, o retorno da usina é rejeitado.

4. GUID (ID da Usina)
O comportamento do campo depende do Tipo de utilização escolhido no Ponto de Carga:
- Tipo CRTI (integrador Java): o GUID é gerado automaticamente pelo ERP e o campo fica somente leitura. Ele é usado como identificador do canal de comunicação com o integrador local.
- Tipo TOPCON: o campo fica editável (label ID da Usina (GUID)) e deve receber o GUID fornecido pela Topcon. Ele é enviado no payload como identificador da central de concreto e é obrigatório: sem ele a transmissão falha com “ID da usina (GUID) não informado”.
Fluxo de Comunicação (Resumo)
[Usina] [CRTI ERP]
| |
|--- GET /ordemDeCarga/remessa -->| (1) pede ordens pendentes
|<-- lista de ordens JSON --------|
| |
| (usina carrega o concreto) |
| |
|--- POST /ordemDeCarga/retorno ->| (2) envia o carregamento (quando retorno implementado)
|<-- 200 OK com payload -----------|
| |
|<-- POST /confirmar --------------| (3) ERP confirma processamento
|--- 200 OK ---------------------->|
| |
Observações Importantes
- A comunicação é feita por HTTPS obrigatório (ver Requisitos de Segurança da API REST). HTTP puro não é aceito.
- A Chave Única do ERP é exibida uma única vez, então guarde em local seguro (cofre/variável de ambiente); depois disso não fica mais disponível, e para recuperá-la é necessário invalidar a chave e gerar outra. Já o Webhook Secret, a chave do endpoint da Topcon e o GUID ficam gravados no cadastro do Ponto de Carga e podem ser reconsultados ou regravados a qualquer momento.
- Se a usina perder a conexão no meio do
POST /retorno, ela deve reenviar: o ERP usa ocodigoEventocomo idempotência (retornos duplicados são ignorados).