Passar para o conteúdo principal

Documentação das APIs

David Andrade avatar
Escrito por David Andrade
Atualizado há mais de 2 semanas

Ponto de extremidade URI base da API

O ponto de extremidade de todas as nossas chamadas de API é: https://app.prodsmart.com/

Autenticação

A API do Prodsmart utiliza uma autorização de token simples. Primeiro, você cria um novo token (ou adquire um existente). Após adquirir seu token, você poderá usá-lo para acessar outros recursos dentro do escopo do token.

Seu token de autenticação dura 2 horas e, em seguida, você precisa solicitar um novo com suas credenciais de API.

Tipos de mídia

As solicitações com um corpo de mensagem estão usando JSON simples para definir ou atualizar os estados de recurso.

Estados de erro

Os códigos de status de resposta HTTP comuns são usados.

Json inválido

Se você receber uma resposta informando "JSON inválido", valide a carga json que você está usando no JSONLint.

Limite de taxa

As solicitações da API são limitadas a 120 solicitações por minuto por empresa. Após o limite ser excedido, as solicitações subsequentes obterão uma resposta com o Código de status HTTP 429 Excesso de solicitações.

Além disso, um cabeçalho mostrará quantos segundos você deve esperar antes de tentar novamente a solicitação:

Retry-After: <delay-seconds>

Práticas recomendadas para lidar com o limite de taxa:

  • Distribua as solicitações de forma uniforme ao longo do tempo para evitar picos de uso que podem resultar em respostas limitadas

  • Desenvolver lógica que usa as informações de Tentar novamente após para saber quando é possível tentar novamente a solicitação

  • Certifique-se de que você não tenha integrações desnecessárias em execução em paralelo, pois todas as integrações contarão para o limite

Date Format

O formato dos campos de data da API segue a representação da ISO 8601:

  • YYYY-MM-DDThh:mm:ssZ

Nesse 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 é usado, o fuso horário aplicado à data é o mesmo que o definido na empresa do Prodsmart. Z significa o fuso horário Zero, pois é deslocado por 0.

Exemplo de uso:

  • Se o tempo que está sendo usado for uma hora antes do UTC, o designador de zona deverá 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á exibida no Prodsmart como: 07/20/2020 - 04:15:15

  • Se o formato enviado for: 2020-07-20T09:15:15, a data será exibida no Prodsmart como: 07/20/2020 - 09:15:15 (com fuso horário de -05:00), o que significa que se um usuário tiver um fuso horário definido como -04:00 o verá como: 07/20/2020 - 10:15:15


Integrações comuns de ERP

Os cenários comuns para integrações de ERP são a sincronização principalmente de Pedidos de produção, Estoques e Catálogo de produtos.

Pedidos de produção

Quando um pedido de produção é criado no lado do ERP, o ERP deve enviar os dados do pedido de produção no formato JSON para a API do Prodsmart, usando o Serviço de criação de pedido de produção. Se for necessário atualizar o lado do ERP quando um pedido de produção for criado ou atualizado no Prodsmart, há duas possibilidades: ou o ERP pode ser contatado de fora, e nesse caso é possível configurar webhooks no Prodsmart, e os webhooks serão chamados na criação, atualização e exclusão de pedidos de produção no lado do Prodsmart. Se o ERP não puder ser contatado de fora, o ERP deverá ativar o Serviço de lista de pedidos de produção para detectar alterações.

Estoques

Normalmente, o ERP (ou WMS) é o mestre em estoques; portanto, fornecemos um serviço (Atualizar estoque do produto) que permite que o ERP/WMS atualize o estoque atual de um produto para uma quantidade específica. Às vezes, o ERP/WMS pode ser notificado sobre alterações no estoque de produção observando alterações em pedidos de produção ou usando webhooks ou um serviço da Web de estoque atual (mediante solicitação).

Produtos

De forma infrequente, o catálogo de produtos também é sincronizado. Nesse caso, o ERP é sempre o principal e pode criar produtos e operações usando o serviço de criação de produtos.


Webhooks

Os webhooks estão disponíveis para eventos de pedido de produção no menu integrações no aplicativo. Para usar este recurso, adicione o retorno de chamada do URL do ponto de extremidade com os eventos de notificação que você deseja escutar. Nós nos esforçamos para enviar notificações de webhook assim que os eventos ocorrem em nosso sistema. Se você tiver um grande número de pedidos de produção alterados simultaneamente, poderá receber uma inundação de notificações entregues dentro de um curto período de tempo. No momento, não oferecemos suporte a nenhuma nova tentativa.

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"

Observação:

  • x-prodsmart-topic - Identificar o tópico do webhook

  • x-prodsmart-hmac-sha256 - Utilizado para verificar a origem do webhook

  • x-prodsmart-api-version - Versão da API usada para enviar o webhook

  • x-prodsmart-webhook-uuid - Identificar webhook exclusivo

  • x-prodsmart-trigger-at - Hora em que o webhook foi acionado

Como verificar o webhook?

  • Antes de responder com um código de status 200, é crucial confirmar que o webhook se originou no Prodsmart. Esta verificação é obtida ao calcular uma assinatura.

  • Cada solicitação de webhook vem com um cabeçalho específico chamado x-prodsmart-hmac-sha1, que é codificado no formato base64. Este cabeçalho é gerado usando o segredo da API e os dados incluídos na solicitação do webhook.

  • Para verificar a autenticidade do webhook, você precisa calcular uma assinatura usando o mesmo segredo de API e os dados fornecidos.

  • Depois de calcular a assinatura, compare-a com o valor encontrado no cabeçalho x-prodsmart-hmac-sha1 da solicitação de webhook de entrada.

  • Se a assinatura calculada corresponde ao valor no cabeçalho x-prodsmart-hmac-sha1, você pode ficar confiante de que o webhook foi realmente enviado do Prodsmart e pode continuar respondendo com um código de status 200.

Pedidos de produção

  • Solicitação (application/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}

Observação: O status de execução será excluído quando a pedido de produção for excluído.

Relógio de ponto

  • Solicitação (application/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 possíveis de entrada:

    • 1 - Entrada

    • 0 - Saída

  • notificação de valores possíveis:

    • punchClock_created

    • punchClock_updated

    • punchClock_deleted

Movimentação do inventário de remessa

Movimentação do inventário de remessa criada/atualizada

  • Solicitação (application/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"    }}]

  • notificação de valores possíveis:

    • shipping_inventory_movement_created

    • shipping_inventory_movement_updated

Movimentação de inventário de remessa excluído

  • Solicitação (application/json)

    • Método: POST

    • Corpo

{  "id": 111}

  • notificação de valores possíveis:

    • shipping_inventory_movement_deleted

Movimentação de inventário de recebimento

Movimentação do inventário de recebimento criada/atualizada

  • Solicitação (application/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"    }}]

  • notificação de valores possíveis:

    • receiving_inventory_movement_created

    • receiving_inventory_movement_updated

Movimentação do inventário de recebimento excluída

  • Solicitação (application/json)

    • Método: POST

    • Corpo

{  "id": 111}

  • notificação de valores possíveis:

    • receiving_inventory_movement_deleted

Movimentação de inventário interno

Movimentação interna de inventário criada/atualizada

  • Solicitação (application/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"    }}]

  • notificação de valores possíveis:

    • internal_inventory_movement_created

    • internal_inventory_movement_updated

Movimentação de inventário interno excluída

  • Solicitação (application/json)

    • Método: POST

    • Corpo

{  "id": 111}

  • notificação de valores possíveis:

    • internal_inventory_movement_deleted

Movimentação de preparação de material

Preparação de material criada/atualizada

  • Solicitação (application/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"    }}]

  • notificação de valores possíveis:

    • material_staging_created

    • material_staging_updated

Preparação de material excluída

  • Solicitação (application/json)

    • Método: POST

    • Corpo

{  "id": 111}

  • notificação de valores possíveis:

    • material_staging_deleted

Lote

Lote criado/atualizado

  • Solicitação (application/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"    }}]

  • notificação de valores possíveis:

    • lot_created

    • lot_updated

Lote excluído

  • Solicitação (application/json)

    • Método: POST

    • Corpo

{  "id": 111}

  • notificação de valores possíveis:

    • lot_deleted

Tempo de inatividade

Tempo de inatividade criado/atualizado/excluído

  • Solicitação (application/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"}

  • notificação de valores possíveis:

    • downTime_created

    • downTime_updated

    • downTime_deleted

Altera os canais de feed

Se, por qualquer motivo, você não for capaz de usar webhooks, ofereceremos uma alternativa como uma pilha de alterações que armazenará as alterações ocorridas nas últimas 24 horas ou desde a última vez que você solicitou as alterações por meio do serviço da Web que fornecemos. Para utilizar este recurso, é preciso criar um canal no menu de integrações (https://app.prodsmart.com/admin/integrations). É possível criar até três canais por organização.

Há seis tipos de canais de alterações:

  • TEMPO DE INATIVIDADE

  • PRODUTO

  • PRODUÇÃO

  • PEDIDO DE PRODUÇÃO

  • RELÓGIO DE PONTO

  • ESTOQUE

Obter alterações

GET /api/changes/{channel}{?access_token}

Ao chamar este serviço, você obterá uma lista de entidades que foram alteradas porque foram criadas/atualizadas/excluídas ou porque o estado delas foi alterado. Você 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 você obtém do serviço são removidas da pilha (até que tenham novas atualizações). O serviço retornará uma matriz vazia ("[]") se não houver alterações.

URI de exemplo

GET /api/changes/channel?access_token=

Parâmetros de URI

canal

sequência (obrigatório)

o canal a ser acessado

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

trabalhadores

booleano (opcional)

mostrar lista de trabalhadores na resposta do canal de pedidos de produção

Solicitação

Content-Type: application/json

TEMPOS DE INATIVIDADE

[    {        "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",    }]

Observação: O campo de tipo de evento só estará presente quando um Tempo de Inatividade for excluído.

PEDIDOS 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    }]

Obrigatório: O campo de status de execução terá o valor excluído quando um pedido de produção for excluído.

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": []    }]

Observação: O campo de notificação terá o valor product_deleted um produto foi excluído.

REGISTROS 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    }]

Observação: O campo de status só estará presente quando um Registro de produção for excluído.

RELÓGIOS DE PONTO

[  {      "id": 932015,      "date": "2022-05-19T14:35:30.000+01:00",      "notification": "punchClock_deleted",      "worker": {          "number": 0      },      "entry": 1  }]

Observação: O campo de notificação só estará presente quando uma entrada do Relógio de ponto for excluído.

ESTOQUE

[    {        "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 do Fornecedor tem os seguintes atributos:

  • id (fornecido)

  • code (sequência, obrigatório, exclusivo) - código do fornecedor

  • name (sequência, obrigatório) - nome do fornecedor

  • number (sequência, opcional) - número de IVA do fornecedor

  • expiration-date (data, opcional, formato AAAA-MM-DDTHH:MM:SSZ) - data em que o fornecedor expira

  • addresses (matriz, opcional)

  • code (sequência, obrigatório, exclusivo) - código de endereço

  • name (sequência, opcional) - nome do endereço

  • address (sequência, obrigatório) - linha de endereço

  • city (sequência, opcional) - cidade do endereço

  • post-code (sequência, opcional) - código postal do endereço

  • state (sequência, opcional) - estado/região do endereço

  • country (sequência, obrigatório) - código do país do endereço

  • default (booleano, opcional - tem como padrão false (falso)) - se true (verdadeiro), é o endereço padrão do fornecedor

  • contacts (matriz, opcional)

  • phone-number (sequência, obrigatório se não houver e-mail) - número de telefone do contato

  • email (sequência, obrigatório se não houver número de telefone) - e-mail de contato

  • name (sequência, opcional) - nome do contato

  • default (booleano, opcional - tem como padrão false (falso)) - se true (verdadeiro), é o contato padrão do fornecedor

Regras padrão de endereço/contato:

  • Os contatos e endereços só podem ter um endereço ou contato padrão, respectivamente

  • Se um fornecedor tiver endereços, um dos endereços deverá ser o padrão

  • Se um fornecedor tiver contatos, um dos contatos deverá ser o padrão

  • Na criação/atualização de um fornecedor, se nenhum contato/endereço padrão for fornecido, o primeiro contato/endereço será o padrão

Criar um fornecedor

POST /api/suppliers{?access_token}

Status: 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 escopo productions_write.

URI de exemplo

POST /api/suppliers?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

Solicitação

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

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

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 escopo productions_write. Esse serviço é paginado, retornando 25 fornecedores por página.

URI de exemplo

GET /api/suppliers?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

page

numérico (opcional)

índice de página de resultados, iniciando em 1

id

number (opcional)

lista fornecedores filtrados por ID

code

sequência (opcional)

lista fornecedores filtrados por código

Solicitação

Cabeçalhos

Content-Type: application/json

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 Exibir

Corpo

If there's a problem with the request, the problem found will be reported on the Response Body

Recuperar um fornecedor

GET /api/suppliers/{id}{?access_token}

Esta ação requer um access_token com escopo productions_write.

URI de exemplo

GET /api/suppliers/id?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

id

numérico (obrigatório)

ID do fornecedor

Solicitação

Cabeçalhos

Content-Type: application/json

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

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.

Contatos

  • Os contatos do fornecedor especificado substituirão os contatos atuais.

  • Se um contato com o mesmo nome que um contato existente for fornecido, o contato com esse nome terá seus valores substituídos pelos dados fornecidos.

  • Se não forem fornecidos contatos, os contatos 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, o endereço com esse código terá seus valores substituídos pelos dados fornecidos.

  • Se nenhum endereço for fornecido, os endereços existentes serão removidos.

  • Se um endereço tiver entidades associadas, ocorrerá falha na solicitação, pois o endereço não poderá ser removido.

Esta ação requer um access_token com escopo productions_write.

URI de exemplo

PUT /api/suppliers/id?access_token=

Parâmetros de URI

id

numérico (obrigatório)

ID do cliente

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

Solicitação

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

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

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}

URI de exemplo

EXCLUIR /api/suppliers/id?access_token=

Parâmetros de URI

id

numérico (obrigatório)

ID do fornecedor

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

Solicitação

Cabeçalhos

Content-Type: application/json

Resposta 204

Corpo

Supplier was deleted

Resposta 412

Corpo

It's not possible to delete this supplier. It has dependent entities.

Cliente

Recursos de cliente da API do Prodsmart.

CLIENTE

Um único objeto de cliente.

O recurso Cliente tem os seguintes atributos:

  • id (fornecido)

  • code (sequência, obrigatório, exclusivo) - código do cliente

  • name (sequência, obrigatório) - nome do cliente

  • number (sequência, opcional) - número do cliente

  • phone-number (sequência, opcional) - número de telefone do cliente

  • email (sequência, opcional) - e-mail do cliente

  • addresses (matriz, opcional)

  • code (sequência, obrigatório, exclusivo) - código de endereço

  • name (sequência, opcional) - nome do endereço

  • address (sequência, obrigatório) - linha de endereço

  • city (sequência, opcional) - cidade do endereço

  • post-code (sequência, opcional) - código postal do endereço

  • state (sequência, opcional) - estado/região do endereço

  • country (sequência, obrigatório) - código do país do endereço

  • default (booleano, opcional - tem false (falso) como padrão) - se true (verdadeiro), é o endereço padrão do cliente

  • contacts (matriz, opcional)

  • phone-number (sequência, obrigatório se não houver e-mail) - número de telefone do contato

  • email (sequência, obrigatório se não houver número de telefone) - e-mail de contato

  • name (sequência, opcional) - nome do contato

  • default (booleano, opcional - tem false (falso) como padrão) - se true (verdadeiro), é o contato padrão do cliente

Regras padrão de endereço/contato:

  • Os contatos e endereços só podem ter um endereço ou contato padrão, respectivamente

  • Se um cliente tiver endereços, um dos endereços deverá ser o padrão

  • Se um cliente tiver contatos, um dos contatos deverá ser o padrão

  • Na criação/atualização de um cliente, se nenhum contato/endereço padrão for fornecido, o primeiro contato/endereço será o padrã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 escopo productions_write. Por enquanto, só é possível salvar um cliente. No futuro, se a solicitação for uma matriz em vez de um recurso, todos os itens na matriz serão salvos.

URI de exemplo

POST /api/clients?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

Solicitação

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

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

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 os clientes. Esta ação requer um access_token com escopo productions_write. Este serviço é paginado, retornando 25 clientes por página.

URI de exemplo

GET /api/clients?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

page

numérico (opcional)

índice de página de resultados, iniciando em 1

id

number (opcional)

lista clientes filtrados por ID

code

sequência (opcional)

lista clientes filtrados por código

Solicitação

Cabeçalhos

Content-Type: application/json

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

Corpo

If there's a problem with the request, the problem found will be reported on the Response Body

Recuperar um cliente

GET /api/clients/{id}{?access_token}

Esta ação requer um access_token com escopo productions_write.

URI de exemplo

GET /api/clients/id?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

id

numérico (obrigatório)

ID do cliente

Solicitação

Cabeçalhos

Content-Type: application/json

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

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.

Contatos

  • Os contatos do fornecedor especificado substituirão os contatos atuais.

  • Se um contato com o mesmo nome que um contato existente for fornecido, o contato com esse nome terá seus valores substituídos pelos dados fornecidos.

  • Se não forem fornecidos contatos, os contatos 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, o endereço com esse código terá seus valores substituídos pelos dados fornecidos.

  • Se nenhum endereço for fornecido, os endereços existentes serão removidos.

  • Se um endereço tiver entidades associadas, ocorrerá falha na solicitação, pois o endereço não poderá ser removido.

Esta ação requer um access_token com escopo productions_write.

URI de exemplo

PUT /api/clients/id?access_token=

Parâmetros de URI

id

numérico (obrigatório)

ID do cliente

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

Solicitação

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

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

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}

URI de exemplo

EXCLUIR /api/clients/id?access_token=

Parâmetros de URI

id

numérico (obrigatório)

ID do cliente

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

Solicitação

Cabeçalhos

Content-Type: application/json

Resposta 204

Corpo

Client was deleted

Resposta 412

Corpo

It's not possible to delete this client. It has dependent entities.

Pedido de vendas

Recursos de pedido do cliente da API do Prodsmart.

PEDIDO DE VENDAS

Um único objeto de pedido de vendas. O recurso Pedido de vendas é um dos recursos mais importantes da API do Prodsmart.

O recurso Pedido de vendas tem os seguintes atributos:

  • id (fornecido)

  • code (sequência, obrigatório) - código de pedido de vendas

  • client (sequência, opcional) - código do cliente

  • observations (sequência, opcional) - observações do pedido de vendas

  • products (matriz, obrigatório, não vazio)

    • code (sequência, obrigatório, exclusivo) - código do produto

    • quantity (duplo, obrigatório, > 0) - quantidade pedida

    • due-date (data, opcional, formato AAAA-MM-DDTHH:MM:SSZ) - data de vencimento do envio

    • request-date (data, opcional, formato AAAA-MM-DDTHH:MM:SSZ) - data em que o envio é solicitado

    • location (sequência, opcional) - localização, se forem vários locais

    • price (duplo, opcional) - preço do produto

  • parâmetros (sequência, opcional) - contém um atributo específico do pedido de vendas

Criar um pedido de vendas

POST /api/client-order/{?access_token}

Para criar um pedido de vendas, forneça um hash JSON dos atributos para o novo pedido de vendas. Esta ação requer um access_token com escopo productions_write. Por enquanto, só é possível salvar um pedido de vendas. No futuro, se a solicitação for uma matriz em vez de um recurso, todos os itens na matriz serão salvos.

URI de exemplo

POST /api/client-order/?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

Solicitação

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

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

Corpo

If there's a problem with the request, the problem found will be reported on the Response Body

Listar pedidos de vendas

GET /api/client-order/{?access_token}

Para listar pedidos de vendas. Vários parâmetros serão tratados como uma condição AND. Esta ação requer um access_token com escopo productions_write. Este serviço é paginado, retornando 25 pedidos de vendas por página.

URI de exemplo

GET /api/client-order/?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

page

numérico (opcional)

índice de página de resultados, iniciando em 1

due-date-before

date (opcional)

lista pedidos de vendas com data de vencimento anterior a esta

due-date-after

date (opcional)

lista pedidos de vendas com data de vencimento posterior a esta

cliente

sequência (opcional)

código de máquina

Solicitação

Cabeçalhos

Content-Type: application/json

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

Corpo

If there's a problem with the request, the problem found will be reported on the Response Body

Recuperar um pedido de vendas

GET /api/client-order/{id}{?access_token}

Esta ação requer um access_token com escopo productions_write.

URI de exemplo

GET /api/client-order/id?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

id

numérico (obrigatório)

ID do pedido de vendas

Solicitação

Cabeçalhos

Content-Type: application/json

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

Corpo

If there's a problem with the request, the problem found will be reported on the Response Body

Atualizar um pedido de vendas

PUT /api/client-order/{?access_token}

Para atualizar um pedido de vendas, forneça um hash JSON dos atributos para o novo pedido de vendas. Esta ação requer um access_token com escopo productions_write.

URI de exemplo

PUT /api/client-order/?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

Solicitação

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

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

Corpo

If there's a problem with the request, the problem found will be reported on the Response Body

Remover um pedido de vendas

EXCLUIR /api/client-order/{id}{?access_token}

URI de exemplo

EXCLUIR /api/client-order/id?access_token=

Parâmetros de URI

id

numérico (obrigatório)

ID do pedido de vendas

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

Solicitação

Cabeçalhos

Content-Type: application/json

Resposta 204

Corpo

Client order was deleted

Resposta 409

Corpo

Client order already has production orders created or other entities associated, cannot be removed.

Pedido de compra

Recursos de pedido de compra da API do Prodsmart.

PEDIDO DE COMPRA

Um único objeto de pedido de compra. O recurso de pedido de compra é um dos recursos mais importantes da API do Prodsmart.

O recurso Pedido de compra tem os seguintes atributos:

  • id (fornecido)

  • code (sequência, obrigatório) - código de pedido de compra

  • supplier (sequência, opcional) - código do fornecedor

  • billing-address (sequência, opcional) - endereço de cobrança

  • observations (sequência, opcional) - observações do pedido de compra

  • products (matriz, obrigatório, não vazio)

    • code (sequência, obrigatório, exclusivo) - código do produto

    • quantity (duplo, obrigatório, > 0) - solicitação de quantidade

    • due-date (data, opcional, formato AAAA-MM-DDTHH:MM:SSZ) - data de vencimento do recebimento

    • request-date (data, opcional, formato AAAA-MM-DDTHH:MM:SSZ) - data em que o recebimento é solicitado

    • cost (duplo, opcional) - custo do produto

    • uom (sequência, opcional) - unidade de medida do produto

  • delivery-address (sequência, opcional) - endereço de entrega de recebimento

  • parameters (sequência, opcional) - parâmetros do pedido de compra

  • approval-status (sequência, opcional) - rascunho, em revisão, aprovado, confirmado, rejeitado

Criar um pedido de compra

POST /api/purchase-orders/{?access_token}

Para criar um pedido de compra, forneça um hash JSON dos atributos do novo pedido de compra. Esta ação requer um access_token com escopo productions_write. Por enquanto, só é possível salvar um pedido de compra. No futuro, se a solicitação for uma matriz em vez de um recurso, todos os itens na matriz serão salvos.

URI de exemplo

POST /api/purchase-orders/?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

Solicitação

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

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

Corpo

If there's a problem with the request, the problem found will be reported on the Response Body

Recuperar um pedido de compra

GET /api/purchase-orders/{id}{?access_token}

Esta ação requer um access_token com escopo productions_write.

URI de exemplo

GET /api/purchase-orders/id?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

id

numérico (obrigatório)

ID do pedido de compra

Solicitação

Cabeçalhos

Content-Type: application/json

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

Corpo

If there's a problem with the request, the problem found will be reported on the Response Body

Atualizar um pedido de compra

PUT/api/purchase-orders/{id}{?access_token}

Para atualizar um pedido de compra, forneça um hash JSON dos atributos do novo pedido de compra. Esta ação requer um access_token com escopo productions_write.

URI de exemplo

PUT /api/purchase-orders/id?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

id

numérico (obrigatório)

ID do pedido de compra

Solicitação

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

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

Corpo

If there's a problem with the request, the problem found will be reported on the Response Body

Remover um pedido de compra

DELETE /api/purchase-orders/{id}{?access_token}

URI de exemplo

EXCLUIR /api/purchase-orders/id?access_token=

Parâmetros de URI

id

numérico (obrigatório)

ID do pedido de compra.

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

Solicitação

Cabeçalhos

Content-Type: application/json

Resposta 204

Corpo

Purchase order was deleted

Resposta 409

Corpo

Purchase order already has production orders created or other entities associated, cannot be removed.

Listar pedidos de compra

GET /api/purchase-orders{?access_token}

Para listar pedidos de compra. Vários parâmetros serão tratados como uma condição AND. Esta ação requer um access_token com escopo productions_write. Este serviço é paginado, retornando 25 pedidos de vendas por página.

URI de exemplo

GET /api/purchase-orders?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

page

numérico (opcional)

índice de página de resultados, iniciando em 1

id

number (opcional)

lista pedidos de compra filtrados por ID de pedido de compra

code

sequência (opcional)

listar pedidos de compra filtrados por código de pedido de compra

due-date-before

date (opcional)

listar pedidos de compra com data de vencimento anterior a esta

due-date-after

date (opcional)

listar pedidos de compra com data de vencimento após esta data

fornecedor

sequência (opcional)

listar pedidos de compra filtrados por código do fornecedor

Solicitação

Cabeçalhos

Content-Type: application/json

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

Corpo

If there's a problem with the request, the problem found will be reported on the Response Body

Pedido de produção

Recursos de pedido de produção da API do Prodsmart.

PEDIDO DE PRODUÇÃO

Um único objeto de pedido de produção. O recurso pedido de produção é um dos recursos mais importantes da API do Prodsmart. Representa o pedido de gerenciamento para produzir uma quantidade predeterminada de produtos durante um período definido por trabalhadores definidos.

O recurso Pedido de produção tem os seguintes atributos:

  • id (fornecido)

  • code (sequência, obrigatório) - código de pedido de produção

  • start-date (data, obrigatório, formato AAAA-MM-DDTHH:MM:SSZ) - data em que este pedido de produção está programado para iniciar

  • due-date (data, obrigatório, formato AAAA-MM-DDTHH:MM:SSZ) - data de vencimento deste pedido de produção

  • products (matriz, obrigatório, não vazio) - produtos e quantidades pedidos

  • product (sequência, obrigatório, exclusivo) - código do produto

  • quantity-ordered (número inteiro, obrigatório, >0) - quantidade pedida

  • observations (opcional) - observação sobre este produto

  • quantity-produced (número inteiro, fornecido, >0) - quantidade produzida

  • description (opcional) - descrição para este pedido de produção

  • shipping (opcional) - código de envio para este pedido

  • worker-assign (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) - scheduled (antes de start_date e completeness = 0), onschedule (antes de end_date e completeness < 100%), delayed (após end_date completeness < 100%), completed (completeness > = 100%)

  • running-status (fornecido) - notstarted (sem produções), started (com produções), closed (fechado manualmente ou fechado por conclusão), archived (arquivado manualmente)

O ID de estado é atribuído pela API do Prodsmart no momento da criação.

Recuperar um pedido de produção

GET /api/production-orders/{id}{?access_token}

Para recuperar um pedido de produção, basta executar uma solicitação GET com o ID do pedido de produção. Esta ação requer um access_token com escopo productions_write.

URI de exemplo

GET /api/production-orders/id?access_token=

Parâmetros de URI

id

numérico (obrigatório)

ID do pedido de produção.

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

trabalhadores

booleano (opcional)

mostra lista de trabalhadores na resposta

Solicitação

Cabeçalhos

Content-Type: application/json

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 um pedido de produção

PUT /api/production-orders/{id}{?access_token}

Para atualizar um pedido de produção, basta executar uma solicitação PUT com o ID do pedido de produção. Esta ação requer um access_token com escopo productions_write.

URI de exemplo

PUT /api/production-orders/id?access_token=

Parâmetros de URI

id

numérico (obrigatório)

ID do pedido de produção.

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

trabalhadores

booleano (opcional)

mostra lista de trabalhadores na resposta

Solicitação

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

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 um pedido de produção

EXCLUIR /api/production-orders/{id}{?access_token}

URI de exemplo

EXCLUIR /api/production-orders/id?access_token=

Parâmetros de URI

id

numérico (obrigatório)

ID do pedido de produção.

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

Solicitação

Cabeçalhos

Content-Type: application/json

Resposta 204

Corpo

Production order was deleted

Criar um pedido de produção

POST /api/production-orders/{?access_token}

Para criar um pedido de produção, forneça um hash JSON dos atributos para o novo pedido de produção. Esta ação requer um access_token com escopo productions_write. Por enquanto, só é possível salvar um pedido de produção. No futuro, se a solicitação for uma matriz em vez de um recurso, todos os itens na matriz serão salvos.

URI de exemplo

POST /api/production-orders/?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

trabalhadores

booleano (opcional)

mostra lista de trabalhadores na resposta

Solicitação

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

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

Corpo

If there's a problem with the request, the problem found will be reported on the Response Body

Listar pedidos de produção

GET /api/production-orders/{?access_token}

Para listar pedidos de produção. Vários parâmetros serão tratados como uma condição AND. Esta ação requer um access_token com escopo productions_write. Este serviço é paginado, retornando 25 OPs por página.

URI de exemplo

GET /api/production-orders/?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

page

numérico (opcional)

índice de página de resultados, iniciando em 1

start-date-before

date (opcional)

lista pedidos de produção com data inicial anterior a esta

start-date-after

date (opcional)

lista pedidos de produção com data inicial após esta

due-date-before

date (opcional)

lista pedidos de produção com data de vencimento anterior a esta

due-date-after

date (opcional)

lista pedidos de produção com data de vencimento posterior a esta

running-status

sequência (opcional)

não iniciado, iniciado, fechado, arquivado

active

booleano (opcional)

lista somente pedidos de produção ativos (true, verdadeiros) ou não ativos (false, falso)

produto

sequência (opcional)

código do produto

machine

sequência (opcional)

código de máquina

trabalhadores

booleano (opcional)

mostra lista de trabalhadores na resposta

Solicitação

Cabeçalhos

Content-Type: application/json

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 pedido de produção

POST /api/production-orders/{id}/notify{?access_token}

Serviço que publica uma mensagem curta no feed e adiciona uma mensagem no pedido de produção.

  • short-message (sequência, obrigatório) - mensagem publicada no feed, tamanho máximo de 140 caracteres

  • mensagem (sequência, opcional) - mensagem adicionada à seção de observações no PC

URI de exemplo

POST /api/production-orders/id/notify?access_token=

Parâmetros de URI

id

numérico (obrigatório)

ID do pedido de produção.

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

Solicitação

Cabeçalhos

Content-Type: application/json

Corpo

{  "short-message": "example",  "message": "complete message "}

Resposta 200

Ativar um pedido de produção

POST /api/production-orders/{id}/activate{?access_token}

Serviço que ativa o pedido de produção.

URI de exemplo

POST /api/production-orders/id/activate?access_token=

Parâmetros de URI

id

numérico (obrigatório)

ID do pedido de produção.

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

Solicitação

Cabeçalhos

Content-Type: application/json

Corpo

{}

Resposta 200

Resposta 204

Corpo

Production Order was already active

Resposta 405

Corpo

Production Order was closed or archived and cannot be activated

Produtos

Recursos de produto da API do Prodsmart.

PRODUTO

Um único objeto de produto. O recurso Product é 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. Esse método cria novos produtos e suas operações. Também pode ser usado

O recurso Product tem os seguintes atributos:

  • code (sequência, obrigatório) - código do produto

  • name (sequência, obrigatório) - nome do produto

  • section (sequência, opcional)

  • families (matriz, opcional)

  • operations (matriz, opcional) - operações para produzir o produto

    • code (sequência, obrigatório) - código de operação

    • name (sequência, 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 essa operação leva para ser executada, em teoria

      • duration-customer (tempo, opcional, por exemplo, format "10H59m59s") - o tempo definido no orçamento

      • ratio-quantity (duplo, opcional, padrão: 1.0) - o volume produzido em cada instância desta operação

    • times-per-product (inteiro, opcional, padrão: 1) - o número de vezes que esta operação deve ser executada para completar uma unidade do produto

    • custom-fields (matriz, opcional, deve existir no sistema) - campos personalizados a serem adicionados à operação

      • name (sequência, obrigatório) - o nome do campo personalizado, já criado no sistema

    • machines (matriz, opcional, deve existir no sistema) - máquinas que podem ser utilizadas para executar a operação

      • code (sequência, obrigatório) - o código de máquina, já criado no sistema

    • disabled (booleano, opcional) - desabilita a operação

    • optional (booleano, opcional) - definir a operação como opcional

    • recovery (booleano, opcional) - define a operação como recuperação

    • no-time (booleano, opcional) - não registrar tempos de produção

    • no-quantity (booleano, opcional) - não registrar quantidade de produção

    • as-team (booleano, opcional) - operação a ser executada como equipe

    • max-waste-threshold (duplo, opcional) - coeficiente máximo de desperdício a ser permitido

Os campos não presentes na solicitação serão definidos com os valores padrão. Ao usar este método para produtos/operações existentes, os campos não presentes serão considerados exclusões.

Recuperar um produto

GET /api/products/{code}{?access_token}

Para recuperar um produto, basta executar uma solicitação GET com o código do produto. Esta ação requer um access_token com escopo productions_write.

URI de exemplo

GET /api/products/code?access_token=

Parâmetros de URI

code

Sequência (obrigatório)

Código de produto.

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

Solicitação

Cabeçalhos

Content-Type: application/json

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

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 do novo produto e suas operações. Esta ação requer um access_token com escopo productions_write. Várias operações podem ser criadas de uma só vez.

URI de exemplo

POST /api/products?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

Solicitação

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

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

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 suas operações. Esta ação requer um access_token com escopo productions_write. Por enquanto, só é possível salvar um produto, mas várias operações podem ser criadas de uma só vez.

URI de exemplo

PUT /api/products/code?access_token=

Parâmetros de URI

code

sequência (obrigatório)

Código de produto.

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

Solicitação

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

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

Corpo

If there's a problem with the request, the problem found will be reported on the Response Body

Excluir produto

EXCLUIR /api/products/{code}{?access_token}

Para excluir um produto, forneça o código do produto.

URI de exemplo

EXCLUIR /api/products/code?access_token=

Parâmetros de URI

code

sequência (obrigatório)

Código de produto.

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

Solicitação

Cabeçalhos

Content-Type: application/json

Corpo

Content-Type: application/json

Resposta 204

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 suas operações. Esta ação requer um access_token com escopo productions_write.

URI de exemplo

GET /api/products?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

page

numérico (opcional)

índice de página de resultados, iniciando em 1

product-family-code

sequência (opcional)

lista produtos que pertencem à família de produtos fornecida

modification-date

date (opcional)

lista os produtos que foram modificados por meio do back office após a data fornecida

Solicitação

Cabeçalhos

Content-Type: application/json

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

Corpo

If there's a problem with the request, the problem found will be reported on the Response Body

LISTA DE MATERIAIS 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 (sequência, obrigatório) - código do produto de componente/consumo

    • quantity (duplo, obrigatório) - quantidade

    • operation-code (sequência, opcional) - código da operação em que o material definido no product-code é consumido. Se vazio, o consumo ocorrerá na primeira operação do processo de fabricação deste produto.

Atualizar a lista de materiais 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 suas operações. Esta ação requer um access_token com escopo productions_write.

URI de exemplo

POST /api/bom?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

Solicitação

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

{  "product-code": "bicycle",  "bom": [    {      "product-code": "wheel",      "quantity": 2,      "operation-code": "assemble"    },    {      "product-code": "seat",      "quantity": 1,      "operation-code": "assemble"    }  ]}

Resposta 404

Corpo

Main product not found

Resposta 400

Corpo

If there's a problem with the request, the problem found will be reported on the Response Body

ESTOQUE DO PRODUTO

O recurso Estoque estipula as ações disponíveis para um produto específico.

  • product-code (sequência, obrigatório)

  • stock (duplo, obrigatório)

  • date (data, opcional) - data da contagem de estoque

Atualizar o estoque do produto

POST /api/stock{?access_token}

Para atualizar o estoque de um Produto, forneça uma hash JSON dos atributos para o seu estoque atual. Esta ação requer um access_token com escopo productions_write.

URI de exemplo

POST /api/stock?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

Solicitação

Cabeçalhos

Content-Type: application/json

Corpo

{  "product-code": "bicycle",  "stock": 200.5,  "date": "2023-08-16T17:15:15Z"}

Resposta 201

Corpo

Request successful

Resposta 404

Corpo

Product not found

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 (sequência, obrigatório) - código da família de produtos

  • name (sequência, 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 escopo productions_write.

URI de exemplo

POST /api/product-families?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

Solicitação

Cabeçalhos

Content-Type: application/json

Corpo

{  "product-families": [    {      "code": "FAM 1",      "name": "Family 1"    },    {      "code": "FAM 2",      "name": "Family 2"    }  ]}

Resposta 201

Corpo

[  {    "code": "FAM 1",    "name": "Family 1"  },  {    "code": "FAM 2",    "name": "Family 2"  }]

Resposta 400

Corpo

If there's a problem with the request, the problem found will be reported on the Response Body

Excluir família de produtos

EXCLUIR /api/product-family/{code}{?access_token}

Para excluir uma família de produtos, forneça o código ProductFamily

URI de exemplo

EXCLUIR /api/product-family/code?access_token=

Parâmetros de URI

code

sequência (obrigatório)

Código de produto.

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

Solicitação

Cabeçalhos

Content-Type: application/json

Corpo

Content-Type: application/json

Resposta 204

Corpo

Product Family was deleted

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 escopo productions_write.

URI de exemplo

GET /api/product-families?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

page

numérico (opcional)

índice de página de resultados, iniciando em 1

Solicitação

Cabeçalhos

Content-Type: application/json

Resposta 201

Corpo

[  {    "code": "FAM 1",    "name": "Family 1"  },  {    "code": "FAM 2",    "name": "Family 2"  }]

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 a seguinte solicitação. Para simplificar a conexão com a máquina, você pode usar 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ício devem ser incrementais (ou seja, sempre maiores que as quantidades enviadas anteriormente).

URI de exemplo

POST /api/machines/machine_code/counter?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

machine_code

sequência (obrigatório)

Código de máquina definido na plataforma Prodsmart

Solicitação

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

Corpo

Returns the new value for the machine's counter.

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 a seguinte solicitação. Para simplificar a conexão com a máquina, você pode usar access_token ou enviar credenciais de api no cabeçalho de autenticação com autenticação básica. Quando esses parâmetros forem passados, se um registro de produção for

URI de exemplo

POST /api/machines/machine_code/parameters?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

machine_code

sequência (obrigatório)

Código de máquina definido na plataforma Prodsmart

Solicitação

Cabeçalhos

Content-Type: application/json

Corpo

{  "parameters": [    {      "code": "temperature",      "value": 25    },    {      "code": "valid",      "value": "yes"    }  ]}

Resposta 200

TEMPO DE INATIVIDADE

Atualizar tempo de inatividade

POST /api/machines/{machine_code}/startstop{?access_token}

Para atualizar o status atual na máquina, basta enviar a seguinte solicitação. Para simplificar a conexão com a máquina, você pode usar access_token ou enviar credenciais de api no cabeçalho de autenticação com autenticação básica. O Prodsmart registrará automaticamente um tempo de inatividade ou o encerrará, de acordo com as informações recebidas. Envie 0 para máquina parada, 1 se estiver ligada e especifique o tipo de tempo de inatividade.

Para atualizar um status de máquina, especifique os seguintes atributos:

  • type (sequência, obrigatório, deve ser um tipo de tempo de inatividade já atribuído à máquina) - o tipo de tempo de inatividade

  • running (número, obrigatório, 0 ou 1) - a máquina está parada (0) ou em execução (1)

URI de exemplo

POST /api/machines/machine_code/startstop?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

machine_code

sequência (obrigatório)

Código de máquina definido na plataforma Prodsmart

Solicitação

Cabeçalhos

Content-Type: application/json

Corpo

{  "type": "Maintenance",  "running": 0}

Resposta 200

Produção

Recursos de produção da API do Prodsmart.

PRODUÇÃO

Um único objeto de produção. O recurso de produção é o recurso central da API do Prodsmart. Representa a mão de obra de um trabalhador em uma posição durante um período.

O recurso de 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, fornecido, formato 00H00m00s) - tempo de trabalho de produção (dentro do horário programado/relógios de ponto e excluindo tempos de inatividade)

  • production-order (opcional) - pedido de produção para o qual esta produção foi feita

    • code (sequência, obrigatório) - código de pedido de produção

    • id (sequência, obrigatório)

  • operation (obrigatório) - tarefa que foi executada nesta produção

    • code (sequência, obrigatório, exclusivo) - código de tarefa

    • product (obrigatório) - a mercadoria material que o trabalhador está trabalhando nesta posiçã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, exclusivo) - número do trabalhador

  • produced-waste (matriz, opcional) - saída de material defeituoso em uma operação

    • quantity (numérico, obrigatório) - código de desperdício

      • waste - tipo de material defeituoso

      • code (sequência, obrigatório, exclusivo) - código de desperdício

      • description (sequência, obrigatório) - descrição do desperdício

      • flaw (sequência, obrigatório) - tipo de desperdício

      • quantity (inteiro, requerido) - quantidade de desperdício produzido

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 escopo productions_write. Por enquanto, só é possível salvar um produto, mas várias operações podem ser criadas de uma só vez.

URI de exemplo

PUT /api/productions/id?access_token=

Parâmetros de URI

id

numérico (obrigatório)

ID de produção

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

Solicitação

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

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

Corpo

If there's a problem with the request, the problem found will be reported on the Response Body

Excluir produção

EXCLUIR /api/productions/{id}{?access_token}

Para excluir uma Produção, forneça uma ID de produção.

URI de exemplo

EXCLUIR /api/productions/id?access_token=

Parâmetros de URI

id

numérico (obrigatório)

ID de produção

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

Solicitação

Cabeçalhos

Content-Type: application/json

Corpo

Content-Type: application/json

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

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 AND. Esta ação requer um access_token com escopo productions_write. Esse serviço é paginado, retornando 25 produções por página.

URI de exemplo

GET /api/productions?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

page

numérico (opcional)

índice de página de resultados, iniciando em 1

production-order-id

numérico (opcional)

lista produções com este pedido de produção

production-order-code

sequência (opcional)

lista produções com este(s) pedido/pedidos de produção

worker

numérico (opcional)

lista produções com este trabalhador (número do trabalhador)

start-time-before

date (opcional)

lista produções com hora de início antes desta

start-time-after

date (opcional)

lista produções com hora de início após esta

end-time-before

date (opcional)

lista produções com hora de término antes desta

end-time-after

date (opcional)

lista produções com hora de término após esta

start-time

date (opcional)

lista produções que estavam sendo executadas após esta hora de início (não use combinado com -before -after)

checked-out

booleano (opcional)

lista as produções das quais foi feito o check-out.

worker-name

booleano (opcional)

recupera o nome e o número do trabalhador em vez de apenas o número do trabalhador.

Solicitação

Cabeçalhos

Content-Type: application/json

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  }]

Tempo de inatividade

Recursos de tempo de inatividade da API do Prodsmart.

TEMPOS DE INATIVIDADE

Listar tempos de inatividade

GET /api/downtimes{?access_token}

Para listar tempos de inatividade. Vários parâmetros serão tratados como uma condição AND. Esta ação requer um access_token com escopo productions_write.

URI de exemplo

GET /api/downtimes?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

page

numérico (opcional)

índice de página de resultados, iniciando em 1

start-time-before

date (opcional)

lista de tempos de inatividade com hora de início antes desta

start-time-after

date (opcional)

lista de pedidos de tempo de inatividade com hora de início após esta

end-time-before

date (opcional)

lista tempos de inatividade com hora de término antes desta

end-time-after

date (opcional)

lista tempos de inatividade com hora de término após esta

machine

numérico (opcional)

lista tempos de inatividade nesta máquina

Solicitação

Cabeçalhos

Content-Type: application/json

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"  }]

Relógio de ponto

Recursos 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 de integrações no aplicativo. Para usar este recurso, adicione o retorno de chamada do URL do ponto de extremidade com os eventos de notificação que você deseja escutar. Nós nos esforçamos para enviar notificações de webhook assim que os eventos ocorrem em nosso sistema. No momento, não oferecemos suporte a nenhuma nova tentativa.

Listar 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 AND. Esta ação requer um access_token com escopo productions_write.

URI de exemplo

GET /api/punchclocks?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

page

numérico (opcional)

índice de página de resultados, iniciando 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

worker

numérico (opcional)

lista entradas de relógio de ponto para este trabalhador

Solicitação

Cabeçalhos

Content-Type: application/json

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')

Movimentação de inventário

Recursos de Movimentação de Inventário da API do Prodsmart.

MOVIMENTAÇÃO DE INVENTÁRIO

Um único objeto de Movimentação de inventário. O recurso de Movimentação de inventário é um dos recursos mais importantes da API do Prodsmart.

O recurso Movimentação de inventário tem os seguintes atributos:

  • id (fornecido)

  • product (sequência, obrigatório) - código do produto

  • date-time (data, opcional, formato AAAA-MM-DDTHH:MM:SSZ) - data em que a movimentação do inventário foi criada

  • quantity (duplo, obrigatório) - quantidade de movimentação de estoque

  • type (sequência, obrigatório) - tipo de movimentação de inventário: entrada, saída, consumo, produção

  • lot (sequência, opcional) - lote de movimentação de inventário a ser usado

  • total-cost (bigdecimal, opcional) - custo total de movimentação de estoque para a quantidade

  • warehouse-location (sequência, opcional) - código de localização do depósito

  • warehouse (sequência, opcional) - código do depósito

  • location (sequência, opcional) - localização, se forem vários locais

  • comentário (sequência, opcional) - comentário de movimentação de inventário

Recuperar uma movimentação de inventário

GET /api/inventory-movements/{id}{?access_token}

Para recuperar uma Movimentação de inventário, basta executar uma solicitação GET com o ID da Movimentação de inventário. Esta ação requer um access_token com escopo productions_write.

URI de exemplo

GET /api/inventory-movements/id?access_token=

Parâmetros de URI

id

numérico (obrigatório)

ID de movimentação de inventário

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

Solicitação

Cabeçalhos

Content-Type: application/json

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 movimentação de inventário

POST /api/inventory-movements/{?access_token}

Para criar uma Movimentação de inventário, forneça um hash JSON dos atributos para a nova Movimentação de inventário. Esta ação requer um access_token com escopo productions_write. Por enquanto, só é possível salvar uma Movimentação de inventário. No futuro, se a solicitação for uma matriz em vez de um recurso, todos os itens na matriz serão salvos.

URI de exemplo

POST /api/inventory-movements/?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

Solicitação

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

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

Corpo

If there's a problem with the request, the problem found will be reported on the Response Body.

Atualizar uma movimentação de inventário

PUT /api/inventory-movements/{id}{?access_token}

Para atualizar uma movimentação de inventário, forneça um JSON com os atributos que você deseja atualizar na movimentação de inventário (todos os atributos são opcionais). Esta ação requer access_token com productions_write scope.

URI de exemplo

PUT /api/inventory-movements/id?access_token=

Parâmetros de URI

id

numeric (obrigatório)

ID de movimentação de inventário

access_token

string (obrigatório)

Token de acesso da API do Prodsmart.

Solicitação

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" }

Excluir uma movimentação de inventário

EXCLUIR /api/inventory-movement/{id}{?access_token}

Para excluir uma movimentação de inventário, forneça um ID de movimentação de inventário.

URI de exemplo

DELETE /api/inventory-movement/id?access_token=

Parâmetros de URI

id

numeric (obrigatório)

ID de movimentação de inventário

access_token

string (obrigatório)

Token de acesso da API do Prodsmart.

Solicitação

Cabeçalhos

Content-Type: application/json

Resposta 204

Resposta 400

It's not possible to delete this inventory-movement.

Listar movimentações de inventário

GET /api/inventory-movements/{?access_token}

Para listar movimentações de inventário Vários parâmetros serão tratados como uma condição AND. Esta ação requer um access_token com escopo productions_write. Este serviço é paginado, retornando 25 mensagens instantâneas por página.

URI de exemplo

GET /api/inventory-movements/?access_token=

Parâmetros de URI

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

page

numérico (opcional)

índice de página de resultados, iniciando em 1

product-code

sequência (opcional)

código do produto

type

sequência (opcional)

tipo de movimentação de inventário: entrada, saída, consumo, produção

Solicitação

Cabeçalhos

Content-Type: application/json

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"      }    }  }]

Estoque

Recursos de estoque da API do Prodsmart.

Recuperar estoque do produto

GET /api/stock/{code}{?access_token}

Para recuperar o estoque do produto, basta executar uma solicitação GET com o código do Produto. Vários parâmetros serão tratados como uma condição AND. Esta ação requer um access_token com escopo productions_write.

URI de exemplo

GET /api/stock/code?access_token=

Parâmetros de URI

code

sequência (obrigatório)

Código de produto.

access_token

sequência (obrigatório)

Token de acesso da API do Prodsmart.

lot

sequência (opcional)

Recuperar código do lote e quantidade de estoque para o(s) lote(s) do produto

Solicitação

Cabeçalhos

Content-Type: application/json

Resposta 200

Corpo

{"product-code": "Example","stock": 35,"lot": [     {      "code": "A",      "stock": 10    },    {      "code": "B",      "stock": 5    }}

Resposta 400

Corpo

If there's a problem with the request, the problem found will be reported on the Response Body.

Relatórios

Relatando recursos da API do Prodsmart.

Tempo de mão de obra do trabalhador

Tempo de mão de obra do trabalhador GET/api/reports/worker-labor-time{?access_token}

Para recuperar um relatório, basta executar uma solicitação GET com intervalo de tempo para extrair o relatório. É possível adicionar um trabalhador e um parâmetro de seção para filtrar o relatório. Além disso, é possível especificar alguns sinalizadores para personalizar o conteúdo do relatório. O valor padrão de todos os sinalizadores é false (falso). Esta ação requer um access_token com escopo productions_write.

URI de exemplo

GET /api/reports/worker-labor-time?access_token=

Parâmetros de URI

start-time

sequência (obrigatório)

Gerar relatório para datas após esta (inclusive)

end-time

sequência (obrigatório)

Gerar relatório até datas anteriores a esta (inclusive)

access_token

sequência (obrigatório)

Token de acesso à API do Prodsmart

worker-number

sequência (opcional)

Especifique um número de trabalhador para filtrar o relatório

seção

sequência (opcional)

Especifique um nome de seção. Todos os trabalhadores dessa seção serão incluídos no relatório

show-rework

booleano (opcional)

Incluir um novo campo com operações de retrabalho no relatório

show-weekend

booleano (opcional)

Incluir dias de fim de semana nos dados

only-punch-clock

booleano (opcional)

Somente considerar tempo de presença com entradas de relógio de ponto

page

numérico (opcional)

índice de página de resultados, iniciando em 1

Solicitação

Cabeçalhos

Content-Type: application/json

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

Corpo

If there's a problem with the request, the problem found will be reported on the Response Body.

Resposta 429

Corpo

Another request is ongoing for this endpoint. Please wait until the current request finishes before doing another.

Autorização e controle de acesso

Acesso e controle do token de autenticação do Prodsmart.

AUTORIZAÇÃO

O Recurso de autorização representa uma autorização concedida à empresa. Você somente pode acessar sua própria autorização. A autenticação usada é a autenticação Básica, em que o cabeçalho de Autenticação está no formato <valor codificado base64 de API_KEY:API_SECRET>. Para obter a chave API e o segredo, efetue login no Prodsmart e edite seu usuário. (Observação: Você deve 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 scopes é uma matriz de escopos concedidos para a autorização fornecida. Neste momento, o único escopo disponível é productions_write.

Recuperar autorização

GET /api/authorization

Utilize GET para recuperar um token de acesso existente. Se um token ainda não existir, um poderá ser gerado usando o método POST.

URI de exemplo

GET /api/authorization

Solicitação

Cabeçalhos

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

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

Use POST para gerar um novo token de acesso.

URI de exemplo

POST /api/authorization

Solicitação

Cabeçalhos

Content-Type: application/jsonAuthorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Corpo

{ "scopes": [ "productions_write" ] }

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

EXCLUIR /api/authorization

URI de exemplo

DELETE /api/authorization

Solicitação

Cabeçalhos

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Resposta 204

Respondeu à sua pergunta?