Proyectos · API PÚBLICA V1

Crear un proyecto

Crea un proyecto con código manual, serie explícita o serie predeterminada.

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
projects:write

Body de entrada

PublicProjectWrite

Crear o actualizar proyecto

Ficha editable de un proyecto. En creación admite código manual, serie explícita o serie predeterminada.

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.
Ejemplo JSON
{
  "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
}

Respuesta

201Proyecto creado.

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

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.