Proyectos · API PÚBLICA V1

Clonar un proyecto

Crea un proyecto desde otro. Las opciones pesadas continúan en segundo plano.

Conectar con un entornoSin token

La petición sale de tu navegador hacia el entorno indicado. La API key y el token permanecen en la memoria de esta página.

Introduce las credenciales del entorno que quieras probar.
POST/api/public/v1/projects/{id}/clone
projects:write

Parámetros

id

Proyecto de origen.

Body de entrada

PublicProjectClone

Clonar proyecto

Datos del nuevo proyecto y opciones de contenido que se copia desde el proyecto de origen.

PropiedadTipoDescripción
codestring | nullCódigo manual. Es obligatorio si no se indica una serie y no existe una serie predeterminada.
nameobligatoriostringNombre del proyecto.
numberingLineIduuid | nullSerie de proyectos usada para generar el código.
descriptionstring | nullDescripción general.
integrationCodestring | nullCódigo de referencia del sistema externo.
colorstring | nullColor identificativo.
clientIduuid | nullCliente asociado.
projectStateIduuid | nullEstado del proyecto.
projectTypeIduuid | nullTipo de proyecto.
addressstring | nullDirección de la obra.
zipCodestring | nullCódigo postal.
countryIdinteger | nullPaís.
regionIdinteger | nullRegión o provincia.
townstring | nullLocalidad.
latitudenumber | nullLatitud GPS.
longitudenumber | nullLongitud GPS.
gpsPrecisioninteger | nullPrecisión GPS en metros.
expectedStartDatedate-time | nullInicio previsto.
expectedEndDatedate-time | nullFin previsto.
startWorkDatedate-time | nullInicio real de los trabajos.
endWorkDatedate-time | nullFin de los trabajos.
estimatedEndWorkDatedate-time | nullFin estimado actualizado.
contractualEndDatedate-time | nullFin contractual.
realEndWorkDatedate-time | nullFin real.
executionTimestring | nullPlazo de ejecución.
salesBudgetnumberPresupuesto de venta.
changeOrdersBudgetnumberPresupuesto de contradictorios.
penaltiesstring | nullCondiciones de penalización.
clientPaymentFormstring | nullCondiciones de pago del cliente.
retentionsstring | nullCondiciones de retenciones.
bankGuarantystring | nullCondiciones de aval bancario.
paymentFormIduuid | nullForma de pago.
vatTypeIduuid | nullTipo de IVA.
pitRetentionTypeIduuid | nullTipo de retención IRPF.
taxRemarksstring | nullObservaciones fiscales.
overheadPercentagenumber | nullPorcentaje de gastos generales.
industrialProfitPercentagenumber | nullPorcentaje de beneficio industrial.
exportOverheadPercentagenumber | nullPorcentaje de gastos generales usado en exportaciones.
exportIndustrialProfitPercentagenumber | nullPorcentaje de beneficio industrial usado en exportaciones.
currencystring | nullCódigo de moneda.
activebooleanEstado activo.
closedbooleanIndica si el proyecto está cerrado.
cloneProjectSituationsbooleanActiva esta opción de clonado.
cloneInspectionPlanbooleanActiva esta opción de clonado.
clonePlanningbooleanActiva esta opción de clonado.
cloneBudgetbooleanActiva esta opción de clonado.
cloneAdditionalPricesbooleanActiva esta opción de clonado.
copyPurchaseGeneralDatabooleanActiva esta opción de clonado.
clonePurchaseOffersbooleanActiva esta opción de clonado.
cloneProjectDatabooleanActiva esta opción de clonado.
cloneProjectCoordinatesbooleanActiva esta opción de clonado.
cloneProjectTeambooleanActiva esta opción de clonado.
cloneOtherComponentsbooleanActiva esta opción de clonado.
Ejemplo JSON
{
  "name": "Reforma Gran Vía — copia",
  "numberingLineId": "89f378ce-b1fc-49ef-97f9-0806f32b8438",
  "description": "Reforma integral de oficinas",
  "clientId": "a4c7603a-8c87-46c8-a3f5-09fbbe79f82e",
  "address": "Gran Vía 42",
  "zipCode": "28013",
  "town": "Madrid",
  "latitude": 40.4201,
  "longitude": -3.7058,
  "gpsPrecision": 5,
  "expectedStartDate": "2026-11-02T08:00:00",
  "expectedEndDate": "2027-04-30T18:00:00",
  "salesBudget": 350000,
  "overheadPercentage": 7.5,
  "industrialProfitPercentage": 6,
  "currency": "EUR",
  "active": true,
  "closed": false,
  "cloneProjectData": true,
  "cloneProjectCoordinates": true,
  "clonePlanning": true
}

Respuesta

201Clonado completado en la petición.202Proyecto creado y clonado pesado en segundo plano.

PublicProject

Proyecto

Ficha pública completa del proyecto, con nombres de catálogos y estado del clonado.

PropiedadTipoDescripción
idobligatoriouuidIdentificador estable del proyecto.
codestring | nullCódigo manual. Es obligatorio si no se indica una serie y no existe una serie predeterminada.
nameobligatoriostringNombre del proyecto.
numberingLineIduuid | nullSerie de proyectos usada para generar el código.
descriptionstring | nullDescripción general.
integrationCodestring | nullCódigo de referencia del sistema externo.
colorstring | nullColor identificativo.
clientIduuid | nullCliente asociado.
projectStateIduuid | nullEstado del proyecto.
projectTypeIduuid | nullTipo de proyecto.
addressstring | nullDirección de la obra.
zipCodestring | nullCódigo postal.
countryIdinteger | nullPaís.
regionIdinteger | nullRegión o provincia.
townstring | nullLocalidad.
latitudenumber | nullLatitud GPS.
longitudenumber | nullLongitud GPS.
gpsPrecisioninteger | nullPrecisión GPS en metros.
expectedStartDatedate-time | nullInicio previsto.
expectedEndDatedate-time | nullFin previsto.
startWorkDatedate-time | nullInicio real de los trabajos.
endWorkDatedate-time | nullFin de los trabajos.
estimatedEndWorkDatedate-time | nullFin estimado actualizado.
contractualEndDatedate-time | nullFin contractual.
realEndWorkDatedate-time | nullFin real.
executionTimestring | nullPlazo de ejecución.
salesBudgetnumberPresupuesto de venta.
changeOrdersBudgetnumberPresupuesto de contradictorios.
penaltiesstring | nullCondiciones de penalización.
clientPaymentFormstring | nullCondiciones de pago del cliente.
retentionsstring | nullCondiciones de retenciones.
bankGuarantystring | nullCondiciones de aval bancario.
paymentFormIduuid | nullForma de pago.
vatTypeIduuid | nullTipo de IVA.
pitRetentionTypeIduuid | nullTipo de retención IRPF.
taxRemarksstring | nullObservaciones fiscales.
overheadPercentagenumber | nullPorcentaje de gastos generales.
industrialProfitPercentagenumber | nullPorcentaje de beneficio industrial.
exportOverheadPercentagenumber | nullPorcentaje de gastos generales usado en exportaciones.
exportIndustrialProfitPercentagenumber | nullPorcentaje de beneficio industrial usado en exportaciones.
currencystring | nullCódigo de moneda.
activebooleanEstado activo.
closedbooleanIndica si el proyecto está cerrado.
clientNamestring | nullNombre del cliente.
projectStateNamestring | nullNombre del estado.
projectTypeNamestring | nullNombre del tipo de proyecto.
countryNamestring | nullNombre del país.
regionNamestring | nullNombre de la región.
paymentFormNamestring | nullNombre de la forma de pago.
vatTypeNamestring | nullNombre del tipo de IVA.
pitRetentionTypeNamestring | nullNombre del tipo de retención.
cloneStateIdobligatoriointegerEstado del proceso de clonado: 0 normal, -1 clonando y -2 fallido.
createdAtobligatoriodate-timeFecha de creación.
modifiedAtobligatoriodate-timeÚltima modificación.
Ejemplo JSON
{
  "id": "0d3fa80a-d8aa-4a95-84b7-8f6a157005ea",
  "code": "OBR-2026-0042",
  "name": "Reforma Gran Vía",
  "numberingLineId": "89f378ce-b1fc-49ef-97f9-0806f32b8438",
  "description": "Reforma integral de oficinas",
  "clientId": "a4c7603a-8c87-46c8-a3f5-09fbbe79f82e",
  "address": "Gran Vía 42",
  "zipCode": "28013",
  "town": "Madrid",
  "latitude": 40.4201,
  "longitude": -3.7058,
  "gpsPrecision": 5,
  "expectedStartDate": "2026-11-02T08:00:00",
  "expectedEndDate": "2027-04-30T18:00:00",
  "salesBudget": 350000,
  "overheadPercentage": 7.5,
  "industrialProfitPercentage": 6,
  "currency": "EUR",
  "active": true,
  "closed": false,
  "clientName": "Cliente SL",
  "projectStateName": "En curso",
  "projectTypeName": "Reforma",
  "cloneStateId": 0,
  "createdAt": "2026-10-10T12:00:00",
  "modifiedAt": "2026-10-10T12:00:00"
}
Ejemplo de respuesta
{
  "id": "78315adf-87e5-47a6-a369-9de93065354b",
  "code": "OBR-2026-0042",
  "name": "Reforma Gran Vía — copia",
  "numberingLineId": "89f378ce-b1fc-49ef-97f9-0806f32b8438",
  "description": "Reforma integral de oficinas",
  "clientId": "a4c7603a-8c87-46c8-a3f5-09fbbe79f82e",
  "address": "Gran Vía 42",
  "zipCode": "28013",
  "town": "Madrid",
  "latitude": 40.4201,
  "longitude": -3.7058,
  "gpsPrecision": 5,
  "expectedStartDate": "2026-11-02T08:00:00",
  "expectedEndDate": "2027-04-30T18:00:00",
  "salesBudget": 350000,
  "overheadPercentage": 7.5,
  "industrialProfitPercentage": 6,
  "currency": "EUR",
  "active": true,
  "closed": false,
  "clientName": "Cliente SL",
  "projectStateName": "En curso",
  "projectTypeName": "Reforma",
  "cloneStateId": -1,
  "createdAt": "2026-10-10T12:00:00",
  "modifiedAt": "2026-10-10T12:00:00"
}

Errores

400Solicitud incorrectaapplication/json
401Autenticación inválida o no proporcionadaapplication/json
403Permisos insuficientesapplication/json
404Recurso no encontradoapplication/json
409Conflicto con el estado actualapplication/json
410Recurso ya no disponibleapplication/json
422Error de validaciónapplication/json
429Límite de solicitudes excedidoapplication/json
Ver modelo de error

PublicApiError

Error de API

Formato estable de los errores públicos.

PropiedadTipoDescripción
statusobligatoriointegerCódigo HTTP.
codeobligatoriostringCódigo estable para tratamiento automático.
messageobligatoriostringMensaje legible.
correlationIdobligatoriostringIdentificador para soporte y trazabilidad.
currentConcurrencyTokenstring | nullToken actual cuando existe un conflicto.
validationErrorsobject<string,string[]>Errores agrupados por campo.
Ejemplo JSON
{
  "status": 422,
  "code": "validation_error",
  "message": "The request is invalid.",
  "correlationId": "01J9EXAMPLE",
  "validationErrors": {
    "unitCode": [
      "The unit does not exist."
    ]
  }
}
Probar endpointPetición directa desde el navegador

JSON resultante

{}

Petición

RespuestaSin ejecutar
Configura la conexión y ejecuta la petición.