Ir al contenido principal

Documentación de las API

David Andrade avatar
Escrito por David Andrade
Actualizado hace más de 2 semanas

Punto final de URI base de la API

El punto final para todas nuestras llamadas a la API es: https://app.prodsmart.com/

Autenticación

La API de Prodsmart utiliza una autorización de token simple. Primero debe crear un nuevo token (o adquirir uno existente). Una vez adquirido el token, puede utilizarlo para acceder a otros recursos dentro del alcance del token.

El token de autenticación dura dos horas y, a continuación, debe solicitar uno nuevo con las credenciales de la API.

Tipo de medios

Las solicitudes con un cuerpo de mensaje utilizan JSON sin formato para establecer o actualizar estados de recursos.

Estados de error

Se utilizan los códigos de estado de respuesta HTTP comunes.

JSON no válido

Si recibe una respuesta que indica "JSON no válido", valide la carga de JSON que utilice en JSONLint.

Límite de velocidad

Las solicitudes de API están limitadas a 120 solicitudes por minuto y empresa. Una vez superado el límite, las solicitudes posteriores obtendrán una respuesta con el código de estado HTTP 429 Demasiadas solicitudes.

Además, un encabezado mostrará cuántos segundos debe esperar antes de volver a intentar realizar la solicitud:

Retry-After: <delay-seconds>

Prácticas recomendadas para abordar el límite de velocidad:

  • Divida las solicitudes uniformemente a lo largo del tiempo para evitar picos de uso que puedan dar lugar a respuestas ralentizadas.

  • Desarrolle una lógica que utilice la información de reintento posterior para saber cuándo se puede reintentar la solicitud.

  • Asegúrese de que no tenga integraciones innecesarias ejecutándose en paralelo, ya que todas las integraciones cuentan de cara al límite.

Formato de fecha

El formato de los campos de fecha de la API sigue la representación de ISO 8601:

  • AAAA-MM-DDThh:mm:ssZ

En este formato, la letra T funciona como delimitador obligatorio, mientras que la Z es un designador de zona horaria si es necesario. Si no se utiliza la Z, la zona horaria aplicada a la fecha es la misma que la definida en su empresa Prodsmart. Z significa zona horaria cero, ya que se desfasa en 0.

Ejemplo de uso:

  • Si la hora que se está utilizando es una hora antes de UTC, el designador de zona debe ser "+01:00", "+0100" o simplemente "+01".

  • Si la zona horaria de una empresa se establece en -05:00 y la fecha de envío tiene el siguiente formato: 2020-07-20T09:15:15Z, la fecha se mostrará en Prodsmart como: 20/07/2020 - 04:15:15.

  • Si el formato enviado es: 2020-07-20T09:15:15, la fecha se mostrará en Prodsmart como: 07/20/2020 - 09:15:15 (con zona horaria -05:00), lo que significa que un usuario con una zona horaria establecida en -04:00 lo verá como: 20/07/2020 - 10:15:15.


Integraciones comunes de ERP

Los casos habituales para las integraciones de ERP son la sincronización de, sobre todo, pedidos de producción, existencias y catálogo de productos.

Pedidos de producción

Cuando se crea un pedido de producción en el lado ERP, el ERP debe enviar los datos del pedido de producción en formato JSON a la API de Prodsmat mediante el servicio de creación de pedidos de producción. Si es necesario actualizar el lado ERP cuando se crea o actualiza un pedido de producción en Prodsmart, existen dos posibilidades: una de ellas es que el ERP se puede contactar desde fuera, y en este caso es posible configurar webhooks en Prodsmart que se llamarán al crear, actualizar y suprimir pedidos de producción en el lado de Prodsmart. Si no se puede establecer contacto con el ERP desde fuera, el ERP tiene que sondear activamente el servicio de listas de pedidos de producción para detectar cambios.

Existencias

Normalmente, el ERP (o WMS) se encarga de las existencias, por lo que ofrecemos un servicio (Actualizar existencias de productos) que permite al ERP o WMS actualizar las existencias actuales de un producto con una cantidad específica. En algunos casos, se puede notificar al ERP o WMS sobre los cambios en las existencias de producción, ya sea observando los cambios en los pedidos de producción o utilizando los webhooks o un servicio web de existencias actuales (bajo demanda).

Productos

El catálogo de productos también se sincroniza, si bien con menos frecuencia. En este caso, el ERP siempre es el maestro y puede crear productos y operaciones mediante el servicio de creación de productos.


Webhooks

Los webhooks están disponibles para eventos de pedidos de producción en el menú de integraciones de la aplicación. Para utilizar esta función, añada el retorno de llamada de URL de punto final con los eventos de notificación que desea escuchar. Nos esforzamos por enviar notificaciones de webhook en cuanto se producen los eventos en nuestro sistema. Si tiene un gran número de pedidos de producción modificados simultáneamente, puede recibir una enorme cantidad de notificaciones en un corto período de tiempo. Actualmente no se admite ningún reintento.

Encabezados

Encabezados de webhook

x-prodsmart-topic: "productionOrder/create"x-prodsmart-hmac-sha256: "c938fe31379c0d89b37468e1cae9e3aab2d56834"x-prodsmart-api-version: "1"x-prodsmart-webhook-uuid: "91cb972d-b476-4936-947c-4be471b9da5b"x-prodsmart-triggered-at: "2023-08-29T20:39:46.142Z"

Nota:

  • x-prodsmart-topic: identifique el tema del webhook.

  • x-prodsmart-hmac-sha256: se utiliza para verificar el origen del webhook.

  • x-prodsmart-api-version: versión de la API utilizada para enviar el webhook.

  • x-prodsmart-webhook-uuid: identifique un webhook único.

  • x-prodsmart-trigger-at: hora a la que se desencadenó el webhook.

¿Cómo se verifica el webhook?

  • Antes de responder con un código de estado 200, es crucial confirmar que el webhook se originó en Prodsmart. Esta verificación se logra mediante el cálculo de una firma.

  • Cada solicitud de webhook incluye un encabezado específico denominado x-prodsmart-hmac-sha1, que está codificado en formato base64. Este encabezado se genera mediante el secreto de la API y los datos incluidos en la solicitud de webhook.

  • Para verificar la autenticidad del webhook, debe calcular una firma por su cuenta mediante el mismo secreto de la API y los datos proporcionados.

  • Una vez que tenga la firma calculada, compárela con el valor encontrado en el encabezado x-prodsmart-hmac-sha1 de la solicitud de webhook entrante.

  • Si la firma calculada coincide con el valor del encabezado x-prodsmart-hmac-sha1, puede tener la confianza de que el webhook se envió desde Prodsmart y puede continuar respondiendo a él con un código de estado 200.

Pedidos de producción

  • Solicitud (aplicación/json)

    • Método: PUBLICACIÓN

    • Cuerpo

{    "products": [        {            "product": "V23076",            "quantity-ordered": 3500,            "observations": "",            "quantity-produced": 700        }    ],    "code": "Test Production Order",    "shipping": {        "code": "shipping 45"    },    "serial-number": "",    "description": "",    "start-date": "2023-04-20T09:15:15Z",    "due-date": "2023-05-16T17:15:15Z",    "workers-assigned": [        {            "number": 120        },        {            "number": 11        },        {            "number": 10        },        {            "number": 1        }    ],    "ended": false,    "machines": [        {            "code": "A32"        },        {            "code": "F1"        }    ],    "pieces-by-box": 20,    "status": "onschedule",    "running-status": "started",    "notes": "",    "id": 1}

Nota: El estado de ejecución se suprimirá cuando se elimine el pedido de producción.

Reloj perforador

  • Solicitud (aplicación/json)

    • Método: PUBLICACIÓN

    • Cuerpo

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

  • Valores posibles de entrada:

    • 1: Entrada

    • 0: Salida

  • Valores posibles de notificación:

    • punchClock_created

    • punchClock_updated

    • punchClock_deleted

Movimiento de inventario de envío

Movimiento de inventario de envío creado/actualizado

  • Solicitud (aplicación/json)

    • Método: PUBLICACIÓN

    • Cuerpo

[{    "product": {        "id": 222,        "code": "product-code",        "uom": "uom"    },    "lot": {        "code": "lot-code",        "expiration-date": "lot-expiration-date",        "supplier-lot": "supplier-lot-name"    },    "date": "2022-02-21T00:00:00Z",    "quantity": 10.0,    "stock-type": "out",    "comment": "comment",    "warehouse-location": {        "id": 333,        "code": "warehouse-location-code",        "warehouse": {            "id": 444,            "code": "warehouse-code"        }    },    "sales-order": {        "id": 555,        "code": "sales-order-code",        "client": {            "id": 777,            "code": "client-code"        },        "parameters": [{            "name": "parameterX",            "value": "valueX"        }]    },    "shipping": {        "id": 666,        "code": "shipping-code"    },    "worker": {        "id": 333,        "number": 0,        "name": "worker-name"    }}]

  • Valores posibles de notificación:

    • shipping_inventory_movement_created

    • shipping_inventory_movement_updated

Movimiento de inventario de envío suprimido

  • Solicitud (aplicación/json)

    • Método: PUBLICACIÓN

    • Cuerpo

{  "id": 111}

  • Valores posibles de notificación:

    • shipping_inventory_movement_deleted

Movimiento de inventario de recepción

Movimiento de inventario de recepción creado/actualizado

  • Solicitud (aplicación/json)

    • Método: PUBLICACIÓN

    • Cuerpo

[{    "product": {        "id": 222,        "code": "product-code",        "uom": "uom"    },    "lot": {        "code": "lot-code",        "expiration-date": "lot-expiration-date",        "supplier-lot": "supplier-lot-name"    },    "date": "2022-02-21T00:00:00Z",    "quantity": 10.0,    "stock-type": "in",    "comment": "comment",    "warehouse-location": {        "id": 333,        "code": "warehouse-location-code",        "warehouse": {            "id": 444,            "code": "warehouse-code"        }    },    "purchase-order": {        "id": 555,        "code": "purchase-order-code",        "supplier": "supplier-code",        "parameters": [{            "name": "parameterX",            "value": "valueX"        }]    },    "receiving": {        "id": 666,        "code": "receiving-code"    },    "worker": {        "id": 333,        "number": 0,        "name": "worker-name"    }}]

  • Valores posibles de notificación:

    • receiving_inventory_movement_created

    • receiving_inventory_movement_updated

Movimiento de inventario de recepción suprimido

  • Solicitud (aplicación/json)

    • Método: PUBLICACIÓN

    • Cuerpo

{  "id": 111}

  • Valores posibles de notificación:

    • receiving_inventory_movement_deleted

Movimiento de inventario interno

Movimiento de inventario interno creado/actualizado

  • Solicitud (aplicación/json)

    • Método: PUBLICACIÓN

    • Cuerpo

[{    "product": {        "id": 222,        "code": "product-code",        "uom": "uom"    },    "lot": {        "code": "lot-code",        "expiration-date": "lot-expiration-date",        "supplier-lot": "supplier-lot-name"    },    "date": "2022-02-21T00:00:00Z",    "quantity": 10.0,    "stock-type": "in",    "comment": "comment",    "warehouse-location": {        "id": 333,        "code": "warehouse-location-code",        "warehouse": {            "id": 444,            "code": "warehouse-code"        }    },    "worker": {        "id": 333,        "number": 0,        "name": "worker-name"    }}]

  • Valores posibles de notificación:

    • internal_inventory_movement_created

    • internal_inventory_movement_updated

Movimiento de inventario interno suprimido

  • Solicitud (aplicación/json)

    • Método: PUBLICACIÓN

    • Cuerpo

{  "id": 111}

  • Valores posibles de notificación:

    • internal_inventory_movement_deleted

Movimiento de disposición de material

Creación/actualización de disposición de material

  • Solicitud (aplicación/json)

    • Método: PUBLICACIÓN

    • Cuerpo

[{    "product": {        "id": 222,        "code": "product-code",        "uom": "uom"    },    "production-order": {        "id": 333,        "code": "production-order-code"    },    "lot": {        "code": "lot-code",        "expiration-date": "lot-expiration-date",        "supplier-lot": "supplier-lot-name"    },    "date": "2022-02-21T00:00:00Z",    "quantity": 10.0,    "warehouse-location": {        "id": 333,        "code": "warehouse-location-code",        "warehouse": {            "id": 444,            "code": "warehouse-code"        }    },    "worker": {        "id": 333,        "number": 0,        "name": "worker-name"    }}]

  • Valores posibles de notificación:

    • material_staging_created

    • material_staging_updated

Disposición de material suprimida

  • Solicitud (aplicación/json)

    • Método: PUBLICACIÓN

    • Cuerpo

{  "id": 111}

  • Valores posibles de notificación:

    • material_staging_deleted

Lote

Lote creado/actualizado

  • Solicitud (aplicación/json)

    • Método: PUBLICACIÓN

    • Cuerpo

[{    "code": "lot-code",    "creation-date": "2022-02-21T00:00:00Z",    "expiration-date": "2022-02-21T00:00:00Z",    "supplier-lot": "supplier-lot-name",    "product": {        "id": 222,        "code": "product-code",        "uom": "uom"    }}]

  • Valores posibles de notificación:

    • lot_created

    • lot_updated

Lote suprimido

  • Solicitud (aplicación/json)

    • Método: PUBLICACIÓN

    • Cuerpo

{  "id": 111}

  • Valores posibles de notificación:

    • lot_deleted

Tiempo de inactividad

Tiempo de inactividad creado / actualizado / eliminado

  • Solicitud (aplicación/json)

    • Método: PUBLICACIÓN

    • Cuerpo

{  "id": 1,  "start-time": "2000-01-01T00:00:00.000+01:00",  "end-time": "2099-12-31T23:59:59.999+01:00",  "started-by": {},  "closed-by": {    "number": 0  },  "workers": [    {      "number": 0    }  ],  "machines": [],  "product": "",  "production-order": "",  "checked-out": true,  "downtime-type": "downtime1 type",  "time-spent": "08:00:00",  "event-type": "downTime_created"}

  • Valores posibles de notificación:

    • downTime_created

    • downTime_updated

    • downTime_deleted

Canales de feed de cambios

Si, por algún motivo, no puede utilizar los webhooks, actualmente ofrecemos como alternativa una pila de cambios que almacenará los cambios que se hayan producido en las últimas 24 horas o desde la última vez que solicitó los cambios a través del servicio web que le proporcionamos para tal fin. Para utilizar esta función, debe crear un canal en el menú de integraciones (https://app.prodsmart.com/admin/integrations). Puede crear hasta tres canales por organización.

Existen seis tipos de canales de cambios:

  • DOWN_TIME

  • PRODUCT

  • PRODUCTION

  • PRODUCTION_ORDER

  • PUNCH_CLOCK

  • STOCK

Obtener cambios

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

Al llamar a este servicio, obtendrá una lista de entidades que han cambiado, ya sea porque se crearon, actualizaron o suprimieron, o porque su estado ha cambiado. Recibirá una matriz con el estado actual de las entidades (ordenada desde los cambios más antiguos hasta los más recientes), con un máximo de 25 por llamada de servicio. Las entidades que se obtienen del servicio se eliminan de la pila (hasta que tengan nuevas actualizaciones). El servicio devolverá una matriz vacía ("[]") si no hay cambios.

URI de ejemplo

GET /api/changes/channel?access_token=

Parámetros de URI

channel

cadena (obligatoria)

el canal al que se accede

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

workers

booleano (opcional)

mostrar lista de trabajadores en respuesta de canal de pedidos de producción

Request

Content-Type: application/json

TIEMPOS DE INACTIVIDAD

[    {        "id": 1435048,        "start-time": "2022-04-22T14:47:00.000+01:00",        "end-time": "2022-04-23T00:00:00.000+01:00",        "started-by": {},        "closed-by": {            "number": 1        },        "workers": [            {                "number": 1            }        ],        "machines": [],        "product": "",        "production-order": "",        "checked-out": true,        "downtime-type": "Maintenance",        "time-spent": "09:13:00",        "event-type": "downTime_deleted",    }]

Nota: El campo de tipo de evento solo estará presente cuando se suprima un tiempo de inactividad.

PEDIDOS DE PRODUCCIÓN

[    {        "products": [            {                "product": "RN2",                "quantity-ordered": 30.0,                "observations": "",                "quantity-produced": 0.0            }        ],        "code": "Production Order 123",        "description": "",        "shipping": {},        "start-date": "2022-04-21T00:00:00.000+01:00",        "due-date": "2022-04-28T00:00:00.000+01:00",        "ended": false,        "machines": [],        "notes": "",        "is-active": true,        "running-status": "notstarted",        "status": "onschedule",        "material-staging-complete": false,        "id": 1379919    }]

Nota: El campo de estado de ejecución tendrá el valor suprimido cuando se suprima un pedido de producción.

PRODUCTOS

[    {        "code": "V23076",        "name": "V23076",        "observations": "",        "section": null,        "unit-cost": null,        "unit-price": null,        "families": [],        "operations": [],        "components": [],        "custom-fields": [],        "notification": null,        "serializable": null,        "shipping-package-types": [],        "external-stock": null,        "stock-max": null,        "min-quantity-reorder": null,        "quantity-multiple": null,        "scrap-allowance": null,        "shelf-life": null,        "parameters": []    }]

Nota: El campo de notificación tendrá el valor product_deleted cuando se suprima un producto.

REGISTROS DE PRODUCCIÓN ¶

[    {        "production-order": {            "code": "P1 - Week 14",            "id": 3641        },        "operation": {            "code": "CUT3",            "product": "P1"        },        "worker": {            "number": 6        },        "machine": {            "code": "WJC"        },        "quantity": 0.0,        "checked-out": false,        "produced-waste": [],        "consumptions": [],        "total-time-factor": 1.0,        "rework": false,        "work-time": "00H00m00s",        "start-time": "2022-04-22T14:43:00.000+01:00",        "end-time": "2022-04-22T14:43:00.000+01:00",        "status": "deleted",        "show-check-in-checklist-and-c-f": false,        "id": 12952533    }]

Nota: El campo de estado solo estará presente cuando se suprima un registro de producción.

RELOJES PERFORADORES

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

Nota: El campo de notificación solo estará presente cuando se suprima una entrada de reloj perforador.

EXISTENCIAS

[    {        "product-code": "P1",        "stock": 2395.0,        "lot": [            {                "code": "Lot 0086",                "stock": 500.0            }        ]    }]

Proveedor

Recursos de los proveedores de la API de Prodsmart.

PROVEEDOR

Un único objeto Proveedor.

El recurso Proveedor tiene los siguientes atributos:

  • id (proporcionado)

  • código (cadena, obligatorio, único): código de proveedor

  • nombre (cadena, obligatorio): nombre del proveedor

  • número (cadena, opcional): número de IVA del proveedor

  • fecha de caducidad (fecha, opcional, formato AAAA-MM-DDTHH:MM:SSZ): fecha en la que caduca el proveedor

  • direcciones (matriz, opcional)

  • código (cadena, obligatorio, único): código de dirección

  • nombre (cadena, opcional): nombre de dirección

  • dirección (cadena, obligatorio): línea de dirección

  • ciudad (cadena, opcional): ciudad de la dirección

  • código postal (cadena, opcional): código postal de la dirección

  • estado (cadena, opcional): estado/región de la dirección

  • país (cadena, obligatorio): código de país de la dirección

  • por defecto (booleano, opcional; valor por defecto false): si es true, es la dirección por defecto del proveedor

  • contactos (matriz, opcional)

  • número de teléfono (cadena, obligatoria si no hay correo electrónico): número de teléfono de contacto

  • correo electrónico (cadena, obligatoria si no hay número de teléfono): correo electrónico de contacto

  • nombre (cadena, opcional): nombre de contacto

  • por defecto (booleano, opcional: valor por defecto false): si es true, es el contacto por defecto del proveedor

Reglas de contacto/dirección por defecto:

  • Tanto los contactos como las direcciones solo pueden tener un contacto o una dirección por defecto, respectivamente.

  • Si un proveedor tiene direcciones, una de ellas debe ser la dirección por defecto.

  • Si un proveedor tiene contactos, uno de ellos debe ser el contacto por defecto

  • En la creación o actualización de un proveedor, si no se proporciona ningún contacto o dirección por defecto, el primer contacto o dirección será el predeterminado.

Crear un proveedor

POST /api/suppliers{?access_token}

Estado: disponible

Para crear un proveedor, proporcione un hash JSON de los atributos del nuevo proveedor. Esta acción requiere un access_token con alcance productions_write.

URI de ejemplo

POST /api/suppliers?access_token=

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

Request

Encabezados

Content-Type: application/json

Cuerpo

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

Respuesta 201

Cuerpo

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

Respuesta 400

Cuerpo

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

Enumerar proveedores

GET /api/suppliers{?access_token}

Permite mostrar los proveedores. Esta acción requiere un access_token con alcance productions_write. Este servicio se pagina y devuelve 25 proveedores por página.

URI de ejemplo

GET /api/suppliers?access_token=

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

página

numérico (opcional)

índice de página de resultados, empezando en 1

id

número (opcional)

enumerar proveedores filtrados por ID

código

cadena (opcional)

enumerar proveedores filtrados por código

Request

Encabezados

Content-Type: application/json

Respuesta 200

Cuerpo

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

Respuesta 400Show

Cuerpo

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

Recuperación de un proveedor

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

Esta acción requiere un access_token con alcance productions_write.

URI de ejemplo

GET /api/suppliers/id?access_token=

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

id

numérico (obligatorio)

Identificación del proveedor

Request

Encabezados

Content-Type: application/json

Respuesta 201

Cuerpo

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

Respuesta 400

Cuerpo

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

Actualizar un proveedor

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

Para actualizar un proveedor, proporcione un hash JSON de los atributos del nuevo proveedor.

Contactos

  • Los contactos de proveedor especificados reemplazarán a los contactos actuales.

  • Si se proporciona un contacto con el mismo nombre que un contacto existente, los valores del contacto con ese nombre se reemplazarán por los especificados.

  • Si no se proporciona ningún contacto, se eliminarán los contactos existentes.

Direcciones

  • Las direcciones especificadas reemplazarán a las direcciones actuales.

  • Si se proporciona una dirección con el mismo código que una dirección existente, los valores de la dirección con ese código se reemplazarán por los especificados.

  • Si no se especifica ninguna dirección, se eliminarán las direcciones existentes.

  • Si una dirección tiene entidades asociadas, la solicitud no se completará porque no se puede eliminar la dirección.

Esta acción requiere un access_token con alcance productions_write.

URI de ejemplo

PUT /api/suppliers/id?access_token=

Parámetros de URI

id

numérico (obligatorio)

Identificación del cliente

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

Request

Encabezados

Content-Type: application/json

Cuerpo

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

Respuesta 201

Cuerpo

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

Respuesta 400

Cuerpo

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

Eliminar un proveedor

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

URI de ejemplo

SUPRIMIR /api/suppliers/id?access_token=

Parámetros de URI

id

numérico (obligatorio)

Identificación del proveedor

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

Request

Encabezados

Content-Type: application/json

Respuesta 204

Cuerpo

Supplier was deleted

Respuesta 412

Cuerpo

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

Cliente

Recursos de cliente de la API de Prodsmart.

CLIENTE

Un único objeto Cliente.

El recurso Cliente tiene los siguientes atributos:

  • id (proporcionado)

  • código (cadena, obligatorio, único): código de cliente

  • nombre (cadena, obligatorio): nombre de cliente

  • número (cadena, opcional): número de cliente

  • número de teléfono (cadena, opcional): número de teléfono del cliente

  • correo electrónico (cadena, opcional): correo electrónico del cliente

  • direcciones (matriz, opcional)

  • código (cadena, obligatorio, único): código de dirección

  • nombre (cadena, opcional): nombre de dirección

  • dirección (cadena, obligatorio): línea de dirección

  • ciudad (cadena, opcional): ciudad de la dirección

  • código postal (cadena, opcional): código postal de la dirección

  • estado (cadena, opcional): estado/región de la dirección

  • país (cadena, obligatorio): código de país de la dirección

  • valor por defecto (booleano, opcional: valor por defecto false): si es true, es la dirección por defecto del cliente

  • contactos (matriz, opcional)

  • número de teléfono (cadena, obligatoria si no hay correo electrónico): número de teléfono de contacto

  • correo electrónico (cadena, obligatoria si no hay número de teléfono): correo electrónico de contacto

  • nombre (cadena, opcional): nombre de contacto

  • por defecto (booleano, opcional; valor por defecto false): si es true, es el contacto por defecto del cliente

Reglas de contacto/dirección por defecto:

  • Tanto los contactos como las direcciones solo pueden tener un contacto o una dirección por defecto, respectivamente.

  • Si un cliente tiene direcciones, una de ellas debe ser la predeterminada

  • Si un cliente tiene contactos, uno de ellos debe ser el predeterminado

  • En la creación o actualización de un cliente, si no se proporciona ningún contacto o dirección por defecto, el primer contacto o dirección será el predeterminado

Crear un cliente

POST /api/clients{?access_token}

Para crear un cliente, proporcione un hash JSON de los atributos del nuevo cliente. Esta acción requiere un access_token con alcance productions_write. Por ahora, solo es posible guardar un cliente. En el futuro, si la solicitud es una matriz en lugar de un recurso, se guardarán todos los elementos de la matriz.

URI de ejemplo

POST /api/clients?access_token=

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

Request

Encabezados

Content-Type: application/json

Cuerpo

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

Respuesta 201

Cuerpo

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

Respuesta 400

Cuerpo

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

Enumerar clientes

GET /api/clients{?access_token}

Para mostrar clientes. Esta acción requiere un access_token con alcance productions_write. Este servicio está paginado y devuelve 25 clientes por página.

URI de ejemplo

GET /api/clients?access_token=

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

página

numérico (opcional)

índice de página de resultados, empezando en 1

id

número (opcional)

enumerar clientes filtrados por ID

código

cadena (opcional)

enumerar clientes filtrados por código

Request

Encabezados

Content-Type: application/json

Respuesta 200

Cuerpo

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

Respuesta 400

Cuerpo

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

Recuperación de un cliente

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

Esta acción requiere un access_token con alcance productions_write.

URI de ejemplo

GET /api/clients/id?access_token=

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

id

numérico (obligatorio)

Identificación del cliente

Request

Encabezados

Content-Type: application/json

Respuesta 201

Cuerpo

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

Respuesta 400

Cuerpo

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

Actualización de un cliente

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

Para actualizar un cliente, proporcione un hash JSON de los atributos del nuevo cliente.

Contactos

  • Los contactos de proveedor especificados reemplazarán a los contactos actuales.

  • Si se proporciona un contacto con el mismo nombre que un contacto existente, los valores del contacto con ese nombre se reemplazarán por los especificados.

  • Si no se proporciona ningún contacto, se eliminarán los contactos existentes.

Direcciones

  • Las direcciones especificadas reemplazarán a las direcciones actuales.

  • Si se proporciona una dirección con el mismo código que una dirección existente, los valores de la dirección con ese código se reemplazarán por los especificados.

  • Si no se especifica ninguna dirección, se eliminarán las direcciones existentes.

  • Si una dirección tiene entidades asociadas, la solicitud no se completará porque no se puede eliminar la dirección.

Esta acción requiere un access_token con alcance productions_write.

URI de ejemplo

PUT /api/clients/id?access_token=

Parámetros de URI

id

numérico (obligatorio)

Identificación del cliente

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

Request

Encabezados

Content-Type: application/json

Cuerpo

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

Respuesta 201

Cuerpo

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

Respuesta 400

Cuerpo

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

Eliminación de un cliente

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

URI de ejemplo

SUPRIMIR /api/clients/id?access_token=

Parámetros de URI

id

numérico (obligatorio)

Identificación del cliente

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

Request

Encabezados

Content-Type: application/json

Respuesta 204

Cuerpo

Client was deleted

Respuesta 412

Cuerpo

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

Pedido de venta

Recursos de pedido de cliente de la API de Prodsmart.

PEDIDO DE VENTAS

Un único objeto de pedido de ventas. El recurso de pedido de ventas es uno de los recursos más importantes de la API de Prodsmart.

El recurso de pedido de ventas tiene los siguientes atributos:

  • id (proporcionado)

  • código (cadena, obligatorio): código de pedido de ventas

  • cliente (cadena, opcional): código de cliente

  • observaciones (cadena, opcional): observaciones de pedidos de ventas

  • productos (matriz, obligatoria, no vacío)

    • código (cadena, obligatorio, único): código de producto

    • cantidad (doble, requerida, >0): cantidad pedida

    • fecha de vencimiento (fecha, opcional, formato AAAA-MM-DDTHH:MM:SSZ): fecha de vencimiento del envío

    • Fecha de la solicitud (fecha, opcional, formato AAAA-MM-DDTHH:MM:SSZ): fecha en la que se solicita el envío

    • ubicación (cadena, opcional): ubicación, si es multisitio

    • precio (doble, opcional): precio del producto

  • parámetros (cadena, opcional): contiene un atributo específico de pedido de ventas

Crear un pedido de ventas

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

Para crear un pedido de ventas, proporcione un hash JSON de los atributos del nuevo pedido de ventas. Esta acción requiere un access_token con alcance productions_write. Por ahora solo es posible guardar un pedido de ventas. En el futuro, si la solicitud es una matriz en lugar de un recurso, se guardarán todos los elementos de la matriz.

URI de ejemplo

POST /api/client-order/?access_token=

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

Request

Encabezados

Content-Type: application/json

Cuerpo

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

Respuesta 201

Cuerpo

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

Respuesta 400

Cuerpo

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

Enumerar pedidos de ventas

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

Para enumerar pedidos de ventas. Varios parámetros se tratarán como una condición AND. Esta acción requiere un access_token con alcance productions_write. Este servicio está paginado y devuelve 25 pedidos de ventas por página.

URI de ejemplo

GET /api/client-order/?access_token=

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

página

numérico (opcional)

índice de página de resultados, empezando en 1

due-date-before

fecha (opcional)

enumerar pedidos de ventas con fecha de vencimiento anterior a esta

due-date-after

fecha (opcional)

enumerar pedidos de ventas con fecha de vencimiento posterior a esta

cliente

cadena (opcional)

código de máquina

Request

Encabezados

Content-Type: application/json

Respuesta 200

Cuerpo

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

Respuesta 400

Cuerpo

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

Recuperar un pedido de ventas

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

Esta acción requiere un access_token con alcance productions_write.

URI de ejemplo

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

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

id

numérico (obligatorio)

ID de pedido de ventas

Request

Encabezados

Content-Type: application/json

Respuesta 201

Cuerpo

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

Respuesta 400

Cuerpo

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

Actualizar un pedido de ventas

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

Para actualizar un pedido de ventas, proporcione un hash JSON de los atributos del nuevo pedido de ventas. Esta acción requiere un access_token con alcance productions_write.

URI de ejemplo

PUT /api/client-order/?access_token=

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

Request

Encabezados

Content-Type: application/json

Cuerpo

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

Respuesta 201

Cuerpo

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

Respuesta 400

Cuerpo

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

Eliminar un pedido de ventas

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

URI de ejemplo

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

Parámetros de URI

id

numérico (obligatorio)

ID de pedido de ventas

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

Request

Encabezados

Content-Type: application/json

Respuesta 204

Cuerpo

Client order was deleted

Respuesta 409

Cuerpo

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

Orden de compra

Recursos de pedidos de compra de la API de Prodsmart.

ORDEN DE COMPRA

Un único objeto de pedido de compra. El recurso de pedido de compra es uno de los recursos más importantes de la API de Prodsmart.

El recurso Pedido de compra tiene los siguientes atributos:

  • id (proporcionado)

  • código (cadena, obligatorio): código de pedido de compra

  • proveedor (cadena, opcional): código de proveedor

  • dirección de facturación (cadena, opcional): dirección de facturación

  • observaciones (cadena, opcional): observaciones de pedidos de compra

  • productos (matriz, obligatoria, no vacío)

    • código (cadena, obligatorio, único): código de producto

    • cantidad (doble, obligatorio, >0): solicitud de cantidad

    • fecha de vencimiento (fecha, opcional, formato AAAA-MM-DDTHH:MM:SSZ): fecha de vencimiento de la recepción

    • fecha de la solicitud (fecha, opcional, formato AAAA-MM-DDTHH:MM:SSZ): fecha en la que se solicita la recepción

    • coste (doble, opcional): coste del producto

    • unidad de medida (cadena, opcional): unidad de medida del producto

  • dirección de entrega (cadena, opcional): dirección de entrega de recepción

  • parámetros (cadena, opcional): parámetros de pedido de compra

  • estado de aprobación (cadena, opcional): borrador, en revisión, aprobado, confirmado, rechazado

Crear un pedido de compra

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

Para crear un pedido de compra, proporcione un hash JSON de los atributos del nuevo pedido de compra. Esta acción requiere un access_token con alcance productions_write. Por ahora solo es posible guardar un pedido de compra. En el futuro, si la solicitud es una matriz en lugar de un recurso, se guardarán todos los elementos de la matriz.

URI de ejemplo

POST /api/purchase-orders/?access_token=

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

Request

Encabezados

Content-Type: application/json

Cuerpo

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

Respuesta 201

Encabezados

Content-Type: application/json

Cuerpo

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

Respuesta 400

Cuerpo

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

Recuperar un pedido de compra

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

Esta acción requiere un access_token con alcance productions_write.

URI de ejemplo

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

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

id

numérico (obligatorio)

ID de pedido de compra

Request

Encabezados

Content-Type: application/json

Respuesta 201

Cuerpo

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

Respuesta 400

Cuerpo

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

Actualizar un pedido de compra

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

Para actualizar un pedido de compra, proporcione un hash JSON de los atributos del nuevo pedido de compra. Esta acción requiere un access_token con alcance productions_write.

URI de ejemplo

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

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

id

numérico (obligatorio)

ID de pedido de compra

Request

Encabezados

Content-Type: application/json

Cuerpo

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

Respuesta 201

Cuerpo

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

Respuesta 400

Cuerpo

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

Eliminar un pedido de compra

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

URI de ejemplo

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

Parámetros de URI

id

numérico (obligatorio)

Id. de pedido de compra

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

Request

Encabezados

Content-Type: application/json

Respuesta 204

Cuerpo

Purchase order was deleted

Respuesta 409

Cuerpo

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

Enumerar pedidos de compra

GET /api/purchase-orders{?access_token}

Para mostrar una lista de pedidos de compra. Varios parámetros se tratarán como una condición AND. Esta acción requiere un access_token con alcance productions_write. Este servicio está paginado y devuelve 25 pedidos de ventas por página.

URI de ejemplo

GET /api/purchase-orders?access_token=

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

página

numérico (opcional)

índice de página de resultados, empezando en 1

id

número (opcional)

enumerar pedidos de compra filtrados por id. de pedido de compra

código

cadena (opcional)

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

due-date-before

fecha (opcional)

enumerar pedidos de compra con fecha de vencimiento anterior a esta

due-date-after

fecha (opcional)

enumerar pedidos de compra con fecha de vencimiento posterior a esta

proveedor

cadena (opcional)

enumerar pedidos de compra filtrados por código de proveedor

Request

Encabezados

Content-Type: application/json

Respuesta 200

Cuerpo

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

Respuesta 400

Cuerpo

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

Pedido de producción

Recursos de pedidos de producción de la API de Prodsmart.

PEDIDO DE PRODUCCIÓN

Un único objeto de pedido de producción. El recurso de pedido de producción es uno de los más importantes de la API de Prodsmart. Representa la orden de gestión de producir una cantidad predeterminada de productos durante un período definido por trabajadores definidos.

El recurso de pedido de producción tiene los siguientes atributos:

  • id (proporcionado)

  • código (cadena, obligatorio): código de pedido de producción

  • fecha de inicio (fecha, obligatoria, formato AAAA-MM-DDTHH:MM:SSZ): fecha en la que se programa el inicio de este pedido de producción

  • fecha de vencimiento (fecha, obligatoria, formato AAAA-MM-DDTHH:MM:SSZ): fecha de vencimiento de este pedido de producción

  • productos (matriz, obligatoria, no vacía): productos y cantidades pedidas

  • producto (cadena, obligatoria, única): código de producto

  • cantidad pedida (número entero, obligatorio, >0): cantidad pedida

  • observaciones (opcional): nota sobre este producto

  • cantidad producida (número entero, proporcionado, >0): cantidad producida

  • descripción (opcional): descripción de este pedido de producción

  • envío (opcional): código de envío de este pedido

  • trabajadores asignados (matriz, opcional)

  • número: número de trabajadores

  • máquinas (matriz, opcional)

  • código: código de máquina

  • número de serie (opcional)

  • descripción (opcional)

  • notas (opcional)

  • estado (proporcionado): programado (antes de fecha de inicio y finalización = 0), en planificación (antes de fecha de finalización y finalización < 100 %), retrasado (después de fecha de finalización < 100 %), completado (finalización >= 100 %)

  • estado de ejecución (proporcionado): sin iniciar (sin producciones), iniciado (con producciones), cerrado (cerrado manualmente o cerrado por finalización), archivado (archivado manualmente)

La API de Prodsmart asigna el ID de estado en el momento de la creación.

Recuperar un pedido de producción

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

Para recuperar un pedido de producción, solo tiene que realizar una solicitud GET con el ID del pedido de producción. Esta acción requiere un access_token con alcance productions_write.

URI de ejemplo

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

Parámetros de URI

id

numérico (obligatorio)

Id. de pedido de producción

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

workers

booleano (opcional)

mostrar lista de trabajadores en respuesta

Request

Encabezados

Content-Type: application/json

Respuesta 200

Cuerpo

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

Actualizar/reemplazar un pedido de producción

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

Para actualizar un pedido de producción, solo tiene que realizar una solicitud PUT con el ID del pedido de producción. Esta acción requiere un access_token con alcance productions_write.

URI de ejemplo

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

Parámetros de URI

id

numérico (obligatorio)

Id. de pedido de producción

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

workers

booleano (opcional)

mostrar lista de trabajadores en respuesta

Request

Encabezados

Content-Type: application/json

Cuerpo

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

Respuesta 200

Cuerpo

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

Eliminar un pedido de producción

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

URI de ejemplo

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

Parámetros de URI

id

numérico (obligatorio)

Id. de pedido de producción

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

Request

Encabezados

Content-Type: application/json

Respuesta 204

Cuerpo

Production order was deleted

Crear un pedido de producción

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

Para crear un pedido de producción, proporcione un hash JSON de los atributos del nuevo pedido de producción. Esta acción requiere un access_token con alcance productions_write. Por ahora solo es posible guardar un pedido de producción. En el futuro, si la solicitud es una matriz en lugar de un recurso, se guardarán todos los elementos de la matriz.

URI de ejemplo

POST /api/production-orders/?access_token=

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

workers

booleano (opcional)

mostrar lista de trabajadores en respuesta

Request

Encabezados

Content-Type: application/json

Cuerpo

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

Respuesta 201

Cuerpo

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

Respuesta 400

Cuerpo

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

Enumerar pedidos de producción

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

Para mostrar los pedidos de producción. Varios parámetros se tratarán como una condición AND. Esta acción requiere un access_token con alcance productions_write. Este servicio se pagina y devuelve 25 pedidos de compra por página.

URI de ejemplo

GET /api/production-orders/?access_token=

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

página

numérico (opcional)

índice de página de resultados, empezando en 1

start-date-before

fecha (opcional)

enumerar pedidos de producción con fecha de inicio anterior a esta

start-date-after

fecha (opcional)

enumerar pedidos de producción con fecha de inicio posterior a esta

due-date-before

fecha (opcional)

enumerar pedidos de producción con fecha de vencimiento anterior a esta

due-date-after

fecha (opcional)

enumerar pedidos de producción con fecha de vencimiento posterior a esta

running-status

cadena (opcional)

no iniciado, iniciado, cerrado, archivado

activo

booleano (opcional)

enumerar solo pedidos de producción activos (true) o no activos (false)

producto

cadena (opcional)

código de producto

máquina

cadena (opcional)

código de máquina

workers

booleano (opcional)

mostrar lista de trabajadores en respuesta

Request

Encabezados

Content-Type: application/json

Respuesta 200

Cuerpo

[  {    "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 un problema de pedido de producción

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

Servicio que publica un mensaje corto en el feed y añade un mensaje en el pedido de producción.

  • mensaje corto (cadena, obligatorio): mensaje publicado en el feed, longitud máxima de 140 caracteres

  • mensaje (cadena, opcional): mensaje añadido a la sección de notas del pedido de compra

URI de ejemplo

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

Parámetros de URI

id

numérico (obligatorio)

Id. de pedido de producción

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

Request

Encabezados

Content-Type: application/json

Cuerpo

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

Respuesta 200

Activar un pedido de producción

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

Servicio que activa el pedido de producción.

URI de ejemplo

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

Parámetros de URI

id

numérico (obligatorio)

Id. de pedido de producción

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

Request

Encabezados

Content-Type: application/json

Cuerpo

{}

Respuesta 200

Respuesta 204

Cuerpo

Production Order was already active

Respuesta 405

Cuerpo

Production Order was closed or archived and cannot be activated

Productos

Recursos de producto de la API de Prodsmart.

PRODUCT

Un único objeto de producto. El recurso de producto es uno de los más importantes de la API de Prodsmart. Representa los productos de una fábrica y contiene las operaciones necesarias para su producción. Este método crea nuevos productos y sus operaciones. También se puede utilizar

El recurso de producto tiene los siguientes atributos:

  • código (cadena, obligatorio): código de producto

  • nombre (cadena, obligatorio): nombre del producto

  • sección (cadena, opcional)

  • familias (matriz, opcional)

  • operaciones (matriz, opcional): operaciones para producir el producto

    • código (cadena, obligatorio): código de operación

    • nombre (cadena, obligatorio): nombre de operación

    • residuos (matriz, opcional)

    • duraciones de tareas (matriz, opcional, máx.: 1)

      • duración (tiempo, opcional, p. ej., formato "10H59m59s"): el tiempo medio que tarda esta operación en ejecutarse, en teoría

      • duración del cliente (tiempo, opcional, por ejemplo, formato "10H59m59s"): el tiempo establecido en el presupuesto

      • relación de cantidad (doble, opcional, valor por defecto: 1,0): el volumen producido en cada instancia de esta operación

    • veces por producto (número entero, opcional, valor por defecto: 1): el número de veces que se debe realizar esta operación para completar una unidad de producto

    • campos personalizados (matriz, opcional, debe existir en el sistema): campos personalizados que se añadirán a la operación

      • nombre (cadena, obligatorio): nombre del campo personalizado, ya creado en el sistema

    • máquinas (matriz, opcional, debe existir en el sistema): máquinas que se pueden utilizar para realizar la operación

      • código (cadena, obligatorio): el código de la máquina, ya creado en el sistema

    • desactivado (booleano, opcional): desactiva la operación

    • opcional (booleano, opcional): establece la operación como opcional

    • recuperación (booleano, opcional): establece la operación como recuperación

    • sin tiempo (booleano, opcional): no registra tiempos de producción

    • sin cantidad (booleano, opcional): no registra la cantidad de producción

    • como equipo (booleano, opcional): operación que se realiza como equipo

    • umbral de residuos máximo (doble, opcional): relación de residuos máxima que se permitirá

Los campos que no estén presentes en la solicitud se establecerán con los valores por defecto. Al utilizar este método para operaciones o productos existentes, los campos no presentes se considerarán eliminaciones.

Recuperación de un producto

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

Para recuperar un producto, solo tiene que realizar una solicitud GET con el código del producto. Esta acción requiere un access_token con alcance productions_write.

URI de ejemplo

GET /api/products/code?access_token=

Parámetros de URI

código

Cadena (obligatoria)

Código de producto.

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

Request

Encabezados

Content-Type: application/json

Respuesta 200

Cuerpo

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

Respuesta 404

Cuerpo

If product with the provided code doesn't exist.

Creación de un producto

POST /api/products{?access_token}

Para crear un producto, proporcione un hash JSON de los atributos del nuevo producto y sus operaciones. Esta acción requiere un access_token con alcance productions_write. Se pueden crear varias operaciones a la vez.

URI de ejemplo

POST /api/products?access_token=

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

Request

Encabezados

Content-Type: application/json

Cuerpo

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

Respuesta 201

Cuerpo

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

Respuesta 400

Cuerpo

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

Actualizar producto

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

Para actualizar un producto, proporcione un código y un hash JSON de atributos para el producto existente y sus operaciones. Esta acción requiere un access_token con alcance productions_write. Por ahora, solo es posible guardar un producto, pero se pueden crear varias operaciones a la vez.

URI de ejemplo

PUT /api/products/code?access_token=

Parámetros de URI

código

cadena (obligatoria)

Código de producto.

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

Request

Encabezados

Content-Type: application/json

Cuerpo

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

Respuesta 201

Cuerpo

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

Respuesta 400

Cuerpo

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

Suprimir producto

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

Para suprimir un producto, proporcione el código de producto.

URI de ejemplo

SUPRIMIR /api/products/code?access_token=

Parámetros de URI

código

cadena (obligatoria)

Código de producto.

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

Request

Encabezados

Content-Type: application/json

Cuerpo

Content-Type: application/json

Respuesta 204

Respuesta 400

Cuerpo

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

Enumerar productos

GET /api/products{?access_token}

Para mostrar los productos y sus operaciones. Esta acción requiere un access_token con alcance productions_write.

URI de ejemplo

GET /api/products?access_token=

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

página

numérico (opcional)

índice de página de resultados, empezando en 1

product-family-code

cadena (opcional)

enumera los productos que pertenecen a la familia de productos proporcionada

modification-date

fecha (opcional)

enumera los productos que se modificaron en la oficina después de la fecha proporcionada

Request

Encabezados

Content-Type: application/json

Respuesta 200

Cuerpo

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

Respuesta 400

Cuerpo

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

PRODUCTOS (LISTA DE MATERIALES)

El recurso de lista de materiales del producto estipula los materiales utilizados para fabricar un producto específico. La lista de materiales tiene los siguientes atributos:

  • código de producto: producto principal

  • lista de materiales (matriz, obligatorio)

    • código de producto (cadena, obligatorio): código de producto de componente o consumo

    • cantidad (doble, obligatorio): cantidad

    • código de operación (cadena, opcional): código de operación en el que se consume el material definido en el código de producto. Si está vacío, el consumo se producirá en la primera operación del proceso de fabricación de este producto.

Actualizar la lista de materiales del producto

POST /api/bom{?access_token}

Para actualizar la lista de materiales de un producto, proporcione un hash JSON de los atributos del nuevo producto y sus operaciones. Esta acción requiere un access_token con alcance productions_write.

URI de ejemplo

POST /api/bom?access_token=

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

Request

Encabezados

Content-Type: application/json

Cuerpo

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

Respuesta 201

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

Respuesta 404

Cuerpo

Main product not found

Respuesta 400

Cuerpo

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

EXISTENCIAS DE PRODUCTOS

El recurso de existencias estipula las existencias disponibles para un producto específico.

  • código de producto (cadena, obligatorio)

  • existencias (doble, obligatorio)

  • fecha (fecha, opcional): fecha del recuento de existencias

Actualizar las existencias del producto

POST /api/stock{?access_token}

Para actualizar las existencias de un producto, proporcione un hash JSON de los atributos para las existencias actuales. Esta acción requiere un access_token con alcance productions_write.

URI de ejemplo

POST /api/stock?access_token=

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

Request

Encabezados

Content-Type: application/json

Cuerpo

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

Respuesta 201

Cuerpo

Request successful

Respuesta 404

Cuerpo

Product not found

Respuesta 400

Cuerpo

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

Familias de productos

Recursos de producto de la API de Prodsmart.

FAMILIA DE PRODUCTOS

El objeto de familia de productos representa la familia o las familias a las que pertenece un producto.

El recurso de familia de productos tiene los siguientes atributos:

  • código (cadena, obligatorio): código de familia de productos

  • nombre (cadena, obligatorio): nombre de familia de productos

Crear una familia de productos

POST /api/product-families{?access_token}

Para crear una o más familias de productos· Esta acción requiere un access_token con alcance productions_write.

URI de ejemplo

POST /api/product-families?access_token=

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

Request

Encabezados

Content-Type: application/json

Cuerpo

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

Respuesta 201

Cuerpo

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

Respuesta 400

Cuerpo

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

Suprimir familia de productos

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

Para suprimir una familia de productos, proporcione el código ProductFamily

URI de ejemplo

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

Parámetros de URI

código

cadena (obligatoria)

Código de producto.

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

Request

Encabezados

Content-Type: application/json

Cuerpo

Content-Type: application/json

Respuesta 204

Cuerpo

Product Family was deleted

Respuesta 400

Cuerpo

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

Enumerar familias de productos

GET /api/product-families{?access_token}

Para mostrar las familias de productos. Esta acción requiere un access_token con alcance productions_write.

URI de ejemplo

GET /api/product-families?access_token=

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

página

numérico (opcional)

índice de página de resultados, empezando en 1

Request

Encabezados

Content-Type: application/json

Respuesta 201

Cuerpo

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

Respuesta 400

Cuerpo

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

Máquinas

Recursos de producción de la API de Prodsmart.

CONTADOR

Actualizar contador

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

Para actualizar el contador actual en la máquina, solo tiene que enviar la siguiente solicitud. Para simplificar la conexión de la máquina, puede utilizar access_token o enviar credenciales de la API en el encabezado de autenticación con autenticación básica. Prodsmart actualizará automáticamente la producción iniciada por el trabajador en esa máquina. Tanto el recuento de cantidades como las cantidades de residuos deben ser incrementales (es decir, siempre mayores que las cantidades enviadas anteriormente).

URI de ejemplo

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

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

machine_code

cadena (obligatoria)

Código de máquina definido en la plataforma Prodsmart

Request

Encabezados

Content-Type: application/json

Cuerpo

{  "count": 500,  "waste": [    {      "code": "Waste1",      "quantity": 20    }  ],  "parameters": [    {      "name": "parameter1",      "value": "value1"    },    {      "name": "parameter2",      "value": "2022-12-19T00:00:00Z"    },    {      "name": "parameter3",      "value": 1    }  ]}

Respuesta 200

Cuerpo

Returns the new value for the machine's counter.

Respuesta 400

Cuerpo

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

PARÁMETROS

Actualizar parámetros

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

Para actualizar un parámetro de máquina, solo tiene que enviar la solicitud siguiente. Para simplificar la conexión de la máquina, puede utilizar access_token o enviar credenciales de la API en el encabezado de autenticación con autenticación básica. Cuando se pasan estos parámetros, si un registro de producción es

URI de ejemplo

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

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

machine_code

cadena (obligatoria)

Código de máquina definido en la plataforma Prodsmart

Request

Encabezados

Content-Type: application/json

Cuerpo

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

Respuesta 200

TIEMPO DE INACTIVIDAD

Actualizar tiempo de inactividad

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

Para actualizar el estado actual en la máquina, solo tiene que enviar la siguiente solicitud. Para simplificar la conexión de la máquina, puede utilizar access_token o enviar credenciales de la API en el encabezado de autenticación con autenticación básica. Prodsmart registrará automáticamente un tiempo de inactividad o lo finalizará, según la información recibida. Envíe 0 si la máquina está detenida, 1 si está activada y especifique el tipo de tiempo de inactividad.

Para actualizar el estado de una máquina, especifique los atributos siguientes:

  • tipo (cadena, obligatorio, debe ser un tipo de tiempo de inactividad ya asignado a la máquina): el tipo de tiempo de inactividad

  • ejecución (número, obligatorio, 0 o 1): la máquina está detenida (0) o en ejecución (1)

URI de ejemplo

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

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

machine_code

cadena (obligatoria)

Código de máquina definido en la plataforma Prodsmart

Request

Encabezados

Content-Type: application/json

Cuerpo

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

Respuesta 200

Producción

Recursos de producción de la API de Prodsmart.

PRODUCTION

Un único objeto de producción. El recurso de producción es el recurso central de la API de Prodsmart. Representa la labor de un trabajador en un puesto durante un período de tiempo.

El recurso de producción tiene los siguientes atributos:

  • id

  • hora de inicio (fecha, obligatoria, formato AAAA-MM-DDTHH:MM:SSZ): hora de inicio de la producción

  • hora de finalización (fecha, obligatoria, formato AAAA-MM-DDTHH:MM:SSZ): hora de finalización de la producción

  • tiempo de trabajo (duración, determinado, formato 00H00m00s): tiempo de trabajo de producción (dentro de los tiempos de programación o los relojes de perforación; no incluye los tiempos de inactividad)

  • pedido de producción (opcional): pedido de producción para la que se ha realizado esta producción

    • código (cadena, obligatorio): código de pedido de producción

    • id (cadena, obligatorio)

  • operación (obligatorio): tarea que se ha ejecutado en esta producción

    • código (cadena, obligatorio, único): código de tarea

    • producto (obligatorio): el material en el que el trabajador trabaja en este puesto

  • cantidad (número entero, obligatorio, >0): cantidad producida en esta producción

  • trabajador (obligatorio): persona que realiza tareas

    • número (largo, obligatorio, único): número de trabajador

  • residuos producidos (matriz, opcional): salida de material defectuoso en una operación

    • cantidad (numérica, obligatoria): código de residuos

      • residuos: tipo de material defectuoso

      • código (cadena, obligatorio, único): código de residuos

      • descripción (cadena, obligatorio): descripción de residuos

      • defecto (cadena, obligatorio): tipo de residuos

      • cantidad (número entero, obligatorio): cantidad de residuos producidos

La API de Prodsmart asigna el ID de estado en el momento de la creación.

Actualizar una producción

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

Para actualizar una producción, proporcione un código y un hash JSON de atributos para la producción existente. Esta acción requiere un access_token con alcance productions_write. Por ahora, solo es posible guardar un producto, pero se pueden crear varias operaciones a la vez.

URI de ejemplo

PUT /api/productions/id?access_token=

Parámetros de URI

id

numérico (obligatorio)

Id. de producción

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

Request

Encabezados

Content-Type: application/json

Cuerpo

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

Respuesta 200

Cuerpo

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

Respuesta 400

Cuerpo

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

Suprimir producción

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

Para suprimir una producción, proporcione un ID de producción.

URI de ejemplo

SUPRIMIR /api/productions/id?access_token=

Parámetros de URI

id

numérico (obligatorio)

Id. de producción

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

Request

Encabezados

Content-Type: application/json

Cuerpo

Content-Type: application/json

Respuesta 201

Cuerpo

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

Respuesta 400

Cuerpo

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

Enumerar producciones

GET /api/productions{?access_token}

Para mostrar las producciones. Varios parámetros se tratarán como una condición AND. Esta acción requiere un access_token con alcance productions_write. Este servicio se pagina y devuelve 25 producciones por página.

URI de ejemplo

GET /api/productions?access_token=

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

página

numérico (opcional)

índice de página de resultados, empezando en 1

production-order-id

numérico (opcional)

enumera las producciones con este pedido de producción

production-order-code

cadena (opcional)

enumerar producciones con estos pedidos de producción

worker

numérico (opcional)

enumerar producciones con este trabajador (número de trabajador)

start-time-before

fecha (opcional)

enumerar producciones con la hora de inicio anterior a esta

start-time-after

fecha (opcional)

enumerar producciones con la hora de inicio posterior a esta

end-time-before

fecha (opcional)

enumerar producciones con una hora de finalización anterior a esta

end-time-after

fecha (opcional)

enumerar producciones con una hora de finalización posterior a esta

start-time

fecha (opcional)

enumerar las producciones que se estaban ejecutando después de esta hora de inicio (no usar combinado con -before -after)

checked-out

booleano (opcional)

enumerar las producciones que están en estado de check-out.

worker-name

booleano (opcional)

recupera el nombre y el número del trabajador en lugar del número del trabajador.

Request

Encabezados

Content-Type: application/json

Respuesta 200

Cuerpo

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

Tiempo de inactividad

Recursos de tiempo de inactividad de la API de Prodsmart.

TIEMPOS DE INACTIVIDAD

Enumerar tiempos de inactividad

GET /api/downtimes{?access_token}

Para mostrar tiempos de inactividad. Varios parámetros se tratarán como una condición AND. Esta acción requiere un access_token con alcance productions_write.

URI de ejemplo

GET /api/downtimes?access_token=

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

página

numérico (opcional)

índice de página de resultados, empezando en 1

start-time-before

fecha (opcional)

mostrar tiempos de inactividad con la hora de inicio anterior a esta

start-time-after

fecha (opcional)

mostrar pedidos con tiempos de inactividad con una hora de inicio posterior a esta

end-time-before

fecha (opcional)

mostrar tiempos de inactividad con una hora de finalización anterior a esta

end-time-after

fecha (opcional)

mostrar tiempos de inactividad con horas de finalización posteriores a esta

máquina

numérico (opcional)

enumerar tiempos de inactividad en esta máquina

Request

Encabezados

Content-Type: application/json

Respuesta 200

Cuerpo

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

Reloj de perforación

Recursos de reloj de perforación de la API de Prodsmart.

RELOJ DE PERFORACIÓN

Los webhooks están disponibles para eventos de reloj de perforación en el menú de integraciones de la aplicación. Para utilizar esta función, añada el retorno de llamada de URL de punto final con los eventos de notificación que desea escuchar. Nos esforzamos por enviar notificaciones de webhook en cuanto se producen los eventos en nuestro sistema. Actualmente no se admite ningún reintento.

Enumerar relojes de perforación

GET /api/punchclocks{?access_token}

Para mostrar los relojes de perforación. Varios parámetros se tratarán como una condición AND. Esta acción requiere un access_token con alcance productions_write.

URI de ejemplo

GET /api/punchclocks?access_token=

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

página

numérico (opcional)

índice de página de resultados, empezando en 1

date-before

fecha (opcional)

enumerar entradas de reloj de perforación con fecha anterior a esta

date-after

fecha (opcional)

enumerar entradas de reloj de perforación con fecha posterior a esta

worker

numérico (opcional)

enumerar entradas de reloj de perforador para este trabajador

Request

Encabezados

Content-Type: application/json

Respuesta 200

Cuerpo

[{    "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')

Movimiento de inventario

Recursos de movimiento de inventario de la API de Prodsmart.

MOVIMIENTO DE INVENTARIO

Un único objeto de movimiento de inventario. El recurso de movimiento de inventario es uno de los más importantes de la API de Prodsmart.

El recurso de movimiento de inventario tiene los siguientes atributos:

  • id (proporcionado)

  • producto (cadena, obligatorio): código de producto

  • fecha-hora (fecha, opcional, formato AAAA-MM-DDTHH:MM:SSZ): fecha en la que se crea el movimiento de inventario

  • cantidad (doble, obligatorio): cantidad de movimiento de inventario

  • tipo (cadena, obligatorio): tipo de movimiento de inventario: entrada, salida, consumo, producción

  • lote (cadena, opcional): lote de movimiento de inventario que se va a utilizar

  • coste total (bigdecimal, opcional): coste total del movimiento de inventario para la cantidad

  • ubicación de almacén (cadena, opcional): código de ubicación de almacén

  • almacén (cadena, opcional): código de almacén

  • ubicación (cadena, opcional): ubicación, si es multisitio

  • comentario (cadena, opcional): comentario de movimiento de inventario

Recuperación de un movimiento de inventario

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

Para recuperar un movimiento de inventario, solo tiene que realizar una solicitud GET con el ID del movimiento de inventario. Esta acción requiere un access_token con alcance productions_write.

URI de ejemplo

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

Parámetros de URI

id

numérico (obligatorio)

Id. del movimiento de inventario

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

Request

Encabezados

Content-Type: application/json

Respuesta 200

Cuerpo

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

Crear movimiento de inventario

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

Para crear un movimiento de inventario, proporcione un hash JSON de los atributos del nuevo movimiento de inventario. Esta acción requiere un access_token con alcance productions_write. Por ahora, solo es posible guardar un movimiento de inventario. En el futuro, si la solicitud es una matriz en lugar de un recurso, se guardarán todos los elementos de la matriz.

URI de ejemplo

POST /api/inventory-movements/?access_token=

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

Request

Encabezados

Content-Type: application/json

Cuerpo

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

Respuesta 200

Cuerpo

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

Respuesta 400

Cuerpo

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

Actualizar un movimiento de inventario

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

Para actualizar un movimiento de inventario, proporcione un JSON con los atributos que desea actualizar en el movimiento de inventario (todos los atributos son opcionales). Esta acción requiere access_token con productions_write scope.

URI de ejemplo

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

Parámetros de URI

id

numeric (obligatorio)

Id. del movimiento de inventario

access_token

string (obligatorio)

Token de acceso a la API de Prodsmart.

Request

Encabezados

Content-Type: application/json

Cuerpo

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

Suprimir un movimiento de inventario

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

Para suprimir un movimiento de inventario, proporcione un ID de movimiento de inventario.

URI de ejemplo

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

Parámetros de URI

id

numeric (obligatorio)

Id. del movimiento de inventario

access_token

string (obligatorio)

Token de acceso a la API de Prodsmart.

Request

Encabezados

Content-Type: application/json

Respuesta 204

Respuesta 400

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

Enumerar movimientos de inventario

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

Para mostrar movimientos de inventario. Varios parámetros se tratarán como una condición AND. Esta acción requiere un access_token con alcance productions_write. Este servicio se pagina y devuelve 25 movimientos de inventario por página.

URI de ejemplo

GET /api/inventory-movements/?access_token=

Parámetros de URI

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

página

numérico (opcional)

índice de página de resultados, empezando en 1

product-code

cadena (opcional)

código de producto

tipo

cadena (opcional)

tipo de movimiento de inventario: entrada, salida, consumo, producción

Request

Encabezados

Content-Type: application/json

Respuesta 200

Cuerpo

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

Existencias

Recursos de existencias de la API de Prodsmart.

Recuperar existencias del producto

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

Para recuperar las existencias de un producto, solo tiene que realizar una solicitud GET con el código del producto. Varios parámetros se tratarán como una condición AND. Esta acción requiere un access_token con alcance productions_write.

URI de ejemplo

GET /api/stock/code?access_token=

Parámetros de URI

código

cadena (obligatoria)

Código de producto.

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart.

lote

cadena (opcional)

Recuperar código de lote y cantidad de existencias para los lotes de productos

Request

Encabezados

Content-Type: application/json

Respuesta 200

Cuerpo

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

Respuesta 400

Cuerpo

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

Informes

Elaborar informes de recursos de la API de Prodsmart.

Tiempo de trabajo del trabajador

Tiempo de trabajo del trabajador GET/api/reports/worker-labor-time{?access_token}

Para recuperar un informe, solo tiene que realizar una solicitud GET con un intervalo de tiempo para extraer el informe. Puede añadir parámetros de sección y de trabajador para filtrar el informe. Además, puede especificar algunos indicadores para personalizar el contenido del informe. El valor por defecto de todos los indicadores es false. Esta acción requiere un access_token con alcance productions_write.

URI de ejemplo

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

Parámetros de URI

start-time

cadena (obligatoria)

Generar informe en fechas posteriores a esta (incluido)

end-time

cadena (obligatoria)

Generar informe en fechas anteriores a esta (incluido)

access_token

cadena (obligatoria)

Token de acceso a la API de Prodsmart

worker-number

cadena (opcional)

Especifica un número de trabajador para filtrar el informe

sección

cadena (opcional)

Especifica un nombre de sección. Todos los trabajadores de esta sección se incluirán en el informe

show-rework

booleano (opcional)

Incluye un campo nuevo con operaciones de retrabajo en el informe

show-weekend

booleano (opcional)

Incluye los días del fin de semana en los datos

only-punch-clock

booleano (opcional)

Tiene en cuenta solo el tiempo de presencia con entradas del reloj perforador

página

numérico (opcional)

índice de página de resultados, empezando en 1

Request

Encabezados

Content-Type: application/json

Respuesta 200

Cuerpo

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

Respuesta 400

Cuerpo

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

Respuesta 429

Cuerpo

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

Autorización y control de acceso

Acceso y control del token de autenticación Prodsmart.

AUTORIZACIÓN

Recurso de autorización representa una autorización concedida a la empresa. Solo puede acceder a su propia autorización. La autenticación utilizada es la autenticación básica, donde el encabezado de autenticación está en el formulario <valor codificado base64 de API_KEY:API_SECRET>. Para obtener la clave y el secreto de la API, inicie sesión en Prodsmart y edite el usuario. (Nota: Debe tener una función de administrador para obtenerlas). El recurso de autorización tiene el siguiente atributo:

  • token

  • ámbitos

Donde token representa un token y ámbitos es una matriz de ámbitos concedidos para la autorización dada. En este momento, el único ámbito disponible es productions_write.

Recuperar autorización

GET /api/authorization

Utilice GET para recuperar un token de acceso existente. Si aún no existe un token, se puede generar uno con el método POST.

URI de ejemplo

GET /api/authorization

Request

Encabezados

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Respuesta 200

Encabezados

Content-Type: application/jsonLink: <http:/api.prodsmart.com/api/authorizations>;rel="self"

Cuerpo

{    "_links": {        "self": { "href": "/api/authorizations" },    },    "scopes": [        "productions_write"    ],    "token": "abc123"}

Crear autorización

POST /api/authorization

Utilice POST para generar un nuevo token de acceso.

URI de ejemplo

POST /api/authorization

Request

Encabezados

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

Cuerpo

{ "scopes": [ "productions_write" ] }

Respuesta 201

Encabezados

Content-Type: application/jsonLink: <http:/api.prodsmart.com/api/authorizations>;rel="self"

Cuerpo

{    "_links": {        "self": { "href": "/api/authorizations" },    },    "scopes": [        "productions_write"    ],    "token": "abc123"}

Eliminar una autorización

SUPRIMIR /api/authorization

URI de ejemplo

DELETE /api/authorization

Request

Encabezados

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Respuesta 204

¿Ha quedado contestada tu pregunta?