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
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
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
Parámetros de URI
access_token
cadena (obligatoria)
Token de acceso a la API de Prodsmart.
Request
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
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
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
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
Request
Encabezados
Content-Type: application/json
Respuesta 200
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
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
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
Request
Encabezados
Content-Type: application/json
Respuesta 201
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
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
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
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
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
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
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
Request
Encabezados
Content-Type: application/json
Respuesta 204
Respuesta 204
Cuerpo
Supplier was deleted
Respuesta 412
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
Parámetros de URI
access_token
cadena (obligatoria)
Token de acceso a la API de Prodsmart.
Request
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
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
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
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
Request
Encabezados
Content-Type: application/json
Respuesta 200
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
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
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
Request
Encabezados
Content-Type: application/json
Respuesta 201
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
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
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
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
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
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
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
Request
Encabezados
Content-Type: application/json
Respuesta 204
Respuesta 204
Cuerpo
Client was deleted
Respuesta 412
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
Parámetros de URI
access_token
cadena (obligatoria)
Token de acceso a la API de Prodsmart.
Request
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
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
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
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
Request
Encabezados
Content-Type: application/json
Respuesta 200
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
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
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
Request
Encabezados
Content-Type: application/json
Respuesta 201
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
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
Parámetros de URI
access_token
cadena (obligatoria)
Token de acceso a la API de Prodsmart.
Request
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
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
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
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
Request
Encabezados
Content-Type: application/json
Respuesta 204
Respuesta 204
Cuerpo
Client order was deleted
Respuesta 409
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
Parámetros de URI
access_token
cadena (obligatoria)
Token de acceso a la API de Prodsmart.
Request
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
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
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
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
Request
Encabezados
Content-Type: application/json
Respuesta 201
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
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
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
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
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
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
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
Request
Encabezados
Content-Type: application/json
Respuesta 204
Respuesta 204
Cuerpo
Purchase order was deleted
Respuesta 409
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
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
Request
Encabezados
Content-Type: application/json
Respuesta 200
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
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
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
Request
Encabezados
Content-Type: application/json
Respuesta 200
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
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
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
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
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
Request
Encabezados
Content-Type: application/json
Respuesta 204
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
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
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
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
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
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
Request
Encabezados
Content-Type: application/json
Respuesta 200
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
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
Request
Encabezados
Content-Type: application/json
Cuerpo
{ "short-message": "example", "message": "complete message "}
Respuesta 200
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
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
Request
Encabezados
Content-Type: application/json
Cuerpo
{}
Respuesta 200
Respuesta 200
Respuesta 204
Respuesta 204
Cuerpo
Production Order was already active
Respuesta 405
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
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
Request
Encabezados
Content-Type: application/json
Respuesta 200
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
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
Parámetros de URI
access_token
cadena (obligatoria)
Token de acceso a la API de Prodsmart.
Request
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
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
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
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
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
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
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
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
Request
Encabezados
Content-Type: application/json
Cuerpo
Content-Type: application/json
Respuesta 204
Respuesta 204
Respuesta 400
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
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
Request
Encabezados
Content-Type: application/json
Respuesta 200
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
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
Parámetros de URI
access_token
cadena (obligatoria)
Token de acceso a la API de Prodsmart.
Request
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
Respuesta 201
{ "product-code": "bicycle", "bom": [ { "product-code": "wheel", "quantity": 2, "operation-code": "assemble" }, { "product-code": "seat", "quantity": 1, "operation-code": "assemble" } ]}
Respuesta 404
Respuesta 404
Cuerpo
Main product not found
Respuesta 400
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
Parámetros de URI
access_token
cadena (obligatoria)
Token de acceso a la API de Prodsmart.
Request
Request
Encabezados
Content-Type: application/json
Cuerpo
{ "product-code": "bicycle", "stock": 200.5, "date": "2023-08-16T17:15:15Z"}
Respuesta 201
Respuesta 201
Cuerpo
Request successful
Respuesta 404
Respuesta 404
Cuerpo
Product not found
Respuesta 400
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
Parámetros de URI
access_token
cadena (obligatoria)
Token de acceso a la API de Prodsmart.
Request
Request
Encabezados
Content-Type: application/json
Cuerpo
{ "product-families": [ { "code": "FAM 1", "name": "Family 1" }, { "code": "FAM 2", "name": "Family 2" } ]}
Respuesta 201
Respuesta 201
Cuerpo
[ { "code": "FAM 1", "name": "Family 1" }, { "code": "FAM 2", "name": "Family 2" }]
Respuesta 400
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
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
Request
Encabezados
Content-Type: application/json
Cuerpo
Content-Type: application/json
Respuesta 204
Respuesta 204
Cuerpo
Product Family was deleted
Respuesta 400
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
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
Request
Encabezados
Content-Type: application/json
Respuesta 201
Respuesta 201
Cuerpo
[ { "code": "FAM 1", "name": "Family 1" }, { "code": "FAM 2", "name": "Family 2" }]
Respuesta 400
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
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
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
Respuesta 200
Cuerpo
Returns the new value for the machine's counter.
Respuesta 400
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
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
Request
Encabezados
Content-Type: application/json
Cuerpo
{ "parameters": [ { "code": "temperature", "value": 25 }, { "code": "valid", "value": "yes" } ]}
Respuesta 200
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
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
Request
Encabezados
Content-Type: application/json
Cuerpo
{ "type": "Maintenance", "running": 0}
Respuesta 200
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
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
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
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
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
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
Request
Encabezados
Content-Type: application/json
Cuerpo
Content-Type: application/json
Respuesta 201
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
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
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
Request
Encabezados
Content-Type: application/json
Respuesta 200
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
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
Request
Encabezados
Content-Type: application/json
Respuesta 200
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
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
Request
Encabezados
Content-Type: application/json
Respuesta 200
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
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
Request
Encabezados
Content-Type: application/json
Respuesta 200
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
Parámetros de URI
access_token
cadena (obligatoria)
Token de acceso a la API de Prodsmart.
Request
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
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
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
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
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
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
Request
Encabezados
Content-Type: application/json
Respuesta 204
Respuesta 400
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
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
Request
Encabezados
Content-Type: application/json
Respuesta 200
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
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
Request
Encabezados
Content-Type: application/json
Respuesta 200
Respuesta 200
Cuerpo
{"product-code": "Example","stock": 35,"lot": [ { "code": "A", "stock": 10 }, { "code": "B", "stock": 5 }}
Respuesta 400
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
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
Request
Encabezados
Content-Type: application/json
Respuesta 200
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
Respuesta 400
Cuerpo
If there's a problem with the request, the problem found will be reported on the Response Body.
Respuesta 429
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
Request
Encabezados
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Respuesta 200
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
Request
Encabezados
Content-Type: application/jsonAuthorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Cuerpo
{ "scopes": [ "productions_write" ] }
Respuesta 201
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
Request
Encabezados
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Respuesta 204
Respuesta 204