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 Value: BMMyeLpIomvnnGwmN8IOydFCON4AQelKTIY4C44Fljg8AjFledValor 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
    {
        "colaborador": {
            "nroDocumento": 4040440,
            "nombres": "Arturo",
            "apellidos": "Sosa Bagnoli",
            "nroTelefono": "0971159618",
            "correo": "asosa@cabal.com.py"
        }
    }

    Response: No response example provided.

    Code Block
    languagepy
    titlejson
    linenumberstrue
    {
        "header": {
            "codReturn": 3,
            "txtReturn": "WARNING"
        },
    	"data":
    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": {
            "infocodReturn": "El colaborador ya existe"3,
            "nroTarjetatxtReturn": "WARNING"
        },
    	"data": {
            "tarjetaMaskinfo": "El colaborador ya existe",
         }
    }

ListarColaborador

  • Endpoint: /colaboradores/listar
  • Method: POST
  • Description: Lists a collaborator by document number.
  • Headers:
    • API-KEY: BMMyeLpIomvnnGwmN8IOydFCON4AQelKTIY4C44Fljg8AjFled
  • Request Body:

    Code Block
    languagepy
    titlejson
    linenumberstrue
    {
       "nroTarjeta": "",
       "nroDocumento": 4040440 }

    Response Body:

    Code Block
    languagepy
    titlejson
    linenumberstrue
    {
        "headertarjetaMask": {""
            }
    }
    Expand
    titleRespuestas posibles

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

CrearAcreditacion

  • Endpoint: /acreditaciones/crear
  • Method: POST
  • Description: Creates a new accreditation.
  • Headers:
    • API-KEY: BMMyeLpIomvnnGwmN8IOydFCON4AQelKTIY4C44Fljg8AjFled
  • Request Body:

    Code Block
    languagepy
    titlejson
    linenumberstrue
    { "acreditacion": { "usuario": "test1", "descripcion":"prueba 1", "lista": [ { "nroDocumento": 4040440, "monto": 1500000

    , "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": [
       "nroDocumento": 4040440,    {
                "montoapellidos": "Sosa",
    1200000             }"correo": "asosa@cabal.com.py",
                {
       "documento": "4040440",
                "nroDocumentoestado": "Usuario 404011111registrado",
                   "nombres": "montoArturo":,
    1600000             }"nroTarjeta": "6043512000595678",
            ]     }
    }

    Response Body:

    Code Block
    languagepy
    titlejson
    linenumberstrue
    {
        "header": {"nroTelefono": "0986215487",
                "codReturntarjetaMask": 1,
         "6043-XXXX-XXXX-5678"
      "txtReturn": "WARNING"     },
        "data": {
            "estadoAcreditacion": "APROBADO",
            "idAcreditacion": "274",
            "acreditacionesValidas": [
                {
                    "estado": "Usuario registrado",
                    "monto": "1500000",
       ]
    }
    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",
                "nroDocumentoglosa": "4040440"ACREDITACION DE SALARIOS",
              },  "idAcreditacion": "566",
             {   "montoTotal": "1000000",
                "estadousuarioAprob": "Usuario registradotest1",
       
                "montousuarioEjec": "1200000test1",
       
                "nroDocumentousuarioInsert": "4040440"
           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
    {
        "acreditacionesNoValidasdata": [{
            "disponible": "45075000",
      {        "estado": "Operativa",
            "estadonroCuenta": ""No,
    esta registrado como colaborador",        "nroTarjeta": "2C382210F8FE550D",
            "montonroTarjetaCripto": "1600000",
       6043-XXXX-XXXX-6775"
           },
        "nroDocumentoheader": "404011111"{
            "codReturn": 0,
      }         ]"txtReturn": "SUCCESS"
         }
    }

EjecutarAcreditacion

  • Endpoint: /acreditaciones/ejecutar
  • Method: POST
  • Description: Executes an accreditation.
  • Headers:
    • API-KEY: BMMyeLpIomvnnGwmN8IOydFCON4AQelKTIY4C44Fljg8AjFled
  • Request Body:
    }
    }

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
title

...

curl
linenumberstrue

...

curl -X 

...

POST "

...

Response Body:

...

languagepy
titlejson
linenumberstrue

...

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"

...


...

 

...

 

...

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

Code Block
languagepy
themeDJango
titlejson
linenumberstrue
{
    "data": {
        "nroDocumento": 4040440,
        "nombres": "Arturo",
        "apellidos": "Sosa Bagnoli",}
}'

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": [
      {
        "nroTelefononroDocumento": "0971159618"4040440,
        "correomonto": "asosa@cabal.com.py" 1500000
      }
}

ListarColaborador

Code Block
languagepy
themeDJango
titlejson
linenumberstrue
{,
     "data": {
        "nroDocumento": 4040440,
        "nombresmonto": "Arturo", 1200000
      },
      {
        "apellidosnroDocumento": "Sosa Bagnoli"404011111,
        "nroTelefonomonto": "0971159618",1600000
      }
 "correo": "asosa@cabal.com.py"  ]
  }
}'

...

EjecutarAcreditacion

{ "data": {
Code Block
languagepy
themeDJango
titlejsoncurl
linenumberstrue
curl -X POST "http://10.5.1.31:8103/rest/acreditaciones/ejecutar" \
-H "API-KEY: BMMyeLpIomvnnGwmN8IOydFCON4AQelKTIY4C44Fljg8AjFled" \
-H "Content-Type: application/json" \
-d '{
  "nroDocumentoacreditacion": 4040440,
   {
    "nombresusuario": "Arturotest1",
   
    "apellidosidAcreditacion": "Sosa274
Bagnoli",  }
}'

HistoricoAcreditacion

Code Block
languagepy
themeDJango
titlecurl
linenumberstrue
curl -X POST "http://10.5.1.31:8103/rest/acreditaciones/historico" \
-H "nroTelefono"API-KEY: "0971159618BMMyeLpIomvnnGwmN8IOydFCON4AQelKTIY4C44Fljg8AjFled",         "correo": "asosa@cabal.com.py"
\
-H "Content-Type: application/json" \
-d '{
   }
}

EjecutarAcreditacion

Code Block
languagepy
themeDJango
titlejson
linenumberstrue
{ "filtros": {
        "datafechaInicio": {"01/09/2024",
        "nroDocumentofechaFinal": 4040440"11/09/2024",
        "nombresestado": "ArturoAPROBADO",
    }
}'

ConsultarDisponible

Code Block
languagepy
themeDJango
titlecurl
linenumberstrue
curl -X POST "apellidos": "Sosa Bagnoli",
        "nroTelefono": "0971159618",
        "correo": "asosa@cabal.com.py"
    }
}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