Conectar Xero: recibir pedidos, clientes, facturas y productos, consultar inventario
Complete el flujo OAuth2 de su app en developer.xero.com con los tres alcances de lectura, copie el Tenant ID de la lista de conexiones, pegue ambos valores en Integration, pruebe, mapee y active.
El conector de Xero trae pedidos, clientes, facturas y productos de su organización de Xero a este sistema, puede devolver clientes, productos y facturas a Xero y puede consultar cantidades de inventario mediante los Items de Xero. No devuelve cambios de inventario a Xero: en esta conexión el inventario es de solo lectura. Una conexión es para una organización de Xero, identificada por su Tenant ID.
Requisitos previos#
- Una organización de Xero a la que pueda acceder y una app registrada para ella en developer.xero.com.
- Puede completar el flujo OAuth2 de esa app en developer.xero.com y conceder los tres alcances de lectura: accounting.transactions.read, accounting.contacts.read y accounting.settings.read. Un token al que le falte cualquiera de ellos fallará la prueba o las extracciones.
- Sabe para qué organización es la conexión. El Tenant ID es el ID de la organización, no el ID de la app: son dos valores distintos y no son intercambiables.
Obtener credenciales#
- Vaya a developer.xero.com, abra su app y complete el flujo OAuth2. Cuando Xero pida alcances, incluya al menos accounting.transactions.read, accounting.contacts.read y accounting.settings.read.
- Copie el access token que devuelve el flujo OAuth2. Ese token es lo que se pega en Integration: no hay una API key separada que crear para esta conexión.
- Obtenga el Tenant ID de su organización de una de estas dos formas: llame a GET https://api.xero.com/connections con el access token y copie el tenantId de su organización de la respuesta; o abra developer.xero.com → su app → connections y lea el tenantId que se muestra allí.
Completar en Integration#
- Abra Integration → Marketplace → Xero → Nueva conexión.
- tenant_id, obligatorio, Tenant ID (Organisation): pegue el tenantId de su organización, con la forma xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Es el ID de la organización de la lista de conexiones, no el ID de la app.
- access_token, obligatorio, Access token: pegue completo el access token devuelto por el flujo OAuth2. Es un campo de tipo contraseña y se guarda como secreto. Asegúrese de que el token se concedió con accounting.transactions.read, accounting.contacts.read y accounting.settings.read.
Probar la conexión#
Haga clic en Probar la conexión. La prueba envía una solicitud real a GET https://api.xero.com/api.xro/2.0/Organisation con dos encabezados: Authorization: Bearer seguido de su access token, y xero-tenant-id con su tenant_id. Una respuesta 200 cuenta como aprobado, y el resultado muestra el nombre de la organización que devolvió Xero, para que confirme que es la organización deseada. Un 401 significa que el token no es válido o caducó; un 403 significa que el token no tiene alcance suficiente. Si falta tenant_id o access_token, la prueba se detiene antes de enviar nada, porque ambos valores son necesarios para esta sonda. La sonda agota el tiempo a los 12 segundos.
Mapping / elegir plantilla#
Elija el mapping estándar de Xero. Pedidos, clientes y facturas siguen los registros estándar de Xero Accounting, y productos y consultas de inventario siguen los Items de Xero. Tras aprobar la prueba, ejecute una extracción y compare un pedido real lado a lado (número, cliente, líneas e importes), revise una factura y un producto de la misma forma y contraste la cantidad de un item con lo que muestra Xero, antes de activar.
Activar#
Tras activar, la conexión trae pedidos, clientes, facturas y productos de la organización de Xero indicada por su tenant_id según la frecuencia definida, devuelve clientes, productos y facturas a Xero cuando esos flujos se ejecutan, y lee las cantidades de inventario de los Items de Xero al consultar el inventario. Vigile las primeras ejecuciones en Runs / Logs y compárelas con Xero antes de dejar la conexión sin supervisión.
Lo que esta conexión no hace: no devuelve cambios de inventario a Xero. Las cantidades de los Items de Xero se leen solo para consulta, así que los ajustes de stock deben seguir haciéndose en el propio Xero o en el sistema donde el ajuste ocurre realmente.
Preguntas frecuentes#
La prueba falla con 401: token no válido o caducado
Xero rechazó el propio access token: es incorrecto, está incompleto o ya no es válido. En este caso la sonda de organización ni siquiera supera la autenticación, así que el tenant_id no es lo primero que hay que revisar.
Vuelva a developer.xero.com → su app, complete de nuevo el flujo OAuth2, copie el nuevo access token completo en el campo access_token y pruebe de nuevo.
La prueba falla con 403: el alcance no alcanza
El token fue aceptado, pero no se le concedieron los alcances de lectura que esta conexión necesita. Los tres requeridos son accounting.transactions.read, accounting.contacts.read y accounting.settings.read: que falte cualquiera de ellos puede producir este resultado.
Repita el flujo OAuth2 en developer.xero.com para su app y conceda esta vez los tres alcances, pegue el nuevo access token en Integration y pruebe de nuevo. No se limite a pegar otra vez el token anterior: sus alcances no cambian.
El token es correcto, pero la prueba sigue fallando: organización equivocada
El tenant_id no pertenece a la organización para la que se autorizó el token. La sonda envía su tenant_id en el encabezado xero-tenant-id y Xero responde solo por esa organización: un token válido combinado con el ID de otra organización falla aquí, y el nombre de la organización en un resultado correcto es la comprobación de que eligió la adecuada.
Vuelva a copiar el tenantId de la organización deseada: llame a GET https://api.xero.com/connections con el access token y elija el tenantId de esa organización en la respuesta, o léalo en developer.xero.com → su app → connections. Reemplace tenant_id, guarde y pruebe de nuevo; después confirme que el nombre de la organización mostrado coincide.
La prueba se detiene antes de enviar: falta un valor obligatorio
tenant_id o access_token está vacío. La sonda de organización necesita ambos: el token para el encabezado Authorization y el tenant_id para el encabezado xero-tenant-id, así que la prueba se detiene en lugar de enviar una solicitud que no puede tener éxito.
Complete ambos campos según el paso de completar en Integration (tenant_id de la lista de conexiones y access_token pegado completo), guarde y pruebe de nuevo.
Conectado, pero las cantidades de inventario nunca cambian en Xero
Ese es el límite de esta conexión, no un fallo: el inventario se lee de los Items de Xero para consulta y los cambios de inventario no se devuelven a Xero. Pedidos, clientes, facturas y productos fluyen como se describe arriba; los niveles de stock en Xero siguen bajo el control de Xero.
Haga los ajustes de stock en el propio Xero, o en el sistema donde el ajuste ocurre realmente, y use la consulta de inventario de esta conexión para verificar las cantidades después.
La prueba agota el tiempo a los 12 segundos
La sonda de organización no recibió respuesta de Xero a tiempo. Es un problema de acceso o de respuesta en el camino a api.xero.com, no un veredicto sobre su token o su tenant_id: ninguno de los dos valores llegó a ser juzgado.
Espere un momento y vuelva a ejecutar Probar la conexión con los mismos dos valores. Si los tiempos de espera se repiten mientras otras conexiones se prueban bien, anote la hora y el mensaje exacto de Runs / Logs antes de cambiar ningún valor.