CredonixDocs
Referencia de la APIPlan de proyecto

Editar

Actualiza parcialmente una automatización por plan de proyecto.

Descripción general

Este endpoint actualiza parcialmente una automatización por plan de proyecto. Todos los campos del cuerpo son opcionales y siguen las mismas reglas que en Crear plan de proyecto:

  • Omitido → el campo no cambia.
  • null en description → la descripción se limpia. legal_entity_id no acepta null.
  • items → reemplaza todos los conceptos. remaining_amount se recalcula como el nuevo total menos lo ya cobrado, sin bajar de 0.
  • milestones → reemplaza los hitos. Si lo omites, los hitos guardados se validan contra el plan actualizado: en modo fixed, si cambias items, envía también hitos que sumen el nuevo total.

Los hitos enviados se emparejan por id:

  • id de un hito pendiente → actualiza description, due_date, order_index y value.
  • id de un hito completado → actualiza solo description, due_date y order_index. Los hitos completados conservan su valor: enviar otro value responde MILESTONE_ALREADY_COMPLETED, salvo con auto_even_split.
  • Sin id, o con un id que no existe → se crea un hito nuevo.
  • Los hitos pendientes que no envías se eliminan; los completados que no envías se conservan.

Las sumas de 100 % o del total incluyen los hitos completados, aunque no los envíes. Con auto_even_split y hitos completados, solo se reparte entre los pendientes lo que falta por cobrar.

billing_mode no se puede cambiar si el plan tiene hitos completados. Al cambiarlo, envía también milestones con los valores en las unidades del nuevo modo. En modo fixed, el nuevo total no puede ser menor que lo ya cobrado en hitos completados (TOTAL_BELOW_BILLED). Un plan completed que queda con hitos pendientes pasa a active.

Puedes enviar note para dejar una nota en la actividad de la automatización. Una solicitud exitosa devuelve 200 con la automatización completa.

Requiere el permiso Administrar en Automatizaciones.

Endpoint

PATCHhttps://app.credonix.mx/api/v1/project-plan-automations/{automationId}

Path param: automationId — el id de la automatización.

Actualización mínima


Envía solo los campos que quieras cambiar. Los conceptos, los hitos y lo ya cobrado quedan igual.

{
  "concept": "Implementación de ERP y capacitación"
}

Cambiar los conceptos


El plan valía 1160.00 y ya se había cobrado el anticipo de 348.00. Con el precio en 2000, el total sube a 2320.00 y remaining_amount queda en 1972.00: el nuevo total menos lo ya cobrado. En modo percentage los hitos siguen sumando 100 %, así que no hace falta enviarlos.

{
  "items": [
    {
      "product_name": "Servicio de consultoría",
      "description": "Consultoría especializada",
      "quantity": 1,
      "unit_price": "2000",
      "product_code": "84111506",
      "unit_code": "E48",
      "taxes": [
        {
          "type": "iva",
          "category": "transferred",
          "rate": "0.16"
        }
      ]
    }
  ]
}

Editar hitos con un hito completado


El cuerpo envía solo el hito pendiente "Entrega", con su id. El hito completado "Anticipo" no se envía y se conserva, y su 30 % cuenta para la suma de 100 %. Como no se envió order_index, "Entrega" toma su posición en el arreglo enviado (0).

{
  "milestones": [
    {
      "id": "cmu21apfn00mpv1dqrw9ko5s4",
      "description": "Entrega",
      "value": "70"
    }
  ]
}

Reglas de los campos

CampoTipoRequeridoNotas
customer_idstringNoid de un cliente de tu organización.
legal_entity_idstringNoid de una razón social de tu organización. No acepta null.
conceptstringNoNo puede estar vacío.
descriptionstring | nullNonull limpia la descripción.
currencystringNoMXN o USD.
grace_period_daysintegerNoNúmero JSON entero, mayor o igual a 0.
billing_modestringNopercentage o fixed. No se puede cambiar con hitos completados.
auto_even_splitbooleanNoDivide entre los hitos pendientes lo que falta por cobrar.
itemsarrayNoTodos los conceptos, con las mismas reglas que en Crear plan de proyecto.
milestonesarrayNoTodos los hitos, con las mismas reglas que en Crear plan de proyecto. id identifica un hito existente.
notestringNoNota para la actividad de la automatización. Máximo 500 caracteres.

No se aceptan otros campos: cualquier campo desconocido responde 400 con VALIDATION_ERROR.

Errores

StatusCódigoCausa
400VALIDATION_ERRORUn campo no cumple sus reglas. errors indica el campo y el motivo.
400INVALID_AUTOMATIONLos conceptos o los hitos no cumplen las reglas del plan.
400CUSTOMER_NOT_FOUNDcustomer_id no es un cliente de tu organización.
400MILESTONE_ALREADY_COMPLETEDSe cambió billing_mode con hitos completados, o se envió otro value para un hito completado.
400TOTAL_BELOW_BILLEDEn modo fixed, el nuevo total es menor que lo ya cobrado en hitos completados. La respuesta incluye "message": "El total de la automatización no puede ser menor a lo ya cobrado en hitos completados.".
400LEGAL_ENTITY_NOT_FOUNDlegal_entity_id no es una razón social de tu organización.
400PRODUCT_NOT_FOUNDUn product_id no es un producto de tu organización.
401MISSING_API_KEY, INVALID_API_KEY, API_KEY_REVOKEDAPI key ausente, inválida o revocada.
403INSUFFICIENT_PERMISSIONSLa API key no tiene el permiso Administrar en Automatizaciones.
404NOT_FOUNDLa automatización no existe en tu organización o es de otro tipo. La respuesta incluye "message": "La automatización no fue encontrada.".

400 — cambio de modo con hitos completados

Al enviar billing_mode: "fixed" en un plan con el anticipo ya completado:

{
  "code": "MILESTONE_ALREADY_COMPLETED",
  "message": "No es posible cambiar el modo de cobro porque la automatización tiene hitos completados.",
  "errors": [
    {
      "field": "milestones",
      "code": "milestone_already_completed",
      "message": "No es posible cambiar el modo de cobro porque la automatización tiene hitos completados."
    }
  ],
  "request_id": "3374871e-a7d2-411e-86f5-ac1a7fd4dd97"
}
Abrir Credonix