Appearance
Ordem de Produção — mify.com.br
Esta página cobre as duas operações relacionadas à produção: o iMetrics buscando ordens de produção no ERP, e o ERP consultando as ordens de produção registradas pelo iMetrics.
Documentação para a plataforma
*.mify.com.br. Se você usa*.mify.app.br, veja Ordem de Produção — mify.app.br.
ERP → iMetrics
O iMetrics busca Ordens de Produção diretamente no ERP para criar os Ordens de Produção correspondentes.
O ERP deve expor uma rota GET que o iMetrics irá chamar periodicamente. A URL e eventuais credenciais são configuradas no painel do iMetrics.
Endpoint (definido pelo ERP)
GET https://my-erp.com/api/v1/production-ordersParâmetros de Consulta
O iMetrics pode enviar os parâmetros abaixo na query string.
| Parâmetro | Tipo | Obrigatório | Descrição | Exemplo |
|---|---|---|---|---|
| machine | string | Não | Nome da máquina para filtrar as ordens | "RAMA 01" |
| order | string | Não | Filtra por uma Ordem de Produção específica | "43892513" |
Resposta Esperada (JSON)
O ERP deve retornar os campos abaixo para cada Ordem de Produção. O iMetrics usa esses dados para criar o Ordem de Produção.
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| order | string | Sim | Código único que identifica a produção |
| productId | string | Sim | Código do produto sendo produzido |
| description | string | Não | Descrição do produto |
| lote | string | Sim | Código do lote de produção |
| idealObjective | string | number | Sim | Quantidade ideal a ser produzida por minuto |
| pulseFactor | string | number | Sim | Quantidade de produto contabilizada a cada sinal recebido no Coletor IIoT |
| expected | integer | Sim | Quantidade total esperada para a produção |
| expectedStart | string | Não | Data prevista de início (ISO 8601 UTC) |
| observation | string | null | Não | Informação adicional para a Ordem de Produção |
Exemplo de Resposta
json
{
"order": "43892513",
"productId": "4389",
"description": "TNT 5D 200mm",
"lote": "1969",
"idealObjective": "2.68752",
"pulseFactor": "0.00000625",
"expected": 5000,
"expectedStart": "2025-03-05T11:30:00Z",
"observation": ""
}Observações
- O campo
orderdeve ser único — é a chave que vincula produção, qualidade, refugo e retrabalho à Ordem de Produção. pulseFactorrepresenta a quantidade de produto contabilizada a cada sinal recebido no Coletor IIoT.expectedStartdeve estar no formato ISO 8601 (UTC).
iMetrics → ERP
Consulta
O ERP consulta o iMetrics para obter os Ordens de Produção gerados — incluindo quantidade produzida, peças ruins, refugos e retrabalhos.
ℹ️ Por que POST numa consulta? Esta rota não cria nem altera nada — é uma consulta. Usamos
POSTem vez deGETporque o corpo da requisição permite mais filtros do que a query string suportaria. Nesta plataforma isso já fica indicado pelo nome da rota:get-production-detail.
Endpoint
POST https://app.mify.com.br/api/v2/integration/external/machine/RAMA 01/get-production-detailAutenticação
x-api-key: 00000000-0000-0000-0000-000000000000Parâmetros do Corpo (JSON)
| Parâmetro | Tipo | Obrigatório | Descrição | Exemplo |
|---|---|---|---|---|
| start | string | Não | Data/hora de início (ISO 8601 UTC) | "2025-03-01T03:00:00Z" |
| end | string | Não | Data/hora de término (ISO 8601 UTC) | "2025-03-10T03:00:00Z" |
| status | string | Não | Filtro por status da ordem | "pending" |
| order | string | Não | Filtro por Ordem de Produção específica | "43892513" |
Exemplo de Requisição
bash
curl --location 'https://app.mify.com.br/api/v2/integration/external/machine/RAMA 01/get-production-detail' \
--header 'x-api-key: 00000000-0000-0000-0000-000000000000' \
--header 'Content-Type: application/json' \
--data '{
"start": "2025-03-01T03:00:00Z",
"end": "2025-03-10T03:00:00Z",
"status": "finished",
"order": "43892513"
}'Estrutura da Resposta (JSON Array)
A resposta é um array de objetos, um por Ordem de Produção.
| Campo | Tipo | Descrição |
|---|---|---|
| id | integer | ID único da ordem (interno Mify) |
| start | string | Data/hora de início (ISO 8601 UTC) |
| end | string | Data/hora de término (ISO 8601 UTC) |
| order | string | Ordem de Produção vinculada |
| lote | string | Lote de produção |
| productId | string | Código do produto |
| description | string | Descrição do produto |
| observation | string | null | Observações adicionais |
| status | string | Status da ordem (ex: "finished") |
| expected | integer | Quantidade esperada |
| produced | integer | Quantidade produzida |
| bad | integer | Peças ruins apontadas |
| scraps | integer | Refugos apontados |
| reworks | integer | Retrabalhos apontados |
| pulseFactor | string | Quantidade produzida por pulso |
| cycleTime | string | Tempo de ciclo (segundos) |
| idealObjective | string | Objetivo ideal por minuto |
| realProduction | integer | Produção real por minuto |
| runningTimeMs | integer | Tempo de execução (milissegundos) |
| measurementUnit | string | Unidade de medida (ex: "mts") |
| startedBy | object | null | Usuário que iniciou (contém username) |
| finishedBy | object | null | Usuário que finalizou (contém username) |
Exemplo de Resposta
json
[
{
"id": 9138,
"order": "43892513",
"expected": 5000,
"produced": 202,
"productId": "4389",
"status": "finished",
"lote": "1969",
"bad": 0,
"observation": "",
"idealObjective": "2.68752",
"pulseFactor": "0.00000625",
"description": "TNT 5D 200mm",
"startedBy": { "username": "mify.luiz" },
"finishedBy": { "username": "mify.cesar" },
"scraps": 0,
"reworks": 0,
"start": "2025-03-05T16:47:23.731Z",
"end": "2025-03-05T19:00:36.177Z",
"cycleTime": "0.0166",
"runningTimeMs": 13641125,
"realProduction": 0.88,
"measurementUnit": "mts"
}
]Webhook
O iMetrics pode disparar um webhook para o ERP quando um evento ocorre em um Ordem de Produção.
O ERP deve expor uma rota que receberá o POST do iMetrics. A URL é configurada no painel do iMetrics.
Endpoint (definido pelo ERP)
POST https://my-erp.com/api/v1/production-diary/eventEventos que disparam o webhook
| Evento | Quando ocorre |
|---|---|
diary.created | Ordem de Produção criado |
diary.started | Produção iniciada |
diary.paused | Produção pausada |
diary.finished | Produção finalizada |
Corpo Enviado (JSON)
| Campo | Tipo | Descrição |
|---|---|---|
| triggerEvent | string | Tipo do evento que disparou o webhook |
| machine | string | Nome da máquina |
| id | integer | ID único da ordem |
| order | string | Ordem de Produção vinculada |
| status | string | Status atual da ordem |
| produced | integer | Quantidade produzida |
| expected | integer | Quantidade esperada |
| bad | integer | Peças ruins apontadas |
| scraps | integer | Refugos apontados |
| reworks | integer | Retrabalhos apontados |
| start | string | Data/hora de início (ISO 8601 UTC) |
| end | string | null | Data/hora de término (ISO 8601 UTC) |
Exemplo do Corpo Enviado
json
{
"triggerEvent": "diary.finished",
"machine": "RAMA 01",
"id": 9138,
"order": "43892513",
"status": "finished",
"produced": 202,
"expected": 5000,
"bad": 0,
"scraps": 0,
"reworks": 0,
"start": "2025-03-05T16:47:23.731Z",
"end": "2025-03-05T19:00:36.177Z"
}