Ponto final URI Base da API
O ponto final de todas as nossas chamadas API é: https://app.prodsmart.com/
Autenticação
A API do Prodsmart utiliza uma autorização de token simples. Primeiro, cria um novo token (ou adquire um existente). Após adquirir o seu token, poderá utilizá-lo para aceder a outros recursos dentro do âmbito do token.
O seu token de autenticação dura 2 horas e, em seguida, tem de solicitar um novo com as suas credenciais de API.
Tipo de suporte de dados
Os pedidos com um corpo de mensagem utilizam JSON simples para definir ou atualizar os estados do recurso.
Estados de erro
São utilizados os Códigos de Estado de Resposta HTTP comuns.
Json inválido
Se receber a resposta "Invalid JSON", valide a carga útil json que está a utilizar no JSONLint.
Limite de taxa
Os pedidos de API estão limitados a 120 pedidos por minuto por empresa. Após o limite ser excedido, os pedidos subsequentes obterão uma resposta com o Código de Status HTTP 429 Demasiados pedidos.
Adicionalmente, um cabeçalho indicará quantos segundos tem de aguardar antes de tentar novamente o pedido:
Retry-After: <delay-seconds>
Boas práticas para gerir com o limite de taxa:
Distribua os pedidos de forma uniforme ao longo do tempo para evitar picos de utilizam que possam resultar em respostas limitadas
Desenvolver lógica que utiliza informações Tentar novamente após para saber quando o pedido pode ser repetido
Certifique-se de que não tem integrações desnecessárias em execução em paralelo, pois todas as integrações contarão para o limite
Formato de data
O formato dos campos de data da API segue a representação de ISO 8601:
YYYY-MM-DDThh:mm:ssZ
Neste formato, a letra T funciona como um delimitador necessário, enquanto Z é um designador de fuso horário, se necessário. Quando Z não é utilizado, o fuso horário aplicado à data é igual ao definido na sua empresa do Prodsmart. Z significa o fuso horário Zero, pois tem um desvio de 0.
Exemplo de utilização:
Se o tempo utilizado estiver uma hora adiantada em relação ao UTC, o designador de zona deve ser "+01:00", "+0100" ou simplesmente "+01".
Se o fuso horário de uma empresa for definido como -05:00 e a data de envio tiver o seguinte formato: 2020-07-20T09:15:15Z, a data será apresentada no Prodsmart como: 07/20/2020 - 04:15:15
Se o formato enviado for: 2020-07-20T09:15:15, a data será apresentado no Prodsmart como: 07/20/2020 - 09:15:15 (com fuso horário -05:00), o que significa que, se um utilizador tiver um fuso horário definido como -0 04:00, vê-lo-á como: 07/20/2020 - 10:15:15
Integrações de ERP comuns
Os cenários comuns para integrações de ERP são a sincronização principalmente de Ordens de produção, Stocks e Catálogo de produtos.
Ordens de produção
Quando uma ordem de produção é criada do lado do ERP, o ERP deve enviar os dados da ordem de produção no formato JSON para a API do Prodsmart, utilizando o Serviço de criação de ordem de produção. Se for necessário atualizar o lado do ERP quando uma ordem de produção for criada ou atualizada no Prodsmart, existem duas possibilidades: o ERP pode ser contactado de fora, e neste caso, é possível configurar webhooks no Prodsmart. Os webhooks serão chamados na criação, atualização e eliminação de ordens de produção do lado do Prodsmart. Se o ERP não puder ser contactado de fora, o ERP deverá consultar o Serviço de lista de ordens de produção para detetar alterações.
Stocks
Normalmente, o ERP (ou WMS) é o master em stocks, por isso, fornecemos um serviço (Atualizar stock de produto) que permite que o ERP/WMS atualize o stock atual de um produto para uma quantidade específica. Por vezes, o ERP/WMS pode ser notificado sobre alterações do stock de produção verificando alterações em ordens de produção ou utilizando webhooks ou um serviço da Web de stock atual (mediante pedido).
Produtos
Não com tanta frequência, o catálogo de produtos também é sincronizado. Neste caso, o ERP é sempre o master e pode criar produtos e operações utilizando o serviço de criação de produtos.
Webhooks
Os webhooks estão disponíveis para eventos de ordem de produção no menu Integrações na aplicação. Para utilizar esta funcionalidade, adicione a chamada de URL de ponto final com os eventos de notificação que pretende escutar. Esforçamo-nos para enviar notificações de webhook tão rapidamente quanto os eventos ocorrem no nosso sistema. Se tiver um grande número de ordens de produção alteradas simultaneamente, poderá receber uma inundação de notificações entregues dentro de um curto período. Atualmente, não oferecemos suporte para novas tentativas.
Cabeçalhos
Cabeçalhos do Webhook
x-prodsmart-topic: "productionOrder/create"x-prodsmart-hmac-sha256: "c938fe31379c0d89b37468e1cae9e3aab2d56834"x-prodsmart-api-version: "1"x-prodsmart-webhook-uuid: "91cb972d-b476-4936-947c-4be471b9da5b"x-prodsmart-triggered-at: "2023-08-29T20:39:46.142Z"
Nota:
x-prodsmart-topic - Identificar tópico do webhook
x-prodsmart-hmac-sha256 - Utilizado para verificar a origem do webhook
x-prodsmart-api-version - Versão da API utilizada para enviar o webhook
x-prodsmart-webhook-uuid - Identificar webhook único
x-prodsmart-trigger-at - Hora a que o webhook foi acionado
Como verificar o webhook?
Antes de responder com um código de estado 200, é crucial confirmar que o webhook foi originado no Prodsmart. Esta verificação é obtida calculando uma assinatura.
Cada pedido de webhook vem com um cabeçalho específico chamado x-prodsmart-hmac-sha1, que é codificado no formato base64. Este cabeçalho é gerado utilizando o segredo da API e os dados incluídos no pedido de webhook.
Para verificar a autenticidade do webhook, tem de calcular uma assinatura utilizando o mesmo segredo da API e os dados fornecidos.
Após ter a assinatura calculada, compare-a com o valor encontrado no cabeçalho x-prodsmart-hmac-sha1 do pedido de webhook recebido.
Se a assinatura calculada corresponder ao valor no cabeçalho x-prodsmart-hmac-sha1, pode ter a certeza de que o webhook foi realmente enviado do Prodsmart e pode continuar a responder com um código de estado 200.
Ordens de produção
Pedido (aplicação/json)
Método: POST
Corpo
{ "products": [ { "product": "V23076", "quantity-ordered": 3500, "observations": "", "quantity-produced": 700 } ], "code": "Test Production Order", "shipping": { "code": "shipping 45" }, "serial-number": "", "description": "", "start-date": "2023-04-20T09:15:15Z", "due-date": "2023-05-16T17:15:15Z", "workers-assigned": [ { "number": 120 }, { "number": 11 }, { "number": 10 }, { "number": 1 } ], "ended": false, "machines": [ { "code": "A32" }, { "code": "F1" } ], "pieces-by-box": 20, "status": "onschedule", "running-status": "started", "notes": "", "id": 1}
Nota: o estado de execução será eliminado quando a ordem de produção for eliminada.
Relógio de ponto
Pedido (aplicação/json)
Método: POST
Corpo
{ "id": 932015, "date": "2022-05-19T14:35:30.000+01:00", "notification": "punchClock_created", "worker": { "number": 0 }, "entry": 1}
valores de entrada possíveis:
1 - Entrada
0 - Saída
valores de notificação possíveis:
punchClock_created
punchClock_updated
punchClock_deleted
Movimento de inventário de expedição
Movimento de inventário de expedição criado/atualizado
Pedido (aplicação/json)
Método: POST
Corpo
[{ "product": { "id": 222, "code": "product-code", "uom": "uom" }, "lot": { "code": "lot-code", "expiration-date": "lot-expiration-date", "supplier-lot": "supplier-lot-name" }, "date": "2022-02-21T00:00:00Z", "quantity": 10.0, "stock-type": "out", "comment": "comment", "warehouse-location": { "id": 333, "code": "warehouse-location-code", "warehouse": { "id": 444, "code": "warehouse-code" } }, "sales-order": { "id": 555, "code": "sales-order-code", "client": { "id": 777, "code": "client-code" }, "parameters": [{ "name": "parameterX", "value": "valueX" }] }, "shipping": { "id": 666, "code": "shipping-code" }, "worker": { "id": 333, "number": 0, "name": "worker-name" }}]
valores de notificação possíveis:
shipping_inventory_movement_created
shipping_inventory_movement_updated
Movimento de inventário de expedição eliminado
Pedido (aplicação/json)
Método: POST
Corpo
{ "id": 111}
valores de notificação possíveis:
shipping_inventory_movement_deleted
Movimento de inventário de receção
Movimento de inventário de receção criado/atualizado
Pedido (aplicação/json)
Método: POST
Corpo
[{ "product": { "id": 222, "code": "product-code", "uom": "uom" }, "lot": { "code": "lot-code", "expiration-date": "lot-expiration-date", "supplier-lot": "supplier-lot-name" }, "date": "2022-02-21T00:00:00Z", "quantity": 10.0, "stock-type": "in", "comment": "comment", "warehouse-location": { "id": 333, "code": "warehouse-location-code", "warehouse": { "id": 444, "code": "warehouse-code" } }, "purchase-order": { "id": 555, "code": "purchase-order-code", "supplier": "supplier-code", "parameters": [{ "name": "parameterX", "value": "valueX" }] }, "receiving": { "id": 666, "code": "receiving-code" }, "worker": { "id": 333, "number": 0, "name": "worker-name" }}]
valores de notificação possíveis:
receiving_inventory_movement_created
receiving_inventory_movement_updated
Movimento de stock de receção eliminado
Pedido (aplicação/json)
Método: POST
Corpo
{ "id": 111}
valores de notificação possíveis:
receiving_inventory_movement_deleted
Movimento de inventário interno
Movimento de inventário interno criado/atualizado
Pedido (aplicação/json)
Método: POST
Corpo
[{ "product": { "id": 222, "code": "product-code", "uom": "uom" }, "lot": { "code": "lot-code", "expiration-date": "lot-expiration-date", "supplier-lot": "supplier-lot-name" }, "date": "2022-02-21T00:00:00Z", "quantity": 10.0, "stock-type": "in", "comment": "comment", "warehouse-location": { "id": 333, "code": "warehouse-location-code", "warehouse": { "id": 444, "code": "warehouse-code" } }, "worker": { "id": 333, "number": 0, "name": "worker-name" }}]
valores de notificação possíveis:
internal_inventory_movement_created
internal_inventory_movement_updated
Movimento de inventário interno eliminado
Pedido (aplicação/json)
Método: POST
Corpo
{ "id": 111}
valores de notificação possíveis:
internal_inventory_movement_deleted
Movimento de lançamento de material
Lançamento de material criado/atualizado
Pedido (aplicação/json)
Método: POST
Corpo
[{ "product": { "id": 222, "code": "product-code", "uom": "uom" }, "production-order": { "id": 333, "code": "production-order-code" }, "lot": { "code": "lot-code", "expiration-date": "lot-expiration-date", "supplier-lot": "supplier-lot-name" }, "date": "2022-02-21T00:00:00Z", "quantity": 10.0, "warehouse-location": { "id": 333, "code": "warehouse-location-code", "warehouse": { "id": 444, "code": "warehouse-code" } }, "worker": { "id": 333, "number": 0, "name": "worker-name" }}]
valores de notificação possíveis:
material_staging_created
material_staging_updated
Lançamento de material eliminado
Pedido (aplicação/json)
Método: POST
Corpo
{ "id": 111}
valores de notificação possíveis:
material_staging_deleted
Lote
Lote criado/atualizado
Pedido (aplicação/json)
Método: POST
Corpo
[{ "code": "lot-code", "creation-date": "2022-02-21T00:00:00Z", "expiration-date": "2022-02-21T00:00:00Z", "supplier-lot": "supplier-lot-name", "product": { "id": 222, "code": "product-code", "uom": "uom" }}]
valores de notificação possíveis:
lot_created
lot_updated
Lote eliminado
Pedido (aplicação/json)
Método: POST
Corpo
{ "id": 111}
valores de notificação possíveis:
lot_deleted
Paragem
Paragem criada/atualizada/eliminada
Pedido (aplicação/json)
Método: POST
Corpo
{ "id": 1, "start-time": "2000-01-01T00:00:00.000+01:00", "end-time": "2099-12-31T23:59:59.999+01:00", "started-by": {}, "closed-by": { "number": 0 }, "workers": [ { "number": 0 } ], "machines": [], "product": "", "production-order": "", "checked-out": true, "downtime-type": "downtime1 type", "time-spent": "08:00:00", "event-type": "downTime_created"}
valores de notificação possíveis:
downTime_created
downTime_updated
downTime_deleted
Alterações em canais de feed
Se, por qualquer motivo, não puder utilizar webhooks, oferecemos a alternativa de pilha de alterações, que armazenará as alterações ocorridas nas últimas 24 horas ou desde a última vez que solicitou as alterações através do serviço da Web que fornecemos. Para utilizar esta funcionalidade, tem de criar um canal no menu Integrações (https://app.prodsmart.com/admin/integrations). É possível criar até 3 canais por organização.
Existem 6 tipos de canais de alterações:
DOWN_TIME
PRODUCT
PRODUCTION
PRODUCTION_ORDER
PUNCH_CLOCK
STOCK
Obter alterações
GET /api/changes/{channel}{?access_token}
Ao chamar este serviço, obterá uma lista de entidades que foram alteradas porque foram criadas/atualizadas/eliminadas ou porque o seu estado foi alterado. Receberá uma matriz com o estado atual das entidades (ordenado das alterações mais antigas para as mais recentes), com um máximo de 25 por chamada de serviço. As entidades que obtém do serviço são removidas da pilha (até que tenham novas atualizações). O serviço devolverá uma matriz vazia ("[]") se não houver alterações.
Exemplo de URI
GET /api/changes/channel?access_token=
Parâmetros de URI
Parâmetros de URI
canal
string (obrigatório)
o canal a aceder
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
trabalhadores
boolean (opcional)
mostrar lista de trabalhadores na resposta do canal de Ordens de produção
Pedido
Pedido
Content-Type: application/json
PARAGENS
[ { "id": 1435048, "start-time": "2022-04-22T14:47:00.000+01:00", "end-time": "2022-04-23T00:00:00.000+01:00", "started-by": {}, "closed-by": { "number": 1 }, "workers": [ { "number": 1 } ], "machines": [], "product": "", "production-order": "", "checked-out": true, "downtime-type": "Maintenance", "time-spent": "09:13:00", "event-type": "downTime_deleted", }]
Nota: o campo de tipo de evento só estará presente quando um Tempo de Inatividade for eliminado.
ORDENS DE PRODUÇÃO
[ { "products": [ { "product": "RN2", "quantity-ordered": 30.0, "observations": "", "quantity-produced": 0.0 } ], "code": "Production Order 123", "description": "", "shipping": {}, "start-date": "2022-04-21T00:00:00.000+01:00", "due-date": "2022-04-28T00:00:00.000+01:00", "ended": false, "machines": [], "notes": "", "is-active": true, "running-status": "notstarted", "status": "onschedule", "material-staging-complete": false, "id": 1379919 }]
Nota: O campo de estado de execução terá o valor eliminado quando uma Ordem de produção for eliminada.
PRODUTOS
[ { "code": "V23076", "name": "V23076", "observations": "", "section": null, "unit-cost": null, "unit-price": null, "families": [], "operations": [], "components": [], "custom-fields": [], "notification": null, "serializable": null, "shipping-package-types": [], "external-stock": null, "stock-max": null, "min-quantity-reorder": null, "quantity-multiple": null, "scrap-allowance": null, "shelf-life": null, "parameters": [] }]
Nota: o campo de notificação terá o valor product_deleted quando um produto for eliminado.
REGISTOS DE PRODUÇÃO
[ { "production-order": { "code": "P1 - Week 14", "id": 3641 }, "operation": { "code": "CUT3", "product": "P1" }, "worker": { "number": 6 }, "machine": { "code": "WJC" }, "quantity": 0.0, "checked-out": false, "produced-waste": [], "consumptions": [], "total-time-factor": 1.0, "rework": false, "work-time": "00H00m00s", "start-time": "2022-04-22T14:43:00.000+01:00", "end-time": "2022-04-22T14:43:00.000+01:00", "status": "deleted", "show-check-in-checklist-and-c-f": false, "id": 12952533 }]
Nota: o campo de estado só estará presente quando um Registo de produção for eliminado.
RELÓGIOS DE PONTO
[ { "id": 932015, "date": "2022-05-19T14:35:30.000+01:00", "notification": "punchClock_deleted", "worker": { "number": 0 }, "entry": 1 }]
Nota: o campo de notificação só estará presente quando uma entrada do Relógio de ponto for eliminada.
STOCK
[ { "product-code": "P1", "stock": 2395.0, "lot": [ { "code": "Lot 0086", "stock": 500.0 } ] }]
Fornecedor
Recursos do fornecedor da API do Prodsmart.
FORNECEDOR
Um único objeto de fornecedor.
O recurso Fornecedor tem os seguintes atributos:
id (fornecido)
code (cadeia, obrigatório, único) - código do fornecedor
name (cadeia, obrigatório) - nome do fornecedor
number (cadeia, opcional) - NIF do fornecedor
expiration-date (data, opcional, formato AAAA-MM-DDTHH:MM:SSZ) - data em que o fornecedor expira
addresses (matriz, opcional)
code (cadeia, obrigatório, único) - código de endereço
name (cadeia, opcional) - nome do endereço
address (cadeia, obrigatório) - linha de endereço
city (cadeia, opcional) - cidade do endereço
post-code (cadeia, opcional) - código postal do endereço
state (cadeia, opcional) - estado/região do endereço
country (cadeia, obrigatório) - código do país do endereço
default (booleano, opcional - reposto em falso) - se verdadeiro, é o endereço predefinido do fornecedor
contacts (matriz, opcional)
phone-number (cadeia, obrigatório se não houver e-mail) - número de telefone de contacto
email (cadeia, obrigatório se não houver número de telefone) - e-mail de contacto
name (cadeia, opcional) - nome do contacto
default (booleano, opcional - reposto em falso) - se verdadeiro, é o contacto predefinido do fornecedor
Regras de endereço/contacto predefinido:
Os contactos e endereços só podem ter um endereço ou contacto predefinido, respetivamente
Se um fornecedor tiver endereços, um dos endereços deverá ser o predefinido
Se um fornecedor tiver contactos, um dos contactos deverá ser o predefinido
Na criação/atualização de um fornecedor, se nenhum contacto/endereço predefinido for fornecido, o primeiro contacto/endereço será a predefinição
Criar um fornecedor
POST /api/suppliers{?access_token}
Estado: disponível
Para criar um Fornecedor, forneça um hash JSON dos atributos para o novo Fornecedor. Esta ação requer um access_token com âmbito de productions_write.
Exemplo de URI
POST /api/suppliers?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Corpo
{ "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "2020-01-01T00:00:00Z", "contacts": [ { "email": "supplier@supplier.com", "phone-number": "12345678", "name": "Contact1", "default": true }, { "email": "supplier2@supplier2.com", "phone-number": "123456789", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "city": "Lisbon", "address": "Address 1 Street", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "city": "San Francisco", "address": "Address 1 Street", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }
Resposta 201
Resposta 201
Corpo
{ "id": 987356123, "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Listar Fornecedores
GET /api/suppliers{?access_token}
Para listar Fornecedores. Esta ação requer um access_token com âmbito de productions_write. Este serviço é paginado, apresentando 25 fornecedores por página.
Exemplo de URI
GET /api/suppliers?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
página
numeric (opcional)
índice de página de resultados, a começar em 1
id
number (opcional)
listar fornecedores filtrados por id
código
string (opcional)
listar fornecedores filtrados por código
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Resposta 200
Resposta 200
Corpo
[ { "id": 987356123, "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }, { "id": 987356124, "code": "Supplier2", "name": "Supplier2", "number": "213457", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier3@supplier3.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier4@supplier4.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address3", "name": "Address3", "address": "Address 3 Street", "city": "Paris", "post-code": "111-111", "state": "Paris", "country": "FR", "default": true }, { "code": "Address4", "name": "Address4", "address": "Address 4 Street", "city": "Madrid", "post-code": "111-111", "state": "Madrid", "country": "ES", "default": false } ] } ]
Resposta 400Show
Resposta 400Show
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Obter um fornecedor
GET /api/suppliers/{id}{?access_token}
Esta ação requer um access_token com âmbito de productions_write.
Exemplo de URI
GET /api/suppliers/id?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
id
numeric (obrigatório)
ID de fornecedor
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Resposta 201
Resposta 201
Corpo
{ "id": 987356123, "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Atualizar um fornecedor
PUT /api/suppliers/{id}{?access_token}
Para atualizar um Fornecedor, forneça um hash JSON dos atributos para o novo Fornecedor.
Contactos
Os contactos do fornecedor fornecidos substituirão os contactos atuais.
Se um contacto com o mesmo nome de um contacto existente for fornecido, os valores do contacto com esse nome serão substituídos pelos valores fornecidos.
Se não forem fornecidos contactos, os contactos existentes serão removidos.
Endereços
Os endereços fornecidos substituirão os endereços atuais.
Se um endereço com o mesmo código que um endereço existente for fornecido, os valores do endereço com esse código serão substituídos pelos valores fornecidos.
Se nenhum endereço for fornecido, os endereços existentes serão removidos.
Se um endereço tiver entidades associadas, o pedido falhará, pois o endereço não pode ser removido.
Esta ação requer um access_token com âmbito de productions_write.
Exemplo de URI
PUT /api/suppliers/id?access_token=
Parâmetros de URI
Parâmetros de URI
id
numeric (obrigatório)
Id de cliente
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Corpo
{ "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "2020-01-01T00:00:00Z", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }
Resposta 201
Resposta 201
Corpo
{ "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Remover um fornecedor
DELETE /api/suppliers/{id}{?access_token}
Exemplo de URI
DELETE /api/suppliers/id?access_token=
Parâmetros de URI
Parâmetros de URI
id
numeric (obrigatório)
Id de fornecedor
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Resposta 204
Resposta 204
Corpo
Supplier was deleted
Resposta 412
Resposta 412
Corpo
It's not possible to delete this supplier. It has dependent entities.
Cliente
Recursos do cliente da API do Prodsmart.
CLIENTE
Um único objeto de cliente.
O recurso Cliente tem os seguintes atributos:
id (fornecido)
code (cadeia, obrigatório, único) - código do cliente
name (cadeia, obrigatório) - nome do cliente
number (cadeia, opcional) - número do cliente
phone-number (cadeia, opcional) - número de telefone do cliente
email (cadeia, opcional) - e-mail do cliente
addresses (matriz, opcional)
code (cadeia, obrigatório, único) - código de endereço
name (cadeia, opcional) - nome do endereço
address (cadeia, obrigatório) - linha de endereço
city (cadeia, opcional) - cidade do endereço
post-code (cadeia, opcional) - código postal do endereço
state (cadeia, opcional) - estado/região do endereço
country (cadeia, obrigatório) - código do país do endereço
default (booleano, opcional - reposto em falso) - se verdadeiro, é o endereço predefinido do cliente
contacts (matriz, opcional)
phone-number (cadeia, obrigatório se não houver e-mail) - número de telefone de contacto
email (cadeia, obrigatório se não houver número de telefone) - e-mail de contacto
name (cadeia, opcional) - nome do contacto
default (booleano, opcional - reposto em falso) - se verdadeiro, é o contacto predefinido do cliente
Regras de endereço/contacto predefinido:
Os contactos e endereços só podem ter um endereço ou contacto predefinido, respetivamente
Se um cliente tiver endereços, um dos endereços terá de ser o predefinido
Se um cliente tiver contactos, um dos contactos terá de ser o predefinido
Na criação/atualização de um cliente, se nenhum contacto/endereço predefinido for fornecido, o primeiro contacto/endereço será a predefinição
Criar um cliente
POST /api/clients{?access_token}
Para criar um Cliente, forneça um hash JSON dos atributos para o novo Cliente. Esta ação requer um access_token com âmbito de productions_write. Por enquanto, só é possível guardar um cliente. No futuro, se o pedido for uma matriz em vez de um recurso, todos os itens na matriz serão guardados.
Exemplo de URI
POST /api/clients?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Corpo
{ "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "2020-01-01T00:00:00Z", "contacts": [ { "email": "supplier@supplier.com", "phone-number": "12345678", "name": "Contact1", "default": true }, { "email": "supplier2@supplier2.com", "phone-number": "123456789", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "city": "Lisbon", "address": "Address 1 Street", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "city": "San Francisco", "address": "Address 1 Street", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }
Resposta 201
Resposta 201
Corpo
{ "id": 987356123, "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Listar clientes
GET /api/clients{?access_token}
Para listar Clientes. Esta ação requer um access_token com âmbito de productions_write. Este serviço é paginado, apresentando 25 clientes por página.
Exemplo de URI
GET /api/clients?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
página
numeric (opcional)
índice de página de resultados, a começar em 1
id
number (opcional)
listar clientes filtrados por id
código
string (opcional)
listar clientes filtrados por código
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Resposta 200
Resposta 200
Corpo
[ { "id": 987356123, "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }, { "id": 987356124, "code": "Supplier2", "name": "Supplier2", "number": "213457", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier3@supplier3.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier4@supplier4.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address3", "name": "Address3", "address": "Address 3 Street", "city": "Paris", "post-code": "111-111", "state": "Paris", "country": "FR", "default": true }, { "code": "Address4", "name": "Address4", "address": "Address 4 Street", "city": "Madrid", "post-code": "111-111", "state": "Madrid", "country": "ES", "default": false } ] } ]
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Obter um Cliente
GET /api/clients/{id}{?access_token}
Esta ação requer um access_token com âmbito de productions_write.
Exemplo de URI
GET /api/clients/id?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
id
numeric (obrigatório)
Id de cliente
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Resposta 201
Resposta 201
Corpo
{ "id": 987356123, "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Atualizar um Cliente
PUT /api/clients/{id}{?access_token}
Para atualizar um Cliente, forneça um hash JSON dos atributos para o novo Cliente.
Contactos
Os contactos do fornecedor fornecidos substituirão os contactos atuais.
Se um contacto com o mesmo nome de um contacto existente for fornecido, os valores do contacto com esse nome serão substituídos pelos valores fornecidos.
Se não forem fornecidos contactos, os contactos existentes serão removidos.
Endereços
Os endereços fornecidos substituirão os endereços atuais.
Se um endereço com o mesmo código que um endereço existente for fornecido, os valores do endereço com esse código serão substituídos pelos valores fornecidos.
Se nenhum endereço for fornecido, os endereços existentes serão removidos.
Se um endereço tiver entidades associadas, o pedido falhará, pois o endereço não pode ser removido.
Esta ação requer um access_token com âmbito de productions_write.
Exemplo de URI
PUT /api/clients/id?access_token=
Parâmetros de URI
Parâmetros de URI
id
numeric (obrigatório)
Id de cliente
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Corpo
{ "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "2020-01-01T00:00:00Z", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses":[ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ]}
Resposta 201
Resposta 201
Corpo
{ "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Remover um cliente
DELETE /api/clients/{id}{?access_token}
Exemplo de URI
DELETE /api/clients/id?access_token=
Parâmetros de URI
Parâmetros de URI
id
numeric (obrigatório)
ID de cliente
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Resposta 204
Resposta 204
Corpo
Client was deleted
Resposta 412
Resposta 412
Corpo
It's not possible to delete this client. It has dependent entities.
Ordem de venda
Recursos ClientOrder da API do Prodsmart.
ORDEM DE VENDA
Um único objeto de Ordem de venda. O recurso Ordem de venda é um dos recursos mais importantes da API do Prodsmart.
O recurso Ordem de venda tem os seguintes atributos:
id (fornecido)
code (cadeia, obrigatório) - código de ordem de venda
client (cadeia, opcional) - código do cliente
observations (cadeia, opcional) - observações de ordem de venda
products (matriz, obrigatório, não vazio)
code (cadeia, obrigatório, único) - código do produto
quantity (duplo, obrigatório, > 0) - quantidade pedida
due-date (data, opcional, formato AAAA-MM-DDTHH:MM:SSZ) - data final da expedição
requested-date (data, opcional, formato AAAA-MM-DDTHH:MM:SSZ) - data em que a expedição é solicitada
location (cadeia, opcional) - localização, se multilocal
price (duplo, opcional) - preço do produto
parameters (cadeia, opcional) - contém um atributo específico de ordem de venda
Criar uma Ordem de venda
POST /api/client-order/{?access_token}
Para criar uma Ordem de venda, indique um hash JSON dos atributos para a nova Ordem de venda. Esta ação requer um access_token com âmbito de productions_write. Por enquanto, só é possível guardar uma Ordem de venda. No futuro, se o pedido for uma matriz em vez de um recurso, todos os itens na matriz serão guardados.
Exemplo de URI
POST /api/client-order/?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Corpo
{ "code": "CO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "client": "Client X", "observations": "Ready next week", "billing-address": "San Francisco", "delivery-address": "Delivery address code", "location": "location code", "products": [ { "code": "V23076", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price": 200.3, "delivery-address":"San Francisco" }, { "code": "V23077", "quantity": 99, "due-date": "2016-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price":502, "delivery-address":"Los Angeles" } ], "parameters": [ { "name": "Sales Order Type", "value": "Regular" } ]}
Resposta 201
Resposta 201
Corpo
{ "id": 987356123, "code": "CO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "client": "Client X", "billing-address":"San Francisco", "observations": "Ready next week", "products": [ { "code": "V23076", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price": 200.3, "delivery-address":"San Francisco" }, { "code": "V23077", "quantity": 99, "due-date": "2016-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price":502, "delivery-address":"Los Angeles" } ], "parameters": [ { "name": "Sales Order Type", "value": "Regular" } ]}
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Listar Ordens de venda
GET /api/client-order/{?access_token}
Para listar Ordens de venda. Múltiplos parâmetros serão tratados como uma condição E. Esta ação requer um access_token com âmbito de productions_write. Este serviço é paginado, apresentando 25 ordens de venda por página.
Exemplo de URI
GET /api/client-order/?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
página
numeric (opcional)
índice de página de resultados, a começar em 1
due-date-before
date (opcional)
listar ordens de venda com data final anterior a esta
due-date-after
date (opcional)
listar ordens de venda com data final posterior a esta
cliente
string (opcional)
custo de máquina
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Resposta 200
Resposta 200
Corpo
[ { "id": 987356123, "code": "CO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "client": "Client X", "observations": "Ready next week", "products": [ { "code": "V23076", "name": "Vessel", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price": 200.3 }, { "code": "V23077", "quantity": 99, "due-date": "2016-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z" } ], "parameters": [ { "name": "Sales Order Type", "value": "Regular" } ] }, { "id": 987356124, "code": "CO123 - Week 48", "client": "Client X", "observations": "", "products": [ { "code": "V23076", "name": "Vessel", "quantity": 70, "due-date": "2019-08-23T18:00:00Z", "requested-date": "2019-01-16T15:19:54Z", "price": 140 }, { "code": "V23077", "quantity": 69, "due-date": "2016-08-23T18:00:00Z", "requested-date": "2019-01-16T15:19:54Z" } ], "parameters": [ { "name": "Sales Order Type", "value": "Priority" } ] }]
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Obter uma Ordem de venda
GET /api/client-order/{id}{?access_token}
Esta ação requer um access_token com âmbito de productions_write.
Exemplo de URI
GET /api/client-order/id?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
id
numeric (obrigatório)
ID da Ordem de venda
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Resposta 201
Resposta 201
Corpo
{ "id": 987356123, "code": "CO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "client": "Client X", "observations": "Ready next week", "products": [ { "code": "V23076", "name": "Vessel", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price": 200.3 }, { "code": "V23077", "quantity": 99, "due-date": "2016-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z" } ], "parameters": [ { "name": "Sales Order Type", "value": "Priority" } ]}
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Atualizar uma Ordem de venda
PUT /api/client-order/{?access_token}
Para atualizar uma Ordem de venda, indique um hash JSON dos atributos para a nova Ordem de venda. Esta ação requer um access_token com âmbito de productions_write.
Exemplo de URI
PUT /api/client-order/?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Corpo
{ "code": "CO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "client": "Client X", "observations": "Ready next week", "billing-address": "San Francisco", "location": "location code", "products": [ { "code": "V23076", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price": 200.3, "billing-address": "San Francisco" }, { "code": "V23077", "quantity": 99, "due-date": "2016-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "billing-address": "Los Angeles" } ]}
Resposta 201
Resposta 201
Corpo
{ "id": 987356123, "code": "CO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "client": "Client X", "billing-address": "San Francisco", "observations": "Ready next week", "products": [ { "code": "V23076", "name": "Vessel", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price": 200.3, "billing-address": "San Francisco" }, { "code": "V23077", "quantity": 99, "due-date": "2016-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "billing-address": "Los Angeles" } ]}
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Remover uma Ordem de venda
DELETE /api/client-order/{id}{?access_token}
Exemplo de URI
DELETE /api/client-order/id?access_token=
Parâmetros de URI
Parâmetros de URI
id
numeric (obrigatório)
ID da Ordem de venda
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Resposta 204
Resposta 204
Corpo
Client order was deleted
Resposta 409
Resposta 409
Corpo
Client order already has production orders created or other entities associated, cannot be removed.
Ordem de compra
Recursos de Ordem de compra da API do Prodsmart.
ORDEM DE COMPRA
Um único objeto de Ordem de compra. O recurso Ordem de compra é um dos recursos mais importantes da API do Prodsmart.
O recurso Ordem de compra tem os seguintes atributos:
id (fornecido)
code (cadeia, obrigatório) - código de ordem de compra
supplier (cadeia, opcional) - código do fornecedor
billing-address (cadeia, opcional) - endereço de faturação
observations (cadeia, opcional) - observações de ordem de compra
products (matriz, obrigatório, não vazio)
code (cadeia, obrigatório, único) - código do produto
quantity (duplo, obrigatório, > 0) - pedido de quantidade
due-date (data, opcional, formato AAAA-MM-DDTHH:MM:SSZ) - data final da receção
requested-date (data, opcional, formato AAAA-MM-DDTHH:MM:SSZ) - data em que a receção é solicitada
cost (duplo, opcional) - custo do produto
uom (cadeia, opcional) - unidade de medida do produto
delivery-address (cadeia, opcional) - endereço de entrega de receção
parameters (cadeia, opcional) - parâmetros de ordem de compra
approval-status (cadeia, opcional) - rascunho, em revisão, aprovado, confirmado, rejeitado
Criar uma ordem de compra
POST /api/purchase-orders/{?access_token}
Para criar uma Ordem de compra, forneça um hash JSON dos atributos da nova Ordem de compra. Esta ação requer um access_token com âmbito de productions_write. Por enquanto, só é possível guardar uma Ordem de compra. No futuro, se o pedido for uma matriz em vez de um recurso, todos os itens na matriz serão guardados.
Exemplo de URI
POST /api/purchase-orders/?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Corpo
{ "code": "PO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "supplier": "Supplier X", "billing-address": "Lisbon", "observations": "Ready next week", "products": [ { "code": "V23076", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "uom": "Box", "cost": 200.3 }, { "code": "V23077", "quantity": 99, "due-date": "2023-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z" } ], "approval-status": "draft", "active": true}
Resposta 201
Resposta 201
Cabeçalhos
Content-Type: application/json
Corpo
{ "code": "PO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "supplier": "Supplier X", "billing-address": "Lisbon", "observations": "Ready next week", "products": [ { "code": "V23076", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "uom": "Box", "cost": 200.3 }, { "code": "V23077", "quantity": 99, "due-date": "2023-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z" } ], "approval-status": "draft", "active": true}
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Obter uma Ordem de compra
GET /api/purchase-orders/{id}{?access_token}
Esta ação requer um access_token com âmbito de productions_write.
Exemplo de URI
GET /api/purchase-orders/id?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
id
numeric (obrigatório)
Id de Ordem de compra
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Resposta 201
Resposta 201
Corpo
{ "id": 987356123, "code": "PO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "supplier": "Supplier X", "observations": "Ready next week", "products": [ { "code": "V23076", "name": "Vessel", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "cost": 200.3 }, { "code": "V23077", "quantity": 99, "due-date": "2023-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z" } ]}
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Atualizar uma Ordem de compra
PUT/api/purchase-orders/{id}{?access_token}
Para atualizar uma Ordem de compra, forneça um hash JSON dos atributos da nova Ordem de compra. Esta ação requer um access_token com âmbito de productions_write.
Exemplo de URI
PUT /api/purchase-orders/id?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
id
numeric (obrigatório)
Id de Ordem de compra
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Corpo
{ "id": 987356123, "code": "CO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "client": "Client X", "observations": "Ready next week", "products": [ { "code": "V23076", "name": "Vessel", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price": 200.3 }, { "code": "V23077", "quantity": 99, "due-date": "2016-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z" } ]}
Resposta 201
Resposta 201
Corpo
{ "id": 987356123, "code": "CO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "client": "Client X", "observations": "Ready next week", "products": [ { "code": "V23076", "name": "Vessel", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price": 200.3 }, { "code": "V23077", "quantity": 99, "due-date": "2016-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z" } ]}
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Remover uma ordem de compra
DELETE /api/purchase-orders/{id}{?access_token}
Exemplo de URI
DELETE /api/purchase-orders/id?access_token=
Parâmetros de URI
Parâmetros de URI
id
numeric (obrigatório)
Id de Ordem de compra
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Resposta 204
Resposta 204
Corpo
Purchase order was deleted
Resposta 409
Resposta 409
Corpo
Purchase order already has production orders created or other entities associated, cannot be removed.
Listar Ordens de compra
GET /api/purchase-orders{?access_token}
Para listar Ordens de compra. Vários parâmetros serão tratados como uma condição E. Esta ação requer um access_token com âmbito de productions_write. Este serviço é paginado, apresentando 25 ordens de venda por página.
Exemplo de URI
GET /api/purchase-orders?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
página
numeric (opcional)
índice de página de resultados, a começar em 1
id
number (opcional)
listar ordens de compra filtradas por id de ordem de compra
código
string (opcional)
listar ordens de compra filtradas por código de ordem de compra
due-date-before
date (opcional)
listar ordens de compra com data final anterior a esta
due-date-after
date (opcional)
listar ordens de compra com data final posterior a esta
fornecedor
string (opcional)
listar ordens de compra filtradas por código do fornecedor
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Resposta 200
Resposta 200
Corpo
[ { "id": 987356123, "code": "PO123 - Week 47", "creation-date": "2023-04-19T08:30:01Z", "supplier": "Supplier X", "observations": "Ready next week", "products": [ { "code": "V23076", "name": "Vessel", "quantity": 100, "due-date": "2023-08-16T17:15:15Z", "requested-date": "2023-01-16T15:19:54Z", "cost": 200.3 }, { "code": "V23077", "quantity": 99, "due-date": "2023-08-16T17:15:15Z", "requested-date": "2023-01-16T15:19:54Z" } ] }, { "id": 987356124, "code": "PO123 - Week 48", "supplier": "Supplier X", "observations": "", "products": [ { "code": "V23076", "name": "Vessel", "quantity": 70, "due-date": "2023-08-23T18:00:00Z", "requested-date": "2023-01-16T15:19:54Z", "cost": 140 }, { "code": "V23077", "quantity": 69, "due-date": "2023-08-23T18:00:00Z", "requested-date": "2023-01-16T15:19:54Z" } ] }]
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Ordem de produção
Recursos de Ordem de Produção da API do Prodsmart.
ORDEM DE PRODUÇÃO
Um único objeto de Ordem de produção. O recurso Ordem de produção é um dos recursos mais importantes da API do Prodsmart. Representa a ordem de gestão para produzir uma quantidade predeterminada de produtos durante um período definido por trabalhadores definidos.
O recurso Ordem de produção tem os seguintes atributos:
id (fornecido)
code (cadeia, obrigatório) - código de ordem de produção
start-date (data, obrigatório, formato AAAA-MM-DDTHH:MM:SSZ) - data em que esta ordem de produção está programada para iniciar
due-date (data, obrigatório, formato AAAA-MM-DDTHH:MM:SSZ) - data final desta ordem de produção
products (matriz, obrigatório, não vazio) - produtos e quantidades solicitados
product (cadeia, obrigatório, único) - código do produto
quantity-ordered (número inteiro, obrigatório, >0) - quantidade pedida
observations (opcional) - nota sobre este produto
quantity-produced (número inteiro, fornecido, >0) - quantidade produzida
description (opcional) - descrição para esta ordem de produção
shipping (opcional) - código de expedição para esta ordem
workers-assigned (matriz, opcional) -
number - número do trabalhador
machines (matriz, opcional)
code - código de máquina
serial-number (opcional)
description (opcional)
notes (opcional)
status (fornecido) - programado (antes de start_date e completo = 0), no prazo (antes de end_date e integridade < 100%), atrasado (após end_date completo < 100%), concluído (completo > = 100%)
running-status (fornecido) - não iniciado (sem produções), iniciado (com produções), fechado (fechado manualmente ou fechado por conclusão), arquivado (arquivado manualmente)
O id de estado é atribuído pela API do Prodsmart no momento da criação.
Obter uma Ordem de produção
GET /api/production-orders/{id}{?access_token}
Para obter uma Ordem de produção, basta realizar um pedido GET com o ID da Ordem de produção. Esta ação requer um access_token com âmbito de productions_write.
Exemplo de URI
GET /api/production-orders/id?access_token=
Parâmetros de URI
Parâmetros de URI
id
numeric (obrigatório)
ID da Ordem de produção
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
trabalhadores
boolean (opcional)
mostrar lista de trabalhadores na resposta
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Resposta 200
Resposta 200
Corpo
{ "products": [ { "product": "V23076", "quantity-ordered": 3500, "observations": "", "quantity-produced": 700 } ], "code": "V23076 - Week 33/34", "shipping": { "code": "shipping 45" }, "start-date": "2023-04-20T09:15:15Z", "due-date": "2023-05-16T17:15:15Z", "description": "Woodworks Ltd.", "ended": false, "custom-fields": [ { "Order Type": "No changeover" } ], "machines": [ { "code": "A32" } ], "pieces-by-box": 20, "is-active": true, "status": "onschedule", "running-status": "started", "notes": "", "location": { "id": "location id", "code": "location code", "name": "location name" }, "material-staging-complete": true, "id": 3990}
Atualizar/substituir uma Ordem de produção
PUT /api/production-orders/{id}{?access_token}
Para atualizar uma Ordem de produção, basta realizar um pedido PUT com o ID da Ordem de produção. Esta ação requer um access_token com âmbito de productions_write.
Exemplo de URI
PUT /api/production-orders/id?access_token=
Parâmetros de URI
Parâmetros de URI
id
numeric (obrigatório)
ID da Ordem de produção
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
trabalhadores
boolean (opcional)
mostrar lista de trabalhadores na resposta
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Corpo
{ "products": [ { "product": "V23076", "quantity-ordered": 4000, "observations": "", "quantity-produced": 700 } ], "code": "V23076 - Week 33/34", "shipping": { "code": "shipping 45" }, "start-date": "2023-04-20T09:15:15Z", "due-date": "2023-05-16T17:15:15Z", "description": "Woodworks Ltd.", "ended": false, "custom-fields": [ { "Order Type": "No changeover" } ], "machines": [ { "code": "A32" } ], "pieces-by-box": 20, "is-active": true, "status": "onschedule", "running-status": "started", "notes": "", "location": "location code", "material-staging-complete": true, "id": 3990}
Resposta 200
Resposta 200
Corpo
{ "products": [ { "product": "V23076", "quantity-ordered": 4000, "observations": "", "quantity-produced": 700 } ], "code": "V23076 - Week 33/34", "shipping": { "code": "shipping 45" }, "start-date": "2023-04-20T09:15:15Z", "due-date": "2023-05-16T17:15:15Z", "description": "Woodworks Ltd.", "ended": false, "custom-fields": [ { "Order Type": "No changeover" } ], "machines": [ { "code": "A32" } ], "pieces-by-box": 20, "is-active": true, "status": "onschedule", "running-status": "started", "notes": "", "location": { "id": "location id", "code": "location code", "name": "location name" }, "material-staging-complete": true, "id": 3990}
Remover uma Ordem de produção
DELETE /api/production-orders/{id}{?access_token}
Exemplo de URI
DELETE /api/production-orders/id?access_token=
Parâmetros de URI
Parâmetros de URI
id
numeric (obrigatório)
ID da Ordem de produção
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Resposta 204
Resposta 204
Corpo
Production order was deleted
Criar uma Ordem de produção
POST /api/production-orders/{?access_token}
Para criar uma Ordem de produção, forneça um hash JSON dos atributos para a nova Ordem de produção. Esta ação requer um access_token com âmbito de productions_write. Por enquanto, só é possível guardar uma Ordem de produção. No futuro, se o pedido for uma matriz em vez de um recurso, todos os itens na matriz serão guardados.
Exemplo de URI
POST /api/production-orders/?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
trabalhadores
boolean (opcional)
mostrar lista de trabalhadores na resposta
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Corpo
{ "products": [ { "product": "productExample", "quantity-ordered": 4500, "observations": "" } ], "code": "exampleCode", "shipping": "shippingExample", "serial-number": "", "description": "", "start-date": "2023-07-20T09:15:15Z", "due-date": "2023-08-16T17:15:15Z", "parameters": [ { "name": "Custom Field Name", "value": "123" }, { "name": "Custom Field Name 2", "value": "456" } ], "workers-assigned": [ { "number": 1 }, { "number": 3 } ], "worker-groups": [ { "name": "All" } ], "ended": false, "machines": [ { "code": "exampleMachine" }, { "code": "F1" } ], "pieces-by-box": 20, "notes": "", "location": "location code", "active": true}
Resposta 201
Resposta 201
Corpo
{ "products": [ { "product": "productExample", "quantity-ordered": 4500, "observations": "", "quantity-produced": 0 } ], "code": "exampleCode", "shipping": "shippingExample", "serial-number": "", "description": "", "start-date": "2023-07-20T09:15:15Z", "due-date": "2023-08-16T17:15:15Z", "workers-assigned": [ { "number": 1 }, { "number": 2 } { "number": 3 } { "number": 4 } ], "ended": false, "machines": [ {"code": "exampleMachine"}, {"code": "F1"} ], "pieces-by-box": 20, "status": "scheduled", "running-status": "notstarted", "notes": "", "location": { "id": "location id", "code": "location code", "name": "location name" }, "active": true, "id": 11110}
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Listar Ordens de produção
GET /api/production-orders/{?access_token}
Para listar Ordens de produção. Vários parâmetros serão tratados como uma condição E. Esta ação requer um access_token com âmbito de productions_write. Este serviço é paginado, apresentando 25 OPs por página.
Exemplo de URI
GET /api/production-orders/?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
página
numeric (opcional)
índice de página de resultados, a começar em 1
start-date-before
date (opcional)
listar ordens de produção com data de início anterior a esta
start-date-after
date (opcional)
listar ordens de produção com data de início posterior a esta
due-date-before
date (opcional)
listar ordens de produção com data final anterior a esta
due-date-after
date (opcional)
listar ordens de produção com data final posterior a esta
running-status
string (opcional)
não iniciado, iniciado, fechado, arquivado
ativo
boolean (opcional)
listar somente ordens de produção ativas (verdadeiro) ou não ativas (falso)
produto
string (opcional)
código de produto
máquina
string (opcional)
custo de máquina
trabalhadores
boolean (opcional)
mostrar lista de trabalhadores na resposta
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Resposta 200
Resposta 200
Corpo
[ { "products": [ { "product": "exampleProduct", "quantity-ordered": 4500, "observations": "", "quantity-produced": 0 } ], "code": "exampleCode", "shipping": "Shipping 45", "serial-number": "", "description": "", "start-date": "2023-07-20T09:15:15Z", "due-date": "2023-08-16T17:15:15Z", "workers-assigned": [ { "number": 10 }, { "number": 1 } ], "ended": false, "machines": [ { "code": "exampleMachine" }, { "code": "F1" } ], "pieces-by-box": 20, "status": "scheduled", "running-status": "notstarted", "notes": "", "location": { "id": "location id", "code": "location code", "name": "location name" }, "active": true, "id": 8763990 }]
Notificar um problema de ordem de produção
POST /api/production-orders/{id}/notify{?access_token}
Serviço que publica uma mensagem curta no feed e adiciona uma mensagem na Ordem de produção.
mensagem curta (cadeia, obrigatório) - mensagem publicada no feed, comprimento máximo de 140 caracteres
mensagem (cadeia, opcional) - mensagem adicionada à secção de notas na OC
Exemplo de URI
POST /api/production-orders/id/notify?access_token=
Parâmetros de URI
Parâmetros de URI
id
numeric (obrigatório)
ID da Ordem de produção
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Corpo
{ "short-message": "example", "message": "complete message "}
Resposta 200
Resposta 200
Ativar uma Ordem de produção
POST /api/production-orders/{id}/activate{?access_token}
Serviço que ativa a Ordem de produção.
Exemplo de URI
POST /api/production-orders/id/activate?access_token=
Parâmetros de URI
Parâmetros de URI
id
numeric (obrigatório)
ID da Ordem de produção
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Corpo
{}
Resposta 200
Resposta 200
Resposta 204
Resposta 204
Corpo
Production Order was already active
Resposta 405
Resposta 405
Corpo
Production Order was closed or archived and cannot be activated
Produtos
Recursos de produto da API do Prodsmart.
PRODUCT
Um único objeto de produto. O recurso Produto é um dos recursos mais importantes da API do Prodsmart. Representa os produtos de uma fábrica e contém as operações necessárias para a sua produção. Este método cria novos produtos e as suas operações. Também pode ser utilizado
O recurso Produto tem os seguintes atributos:
code (cadeia, obrigatório) - código de produto
name (cadeia, obrigatório) - nome do produto
section (cadeia, opcional)
families (matriz, opcional)
operations (matriz, opcional) - operações para produzir o produto
code (cadeia, obrigatório) - código de operação
name (cadeia, obrigatório) - nome da operação
waste (matriz, opcional)
task-durations (matriz, opcional, máx:1)
duration (tempo, opcional, por exemplo, formato "10H59m59s") - o tempo médio que esta operação demora a ser executada, em teoria
duration-customer (hora, opcional, por exemplo, formato "10H59m59s") - o tempo definido no orçamento
ratio-quantity (duplo, opcional, predefinição: 1.0) - o volume produzido em cada instância desta operação
times-per-product (número inteiro, opcional, predefinição: 1) - o número de vezes que esta operação deve ser executada para completar uma unidade do produto
custom-fields (matriz, opcional, tem de existir no sistema) - campos personalizados a serem adicionados à operação
name (cadeia, obrigatório) - o nome do campo personalizado, já criado no sistema
machines (matriz, opcional, tem de existir no sistema) - máquinas que podem ser utilizadas para realizar a operação
code (cadeia, obrigatório) - o código de máquina, já criado no sistema
disabled (booleano, opcional) - desativa a operação
optional (booleano, opcional) - definir a operação como opcional
recovery (booleano, opcional) - definir a operação como recuperação
no-time (booleano, opcional) - não registar tempos de produção
no-quantity (booleano, opcional) - não registar quantidade de produção
as-team (booleano, opcional) - operação a ser executada como equipa
max-waste-threshold (duplo, opcional) - coeficiente máximo de desperdício a permitir
Os campos não presentes no pedido serão definidos com os valores predefinidos. Ao utilizar este método para produtos/operações existentes, os campos não presentes serão considerados eliminações.
Obter um produto
GET /api/products/{code}{?access_token}
Para obter um produto, basta executar um pedido GET com o código do produto. Esta ação requer um access_token com âmbito de productions_write.
Exemplo de URI
GET /api/products/code?access_token=
Parâmetros de URI
Parâmetros de URI
código
string (obrigatório)
Código do produto.
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Resposta 200
Resposta 200
Corpo
{ "code": "P11", "name": "Product 11", "section": null, "families": null, "color": "#8b0000", "observations": "observations", "operations": [ { "code": "op1", "name": "op1", "waste": null, "task-durations": [ { "validSince": "01/01/2022 - 13:00", "validUntil": "01/01/2100 - 13:00", "duration": "00H01m00s", "duration-customer": "00H01m00s", "ratio-quantity": 1 } ], "custom-fields": null, "machines": null, "disabled": false, "optional": false, "recovery": null, "no-time": false, "no-quantity": false, "as-team": false, "max-waste-threshold": null, "section": { "name": "specialsection" }, "id": 100 } ], "custom-fields": null, "parameters": [ { "name": "parameter1", "value": "value1" }, { "name": "parameter2", "value": "2022-12-19T00:00:00Z" }, { "name": "parameter3", "value": 1 } ], "label": { "code": "labelCode" }, "serializable": true, "id": 24}
Resposta 404
Resposta 404
Corpo
If product with the provided code doesn't exist.
Criar um produto
POST /api/products{?access_token}
Para criar um produto, forneça um hash JSON dos atributos para o novo produto e as suas operações. Esta ação requer um access_token com âmbito de productions_write. Operações múltiplas podem ser criadas de uma só vez.
Exemplo de URI
POST /api/products?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Corpo
{ "code": "P11", "name": "Product 11", "families": [ { "code": "FG" } ], "color": "#8b0000", "observations": "observations", "operations": [ { "code": "op1", "name": "op1", "waste": [ { "code": "BROKEN" } ], "task-durations": [ { "validSince": "01/01/2022 - 13:00", "validUntil": "01/01/2100 - 13:00", "duration": "00H01m00s", "duration-customer": "00H01m00s", "ratio-quantity": 1 } ], "times-per-product": 2.0, "checklists": [ { "code": "CheckIn" } ], "machines": [ { "code": "OVEN02" } ], "disabled": false, "optional": false, "recovery": false, "no-time": false, "no-quantity": false, "as-team": false, "multi-po": false, "print-production-barcode": false, "prepare-batch-order": false, "section": { "name": "CUT" } } ], "custom-fields": null, "parameters": [ { "name": "parameter1", "value": "value1" }, { "name": "parameter2", "value": "2022-12-19T00:00:00Z" } ], "serializable": true}
Resposta 201
Resposta 201
Corpo
{ "code": "P11", "name": "Product 11", "families": [ { "code": "FG" } ], "color": "#8b0000", "observations": "observations", "operations": [ { "code": "op1", "name": "op1", "waste": [ { "code": "BROKEN" } ], "task-durations": [ { "validSince": "01/01/2022 - 13:00", "validUntil": "01/01/2100 - 13:00", "duration": "00H01m00s", "duration-customer": "00H01m00s", "ratio-quantity": 1 } ], "times-per-product": 2.0, "checklists": [ { "code": "CheckIn" } ], "custom-fields": null, "machines": [ { "code": "OVEN02" } ], "disabled": false, "optional": false, "recovery": null, "no-time": false, "no-quantity": false, "as-team": false, "section": { "name": "CUT" } "id":560 } ], "custom-fields": null, "parameters": [ { "name": "parameter1", "value": "value1" }, { "name": "parameter2", "value": "2022-12-19T00:00:00Z" } ], "serializable": true "id":120}
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Atualizar produto
PUT /api/products/{code}{?access_token}
Para atualizar um produto, forneça um código e um hash JSON de atributos para o produto existente e as suas operações. Esta ação requer um access_token com âmbito de productions_write. Por enquanto, só é possível guardar um produto, mas várias operações podem ser criadas de uma só vez.
Exemplo de URI
PUT /api/products/code?access_token=
Parâmetros de URI
Parâmetros de URI
código
string (obrigatório)
Código do produto.
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Corpo
{ "code": "P11", "name": "Product 11", "families": [ { "code": "FG" } ], "color": "#8b0000", "observations": "observations", "operations": [ { "code": "op1", "name": "op1", "waste": [ { "code": "BROKEN" } ], "task-durations": [ { "validSince": "01/01/2022 - 13:00", "validUntil": "01/01/2100 - 13:00", "duration": "00H01m00s", "duration-customer": "00H01m00s", "ratio-quantity": 1 } ], "times-per-product": 2.0, "checklists": [ { "code": "CheckIn" } ], "custom-fields": null, "machines": [ { "code": "OVEN02" } ], "disabled": false, "optional": false, "recovery": null, "no-time": false, "no-quantity": false, "as-team": false, "section": { "name": "CUT" } } ], "custom-fields": null, "parameters": [ { "name": "parameter1", "value": "value1" }, { "name": "parameter2", "value": "2022-12-19T00:00:00Z" } ], "serializable": true}
Resposta 201
Resposta 201
Corpo
{ "code": "P11", "name": "Product 11", "families": [ { "code": "FG" } ], "color": "#8b0000", "observations": "observations", "operations": [ { "code": "op1", "name": "op1", "waste": [ { "code": "BROKEN" } ], "task-durations": [ { "validSince": "01/01/2022 - 13:00", "validUntil": "01/01/2100 - 13:00", "duration": "00H01m00s", "duration-customer": "00H01m00s", "ratio-quantity": 1 } ], "times-per-product": 2.0, "checklists": [ { "code": "CheckIn" } ], "custom-fields": null, "machines": [ { "code": "OVEN02" } ], "disabled": false, "optional": false, "recovery": null, "no-time": false, "no-quantity": false, "as-team": false, "section": { "name": "CUT" } "id":560 } ], "custom-fields": null, "parameters": [ { "name": "parameter1", "value": "value1" }, { "name": "parameter2", "value": "2022-12-19T00:00:00Z" } ], "serializable": true "id":120}
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Eliminar produto
DELETE /api/products/{code}{?access_token}
Para eliminar um produto, forneça o código de produto.
Exemplo de URI
DELETE /api/products/code?access_token=
Parâmetros de URI
Parâmetros de URI
código
string (obrigatório)
Código do produto.
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Corpo
Content-Type: application/json
Resposta 204
Resposta 204
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Listar produtos
GET /api/products{?access_token}
Para listar os produtos e as suas operações. Esta ação requer um access_token com âmbito de productions_write.
Exemplo de URI
GET /api/products?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
página
numeric (opcional)
índice de página de resultados, a começar em 1
product-family-code
string (opcional)
listar produtos que pertencem à família de produtos fornecida
modification-date
date (opcional)
listar os produtos que foram modificados através do backoffice após a data indicada
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Resposta 200
Resposta 200
Corpo
{ "code": "P11", "name": "Product 11", "observations": "", "section": null, "unit-cost": null, "unit-price": 4.32000, "families": [ { "code": "FG", "name": "Finished Goods" } ], "operations": [ { "code": "op1", "name": "op1", "waste": null, "task-durations": [ { "validSince": "01/01/2022 - 13:00", "validUntil": "01/01/2100 - 13:00", "duration": "00H01m00s", "duration-customer": "00H01m00s", "ratio-quantity": 1 } ], "custom-fields": null, "parameters": [ { "name": "parameter1", "value": "value1" } ], "machines": null, "disabled": false, "optional": false, "recovery": null, "no-time": false, "no-quantity": false, "as-team": false, "max-waste-threshold": null, "section": { "name": "specialsection" }, "id": 123 } ], "components": [ { "code": "SUGAR", "name": "Sugar", "quantity": 0.0015, "operation": "MIXING" }, { "code": "VANILLA", "name": "Vanilla", "quantity": 0.0008, "operation": "MIXING" } ], "serializable": false, "custom-fields": null}
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
BoM DO PRODUTO
O recurso da lista de materiais do produto (BoM) estipula os materiais utilizados para fabricar um produto específico. A lista de materiais tem os seguintes atributos:
product-code - produto principal
bom (matriz, obrigatório)
product-code (cadeia, obrigatório) - código do produto de componente/consumo
quantity (duplo, obrigatório) - quantidade
operation-code (string, opcional) - código de operação em que o material definido no código de produto é consumido. Se vazio, o consumo ocorrerá na primeira operação do processo de fabrico para este produto.
Atualizar a BoM do produto
POST /api/bom{?access_token}
Para atualizar a Lista de materiais de um produto, forneça um hash JSON dos atributos para o novo produto e as suas operações. Esta ação requer um access_token com âmbito de productions_write.
Exemplo de URI
POST /api/bom?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Corpo
{ "product-code": "bicycle", "bom": [ { "product-code": "wheel", "quantity": 2, "operation-code": "assemble" }, { "product-code": "seat", "quantity": 1, "operation-code": "assemble" } ]}
Resposta 201
Resposta 201
{ "product-code": "bicycle", "bom": [ { "product-code": "wheel", "quantity": 2, "operation-code": "assemble" }, { "product-code": "seat", "quantity": 1, "operation-code": "assemble" } ]}
Resposta 404
Resposta 404
Corpo
Main product not found
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
STOCK DE PRODUTO
O recurso Stock estipula as ações disponíveis para um produto específico.
product-code (cadeia, obrigatório)
stock (duplo, obrigatório)
date (data, opcional) - data da contagem de stock
Atualizar o Stock de Produto
POST /api/stock{?access_token}
Para atualizar o stock de um Produto, forneça uma hash JSON dos atributos para o seu stock atual. Esta ação requer um access_token com âmbito de productions_write.
Exemplo de URI
POST /api/stock?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Corpo
{ "product-code": "bicycle", "stock": 200.5, "date": "2023-08-16T17:15:15Z"}
Resposta 201
Resposta 201
Corpo
Request successful
Resposta 404
Resposta 404
Corpo
Product not found
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Famílias de produtos
Recursos de produto da API do Prodsmart.
FAMÍLIA DE PRODUTOS
O objeto Família de produtos representa a família ou as famílias às quais um produto pertence.
O recurso Família de produtos tem os seguintes atributos:
code (cadeia, obrigatório) - código da família de produtos
name (cadeia, obrigatório) - nome da família de produtos
Criar uma família de produtos
POST /api/product-families{?access_token}
Para criar uma ou mais famílias de produtos ・ Esta ação requer um access_token com âmbito de productions_write.
Exemplo de URI
POST /api/product-families?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Corpo
{ "product-families": [ { "code": "FAM 1", "name": "Family 1" }, { "code": "FAM 2", "name": "Family 2" } ]}
Resposta 201
Resposta 201
Corpo
[ { "code": "FAM 1", "name": "Family 1" }, { "code": "FAM 2", "name": "Family 2" }]
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Eliminar família de produtos
DELETE /api/product-family/{code}{?access_token}
Para eliminar uma família de produtos, forneça o código ProductFamily
Exemplo de URI
DELETE /api/product-family/code?access_token=
Parâmetros de URI
Parâmetros de URI
código
string (obrigatório)
Código do produto.
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Corpo
Content-Type: application/json
Resposta 204
Resposta 204
Corpo
Product Family was deleted
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Listar Famílias de produtos
GET /api/product-families{?access_token}
Para listar as famílias de produtos. Esta ação requer um access_token com âmbito de productions_write.
Exemplo de URI
GET /api/product-families?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
página
numeric (opcional)
índice de página de resultados, a começar em 1
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Resposta 201
Resposta 201
Corpo
[ { "code": "FAM 1", "name": "Family 1" }, { "code": "FAM 2", "name": "Family 2" }]
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Máquinas
Recursos de produção da API do Prodsmart.
CONTADOR
Atualizar contador
POST /api/machines/{machine_code}/counter{?access_token}
Para atualizar o contador atual na máquina, basta enviar o seguinte pedido. Para simplificar a ligação da máquina, pode utilizar access_token ou enviar credenciais de api no cabeçalho de autenticação com autenticação básica. O Prodsmart atualizará automaticamente a produção iniciada pelo trabalhador naquela máquina. A contagem de quantidades e as quantidades de desperdícios têm de ser incrementais (ou seja, sempre maiores do que as quantidades enviadas anteriormente).
Exemplo de URI
POST /api/machines/machine_code/counter?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
machine_code
string (obrigatório)
Código de máquina definido na plataforma Prodsmart
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Corpo
{ "count": 500, "waste": [ { "code": "Waste1", "quantity": 20 } ], "parameters": [ { "name": "parameter1", "value": "value1" }, { "name": "parameter2", "value": "2022-12-19T00:00:00Z" }, { "name": "parameter3", "value": 1 } ]}
Resposta 200
Resposta 200
Corpo
Returns the new value for the machine's counter.
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
PARÂMETROS
Atualizar parâmetros
POST /api/machines/{machine_code}/parameters{?access_token}
Para atualizar um parâmetro de máquina, basta enviar o seguinte pedido. Para simplificar a ligação da máquina, pode utilizar access_token ou enviar credenciais de api no cabeçalho de autenticação com autenticação básica. Quando estes parâmetros forem passados, se um registo de produção for
Exemplo de URI
POST /api/machines/machine_code/parameters?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
machine_code
string (obrigatório)
Código de máquina definido na plataforma Prodsmart
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Corpo
{ "parameters": [ { "code": "temperature", "value": 25 }, { "code": "valid", "value": "yes" } ]}
Resposta 200
Resposta 200
PARAGEM
Atualizar paragem
POST /api/machines/{machine_code}/startstop{?access_token}
Para atualizar o estado atual na máquina, basta enviar o seguinte pedido. Para simplificar a ligação da máquina, pode utilizar access_token ou enviar credenciais de api no cabeçalho de autenticação com autenticação básica. O Prodsmart regista automaticamente uma paragem ou encerra-as, de acordo com as informações recebidas. Envie 0 para a máquina parada, 1 se estiver ativada e especifique o tipo de tempo de inatividade.
Para atualizar um estado de máquina, especifique os seguintes atributos:
type (cadeia, obrigatório, tem de ser um tipo de paragem já atribuído à máquina) - o tipo de paragem
running (número, requerido, 0 ou 1) - é a máquina parada (0) ou em execução (1)
Exemplo de URI
POST /api/machines/machine_code/startstop?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
machine_code
string (obrigatório)
Código de máquina definido na plataforma Prodsmart
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Corpo
{ "type": "Maintenance", "running": 0}
Resposta 200
Resposta 200
Produção
Recursos de produção da API do Prodsmart.
PRODUÇÃO
Um único objeto de produção. O recurso Produção é o recurso central da API do Prodsmart. Representa o trabalho de um trabalhador numa função durante um período.
O recurso Produção tem os seguintes atributos:
id
start-time (data, obrigatório, formato AAAA-MM-DDTHH:MM:SSZ) - hora de início da produção
end-time (data, obrigatório, formato AAAA-MM-DDTHH:MM:SSZ) - hora final de produção
work-time (duração, indicado, formato 00H00m00s) - tempo de trabalho de produção (dentro do período agendado do horário/relógios de ponto e excluindo paragens)
production-order (opcional) - ordem de produção para a qual esta produção foi realizada
code (cadeia, obrigatório) - código de ordem de produção
id (cadeia, obrigatório)
operation (obrigatório) - tarefa que foi executada nesta produção
code (cadeia, obrigatório, único) - código de tarefa
product (obrigatório) - o material que o trabalhador está a trabalhar nesta função
quantity (número inteiro, obrigatório, > 0) - quantidade produzida nesta produção
worker (obrigatório) - uma pessoa que executa tarefas
number (longo, obrigatório, único) - número do trabalhador
desperdícios produzidos (matriz, opcional) - produção de material defeituoso numa operação
quantity (numérico, obrigatório) - código de desperdício
waste - tipo de material defeituoso
code (cadeia, obrigatório, único) - código de desperdício
description (cadeia, obrigatório) - descrição do desperdício
flaw (cadeia, obrigatório) - tipo de desperdício
quantity (número inteiro, obrigatório) - quantidade de desperdícios produzidos
O id de estado é atribuído pela API do Prodsmart no momento da criação.
Atualizar uma produção
PUT /api/productions/{id}{?access_token}
Para atualizar uma Produção, forneça um código e um hash JSON de atributos para a Produção existente. Esta ação requer um access_token com âmbito de productions_write. Por enquanto, só é possível guardar um produto, mas várias operações podem ser criadas de uma só vez.
Exemplo de URI
PUT /api/productions/id?access_token=
Parâmetros de URI
Parâmetros de URI
id
numeric (obrigatório)
Id de Produção
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Corpo
{ "shipping": { "code": "shippingexamplecode00" }, "production-order": { "code": "productionorderexample00" }, "operation": { "product-code": "otherProductCode", "code": "OtherOperationCode" }, "worker": { "number": "1000" }, "parameters": [ { "name": "parameter1", "value": "value1" }, { "name": "parameter2", "value": "2022-12-19T00:00:00Z" }, { "name": "parameter3", "value": 1 } ], "quantity": 100, "start-time": "2023-07-20T09:15:15Z", "end-time": "2023-07-20T09:15:16Z", "lot-number": "other lot", "finished": false}
Resposta 200
Resposta 200
Corpo
{ "id": 4629374, "production-order": { "code": "productionorderexample00", "id": 365315 }, "shipping": { "code": "shippingexamplecode00", "id": 41741 }, "operation": { "code": "OtherOperationCode", "product-code": "otherProductCode", "id": 790486 }, "worker": { "number": 1000, "name": "Worker Name", "id": 15890 }, "parameters": [ { "name": "parameter1", "value": "value1" }, { "name": "parameter2", "value": "2022-12-19T00:00:00Z" }, { "name": "parameter3", "value": 1 } ], "quantity": 100, "lot-number": "other lot", "start-time": "2023-07-20T09:15:15.000Z", "end-time": "2023-07-20T09:15:16.000Z", "finished": false}
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Eliminar produção
DELETE /api/productions/{id}{?access_token}
Para eliminar uma Produção, forneça um ID de produção.
Exemplo de URI
DELETE /api/productions/id?access_token=
Parâmetros de URI
Parâmetros de URI
id
numeric (obrigatório)
Id de Produção
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Corpo
Content-Type: application/json
Resposta 201
Resposta 201
Corpo
{ "id": 4629376, "production-order": { "code": "productionorderexample00", "id": 365315 }, "shipping": { "code": "shippingexamplecode00", "id": 41741 }, "operation": { "code": "operationexample0001", "product-code": "productcodeexample001", "id": 790486 }, "worker": { "number": 1000, "name": "worker example", "id": 15890 }, "parameters": [{ "name": "parameter1", "value": "value1" }, { "name": "parameter2", "value": "2022-12-19T00:00:00Z" }, { "name": "parameter3", "value": 1.0 }], "quantity": 100.0, "lot-number": "lotX", "start-time": "2023-07-20T09:15:15.000Z", "end-time": "2023-07-20T09:15:16.000Z", "finished": false}
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body
Listar produções
GET /api/productions{?access_token}
Para listar Produções. Vários parâmetros serão tratados como uma condição E. Esta ação requer um access_token com âmbito de productions_write. Este serviço é paginado, apresentando 25 produções por página.
Exemplo de URI
GET /api/productions?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
página
numeric (opcional)
índice de página de resultados, a começar em 1
production-order-id
numeric (opcional)
listar produções com esta ordem de produção
production-order-code
string (opcional)
listar produções com esta (ou estas) ordem(ns) de produção
trabalhador
numeric (opcional)
listar produções com este trabalhador (número do trabalhador)
start-time-before
date (opcional)
listar produções com hora de início antes desta
start-time-after
date (opcional)
listar produções com hora de início após esta
end-time-before
date (opcional)
listar produções com hora de fim antes desta
end-time-after
date (opcional)
listar produções com hora de fim posterior a esta
start-time
date (opcional)
listar produções em execução após esta hora de início (não utilizar combinado com -before -after)
checked-out
boolean (opcional)
listar as produções que são concluídas.
worker-name
boolean (opcional)
obtém o nome e o número do trabalhador em vez de apenas o número do trabalhador.
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Resposta 200
Resposta 200
Corpo
[ { "production-order": { "code": "PO1", "id": 36530 }, "operation": { "code": "2", "product": "Product 1" }, "worker": { "number": 2 }, "machine": { "code": "Machine Code" }, "produced-waste": [ { "quantity": 21, "waste": { "code": "Waste code", "description": "Description of this type of waste", "flaw": "Flaw", "recoverable": true, "billable": false, "id": 333 } } ], "parameters": [ { "parameter1": "value1" }, { "parameter2": 2 } ], "quantity": 0, "checked-out": false, "work-time": "00H00m00s", "start-time": "2023-09-20T17:55:32.000+01:00", "end-time": "2023-09-20T18:45:00.000+01:00", "id": 575354 }]
Paragem
Recursos de paragem da API do Prodsmart.
PARAGENS
Listar paragens
GET /api/downtimes{?access_token}
Para listar paragens. Vários parâmetros serão tratados como uma condição E. Esta ação requer um access_token com âmbito de productions_write.
Exemplo de URI
GET /api/downtimes?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
página
numeric (opcional)
índice de página de resultados, a começar em 1
start-time-before
date (opcional)
lista tempos de inatividade com hora de início antes desta
start-time-after
date (opcional)
lista ordens de tempo de inatividade com hora de início posterior a esta
end-time-before
date (opcional)
lista tempos de inatividade com hora de fim antes desta
end-time-after
date (opcional)
lista tempos de inatividade com hora de fim posterior a esta
máquina
numeric (opcional)
lista tempos de inatividade nesta máquina
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Resposta 200
Resposta 200
Corpo
[ { "id": 20146, "start-time": "2017-12-21T10:30:21.000Z", "end-time": "2017-12-21T10:32:21.000Z", "started-by": { "number": 2 }, "closed-by": { "number": 2 }, "workers": [], "machines": [ { "code": "M2", "name": "Machine 2" } ], "product": "ProdX", "production-order": "OP XPTO", "checked-out": true, "downtime-type": "Malfunction", "time-spent": "00H02m00s" }]
PunchClock
Recursos de Relógio de ponto da API do Prodsmart.
RELÓGIO DE PONTO
Os webhooks estão disponíveis para eventos de relógio de ponto no menu Integrações na aplicação. Para utilizar esta funcionalidade, adicione a chamada de URL de ponto final com os eventos de notificação que pretende escutar. Esforçamo-nos para enviar notificações de webhook tão rapidamente quanto os eventos ocorrem no nosso sistema. Atualmente, não oferecemos suporte para novas tentativas.
Lista relógios de ponto
GET /api/punchclocks{?access_token}
Para listar relógios de ponto. Vários parâmetros serão tratados como uma condição E. Esta ação requer um access_token com âmbito de productions_write.
Exemplo de URI
GET /api/punchclocks?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
página
numeric (opcional)
índice de página de resultados, a começar em 1
date-before
date (opcional)
lista entradas do relógio de ponto com data anterior a esta
date-after
date (opcional)
lista entradas do relógio de ponto com data posterior a esta
trabalhador
numeric (opcional)
lista entradas de relógio de ponto para este trabalhador
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Resposta 200
Resposta 200
Corpo
[{ "id": 372179, "date": "2018-09-21T09:24:06.000+01:00", "worker": { "number": 2 }, "type": 1},{ "id": 372180, "date": "2018-09-21T16:34:12.000+01:00", "worker": { "number": 2 }, "type": 0}]"type": 0 ('out') or 1 ('in')
Movimento de inventário
Recursos de Movimento de inventário da API do Prodsmart.
MOVIMENTO DE INVENTÁRIO
Um único objeto de Movimento de inventário. O recurso de Movimentação de inventário é um dos recursos mais importantes da API do Prodsmart.
O recurso de Movimentação de inventário tem os seguintes atributos:
id (fornecido)
product (cadeia, obrigatório) - código do produto
date-time (data, opcional, formato AAAA-MM-DDTHH:MM:SSZ) - data em que o movimento de inventário é criado
quantity (duplo, obrigatório) - quantidade de movimento de inventário
type (cadeia, obrigatório) - tipo de movimento de inventário: entrada, saída, consumo, produção
lot (cadeia, opcional) - lote de movimento de inventário a utilizar
total-cost (bigdecimal, opcional) - custo total do movimento de stock para a quantidade
warehouse-location (cadeia, opcional) - código de localização de armazém
warehouse (cadeia, opcional) - código do armazém
location (cadeia, opcional) - localização, se multilocal
comment (cadeia, opcional) - comentário de movimento de inventário
Obter um Movimento de inventário
GET /api/inventory-movements/{id}{?access_token}
Para obter um Movimento de inventário, basta realizar um pedido GET com o id do Movimento de inventário. Esta ação requer um access_token com âmbito de productions_write.
Exemplo de URI
GET /api/inventory-movements/id?access_token=
Parâmetros de URI
Parâmetros de URI
id
numeric (obrigatório)
Id de Movimento de inventário
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Resposta 200
Resposta 200
Corpo
{ "product-code": "ProductCode", "date-time": "2018-07-20T09:15:15Z", "quantity": "10", "type": "in", "lot": "A", "total-cost": "1000", "comment": "OK", "warehouse-location": "Zone2", "shipping": { "code": "shippingCode", "clientOrder": { "code": "clientOrderCode", "client": "clientCode" }, "location": { "id": "location id", "code": "location code", "name": "location name" } }, "receiving": { "code": "receivingCode", "purchaseOrder": { "code": "purchaseOrderCode", "supplier": "supplierCode" }, "location": { "id": "location id", "code": "location code", "name": "location name" } }}
Criar movimento de inventário
POST /api/inventory-movements/{?access_token}
Para criar um Movimento de inventário, forneça um hash JSON dos atributos para o novo Movimento de inventário. Esta ação requer um access_token com âmbito de productions_write. Por enquanto, só é possível guardar um Movimento de Inventário. No futuro, se o pedido for uma matriz em vez de um recurso, todos os itens na matriz serão guardados.
Exemplo de URI
POST /api/inventory-movements/?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Corpo
{ "product-code": "ProductCode", "date-time": "2018-07-20T09:15:15Z", "quantity": "10", "type": "in", "lot": "A", "total-cost": "1000", "comment": "OK", "warehouse": "A", "warehouse-location": "Zone2", "location": "location code", "shipping": "shippingCode", "client-order": "clientOrderCode", "receiving": "receivingCode", "purchase-order": "purchaseOrderCode"}
Resposta 200
Resposta 200
Corpo
{ "product-code": "ProductCode", "date-time": "2018-07-20T09:15:15Z", "quantity": "10", "type": "in", "lot": "A", "total-cost": "1000", "comment": "OK", "warehouse-location": "Zone2", "id": 12345, "shipping": { "code": "shippingCode", "clientOrder": { "code": "clientOrderCode", "client": "clientCode" }, "location": { "id": "location id", "code": "location code", "name": "location name" } }, "receiving": { "code": "receivingCode", "purchaseOrder": { "code": "purchaseOrderCode", "supplier": "supplierCode" }, "location": { "id": "location id", "code": "location code", "name": "location name" } }}
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body.
Atualizar um Movimento de inventário
PUT /api/inventory-movements/{id}{?access_token}
Para atualizar um Movimento de inventário, forneça um JSON com os atributos que deseja atualizar no Movimento de inventário (todos os atributos são opcionais). Esta ação requer um access_token
com productions_write scope
.
Exemplo de URI
PUT /
api/inventory-movements/id?access_token=
Parâmetros de URI
Parâmetros de URI
id
numeric
(obrigatório)
Id de Movimento de inventário
access_token
string
(obrigatório)
Token de acesso à API do Prodsmart.
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Corpo
{ "product-code": "ProductCode", "date-time": "2018-07-20T09:15:15Z", "quantity": "10", "type": "in", "lot": "A", "total-cost": "1000", "comment": "OK", "warehouse": "A", "warehouse-location": "Zone2", "receiving": "receivingCode" }
Eliminar um Movimento de inventário
DELETE /api/inventory-movement/{id}{?access_token}
Para eliminar um Movimento de inventário, indique um ID de Movimento de inventário.
Exemplo de URI
DELETE /api/inventory-movement/id?access_token=
Parâmetros de URI
Parâmetros de URI
id
numeric
(obrigatório)
Id de Movimento de inventário
access_token
string
(obrigatório)
Token de acesso à API do Prodsmart.
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Resposta 204
Resposta 400
Resposta 400
It's not possible to delete this inventory-movement.
Listar Movimentos de inventário
GET /api/inventory-movements/{?access_token}
Para listar Movimentos de Inventário. Vários parâmetros serão tratados como uma condição E. Esta ação requer um access_token com âmbito de productions_write. Este serviço é paginado, apresentando 25 MIs por página.
Exemplo de URI
GET /api/inventory-movements/?access_token=
Parâmetros de URI
Parâmetros de URI
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
página
numeric (opcional)
índice de página de resultados, a começar em 1
product-code
string (opcional)
código de produto
tipo
string (opcional)
tipo de movimento de inventário: entrada, saída, consumo, produção
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Resposta 200
Resposta 200
Corpo
[ { "product-code": "ProductCode", "date-time": "2018-07-20T09:15:15Z", "quantity": "10", "type": "in", "lot": "A", "total-cost": "1000", "comment": "OK", "warehouse-location": "Zone2", "id": 12345, "shipping": { "code": "shippingCode", "clientOrder": { "code": "clientOrderCode", "client": "clientCode" }, "location": { "id": "location id", "code": "location code", "name": "location name" } }, "receiving": { "code": "receivingCode", "purchaseOrder": { "code": "purchaseOrderCode", "supplier": "supplierCode" }, "location": { "id": "location id", "code": "location code", "name": "location name" } } }]
Stock
Recursos de Stock da API do Prodsmart.
Obter Stock de produto
GET /api/stock/{code}{?access_token}
Para obter um Stock de produto, basta realizar um pedido GET com o código do Produto. Vários parâmetros serão tratados como uma condição E. Esta ação requer um access_token com âmbito de productions_write.
Exemplo de URI
GET /api/stock/code?access_token=
Parâmetros de URI
Parâmetros de URI
código
string (obrigatório)
Código do produto.
access_token
string (obrigatório)
Token de acesso à API do Prodsmart.
lot
string (opcional)
Obter código do lote e quantidade de stock para o(s) lote(s) do produto
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Resposta 200
Resposta 200
Corpo
{"product-code": "Example","stock": 35,"lot": [ { "code": "A", "stock": 10 }, { "code": "B", "stock": 5 }}
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body.
Relatórios
Recursos de relatório da API do Prodsmart.
Tempo de trabalho do trabalhador
Tempo de trabalho do trabalhador GET/api/reports/worker-labor-time{?access_token}
Para obter um relatório, basta realizar um pedido GET com intervalo de tempo para extrair o relatório. É possível adicionar um trabalhador e um parâmetro de secção para filtrar o relatório. Além disso, é possível especificar alguns sinalizadores para personalizar o conteúdo do relatório. O valor predefinido de todos os sinalizadores é falso. Esta ação requer um access_token com âmbito de productions_write.
Exemplo de URI
GET /api/reports/worker-labor-time?access_token=
Parâmetros de URI
Parâmetros de URI
start-time
string (obrigatório)
Gerar relatório para datas após esta (incluído)
end-time
string (obrigatório)
Gerar relatório para datas anteriores a esta (incluído)
access_token
string (obrigatório)
Token de acesso à API do Prodsmart
worker-number
string (opcional)
Especifique um número de trabalhador para filtrar o relatório
section
string (opcional)
Especifique um nome de secção. Todos os trabalhadores desta secção serão incluídos no relatório
show-rework
boolean (opcional)
Incluir um novo campo com operações de retrabalho no relatório
show-weekend
boolean (opcional)
Incluir dias de fim de semana nos dados
only-punch-clock
boolean (opcional)
Considerar apenas o tempo de presença com entradas de relógio de ponto
página
numeric (opcional)
índice de página de resultados, a começar em 1
Pedido
Pedido
Cabeçalhos
Content-Type: application/json
Resposta 200
Resposta 200
Corpo
[ { "worker": { "number": "0", "name": "John" }, "presence-time": "08H00", "work-time": "04H00m00s", "percentage": "50%", "calendar-downtimes": "00H00m00s" }, { "worker": { "number": "1", "name": "Mary" }, "presence-time": "08H00", "work-time": "08H00m00s", "percentage": "100%", "calendar-downtimes": "00H00m00s" }]
Resposta 400
Resposta 400
Corpo
If there's a problem with the request, the problem found will be reported on the Response Body.
Resposta 429
Resposta 429
Corpo
Another request is ongoing for this endpoint. Please wait until the current request finishes before doing another.
Autorização e controlo de acesso
Acesso e controlo do token de autenticação do Prodsmart.
AUTORIZAÇÃO
O recurso de Autorização representa uma autorização concedida à empresa. Apenas pode aceder à sua própria autorização. A autenticação utilizada é a autenticação Básica, em que o cabeçalho de Autenticação está no formato <base64 encoded value of API_KEY:API_SECRET>. Para obter a chave e o segredo da API, inicie sessão no Prodsmart e edite o seu utilizador. (Nota: tem de ter uma função de administrador para obtê-la). O recurso de Autorização tem o seguinte atributo:
token
scopes
Em que token representa um token e âmbitos é uma matriz de âmbitos concedidos para a autorização concedida. Atualmente, o único âmbito disponível é productions_write
.
Obter Autorização
GET /api/authorization
Utilize GET para obter um token de acesso existente. Se um token ainda não existir, pode ser gerado um utilizando o método POST.
Exemplo de URI
GET /api/authorization
Pedido
Pedido
Cabeçalhos
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Resposta 200
Resposta 200
Cabeçalhos
Content-Type: application/jsonLink: <http:/api.prodsmart.com/api/authorizations>;rel="self"
Corpo
{ "_links": { "self": { "href": "/api/authorizations" }, }, "scopes": [ "productions_write" ], "token": "abc123"}
Criar autorização
POST /api/authorization
Utilize POST para gerar um novo token de acesso.
Exemplo de URI
POST /api/authorization
Pedido
Pedido
Cabeçalhos
Content-Type: application/jsonAuthorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Corpo
{ "scopes": [ "productions_write" ] }
Resposta 201
Resposta 201
Cabeçalhos
Content-Type: application/jsonLink: <http:/api.prodsmart.com/api/authorizations>;rel="self"
Corpo
{ "_links": { "self": { "href": "/api/authorizations" }, }, "scopes": [ "productions_write" ], "token": "abc123"}
Remover uma autorização
DELETE /api/authorization
Exemplo de URI
DELETE /api/authorization
Pedido
Pedido
Cabeçalhos
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Resposta 204
Resposta 204