Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Importar Archivos de Conciliación

Para ejecutar el proceso de conciliación, la aplicación necesita nutrirse de datos. Estos datos se importan a través de archivos o por procesos automáticos.

  • Transacciones del Sicoop: Se importa automáticamente. Una tarea programada del lado del servidor, ejecuta un WS que activa el proceso de importar automáticamente las transacciones del SICOOP desde la base de Datos del SICOOP SERVER. Trae todas las transacciones del día anterior. Desde las 00:00:00 hasta las 23:59:59.
  • Transacciones de CEIBO: Se importa el AUT_ACUM para las transacciones de TP y TC.
  • Transacciones de CEIBO - PAGOS: Se importa el Archivo 2001_PAGOS del emisor 115 para tener la información de los pagos de TC/TP.
  • Transacciones de PRONET: Desde el portal de Gestión Externa de Pronet, se descarga el Archivo "Detalle de transacciones (Fecha Proceso)" para importar los pagos hechos por medio de esta Boca de Cobranza.
  • Transacciones de INFONET/BANCARD/BANCARDQR: Se importa el archivo "EXTRACTO" que proporciona Bancard para importar los pagos hechos por la Boca de Cobranza de Infonet, las transferencias Bancarias y las compras con QR de Infonet.

Una vez cargado todos esos archivos, el usuario puede seguir con el proceso de conciliación.

Proceso de Conciliación

El proceso de Conciliación está dividido en 7 Procesos y cada uno de estos procesos contienen otros subprocesos.

1- Proceso de Conciliación SICOOP contra Ceibo.

1.1- 1600 como Origen y 1600 como Destino.

Transacciones Aceptadas:

...

Si existe en el origen y existe en el destino

Si está cuponada en el origen y está cuponada en el destino

Se marca como CONCILIADO (CONCI_OK), tomando las descripciones de las búsquedas como datos extras para los informes.

...

Lógica para marcar como Conciliada, Pendiente y Rechazada:
Si existe en el origen y existe en el destino
Se marca como CONCILIADO (CONCI_OK)
Si no existe en el origen y no existe en el destino
Se marca como PENDIENTE (CONCI_NO_OK), para la revisión del Usuario. ***** CONCILIADO NO OK
Si no existe en el origen y existe en el destino
Se marca como PENDIENTE (CONCI_NO_OK), para la revisión del Usuario.
Si existe en el origen y no existe en el destino
Se marca como PENDIENTE (CONCI_NO_OK), para la revisión del Usuario.

...

Dimo Empresa - API Documentation

Base URLs

Authentication

  • API Key: Todos los endPoints necesitan un ApiKey en el header.
    • Header: API-KEY
    • Valor de ejemplo: BMMyeLpIomvnnGwmN8IOydFCON4AQelKTIY4C44Fljg8AjFled
    • Descripción: Aparte de seguridad por esta clave se identifica a la Empresa.

Endpoints

AltaColaborador

  • Endpoint: /colaboradores/alta
  • Método: POST
  • Descripción: Crea un nuevo colaborador para la empresa
  • Headers:
    • API-KEY: BMMyeLpIomvnnGwmN8IOydFCON4AQelKTIY4C44Fljg8AjFled
  • Request Body:

    Code Block
    languagepy
    titlejson
    linenumberstrue
    {
        "colaborador": {
            "nroDocumento": 4040440,
            "nombres": "Arturo",
            "apellidos": "Sosa Bagnoli",
            "nroTelefono": "0971159618",
            "correo": "asosa@cabal.com.py"
        }
    }
    Expand
    titleConsideraciones del Request

    "nroDocumento" => Debe ser numérico, contener el número de documento de la persona a quien se le va a asociar como colaborador de la empresa.
    "nroTelefono" => Debe tener ese formato, no debe contener caracteres especiales ni espacios.
    "correo" => Debe ser un correo valido.

  • Response:

    Code Block
    languagepy
    titlejson
    linenumberstrue
    {
        "header": {
            "codReturn": 3,
            "txtReturn": "WARNING"
        },
    	"data": {
            "info": "El colaborador ya existe",
            "nroTarjeta": "",
            "tarjetaMask": ""
        }
    }
    Expand
    titleRespuestas posibles

    "codReturn": 0, "txtReturn": "SUCCESS", "info": "Registrado como colaborador, ya tiene cuenta Dimo" => Se agregó correctamente al colaborador y ese colaborador ya tiene una cuenta Dimo, por lo que se le creo la tarjeta prepaga asociada a la empresa.
    "codReturn": 0, "txtReturn": "SUCCESS", "info": "Registrado como colaborador, aun no tiene cuenta DIMO" => Se agregó correctamente al colaborador y ese colaborador aún no tiene una cuenta dimo. Por lo tanto no se le creó la tarjeta prepaga de la empresa.
    "codReturn": 1, "txtReturn": "ERROR", "info": "Hubo un problema al procesar la solicitud" => Hubo un problema interno por el cual no se pudo procesar la solicitud. Se notifico al equipo de Sistemas para su revisión.
    "codReturn": 2, "txtReturn": "WARNING", "info": "Valores del request no validos" => No corresponde los valores del request. (telefono o correo).
    "codReturn": 3, "txtReturn": "WARNING", "info": "El colaborador ya existe" => El colaborador ya se encuentra vinculado a la empresa y ya tiene su tarjeta prepaga creada.
    "codReturn": 4, "txtReturn": "ERROR", "info": "Hubo un problema en el registro del colaborador" => Hubo un problema al crear al usuario, sistemas ya fue notificado.

ListarColaborador

  • Endpoint: /colaboradores/listar
  • Método: POST
  • Descripción: Lista uno o todos los colaboradores de la empresa, con información adicional de cada uno.
  • Headers:
    • API-KEY: BMMyeLpIomvnnGwmN8IOydFCON4AQelKTIY4C44Fljg8AjFled
  • Request Body:

    Code Block
    languagepy
    titlejson
    linenumberstrue
    {
        "nroDocumento": 4040440
    }
    Expand
    titleConsideraciones del Request

    "nroDocumento" => Debe ser numérico, contener el número de documento de la persona a quien se le va a asociar como colaborador de la empresa.
    "nroDocumento" => Debe tener el valor 0 para que el endpoint devuelva todos los colabores de la empresa.

  • Response Body:

    Code Block
    languagepy
    titlejson
    linenumberstrue
    {
        "header": {
            "codReturn": 0,
            "txtReturn": "SUCCESS"
        },
        "data": [
            {
                "apellidos": "Sosa",
                "correo": "asosa@cabal.com.py",
                "documento": "4040440",
                "estado": "Usuario registrado",
                "nombres": "Arturo",
                "nroTarjeta": "6043512000595678",
                "nroTelefono": "0986215487",
                "tarjetaMask": "6043-XXXX-XXXX-5678"
            }
        ]
    }
    Expand
    titleRespuestas posibles

    "codReturn": 0, "txtReturn": "SUCCESS" => Cuando encuentra los datos. (El data puede ser de un colaborador o de todos los colabores de la empresa).
    "codReturn": 1, "txtReturn": "ERROR" => Cuando el endpoint tuvo un problema al procesar la petición.
    "codReturn": 2, "txtReturn": "No existe el colaborador" => Cuando no hay un colaborador registrado con el documento enviando en el request.

CrearAcreditacion

  • Endpoint: /acreditaciones/crear
  • Método: POST
  • Descripción: Crea una nueva orden de acreditación.
  • Headers:
    • API-KEY: BMMyeLpIomvnnGwmN8IOydFCON4AQelKTIY4C44Fljg8AjFled
  • Request Body:

    Code Block
    languagepy
    titlejson
    linenumberstrue
    {
        "acreditacion": {
            "usuario": "test1",
            "descripcion":"prueba 1",
            "lista": [
                {
                    "nroDocumento": 4040440,
                    "monto": 1500000
                },
                {
                    "nroDocumento": 4040440,
                    "monto": 1200000
                },
                {
                    "nroDocumento": 404011111,
                    "monto": 1600000
                }
            ]
        }
    }
    Expand
    titleConsideraciones del Request

    "usuario" => Puede enviar el nombre del usuario que creo la acreditación para asociar esa información a la petición.
    "descripcion" => Puede enviar alguna descripción para asociar a la petición. Ej.: 'Acreditación de Salario mes de Junio'.
    "nroDocumento" => Debe ser numérico, contener el número de documento de la persona a quien se le va a asociar como colaborador de la empresa.
    "monto" => Debe contener el valor a ser acreditado al colaborador sin separación de puntos ni decimales.

  • Response Body:

    Code Block
    languagepy
    titlejson
    linenumberstrue
    {
        "header": {
            "codReturn": 1,
            "txtReturn": "WARNING"
        },
        "data": {
            "estadoAcreditacion": "APROBADO",
            "idAcreditacion": "274",
            "acreditacionesValidas": [
                {
                    "estado": "Usuario registrado",
                    "monto": "1500000",
                    "nroDocumento": "4040440"
                },
                {
                    "estado": "Usuario registrado",
                    "monto": "1200000",
                    "nroDocumento": "4040440"
                }
            ],
            "acreditacionesNoValidas": [
                {
                    "estado": "No esta registrado como colaborador",
                    "monto": "1600000",
                    "nroDocumento": "404011111"
                }
            ]
        }
    }
    Expand
    titleRespuestas posibles

    "codReturn": 0, "txtReturn": "SUCCESS", "estadoAcreditacion": "APROBADO" => Todos los colaboradores del Request pueden recibir su acreditación sin problemas.
    "codReturn": 1, "txtReturn": "ERROR", "estadoAcreditacion": "Hubo un problema al procesar la peticion" => El endpoint tuvo un problema procesando la petición. Sistemas ya fue notificado.
    "codReturn": 2, "txtReturn": "WARNING", "estadoAcreditacion": "APROBADO" => Hay usuarios que no pertenecen a la lista de colabores de la empresa, pero si se procesa la orden para el resto.
    "codReturn": 3, "txtReturn": "ERROR", "estadoAcreditacion": "No existe ningun colaborador valido" => Todos los colabores del request, no pertenecen a la empresa.

EjecutarAcreditacion

  • Endpoint: /acreditaciones/ejecutar
  • Método: POST
  • Descripción: Ejecutar una acreditación.
  • Headers:
    • API-KEY: BMMyeLpIomvnnGwmN8IOydFCON4AQelKTIY4C44Fljg8AjFled
  • Request Body:

    Code Block
    languagepy
    titlejson
    linenumberstrue
    {
        "acreditacion": {
            "usuario": "test1",
            "idAcreditacion":274
        }
    }
    Expand
    titleConsideraciones del Request

    "usuario" => Puede enviar el nombre del usuario que creo la acreditación para asociar esa información a la petición.
    "idAcreditacion" => Debe enviar el ID de la orden de acreditación devuelta por el endpoint anterior.

  • Response Body:

    Code Block
    languagepy
    titlejson
    linenumberstrue
    {
        "header": {
            "codReturn": 0,
            "txtReturn": "SUCCESS"
        },
        "data": {
            "descripcion": "Se proceso correctamente"
        }
    }
    Expand
    titleRespuestas posibles

    "codReturn": 0, "txtReturn": "SUCCESS", "descripcion": "Se proceso correctamente" => Todos los colaboradores del Request pueden recibir su acreditación sin problemas.
    "codReturn": 1, "txtReturn": "ERROR", "descripcion": "Hubo un problema al ejecutar la acreditacion" => El endpoint tuvo un problema procesando la petición. Sistemas ya fue notificado.
    "codReturn": 2, "txtReturn": "ERROR", "descripcion": "No existe la orden de acreditacio" => Hay usuarios que no pertenecen a la lista de colabores de la empresa, pero si se procesa la orden para el resto.
    "codReturn": 3, "txtReturn": "WARNING", "descripcion": "Esta orden de acreditacion ya fue ejecutada" => Todos los colabores del request, no pertenecen a la empresa.
    "codReturn": 4, "txtReturn": "ERROR", "descripcion": "DINAMICO" => Se devuelve una descripción distinta dependiendo de la validación que rechazo la petición.

HistoricoAcreditaciones

  • Endpoint: /acreditaciones/historico
  • Método: POST
  • Descripción: Devuelve los datos del histórico.
  • Headers:
    • API-KEY: BMMyeLpIomvnnGwmN8IOydFCON4AQelKTIY4C44Fljg8AjFled
  • Request Body:

    Code Block
    languagepy
    titlejson
    linenumberstrue
    {
        "filtros": {
            "fechaInicio": "01/09/2024",
            "fechaFinal": "11/09/2024",
            "estado": "APROBADO"
        }
    }
    Expand
    titleConsideraciones del Request

    "fechaInicio" => Debe tener el formato de "dd/mm/yyyy"
    "fechaFinal" => Debe tener el formato de "dd/mm/yyyy"
    "estado" => Valores posibles: APROBADO, APROBADO-EJECUTADO y PENDIENTE.


    Se puede enviar uno o todos los campos vacios => "" Esto devolverá todos los registros.

  • Response Body:

    Code Block
    languagepy
    titlejson
    linenumberstrue
    {
        "header": {
            "codReturn": 0,
            "txtReturn": "SUCCESS"
        },
        "data": [
            {
                "descripcion": "Orden para Joel",
                "estado": "APROBADO",
                "fechaAprob": "03/09/2024 09:30:22",
                "fechaEjec": "03/09/24 09:30",
                "fechaInsert": "03/09/2024 09:30:22",
                "glosa": "ACREDITACION DE SALARIOS",
                "idAcreditacion": "570",
                "montoTotal": "1000000",
                "usuarioAprob": "test1",
                "usuarioEjec": "test1",
                "usuarioInsert": "test1"
            },
            {
                "descripcion": "Orden Nro. 5500",
                "estado": "APROBADO",
                "fechaAprob": "02/09/2024 10:53:40",
                "fechaEjec": "02/09/24 10:53",
                "fechaInsert": "02/09/2024 10:53:40",
                "glosa": "ACREDITACION DE SALARIOS",
                "idAcreditacion": "568",
                "montoTotal": "1000000",
                "usuarioAprob": "test1",
                "usuarioEjec": "test1",
                "usuarioInsert": "test1"
            },
            {
                "descripcion": "Joel acreditación",
                "estado": "APROBADO",
                "fechaAprob": "02/09/2024 10:52:23",
                "fechaEjec": "02/09/24 10:52",
                "fechaInsert": "02/09/2024 10:52:23",
                "glosa": "ACREDITACION DE SALARIOS",
                "idAcreditacion": "567",
                "montoTotal": "1000000",
                "usuarioAprob": "test1",
                "usuarioEjec": "test1",
                "usuarioInsert": "test1"
            },
            {
                "descripcion": "Acreditación Joel",
                "estado": "APROBADO",
                "fechaAprob": "02/09/2024 10:51:10",
                "fechaEjec": "02/09/24 10:51",
                "fechaInsert": "02/09/2024 10:51:10",
                "glosa": "ACREDITACION DE SALARIOS",
                "idAcreditacion": "566",
                "montoTotal": "1000000",
                "usuarioAprob": "test1",
                "usuarioEjec": "test1",
                "usuarioInsert": "test1"
            }
        ]
    }

DisponibleCuentaEmpresa

  • Endpoint: /acreditaciones/disponible
  • Método: POST
  • Descripción: Devuelve los datos de la cuenta.
  • Headers:
    • API-KEY: BMMyeLpIomvnnGwmN8IOydFCON4AQelKTIY4C44Fljg8AjFled
  • Request Body: (SIN REQUEST, SOLO POST)

  • Response Body:

    Code Block
    languagepy
    titlejson
    linenumberstrue
    {
        "data": {
            "disponible": "45075000",
            "estado": "Operativa",
            "nroCuenta": "",
            "nroTarjeta": "2C382210F8FE550D",
            "nroTarjetaCripto": "6043-XXXX-XXXX-6775"
        },
        "header": {
            "codReturn": 0,
            "txtReturn": "SUCCESS"
        }
    }

Manejo de errores

  • Common HTTP Status Codes:
    • 200 OK: The request was successful.
    • 400 Bad Request: The request could not be understood or was missing required parameters.
    • 401 Unauthorized: Authentication failed or user does not have permissions for the desired action.
    • 404 Not Found: The requested resource could not be found.
    • 500 Internal Server Error: An error occurred on the server.


Ejemplos de uso

Ejemplos de como consumir por curl:

AltaColaborador

Code Block
languagepy
themeDJango
titlecurl
linenumberstrue
curl -X POST "http://10.5.1.31:8103/rest/colaboradores/alta" \
-H "API-KEY: BMMyeLpIomvnnGwmN8IOydFCON4AQelKTIY4C44Fljg8AjFled" \
-H "Content-Type: application/json" \
-d '{
  "data": {
    "nroDocumento": 4040440,
    "nombres": "Arturo",
    "apellidos": "Sosa Bagnoli",
    "nroTelefono": "0971159618",
    "correo": "asosa@cabal.com.py"
  }
}'

ListarColaborador

Code Block
languagepy
themeDJango
titlecurl
linenumberstrue
curl -X POST "http://10.5.1.31:8103/rest/colaboradores/listar" \
-H "API-KEY: BMMyeLpIomvnnGwmN8IOydFCON4AQelKTIY4C44Fljg8AjFled" \
-H "Content-Type: application/json" \
-d '{
  "nroDocumento": 4040440
}'

CrearAcreditacion

Code Block
languagepy
themeDJango
titlecurl
linenumberstrue
curl -X POST "http://10.5.1.31:8103/rest/acreditaciones/crear" \
-H "API-KEY: BMMyeLpIomvnnGwmN8IOydFCON4AQelKTIY4C44Fljg8AjFled" \
-H "Content-Type: application/json" \
-d '{
  "acreditacion": {
    "usuario": "test1",
    "descripcion": "prueba 1",
    "lista": [
      {
        "nroDocumento": 4040440,
        "monto": 1500000
      },
      {
        "nroDocumento": 4040440,
        "monto": 1200000
      },
      {
        "nroDocumento": 404011111,
        "monto": 1600000
      }
    ]
  }
}'

EjecutarAcreditacion

Code Block
languagepy
themeDJango
titlecurl
linenumberstrue
curl -X POST "http://10.5.1.31:8103/rest/acreditaciones/ejecutar" \
-H "API-KEY: BMMyeLpIomvnnGwmN8IOydFCON4AQelKTIY4C44Fljg8AjFled" \
-H "Content-Type: application/json" \
-d '{
  "acreditacion": {
    "usuario": "test1",
    "idAcreditacion": 274
  }
}'

HistoricoAcreditacion

Code Block
languagepy
themeDJango
titlecurl
linenumberstrue
curl -X POST "http://10.5.1.31:8103/rest/acreditaciones/historico" \
-H "API-KEY: BMMyeLpIomvnnGwmN8IOydFCON4AQelKTIY4C44Fljg8AjFled" \
-H "Content-Type: application/json" \
-d '{
    "filtros": {
        "fechaInicio": "01/09/2024",
        "fechaFinal": "11/09/2024",
        "estado": "APROBADO"
    }
}'

ConsultarDisponible

Code Block
languagepy
themeDJango
titlecurl
linenumberstrue
curl -X POST "http://10.5.1.31:8103/rest/acreditaciones/disponible" \
-H "API-KEY: BMMyeLpIomvnnGwmN8IOydFCON4AQelKTIY4C44Fljg8AjFled" \
-H "Content-Type: application/json" \
-d ''
Este documento proporciona una guía completa para la integración y uso de la API de Dimo Empresa. Asegúrate de seguir las mejores prácticas de seguridad y yo me comprometo a mantener actualizada la documentación para reflejar cualquier cambio en la API.



Cabal Paraguay Ltda.
Caballero 728, Asunción Paraguay.

Versión de la doc: v1.0.1.0
Autor: Arturo Sosa Bagnoli
asosa@cabal.com.py - 0971-159618