QuickBooks Online se conecta por OAuth2 de Intuit. Tiene la mejor noticia de todas las integraciones de Boris: una sandbox gratuita y completa, con una empresa de prueba real donde podés facturar sin miedo.

1. Crear la app en Intuit

  1. Entrá a developer.intuit.com y creá una cuenta de desarrollador.
  2. My Apps → Create an app → QuickBooks Online and Payments, con el scope Accounting.
  3. En Keys & credentials vas a ver dos juegos de claves: Development (sandbox) y Production. Empezá por las de Development.
  4. Añadí como Redirect URI exactamente la URL que Boris te muestra.

2. Autorizar

Pegá el Client ID y el Client Secret en Boris, dejá el entorno en Sandbox, guardá y pulsá Autorizar con QuickBooks. Elegí la empresa sandbox que Intuit te creó automáticamente.

En la vuelta, Intuit manda un parámetro realmId: es el identificador de la empresa y va en la URL de todas las llamadas. Boris lo guarda solo; si autorizás sin elegir empresa, la conexión falla con un mensaje que lo explica.

3. Elegir artículo e impuesto

Acá está la diferencia grande con Xero: QuickBooks no acepta líneas de factura contra una cuenta, exige un Item (artículo). No hay forma de saltárselo.

  1. Pulsá Importar cuentas e impuestos: Boris lista los artículos de tipo Service de tu empresa.
  2. Copiá el id del artículo con el que facturás el coworking en Default service item id. Si no tenés uno, creálo en QuickBooks (Sales → Products and services → New → Service) y volvé a importar.
  3. Código de impuesto: el id del TaxCode. En empresas de EE. UU. suele ser TAX o NON; fuera de EE. UU. es un id numérico que verás en la tabla.
  4. Cuenta de depósito (opcional): dónde caen los cobros. Vacío = la cuenta por defecto de QuickBooks (Undeposited Funds).

Qué hace Boris dentro de QuickBooks

  • Busca el cliente con el lenguaje de consulta de Intuit (select Id from Customer where DisplayName = '...') y solo crea si no existe (POST /customer).
  • Crea la factura con POST /invoice, con tu número en DocNumber y una línea SalesItemLineDetail por cada línea de Boris.
  • Las notas de crédito van a POST /creditmemo.
  • Los cobros van a POST /payment, enlazados a la factura con LinkedTxn.
  • Todas las llamadas llevan minorversion, que fija qué campos acepta la API.

Cosas a tener en cuenta

  • DisplayName es único por empresa. Si ya tenés un cliente con ese nombre, Boris reutiliza el existente en vez de fallar con el error 6240.
  • DocNumber admite 21 caracteres. Los números de Boris más largos se recortan.
  • El refresh token dura unos 100 días y rota en cada uso. Como en Xero, un espacio inactivo tiene que reconectar.
  • Cuando pases a producción, acordate de cambiar las claves y el entorno: las de Development no funcionan contra una empresa real, y viceversa.

Cómo probarlo sin riesgo

La sandbox de Intuit es una empresa QuickBooks completa y gratuita, con plan contable, artículos e impuestos ya cargados. Podés emitir facturas de prueba, verlas en la interfaz de QuickBooks y borrarlas, sin tocar nada real. Es el camino recomendado para la primera integración: probá ahí, y recién después cambiá las claves a producción.

  1. Open the relevant screen Go to the section where this feature is configured.
  2. Review the required fields Fill in the data that Boris asks for in that screen.
  3. Save and verify Save the changes and check that the feature works as expected.