Skip to content

Actualizar Items

Este endpoint permite actualizar la información de items existentes en el sistema.

Endpoint: PUT /api/v1/items/update

Descripción: Actualiza la información de un item existente.

Accept: application/json
Content-Type: application/json
Authorization: Bearer {token}

Utiliza los mismos campos que en la creación. El item se identifica por el code.

CampoTipoRequeridoDescripción
codestringCódigo único del item (identificador)
descriptionstringDescripción del item
ratenumberPrecio unitario del item
unitstringUnidad de medida
typestringNoTipo de item: PRODUCT o SERVICE
allow_accountingintegerNoPermite contabilidad de inventario (0 o 1)
count_availableintegerNoCantidad disponible en inventario
taxesarrayArray de impuestos aplicables
taxes[].percentajestringPorcentaje del impuesto
taxes[].codestringCódigo del tipo de impuesto
taxes[].percentaje_codestringCódigo del porcentaje específico
{
"code": "PROD-001",
"description": "Producto actualizado con nueva descripción",
"rate": 30.00,
"unit": "Unidad",
"type": "PRODUCT",
"taxes": [
{
"percentaje": "15",
"code": "2",
"percentaje_code": "4"
}
]
}
{
"code": "SERV-001",
"description": "Servicio de mantenimiento",
"rate": 85.00,
"unit": "Hora",
"type": "SERVICE",
"taxes": [
{
"percentaje": "15",
"code": "2",
"percentaje_code": "4"
}
]
}
{
"code": "PROD-002",
"description": "Producto con inventario actualizado",
"rate": 45.75,
"unit": "Unidad",
"type": "PRODUCT",
"allow_accounting": 1,
"count_available": 150,
"taxes": [
{
"percentaje": "15",
"code": "2",
"percentaje_code": "4"
}
]
}
Terminal window
curl -X PUT "https://dev-facturacion.e-dinky.test/api/v1/items/update" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your_token_here" \
-d '{
"code": "PROD-001",
"description": "Producto actualizado",
"rate": 30.00,
"unit": "Unidad",
"type": "PRODUCT",
"taxes": [
{
"percentaje": "15",
"code": "2",
"percentaje_code": "4"
}
]
}'
{
"message": "Item actualizado exitosamente",
"status": "OK",
"payload": {
"code": "PROD-001",
"description": "Producto actualizado",
"rate": 30.0,
"unit": "Unidad",
"type": "PRODUCT",
"allow_accounting": 1,
"count_available": 25,
"taxes": [
{
"type_name": "IVA",
"name": "15%",
"percentaje_tax": "15.00",
"type_tax_code": "2",
"tax_code": "4"
}
]
}
}
{
"message": "Item no encontrado",
"status": "NOT_FOUND",
"error": "El item con código 'PROD-999' no existe"
}

Respuesta de Error (422 Unprocessable Entity)

Section titled “Respuesta de Error (422 Unprocessable Entity)”
{
"message": "Error de validación",
"status": "UNPROCESSABLE_ENTITY",
"errors": {
"rate": [
"El precio debe ser mayor a 0"
],
"taxes": [
"Debe incluir al menos un impuesto"
]
}
}
CódigoDescripción
200Item actualizado exitosamente
400Error en los datos enviados
401Token de autorización inválido
404Item no encontrado
422Error de validación
500Error interno del servidor
  • code: Debe existir en el sistema
  • description: No puede estar vacío
  • rate: Debe ser un número positivo
  • unit: No puede estar vacío
  • taxes: Debe contener al menos un impuesto
  • El código del item debe existir en el sistema
  • Los códigos de impuestos deben existir en el sistema LOVs
  • Si se cambia type a SERVICE, se debe establecer allow_accounting = 0
  • Si allow_accounting = 0, el campo count_available se ignora
  • No se puede modificar: El campo code sirve como identificador y no puede ser cambiado
  • Debe existir: El item debe estar registrado previamente en el sistema
  • PRODUCT → SERVICE: Permitido, pero se deshabilitará el control de inventario
  • SERVICE → PRODUCT: Permitido, se puede habilitar control de inventario
  • Deshabilitar inventario: Cambiar allow_accounting de 1 a 0 mantendrá el stock actual pero no permitirá nuevos movimientos
  • Habilitar inventario: Cambiar allow_accounting de 0 a 1 iniciará el control con el stock especificado en count_available
Terminal window
curl -X PUT "https://dev-facturacion.e-dinky.test/api/v1/items/update" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"code": "PROD-001",
"description": "Producto existente",
"rate": 35.99,
"unit": "Unidad",
"type": "PRODUCT",
"taxes": [{"percentaje": "15", "code": "2", "percentaje_code": "4"}]
}'
Terminal window
curl -X PUT "https://dev-facturacion.e-dinky.test/api/v1/items/update" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"code": "PROD-001",
"description": "Servicio de instalación",
"rate": 50.00,
"unit": "Hora",
"type": "SERVICE",
"allow_accounting": 0,
"taxes": [{"percentaje": "15", "code": "2", "percentaje_code": "4"}]
}'
Terminal window
curl -X PUT "https://dev-facturacion.e-dinky.test/api/v1/items/update" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"code": "PROD-001",
"description": "Producto con inventario ajustado",
"rate": 25.50,
"unit": "Unidad",
"type": "PRODUCT",
"allow_accounting": 1,
"count_available": 200,
"taxes": [{"percentaje": "15", "code": "2", "percentaje_code": "4"}]
}'
  • Historial: Las actualizaciones no afectan el historial de kardex existente
  • Facturas: Los cambios no afectan facturas ya emitidas
  • Validación: Todos los campos son validados antes de la actualización
  • Transaccional: La operación es atómica, si falla alguna validación no se realizan cambios