Ver defeitos do turno
Scope necessário: shifts.read.
Devolve os registos de produção de defeitos de um turno (o seu ID, tal como devolvido por GET /v1/shifts), do mais antigo para o mais recente, com a mesma forma que as rotas POST de defeitos devolvem. Lista todos os registos defects na máquina do turno que ficam dentro do turno, incluindo os criados através de POST /v1/production-logs para parte do turno, por isso os defeitos do turno são a soma dos valores de quantity.
Use-o para verificar o que um turno já tem antes de adicionar mais, por exemplo antes de reenviar um pedido sem Idempotency-Key cujo resultado desconhece. É devolvida a lista completa, sem paginação.
Erros:
404shift_not_found: o turno não é um dos seus.
Parâmetros de caminho
O ID do turno.
Corpo da resposta
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/shifts/0/defects"[ { "id": "5b0f6a52-3c1e-4d5b-9f0e-8a7c6d5e4f3a", "shiftId": 48213, "machineId": 12, "quantity": 3, "start": "2026-10-12T06:00:00Z", "end": "2026-10-12T14:00:00Z", "sku": { "id": "9ce2c6b4-a1f4-4bf2-b5c8-10436d1018cc", "name": "SKU-1042" } }]Ver operadores do turno GET
Devolve quem operou a máquina durante um turno (o seu ID, tal como devolvido por GET /v1/shifts), depois de todas as atribuições feitas até agora: uma entrada por período, do mais antigo para o mais recente, cada uma com o operador e quando assumiu e entregou a máquina. Assim que alguém é atribuído, as entradas cobrem normalmente o turno completo. Um período sem operador tem operatorId: null, e um turno a que ninguém foi atribuído devolve uma lista vazia. Para o exemplo da manhã em POST /v1/shifts/{shift_id}/operator, depois das três atribuições aceites devolve 1063 das 06:00 às 10:00, 2071 das 10:00 às 12:00 e 3300 das 12:00 às 14:00. Erros: * 404 shift_not_found: o turno não é um dos seus.
Adicionar defeitos POST
Adiciona unidades defeituosas de um SKU a um turno pelo seu ID (o que é devolvido por GET /v1/shifts), mesmo em turnos que já terminaram. O que é um defeito. Os defeitos contam-se em unidades defeituosas do SKU, não em falhas individuais: uma unidade com três riscos é uma unidade defeituosa. Como os defeitos se somam. Cada pedido regista uma quantidade adicional de unidades defeituosas no turno inteiro, como um novo registo de produção de defeitos de quantity unidades do SKU. As métricas de Qualidade e OEE são recalculadas de forma assíncrona. Os pedidos nunca substituem os anteriores: * Enviar quantity: 2 e depois quantity: 3 regista 5 unidades defeituosas. * Enviar o mesmo pedido duas vezes regista os defeitos duas vezes, a menos que ambos levem o mesmo Idempotency-Key (ver abaixo). * Um turno listado duas vezes por GET /v1/shifts, em dois intervalos consecutivos, continua a ser um único turno: processe cada id uma única vez, ou liste com match=start. * Para anular uma chamada, elimine o registo que ela devolveu com DELETE /v1/production-logs/{id}, que requer o scope production_logs.delete. Para ver o que um turno já tem, liste os seus defeitos com GET /v1/shifts/{shift_id}/defects, que requer shifts.read. Conceda ambos a uma integração que reconcilie ou anule o que envia; só com shifts.update pode adicionar defeitos, mas não verificá-los nem removê-los. Os defeitos não são atribuídos a nenhum operador, e podem ser adicionados a turnos passados, incluindo aqueles cuja produção foi revista. O SKU é indicado por exatamente um de id ou name, e tem de ser já um dos seus SKUs: estes endpoints nunca criam um. O sku da resposta mostra o SKU a que os defeitos foram atribuídos. Os erros incluem um code estável (consulte as respostas abaixo): * 400 shift_not_found: nenhum turno corresponde. * 400 shift_not_started: o turno ainda não começou. * 400 insufficient_production: o turno não tem produção suficiente desse SKU para comportar os defeitos. * 404 sku_not_found: sku.id ou sku.name não é um dos seus SKUs. * 409 idempotency_key_reused: o Idempotency-Key já foi usado com um pedido diferente. * 409 idempotency_key_in_progress: o pedido original com esse Idempotency-Key ainda está a ser processado. Novas tentativas e Idempotency-Key. Se uma chamada falhada registou alguma coisa depende da forma como falhou: * Uma resposta 4xx significa que o pedido foi rejeitado e nada foi registado. Corrija-o e envie-o novamente. * Um tempo limite esgotado, uma ligação interrompida ou uma resposta 5xx deixam o resultado desconhecido: o pedido pode ter sido registado mesmo que nunca tenha recebido a resposta. Se o reenviar sem um Idempotency-Key, pode ficar registado duas vezes, por isso verifique primeiro se foi registado, por exemplo com POST /v1/production-logs/filters. Para repetir com segurança, envie um cabeçalho Idempotency-Key com um valor único gerado por si para cada pedido, como um UUID, e envie a mesma chave e o mesmo corpo em cada nova tentativa desse pedido. A chave é guardada juntamente com o que o pedido registou, por isso uma nova tentativa nunca o regista duas vezes: * Se o pedido original foi registado, a nova tentativa não regista nada e devolve a resposta original, com o cabeçalho Idempotent-Replayed: true. * Se o original não foi registado, quer tenha sido rejeitado quer tenha falhado, a nova tentativa é processada como um pedido novo. * Reutilizar uma chave com um pedido diferente, com outro corpo ou URL, devolve 409. * No caso raro de o original ainda estar a ser processado, a nova tentativa devolve 409. Tente novamente daqui a pouco. As chaves são da sua empresa, por isso todas as chaves de API dela as partilham, e cada chave é guardada durante 24 horas após o pedido que a registou. Depois disso, um pedido com a mesma chave é processado como um pedido novo, por isso repita dentro desse período.