Ubapp Api ## Sections • [Inicio](https://app.theneo.io/una/ubapp-api/inicio.md): Primera versión api Unapp • [Auth](https://app.theneo.io/una/ubapp-api/auth.md): Rutas de autenticación, no requieren un token de acceso. • [Login](https://app.theneo.io/una/ubapp-api/auth/login.md): Endpoint para que un usuario pueda ingresar a la app. Campos necesarios: Email Password Como respuesta entregará un token para poder acceder a rutas protegidas ( access_token ), un token para refrescar si expira el token anterior ( refresh_token ) y datos básicos del user. • [Register](https://app.theneo.io/una/ubapp-api/auth/register.md): Endpoint para que un usuario pueda registrarse a la app. Campos necesarios: Email Password name Como respuesta entregará un token para poder acceder a rutas protegidas ( access_token ), un token para refrescar si expira el token anterior ( refresh_token ) y datos básicos del user. • [Send email code](https://app.theneo.io/una/ubapp-api/auth/send-email-code.md): Endpoint para poder validar un correo. permite mandar un correo con un código de 4 números con tiempo de expiración que puede ser verificado con la ruta de /verifycode . Datos necesarios: • [Validate exist User](https://app.theneo.io/una/ubapp-api/auth/validate-exist-user.md): Esta ruta se utiliza para buscar y autenticar usuarios basándose en su dirección de correo electrónico. Al hacer una solicitud GET a /app/auth/findbyemail , se debe incluir un parámetro de consulta email con la dirección de correo electrónico del usuario. Por ejemplo, en la URL dada, asd@gmail.com es el correo electrónico especificado. Esta ruta es útil para verificar si un usuario está registrado en la aplicación y para obtener detalles adicionales relacionados con la cuenta de correo electrónico proporcionada. Es importante manejar esta ruta con medidas de seguridad adecuadas para proteger la privacidad y los datos del usuario." • [Verify code](https://app.theneo.io/una/ubapp-api/auth/verify-code.md): Endpoint para poder validar un correo. permite mandar verificar codigo 4 números con tiempo de expiración mandado por la ruta de /sendcode . Datos necesarios: id: id del usuario code: codigo de 4 numeros recibido en email • [Createpass](https://app.theneo.io/una/ubapp-api/auth/createpass.md): Endpoint para crear contraseña en usuarios que no la tienen creada. id: id del usuario password: contraseña que se desea setear Como respuesta entregará un token para poder acceder a rutas protegidas ( access_token ), un token para refrescar si expira el token anterior ( refresh_token ) y datos básicos del user. • [Contacts](https://app.theneo.io/una/ubapp-api/contacts.md): Rutas de autenticación, requieren un token de acceso. • [Find Users & Contacts](https://app.theneo.io/una/ubapp-api/contacts/find-users-and-contacts.md): Endpoint para encontrar tanto contactos como usuarios del sistema. Requeridos obligatorios name Se entrega un array con 10 resultados máximos según búsqueda. • [Find By Email](https://app.theneo.io/una/ubapp-api/contacts/find-by-email.md): Endpoint para encontrar si existe un usuario ó contacto con email. Función para validar correo al intentar crear un nuevo usuario. Requeridos obligatorios email Se entrega el objeto si hay resultado. En el caso que el objeto encontrado sea un contacto, incluirá el campo contact:true • [Create or Update](https://app.theneo.io/una/ubapp-api/contacts/create-or-update.md): Función para crear o actualizar un contacto (para este caso sería sólo para actualizar). Requeridos obligatorios owner (id de la cuenta utilizada) user (id del usuario asociado). Finalmente, se entrega el contacto resultante F • [Create User / Contact](https://app.theneo.io/una/ubapp-api/contacts/create-user-contact.md): Función para crear un usuario y contacto nuevo (si ya se han realizado validaciones anteriores con email) se debe mandar el campo contact, si se desea guardar la información como contacto. contact:true Finalmente, se entrega el usuario resultante F • [Create User / Contact without Email](https://app.theneo.io/una/ubapp-api/contacts/create-user-contact-without-email.md): Función para crear un usuario y contacto nuevo ó actualizar los existentes de acuerdo a la info enviada Se debe mandar de forma obligatoria name (debe ser el mismo campo del alias) data.alias (es decir el objeto data con alias mismo valor de name) Opcionales: email (si se desea vincularlo a una cuenta unabase) Como resultado final entregará el contacto creado, si se envia el parámetro email, además se devolverá la id asociada a F • [Find Contacts](https://app.theneo.io/una/ubapp-api/contacts/find-contacts.md): Endpoint para encontrar solo contactos. Requeridos obligatorios name Se entrega un array con 10 resultados máximos según búsqueda. • [Expenses](https://app.theneo.io/una/ubapp-api/expenses.md): Rutas para: Listado de expenses • [List](https://app.theneo.io/una/ubapp-api/expenses/list-3.md): Endpoint que devuelve un array con el listado de expenses: Para el endpoint que devuelve un listado de gastos ( expenses ), es necesario incluir ciertos parámetros en la consulta (query) de la siguiente manera: page (Página): Este parámetro es obligatorio y debe ser de tipo string . Indica la página del listado que deseas recuperar. Aunque el tipo es string , generalmente se espera que sea un número representado en formato de texto. Por ejemplo: page=1 . limit (Límite): También es un parámetro obligatorio y debe ser de tipo string . Define el número máximo de gastos a mostrar en una sola página. Al igual que page , este parámetro se espera que sea un número en formato de texto. Por ejemplo: limit=10 . organization (Organización): Este parámetro es obligatorio y su tipo es string . Debe ser un identificador que represente la organización cuyos gastos estás consultando. • [Get by ID](https://app.theneo.io/una/ubapp-api/expenses/get-by-id.md): Endpoint que devuelve un expense segun su ID: Para el endpoint que devuelve un gasto ( expenses ) segun su ID, es necesario incluir ciertos parámetros en la consulta (query) de la siguiente manera: organization (Organización): Este parámetro es obligatorio y su tipo es string . Debe ser un identificador que represente la organización cuyo gasto estás consultando. • [Documents](https://app.theneo.io/una/ubapp-api/documents.md): Rutas para: Crear documentos • [Create](https://app.theneo.io/una/ubapp-api/documents/create.md): Endpoint crear un nuevo documento mediante la ruta POST, se requiere enviar un JSON con los siguientes campos: name : String . Ejemplo: "Contrato de Servicios". description : String . Ejemplo: "Este es un contrato para la prestación de servicios de desarrollo de software." observation : String . Ejemplo: "El proyecto debe iniciar el 1 de junio de 2023." reference : String . Ejemplo: "Referencia Interna 12345". supplier : user : String (ID de contacto). Ejemplo: "5e3dc88c7e0a6171a7ff0a18". paymentType (Tipo de Pago): document : String . Ejemplo: "Factura". condition : String . Ejemplo: "Pago a 30 días". type : String . Ejemplo: "Transferencia". dates (Fechas): expiration , issue , reception : String en formato de fecha ISO 8601. Ejemplo: "2023-12-31T00:00:00.000Z". currency : String (ID de moneda). Ejemplo: "5e3dc88c7e0a6171a7ff0a18". lines (Líneas o Items): Array de objetos. Cada objeto tiene: index : String . Ejemplo: "1". name : String . Ejemplo: "Desarrollo de Software". category : String . Ejemplo: "Desarrollo". numbers : Objeto con valores numéricos y de cadena. taxes : Objeto con información tributaria. creator , owner , contact : Para creator y contact se necesita la propiedad user con ID : String (ID de usuario u organización). Para owner se necesita la propiedad organization con ID de la organizacion que pertenece el usuario : String (ID de organización). typeDocument (Tipo de Documento): String (ID de tipo de documento). numbers (Números): Objeto con valores numéricos y de cadena para sumas y totales. expenseLine String (ID de linea asociada al expense). Ejemplo: "5e3dc88c7e0a6171a7ff0a18". expense String (ID de expense asociado). Ejemplo: "6e3dc88c7e0a6171a7ff0a19". Objeto numbers en las Líneas del Documento ( lines ) Dentro de cada línea del documento, el objeto numbers contiene información detallada y crucial sobre aspectos financieros de esa línea específica. Los componentes de este objeto incluyen: price : Representa el precio unitario del ítem o servicio en la línea. Contiene dos campos: value (una cadena de texto que muestra el precio con formato, por ejemplo, "$1200.00") y number (un número que representa el valor real, como 1200). amount1 : Indica la cantidad del ítem o servicio. Al igual que price , tiene un campo value para la representación en texto (ej. "1") y un campo number para el valor numérico (ej. 1). dscto (descuento): Muestra cualquier descuento aplicado. Tiene la misma estructura que price , con value como el descuento formateado (ej. "$0.00") y number para el valor numérico del descuento (ej. 0). sumPrice : Es la suma del precio de este ítem o servicio, teniendo en cuenta la cantidad y el descuento. Nuevamente, incluye value y number para mostrar el total formateado y numérico respectivamente. total : Representa el total final para esta línea, incluyendo cualquier impuesto o cargo adicional. Mantiene la estructura de value y number para mostrar el total formateado y su equivalente numérico. Objeto numbers para el Documento Completo A nivel del documento, el objeto numbers proporciona un resumen financiero general. Los campos clave en este objeto incluyen: sumPriceNet : Es la suma total neta de todos los precios de las líneas del documento, excluyendo impuestos y descuentos. Incluye los campos value para mostrar la suma neta formateada (ej. "$11970.00") y number para el valor numérico total (11970). sumPriceExempt : Indica el total de precios exentos de impuestos en el documento. Sigue la misma estructura de value y number , representando el total exento tanto en formato como en valor numérico. sumPriceGross : Representa la suma bruta, que incluye todos los precios más impuestos y cargos adicionales. Al igual que los campos anteriores, se presenta en formato de texto y numérico. totalPaid : Muestra el monto total ya pagado en relación con el documento. Este campo es crucial para entender los pagos realizados hasta la fecha y sigue la estructura habitual de value y number . Cada uno de estos campos es vital para entender la estructura financiera del documento, desde el detalle de cada línea hasta el resumen completo del documento. Es importante asegurarse de que los datos ingresados en estos campos sean precisos y cumplan con los formatos requeridos, para garantizar la integridad y la claridad de la información financiera del documento. • [Save document aws](https://app.theneo.io/una/ubapp-api/documents/save-document-aws.md): Endpoint para guardar documento tipo imagen en el servidor. Se requiere: File (type file) Token de acceso ID de documento Tipos de archivos aceptados: JPG JPGE PNG La url donde esta guardado el archivo tiene este formato: /users/"IdUser"/documents/"nombreDelDocumento" • [Get document by expense](https://app.theneo.io/una/ubapp-api/documents/get-document-by-expense.md): Endpoint que devuelve documents segun ID de expense: Para el endpoint que devuelve documents segun su ID de expense, es necesario incluir ciertos parámetros en la consulta (query) de la siguiente manera: organization (Organización): Este parámetro es obligatorio y su tipo es string . Debe ser un identificador que represente la organización cuyo gasto estás consultando. expenseId (Organización): Este parámetro es obligatorio y su tipo es string . Debe ser un identificador que represente el expense del cual se esta consultando. • [Update document](https://app.theneo.io/una/ubapp-api/documents/update-document.md): Endpoint para actualizar un documento. Se requiere: Token de acceso ID de documento • [Delete document](https://app.theneo.io/una/ubapp-api/documents/delete-document.md): Endpoint para eliminar un documento. Se requiere: Token de acceso ID de documento • [Types of documents](https://app.theneo.io/una/ubapp-api/types-of-documents.md): Rutas para: Listado de documentos segun código de moneda • [List](https://app.theneo.io/una/ubapp-api/types-of-documents/list-2.md): Endpoint que devuelve un array con el listado de tipos de documentos según el código de moneda enviado por la query • [Taxes](https://app.theneo.io/una/ubapp-api/taxes.md): Rutas para: Listado de impuestos • [List](https://app.theneo.io/una/ubapp-api/taxes/list-4.md): Endpoint que devuelve un array con el listado de impuestos. • [Countries](https://app.theneo.io/una/ubapp-api/countries.md): Rutas para Listado de paises • [List](https://app.theneo.io/una/ubapp-api/countries/list-6.md): Endpoint que devuelve un array con el listado de países • [Organizations](https://app.theneo.io/una/ubapp-api/organizations.md): Rutas para: Listado de organizaciones • [List](https://app.theneo.io/una/ubapp-api/organizations/list-8.md): Endpoint que devuelve un array con el listado de organizaciones • [Currencies](https://app.theneo.io/una/ubapp-api/currencies.md): Rutas para: Listado de monedas • [List](https://app.theneo.io/una/ubapp-api/currencies/list-5.md): Endpoint que devuelve un array con el listado de monedas • [Roles](https://app.theneo.io/una/ubapp-api/roles.md): Rutas para: Listado de roles • [List](https://app.theneo.io/una/ubapp-api/roles/list-7.md): Endpoint que devuelve un array con el listado de roles los cuales tiene relacion con los usuarios mediante su ID • [Lines](https://app.theneo.io/una/ubapp-api/lines.md) • [Create Line](https://app.theneo.io/una/ubapp-api/lines/create-line.md): Endpoint para crear lineas, ya sean lineas simples, grupos o sub-grupos. Campos requeridos: income name Se pueden añadir los demás campos como numbers, parent, parents, etc. Requiere token de autenticación ( access_token ). Además si no existe un ítem asociado al nombre de la linea se creará un ítem para el catálogo. • [Update Line](https://app.theneo.io/una/ubapp-api/lines/update-line.md): Endpoint para actualiza cualquier campo de una linea, ya sean lineas simples, grupos o sub-grupos. Campos requeridos _id income name Se pueden añadir los demás campos como numbers, parent, parents, etc. Requiere token de autenticación ( access_token ). Además si no existe un ítem asociado al nombre de la linea se creará un ítem para el catálogo. • [Get all lines (sin paginate)](https://app.theneo.io/una/ubapp-api/lines/get-all-lines-sin-paginate.md): Endpoint para obtener todas las lineas de un income sin paginación. income isSurcharge Requiere token de autenticación ( access_token ). IsSurcharge es para traer sólo lineas de sobrecargos que se ubican en los totales. Sino se envia el campo se considera que será false. • [Get all lines (con paginate)](https://app.theneo.io/una/ubapp-api/lines/get-all-lines-con-paginate.md): Endpoint para obtener todas las lineas de un income con paginación. income isSurcharge limit page Requiere token de autenticación ( access_token ). IsSurcharge es para traer sólo lineas de sobrecargos que se ubican en los totales. Sino se envia el campo se considera que será false. • [Delete Many Lines](https://app.theneo.io/una/ubapp-api/lines/delete-many-lines.md): Endpoint para eliminar multilples lineas mandando un arrays de ids de las mismas. Campos necesarios: lines Requiere token de autenticación ( access_token ). • [Projects](https://app.theneo.io/una/ubapp-api/projects.md) • [Bysimplename](https://app.theneo.io/una/ubapp-api/projects/bysimplename.md): Endpoint para obtener proyecto por nombre simple. Campos (*) Indica que el campo es Obligatorio name * limit page • [Byname](https://app.theneo.io/una/ubapp-api/projects/projects-byname.md): Endpoint que permite buscar un proyecto por su nombre. Campos . (*) Campo(s) Obligatorio(s) name * state limit page • [Get projects all](https://app.theneo.io/una/ubapp-api/projects/get-projects-all.md): Endpoint para obtener todos los proyectos del usuario. No contiene campos obligatorios(*) limit type page • [Projects movements](https://app.theneo.io/una/ubapp-api/projects/projects-movements.md): Endpoint para obtener todos los movimientos por proyecto. Campo(s) requerido(s) (*). limit type page project * • [Projects id](https://app.theneo.io/una/ubapp-api/projects/projects-id.md): Endpoint para obtener proyectos por id. (Identificador único) Campo(s) Requeridos id (*) • [Archivemany](https://app.theneo.io/una/ubapp-api/projects/archivemany.md): Endpoint para archivar multiples proyectos. (archiva para eliminar). Campo(s) Obligatorio(s) (*) projects * Requiere un Array Un array es como un nro "n" veces, esta vez un nro "n" de Id, en otras palabras puede contener muchos id´s (identificadores). • [Update](https://app.theneo.io/una/ubapp-api/projects/update.md): Endpoint para actualizar nombre de un Proyecto. Lista de Campos Campos requeridos (*) name * _id * executive * contact * client * • [Incomes](https://app.theneo.io/una/ubapp-api/incomes.md) • [Create](https://app.theneo.io/una/ubapp-api/incomes/create-2.md): Endopint para crear Income y un Proyecto (Sino se manda el id del mismo). Campos Requeridos (*) name * projectName projectId executive client contact state * organization Requiere token de autenticación (acces_token). • [All](https://app.theneo.io/una/ubapp-api/incomes/all.md): Endpoint para obtener todos los Incomes de los usuarios. No hay campos requeridos. (*) limit state page • [Numbers total](https://app.theneo.io/una/ubapp-api/incomes/numbers-total.md): Endpoint para obtener la cantidad total de proyectos. No es un campo Obligatorio (*). project • [byname](https://app.theneo.io/una/ubapp-api/incomes/byname.md): Endpoint para obtener por nombres. Campos name * state limit page • [Update](https://app.theneo.io/una/ubapp-api/incomes/update-1.md): Endpoint para actualizar un Income Lista de campos Campos Obligatorios (*) name * _id * executive * contact * client *