Page tree

Versions Compared

Key

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

Dimo Empresa - API

...

Documentation

Base URLs

Authentication

  • API Key: All endpoints require an API key passed in the headersTodos los endPoints necesitan un ApiKey en el header.
    • Header: API-KEY
    • Example ValueValor de ejemplo: BMMyeLpIomvnnGwmN8IOydFCON4AQelKTIY4C44Fljg8AjFled
    • Descripción: Aparte de seguridad por esta clave se identifica a la Empresa.

Endpoints

...

AltaColaborador

  • Endpoint: /colaboradores/alta
  • MethodMétodo: POSTDescription: Creates a new collaborator.
  • Descripción: Crea un nuevo colaborador para la empresa
  • Headers:
    • API-KEY: BMMyeLpIomvnnGwmN8IOydFCON4AQelKTIY4C44Fljg8AjFled
  • Request Body:

    Code Block
    languagepy
    titlejson
    linenumberstrue
    {
        "
    data
    colaborador": {
            "nroDocumento": 4040440,
            "nombres": "Arturo",
            "apellidos": "Sosa Bagnoli",
            "nroTelefono": "0971159618",
            "correo": "asosa@cabal.com.py"
        }
    }
  • Response: No response example provided.

2. ListarColaborador

...

  • API-KEY: BMMyeLpIomvnnGwmN8IOydFCON4AQelKTIY4C44Fljg8AjFled

...

3. CrearAcreditacion

  • Endpoint: /acreditaciones/crear
  • Method: POST
  • Description: Creates a new accreditation.
  • Headers:
    • API-KEY: BMMyeLpIomvnnGwmN8IOydFCON4AQelKTIY4C44Fljg8AjFled
  • Request Body:json
    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
    {
        "
    acreditacion
    header": {
            "
    usuario
    codReturn": 
    "test1"
    3,
            "
    descripcion
    txtReturn": "
    prueba 1
    WARNING"
    ,
    
        },
    
    	"
    lista
    data": 
    [
    {
            "info": "El colaborador 
    {
    ya existe",
            
    "
    nroDocumento
    nroTarjeta": 
    4040440
    "",
            "tarjetaMask": ""
        
    "monto": 1500000 }, { "nroDocumento": 4040440, "monto": 1200000 }, { "nroDocumento": 404011111, "monto": 1600000 } ] } }
  • Response: No response example provided.

4. EjecutarAcreditacion

...

  • API-KEY: BMMyeLpIomvnnGwmN8IOydFCON4AQelKTIY4C44Fljg8AjFled

...

Error Handling

  • 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.

Example Usage

Here are some example requests using curl:

AltaColaborador

...

  • }
    }
    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"
        },
    

...

  •  

...

ListarColaborador

...

  •  

...

  •  

...

  •  "data"

...

CrearAcreditacion

...

  • : [
            {
                "apellidos": "Sosa",
                "correo": "asosa@cabal.com.py",
                "

...

  • documento": "

...

  • 4040440",
        

...

  •         "

...

  • estado": 

...

  • "Usuario registrado",
         

...

  •        

...

  • "

...

  • nombres": 

...

  • "Arturo",
            

...

  •  

...

  •    

...

  • "nroTarjeta": "6043512000595678",
         

...

  •        

...

  • "nroTelefono": 

...

  • "0986215487",
          

...

  •       

...

  • "

...

  • tarjetaMask":

...

  •  

...

  • "6043-XXXX-XXXX-5678"
            }
        ]
    

...

EjecutarAcreditacion

...


Este documento proporciona una descripción clara y concisa de la API de "Dimo Empresa", con ejemplos prácticos para cada uno de los endpoints disponibles. Para cualquier actualización o modificación, asegúrate de mantener esta documentación sincronizada con los cambios en la API.

Si necesitas integrarlo con una plataforma de documentación interactiva como Swagger, Postman o cualquier otra, aquí tienes algunos pasos generales para hacerlo:

Integración con Swagger/OpenAPI

  1. Crear un archivo de especificación OpenAPI: Este archivo (swagger.yaml o swagger.json) contendrá todas las definiciones de tu API.
  2. Generar la documentación: Puedes usar herramientas como Swagger UI para generar una interfaz interactiva.

Ejemplo de Especificación OpenAPI (YAML)

...

  • }
    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",
     

...

  •            

...

Integración con Postman

  1. Importar el archivo JSON: En Postman, puedes importar el archivo JSON directamente para obtener una colección con todos los endpoints definidos.
  2. Generar documentación: Postman permite generar documentación interactiva y publicarla en línea.

Publicación en GitHub Pages o GitBook

  1. Markdown documentation: Puedes convertir esta documentación en formato Markdown y publicarla en plataformas como GitHub Pages o GitBook para una presentación atractiva y accesible.

...

  • "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",
       

...

  • Response: No response example provided.

ListarColaborador

  • Endpoint: /colaboradores/listar
  • Method: POST
  • Description: Lists a collaborator by document number.
  • Headers:
    • API-KEY: BMMyeLpIomvnnGwmN8IOydFCON4AQelKTIY4C44Fljg8AjFled
  • Request Body:json
    {
             "
    nroDocumento
    usuarioEjec": 
    4040440 }
  • Response: No response example provided.

CrearAcreditacion

  • Endpoint: /acreditaciones/crear
  • Method: POST
  • Description: Creates a new accreditation.
  • Headers:
    • API-KEY: BMMyeLpIomvnnGwmN8IOydFCON4AQelKTIY4C44Fljg8AjFled
  • Request Body:json
    {
    "test1",
                "
    acreditacion
    usuarioInsert": 
    {
    "test1"
           
    "usuario": "test1",
     },
            {
     
    "descripcion":
     
    "prueba
     
    1",
             "
    lista
    descripcion": 
    [
    "Acreditación Joel",
               
    {
     "estado": "APROBADO",
                
    "
    nroDocumento
    fechaAprob": 
    4040440
    "02/09/2024 10:51:10",
                "fechaEjec": "02/09/24 10:51",
      
    "monto":
     
    1500000
             "fechaInsert": 
    }
    "02/09/2024 10:51:10",
                
    {
    "glosa": "ACREDITACION DE SALARIOS",
                
    "
    nroDocumento
    idAcreditacion": 
    4040440
    "566",
                
    "monto": 1200000
    "montoTotal": "1000000",
                
    }
    "usuarioAprob": "test1",
                
    {
    "usuarioEjec": "test1",
                "usuarioInsert": "test1"
     
    "nroDocumento":
     
    404011111,
          }
        ]
    }

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
    {
        "
    monto": 1600000
    data": {
            "disponible": "45075000",
          
    }
      "estado": "Operativa",
          
    ]
      "nroCuenta": "",
     
    }
     
    }
     
  • Response: No response example provided.

EjecutarAcreditacion

  • Endpoint: /acreditaciones/ejecutar
  • Method: POST
  • Description: Executes an accreditation.
  • Headers:
    • API-KEY: BMMyeLpIomvnnGwmN8IOydFCON4AQelKTIY4C44Fljg8AjFled
  • Request Body:json
    {
         "
    acreditacion
    nroTarjeta": 
    {
    "2C382210F8FE550D",
            "
    usuario
    nroTarjetaCripto": "
    test1",
    6043-XXXX-XXXX-6775"
        },
        "
    idAcreditacion
    header": {
    
    274
         
    }
     
    }
  • Response: No response example provided.

PreProducción

API-KEY - Validar

  • Endpoint: /auth/realms/mdw/check
  • Method: GET
  • Description: Validates an API key.
  • Headers: None required.
  • URL Parameters:
    • `apiKey: t7DQWbMzns339c9CA4rt7FBByqhYKd94

AVW0MamEuSOfjV9c3A`

  • Response: No response example provided.

Error Handling

  •   "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.

Example Usage

Here are some example requests using curl:

AltaColaborador

...

    • 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

...

'

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
  }
}'

...

EjecutarAcreditacion

...

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

...

API-KEY - Validar

...

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

...

languagejava
themeDJango
titlesh

...

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