---
# System prepended metadata

title: API de Integración con SoftExpert

---

# API de Integración con SoftExpert

Esta API proporciona una capa de integración con el sistema SoftExpert, permitiendo la gestión de workflows y documentos.

La misma puede ser utilizada por cualquier institución que requiera interoperar con alguno de nuestros procesos de Softxpert.

## Versiones de la API

La API está disponible en dos versiones:
- v1: API base (requiere autenticación básica)
- v2: API mejorada (requiere autenticación básica)

## Autenticación

### v1
Utiliza autenticación básica HTTP (Basic Auth).

### v2
Utiliza autenticación básica HTTP (Basic Auth).




## Endpoints

### Workflows

#### v1


##### Crea un nuevo workflow
```
POST /v1/workflows/create
```
```json
{
    "processId": "DPP01EXT",
    "userId": "spmws01",
    "workflowTitle": "Certificación Planos Electricos",
    "entityId": "mitur01",
    "source": "VUC",
    "entityAttribute": [
        {
            "entityAttributeId": "numsolvuc",
            "entityAttributeValue": "VUC0032-2023"
        }
    ]
}
```


##### Asocia un documento a un workflow.
```
POST /v1/workflows/associate/document
```
```json
{
  "workflowId": "DPP01VUC000929",
  "activityId": "MITUR001",
  "documentId": "DPPDE006412"
}
```


##### Ejecuta una actividad en un workflow.
```
POST /v1/workflows/executeActivity
```
```json
{
    "workflowId": "DPP01VUC000929",
    "activityId": "MITUR001",
    "ActionSequence": "1"
}
```

##### Agrega registros hijos a una entidad del workflow.
```
POST /v1/workflows/addchilds
```
```json
{
    "childRelationshipId": "datoscopropieta",
    "mainEntityId": "mitur01",
    "rows": [
        {
            "entityAttributes": [
                {
                    "entityAttributeId": "nombrecopropiet"
                },
                {
                    "entityAttributeId": "apellidoscoprop",
                    "entityAttributeValue": "hola"
                }
            ]
        }
    ],
    "workflowId": "DPP01VUC000953"
}
```
##### Actualiza la información de pago en el workflow.
```
POST /v1/workflows/updatePayment
```
```json
{
  "action": "MITUR0001VUC",
  "amount": 20000,
  "approvalNumber": "",
  "documentReceipt": {
    "data": "base64 file or document url",
    "filename": "comprobante-de-pago-mitur-2023-12-21-042549.jpg"
  },
  "folder": "DPPDE",
  "paymentDate": "",
  "paymentMethod": "DEPOSITO",
  "workflowId": "DPP01-VUC-0004"
}
```
##### Cancela un workflow.
```
PATCH /v1/workflows/cancel
```
```json
{
    "workflowId": "DPP01VUC000007",
    "explanation": "porque si",
    "userId": "spmws01"
}
```


#### v2

##### Crea un nuevo workflow.
```
POST /v2/workflows/create
```

```json
{
    "workflow": {
        "processId": "DPP01EXT",
        "workflowTitle": "Solicitud desde Prodominicana",
        "entityId": "mitur01",
        "source": "PRO",
        "documentsAssociationActivity": "MITUR002",
        "entityAttribute": [
            {
                "entityAttributeId": "numsolvuc",
                "entityAttributeValue": "PROD-02"
            },
             {
                "entityAttributeId": "origensolicitud",
                "entityAttributeValue": "PRO"
            }
        ]
    },
    "payment": {
        "activityId": "MITUR002",
        "amount": 20000,
        "approvalNumber": "",
        "documentReceipt": {
            "data": "https://www.antennahouse.com/hubfs/xsl-fo-sample/pdf/basic-link-1.pdf",
            "filename": "comprobante-de-pago-mitur-2023-12-21-042549.jpg"
        },
        "folder": "DPPDE",//fijo
        "paymentDate": "",
        "paymentMethod": "DEPOSITO"
    },
    "children": [
        {
            "childRelationshipId": "datoscopropieta",
            "mainEntityId": "mitur01",
            "rows": [
                {
                    "entityAttributes": [
                        {
                            "entityAttributeId": "nombrecopropiet",
                            "entityAttributeValue": "pedo"
                        },
                        {
                            "entityAttributeId": "apellidoscoprop",
                            "entityAttributeValue": "soto"
                        }
                    ]
                }
            ]
        }
    ],
    "documents": [
        {
            "attributes": null,
            "categoryId": "DPPDE",
            "data": "https://www.antennahouse.com/hubfs/xsl-fo-sample/pdf/basic-link-1.pdf",
            "filename": "Registro Mercantil.pdf",
            "title": "Registro Mercantil"
        }
    ]
}
```

##### Asocia un documento a un workflow.
```
POST /v2/workflows/associate/document
```
```json
{
  "workflowId": "DPP01VUC000929",
  "activityId": "MITUR001",
  "documentId": "DPPDE006412"
}
```

##### Ejecuta una actividad en un workflow.
```
POST /v2/workflows/executeActivity
```

```json
{
    "workflowId": "DPP01VUC000929",
    "activityId": "MITUR001",
    "ActionSequence": "1"
}
```
##### Actualiza la información de pago.
```
POST /v2/workflows/updatePayment
```

```json
{
  "action": "MITUR0001VUC",
  "amount": 20000,
  "approvalNumber": "",
  "documentReceipt": {
    "data": "base64 file or document url",
    "filename": "comprobante-de-pago-mitur-2023-12-21-042549.jpg"
  },
  "folder": "DPPDE",
  "paymentDate": "",
  "paymentMethod": "DEPOSITO",
  "workflowId": "DPP01-VUC-0004"
}
```

##### Cancela un workflow.
```
PUT /v2/workflows/cancel
```
```json
{
    "workflowId": "DPP01VUC000007",
    "explanation": "porque si",
    "userId": "spmws01"
}
```

##### Resuelve una acción del workflow.
```
PUT /v2/workflows/actions/resolve
```
```json
{
    "workflowId" : "",
    "activityId" : "",
    "documents": [
         {
            "attributes": null,
            "categoryId": "DPPDE",
            "data": "https://www.antennahouse.com/hubfs/xsl-fo-sample/pdf/basic-link-1.pdf",
            "filename": "Registro Mercantil.pdf",
            "title": "Registro Mercantil 2"
        }
    ]
}
```
##### Obtiene los documentos asociados a un workflow.
```
GET /v2/workflows/{workflowId}/documents
```


### Documentos

##### Crea un nuevo documento.
```
POST /v1/documents/create
```
```json
{
    "categoryId": "DPPDE",
    "title": "TituloEjemplo",
    "userId": "spmws01",
    "filename": "Carta de solicitud.pdf",
    "data": "base64 file or document url",
    "attributes": [
        {
            "AttributeId": "NumeroSolicitud",
            "AttributeValue": "DPP01VUC000885"
        }
    ]
}
```



##### Descarga un documento específico.
```
GET /v1/documents/{documentId}/download
```


### Servicios
Obtiene la ficha de un servicio publicado en la plataforma UCTT.
```
GET /v2/services/{id}
```
Obtiene información de un servicio específico.

## Configuración

La API requiere las siguientes variables de entorno:

```env
SE_USER=usuario_softexpert
SE_PASSWORD=contraseña_softexpert
SE_WORKFLOW_URL=url_softexpert_workflow
```

## Respuestas

La API utiliza respuestas JSON con los siguientes formatos:

### Éxito
```json
{
    "success": true,
    "data": { ... }
}
```

### Error
```json
{
    "success": false,
    "error": "Mensaje de error",
    "details": { ... }
}
```

## Manejo de Errores

La API utiliza códigos de estado HTTP estándar:
- 200: Éxito
- 400: Error en la solicitud
- 401: No autorizado
- 404: Recurso no encontrado
- 500: Error interno del servidor

## Notas

- La API utiliza SOAP para comunicarse con SoftExpert
- Todos los endpoints que manejan documentos soportan archivos multipart/form-data
- Las respuestas de workflow incluyen el estado de la operación (FAILURE/SUCCESS)
