API YiQi
La especificación vigente está publicada en el portal oficial de API. Esta página explica cómo orientarse allí y muestra únicamente rutas compatibles con el catálogo OpenAPI publicado.
Importante:
apidoc.yiqi.com.ares el portal de documentación y Swagger. No es la base URL para ejecutar requests.
Bases URL oficiales
| Uso | Base URL |
|---|---|
| Seguridad y autenticación | https://api.yiqi.com.ar |
| Módulos ERP | https://api.yiqi.com.ar/api/public |
| Portal Swagger y catálogo | https://apidoc.yiqi.com.ar/ |
El catálogo machine-readable de módulos está disponible en modules.json.
Recorrido recomendado
- Obtener un token desde el módulo Seguridad.
- Ejecutar
GetLoginInformationcomo healthcheck posterior al login. - Tomar
schemaIdde esa respuesta.GetAvailablesirve como complemento cuando el usuario tiene acceso a más de un esquema. - Elegir el módulo que corresponda y abrir su Swagger desde el índice oficial.
- Expandir la operación concreta y validar allí parámetros obligatorios, body y respuesta.
Autenticación
La operación oficial es:
POST https://api.yiqi.com.ar/token
Content-Type: application/x-www-form-urlencoded
El formulario requiere username, password y grant_type=password.
curl -X POST "https://api.yiqi.com.ar/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode "username=usuario@ejemplo.com" \
--data-urlencode "password=SU_CONTRASEÑA" \
--data-urlencode "grant_type=password"
La respuesta exitosa contiene un access_token, un token_type y la expiración. En las operaciones siguientes se envía:
Authorization: Bearer {ACCESS_TOKEN}
Actualmente no hay refresh token documentado: cuando vence el token, se vuelve a autenticar con /token.
Obtener información de sesión y esquemas
Una vez autenticado:
GET https://api.yiqi.com.ar/api/accountapi/GetLoginInformation
GET https://api.yiqi.com.ar/api/schemasapi/GetAvailable
Ambas operaciones usan el header Authorization. Usá GetLoginInformation como fuente primaria del schemaId para las consultas posteriores.
Patrón de endpoints por entidad
Los módulos ERP publican sus rutas bajo https://api.yiqi.com.ar/api/public y usan el nombre técnico de la entidad, normalmente en mayúsculas. Por ejemplo, para FACTURA:
GET https://api.yiqi.com.ar/api/public/FACTURA/search
POST https://api.yiqi.com.ar/api/public/FACTURA/query
GET https://api.yiqi.com.ar/api/public/FACTURA/smartie
POST https://api.yiqi.com.ar/api/public/FACTURA
GET https://api.yiqi.com.ar/api/public/FACTURA/{id}
PUT https://api.yiqi.com.ar/api/public/FACTURA/{id}
DELETE https://api.yiqi.com.ar/api/public/FACTURA/{id}
POST https://api.yiqi.com.ar/api/public/FACTURA/changestate
GET https://api.yiqi.com.ar/api/public/FACTURA/file
PUT https://api.yiqi.com.ar/api/public/FACTURA/file
GET https://api.yiqi.com.ar/api/public/FACTURA/report
Estas rutas son un patrón documentado, no una garantía de que todas las operaciones existan para todas las entidades. El Swagger de cada módulo es la autoridad: algunas entidades no exponen changestate, file, report o determinadas operaciones de escritura.
Listados: search, query y smartie
/search: búsqueda rápida con filtros de la entidad; puede limitar la cantidad de resultados, por ejemplo a 50./query: consulta dinámica para listados productivos, integraciones y sincronizaciones. Permite controlar paginado, filtros y columnas según el contrato de la entidad./smartie: vista guardada/paginada. El Swagger de la entidad indica sus parámetros, normalmentesmartieId,schemaId,pagey, cuando corresponde,search.
Para alto volumen, la documentación oficial recomienda preferir /query y pedir solamente las columnas necesarias. Para smartie, comenzar en page=1 e incrementar de a una página.
Ejemplo validado de Smartie
El ejemplo siguiente muestra el formato general de una operación publicada para una entidad; reemplazá FACTURA por una entidad y un smartieId disponibles en su Swagger:
curl -X GET "https://api.yiqi.com.ar/api/public/FACTURA/smartie?schemaId={SCHEMA_ID}&smartieId={SMARTIE_ID}&page=1" \
-H "Authorization: Bearer {ACCESS_TOKEN}"
No se deben inventar nombres de entidades, smartieId, filtros ni campos de respuesta. Esos valores dependen de la especificación OpenAPI del módulo y del esquema consultado.
Archivos, reportes y estados
Cuando el Swagger de una entidad los expone:
/fileusaattributeName,instanceIdyschemaId; los métodos permitidos y elcontentTypese detallan en la operación./reportusareportName,instanceIdyschemaId; los nombres válidos dependen de la entidad./changestateusaid,schemaIdystate; los estados válidos dependen de la entidad.
Buenas prácticas de consumo
- Obtener primero
schemaIddesdeGetLoginInformation. - Preferir
/querypara procesos recurrentes, batch o exportaciones grandes. - En Smarties, ordenar por fecha de modificación descendente cuando el reporte lo permita.
- Detener el paginado al alcanzar la última fecha ya sincronizada, evitando recorrer histórico innecesariamente.
- Usar una cuenta técnica con los permisos mínimos necesarios.
- Registrar request y respuesta sin guardar credenciales ni tokens.
Diagnóstico
Ante un error, conservar:
- operación y URL exacta;
- módulo y entidad técnica;
schemaIdysmartieIdutilizados, si aplica;- código y cuerpo de respuesta;
- cURL sanitizado, sin contraseña ni token.
Primero verificá el contrato de la operación en el Swagger oficial. Si una ruta aparece en una guía antigua pero no aparece en el Swagger del módulo, debe considerarse no confirmada y no utilizarse como integración.