XubioCentro de ayuda

API

¿Cómo facturo con la API de Xubio?

¿Todavía no tenés credenciales? — Antes de seguir, generá tus credenciales siguiendo ¿Cómo uso la API de Xubio? y pedí tu token con ¿Cómo obtengo un access token?.

Todos los llamados van a https://xubio.com/API/1.1/ y necesitan el token que obtuviste con tus credenciales. El token dura una hora.

Qué podés hacer

Cada operación es un llamado independiente.

Crear una factura

POST /facturar  o  POST /comprobanteVentaBean

Cuál de los dos usás depende de cómo numere tu punto de venta. Queda como borrador: impacta en tu contabilidad, pero todavía no tiene validez fiscal. Ver detalle

Obtener el CAE

POST /solicitarCAE

Es la autorización de ARCA, lo que le da validez fiscal a la factura. Ver detalle

Descargar el PDF

GET /imprimirPDF

Devuelve el link para descargar el comprobante. Ver detalle

Enviarla al cliente

POST /enviarTransaccionPorMail

Se la mandás por mail con el PDF adjunto, sin salir de tu sistema. Ver detalle

Etapa 1 de 3

Preparás tu cuenta

Qué necesitás antes de empezar

Un punto de venta electrónico

Si no está marcado como electrónico, vas a poder crear la factura pero no pedirle el CAE.

La delegación ante ARCA

Te la explicamos paso a paso en ¿Cómo configuro mis facturas electrónicas en Xubio?.

Elegí cómo se numeran tus comprobantes

Tu punto de venta puede numerar de dos formas, y de eso depende con qué endpoint creás la factura.

Si tu punto de venta numera… Creás la factura con El número de comprobante
Automático POST /facturar Lo pone Xubio. No lo mandes
Manual (editable sugerido) POST /comprobanteVentaBean Lo mandás vos

El punto de venta va en cada factura que emitís, pero no hace falta que lo consultes cada vez: lo buscás una sola vez al armar la integración y te guardás su id.

GET /API/1.1/puntoVentaBean
curl "https://xubio.com/API/1.1/puntoVentaBean" \
  -H "Authorization: Bearer TU_TOKEN"

Respuesta

[
  {
    "puntoVentaId": 4821,
    "nombre": "Ventas online",
    "codigo": "0003",
    "puntoVenta": "00003",
    "modoNumeracion": "automatico",
    "circuitoContable": { "ID": -2, "nombre": "default", "codigo": "DEFAULT" },
    "activo": 1,
    "factElectronicaConXB": 1
  }
]

modoNumeracion es el dato que define con qué endpoint vas a crear la factura, y factElectronicaConXB te dice si ese punto de venta emite factura electrónica. Los dos indicadores vienen como 1 o 0, no como true o false.

Etapa 2 de 3

Emitís la factura

Paso 1Indicá el cliente

La factura lleva el cliente en el campo cliente, que lo referencia por id, código o nombre. Tiene que existir antes: si todavía no está en tu cuenta, creálo.

POST /API/1.1/clienteBean

Son tres campos obligatorios: nombre, identificacionTributaria y categoriaFiscal.

Ver documentación de clientes

Paso 2Indicá los productos

Cada item de la factura lleva un producto dentro de transaccionProductoItems. Tiene que existir antes: si todavía no está en tu cuenta, creálo.

POST /API/1.1/ProductoVentaBean

Son cuatro campos obligatorios: nombre, codigo, cuentaContable y tasaIva.

Ver documentación de productos

Paso 3Creá la factura

El ejemplo usa el endpoint de punto de venta automático.

POST /API/1.1/facturar

El cuerpo del pedido reproduce las mismas partes que ves en la pantalla de factura de venta: el encabezado, los items, las percepciones y los instrumentos de cobro.

Ejemplo

{
  "cliente": { "nombre": "Distribuidora del Norte SA" },
  "puntoVenta": { "codigo": "0003" },
  "tipo": 1,
  "fecha": "2026-09-25",
  "condicionDePago": 2,
  "transaccionProductoItems": [
    {
      "producto": { "codigo": "SERVICIO_DE_MANTENIMIENTO_MENSUAL" },
      "cantidad": 2,
      "precio": 15000
    }
  ],
  "transaccionCobranzaItems": [
    {
      "cuentaId": -13,
      "moneda": { "codigo": "PESOS_ARGENTINOS" },
      "cotizacionMonTransaccion": 1,
      "importeMonTransaccion": 36300
    }
  ]
}

Si la condición de pago es 1 (cuenta corriente), sacá transaccionCobranzaItems y agregá fechaVto.

El encabezado

Son los datos de la cabecera de la factura: a quién le facturás, con qué punto de venta, cuándo y cómo se cobra. En el JSON van en el nivel principal, sin anidar.

Encabezado de la factura de venta en Xubio, con los campos Cliente, Punto de Venta, Comprobante, Número, Fecha, Condición de Pago y las opciones adicionales de depósito, moneda, lista de precios y vendedor

Obligatorio
Campo Formato Qué es
cliente Referencia → GET /clienteBean Un cliente que ya exista en tu cuenta
puntoVenta Referencia → GET /puntoVentaBean El punto de venta que vas a usar
tipo Número Qué comprobante emitís (ver la tabla de abajo)
fecha Fecha AAAA-MM-DD La fecha del comprobante. No puede caer en un período ya cerrado
condicionDePago Número: 1 cuenta corriente, 2 contado Cómo se cobra
fechaVto Fecha AAAA-MM-DD La fecha de vencimiento. No hace falta si la condición es contado
Opcional
Campo Formato Qué es
moneda Referencia → GET /monedaBean Si no la mandás, se usa la principal de tu cuenta
cotizacion Número decimal Si no la mandás, se toma 1
deposito Referencia → GET /depositos De dónde sale el stock
circuitoContable Referencia → GET /circuitoContableBean Si no lo mandás, se usa el genérico. Si lo mandás, tiene que coincidir con el del punto de venta
descripcion Texto, hasta 4096 caracteres Las observaciones del comprobante
externalId Texto Tu propio identificador, para relacionar la factura con tu sistema. No se puede repetir: si mandás uno ya usado, el alta se rechaza
vendedor Referencia → GET /vendedorBean Van juntos con el porcentaje: si mandás uno, tenés que mandar el otro
porcentajeComision Número decimal La comisión del vendedor
comprobante Número: el transaccionid de otro comprobante Para vincular la nota de crédito o débito con su factura
comprobanteAsociado Número: 1 por comprobante, 2 por período Qué tipo de vínculo es. Obligatorio en notas de crédito y débito

Los items

Es la grilla de productos: qué vendés, cuánto y a qué precio. Cada fila de la pantalla es un objeto dentro de transaccionProductoItems, y va al menos uno.

Grilla de items de la factura en Xubio, con las columnas Producto/Servicio, Centro de Costo, Observaciones, Cantidad, Precio, porcentaje de descuento, Importe, IVA y Total

Obligatorio
Campo Formato Qué es
producto Referencia → GET /ProductoVentaBean El producto o servicio que facturás
cantidad Número decimal Cuántas unidades
precio Número decimal El precio unitario. En una factura A va sin IVA; en una B o C, Xubio lo toma con el IVA ya incluido
Opcional
Campo Formato Qué es
porcentajeDescuento Número decimal El descuento de esa fila
montoExento Número decimal La parte del importe que no paga IVA. Sobre un producto gravado no tiene efecto: Xubio lo guarda en 0 y no cambia el total
centroDeCosto Referencia → GET /centroDeCostoBean A qué centro de costo se imputa

El importe, el IVA y el total no se mandan: los calcula Xubio a partir de la cantidad, el precio y la alícuota configurada en el producto.

El depósito no se define por fila: el item toma siempre el deposito del encabezado. Si mandás uno distinto adentro del item, la respuesta te lo devuelve pero el comprobante queda guardado con el del encabezado.

Percepciones e impuestos

Son las percepciones que se suman al comprobante. Cada fila es un objeto dentro de transaccionPercepcionItems, y toda la sección es opcional.

Sección de percepciones e impuestos de la factura en Xubio, con las columnas Percepción/Impuesto, Observaciones e Importe

Campos de cada item
Campo Formato Qué es
percepcionImpuesto Referencia → GET /percepcionBean Qué percepción aplicás
importe Número decimal El monto de la percepción
descripcion Texto Las observaciones de esa fila

En el listado de GET /percepcionBean el identificador viene en percepcionId. Para referenciarlo desde la factura mandalo como { "ID": -55 }, o usá el código de la percepción.

Ejemplo

"transaccionPercepcionItems": [
  {
    "percepcionImpuesto": { "ID": -55 },
    "importe": 900,
    "descripcion": "Percepción IIBB CABA"
  }
]

La percepción se suma al total del comprobante. Si la factura es al contado, el cobro tiene que cubrir ese total con la percepción incluida.

Los instrumentos de cobro

Es con qué te pagan. Solo va si la condición de pago es contado, y cada fila es un objeto dentro de transaccionCobranzaItems. El total de los cobros tiene que coincidir exactamente con el total del comprobante, con el IVA y las percepciones incluidas. Si no coincide, el alta se rechaza con el detalle de la diferencia: Suma del Debe: 20000.00. Suma del Haber: 30000.00, Diferencia: 10000.00.

Sección de instrumentos de cobro de la factura en Xubio, con las columnas Tipo de Cuenta, Cuenta, Moneda, Cotización, Importe, Nro. Cheque, Vto. Cheque, Banco y Descripción

Obligatorio
Campo Formato Qué es
cuentaId Número: el id de la cuenta → GET /cuenta Con qué cobraste: caja, banco, valores a depositar
moneda Referencia → GET /monedaBean La moneda del cobro. Tiene que coincidir con la del comprobante
cotizacionMonTransaccion Número decimal La cotización del cobro. Tiene que coincidir con la del comprobante. Si trabajás en pesos, mandá 1
importeMonTransaccion Número decimal El importe en la moneda del comprobante
Opcional
Campo Formato Qué es
importeMonPrincipal Número decimal El mismo importe en la moneda principal de tu cuenta. Si no lo mandás, Xubio lo calcula con la cotización
banco Referencia → GET /banco Solo para cobros con cheque
numeroCheque Texto El número del cheque
fechaVto Fecha AAAA-MM-DD El vencimiento del cheque
descripcion Texto Detalle libre del cobro

Los cuatro campos del cheque quedan guardados en el comprobante y los recuperás con GET /comprobanteVentaBean/{transaccionid}.

Ejemplo

"transaccionCobranzaItems": [
  {
    "cuentaId": -2,
    "moneda": { "codigo": "PESOS_ARGENTINOS" },
    "cotizacionMonTransaccion": 1,
    "importeMonTransaccion": 36300,
    "banco": { "codigo": "BANCO_BICA" },
    "numeroCheque": "12345678",
    "fechaVto": "2026-11-30",
    "descripcion": "Cheque a 60 días"
  }
]

Si la moneda o la cotización del cobro no son las del comprobante, el alta se rechaza con Todos los items de cobro deben tener la misma moneda y cotización que la factura.

Tipos de comprobante

Valor Comprobante
1 Factura
2 Nota de débito
3 Nota de crédito
4 Informe diario de cierre Z
6 Recibo

Respuesta

Te devuelve el mismo comprobante que mandaste, más el transaccionid y el numeroDocumento que asignó Xubio. Los campos que no mandaste y quedaron con su valor por defecto, como el circuito contable, también vuelven completos.

{
  "transaccionid": 101224258,
  "numeroDocumento": "A-00003-00001547",
  "fecha": "2026-09-25",
  "condicionDePago": 2,
  "tipo": 1,
  "cliente": { "ID": 13103455, "id": 13103455 },
  "puntoVenta": { "ID": 4821, "codigo": "0003", "id": 4821 },
  "circuitoContable": { "ID": -2, "id": -2 },
  "transaccionProductoItems": [
    {
      "producto": { "ID": 3529585, "codigo": "SERVICIO_DE_MANTENIMIENTO_MENSUAL", "id": 3529585 },
      "cantidad": 2,
      "precio": 15000
    }
  ],
  "transaccionCobranzaItems": [
    {
      "cuentaId": -13,
      "moneda": { "ID": -2, "codigo": "PESOS_ARGENTINOS", "id": -2 },
      "cotizacionMonTransaccion": 1,
      "importeMonTransaccion": 36300,
      "importeMonPrincipal": 36300
    }
  ],
  "tienePeriodoServicio": false
}

Guardá el transaccionid: lo vas a necesitar en el paso siguiente.

Tené en cuenta que la respuesta no trae los importes calculados —total, gravado ni impuestos— ni el CAE. Para eso, consultá el comprobante con GET /API/1.1/comprobanteVentaBean/{transaccionid}.

Todavía es un borrador — Este llamado no consulta a ARCA. La factura queda registrada en Xubio y ya impacta en tu contabilidad, pero no tiene validez fiscal: la obtiene recién cuando ARCA le otorga el CAE.

Paso 4Pedí el CAE

POST /API/1.1/solicitarCAE

Ejemplo

{
  "transaccionId": 98432
}

Obligatorio: transaccionId o externalId.

Si ARCA autoriza el comprobante, recibís el CAE y su fecha de vencimiento:

Respuesta

{
  "cae": "75318294016523",
  "caeFechaVto": "2026-10-05",
  "transaccionId": 98432
}

Listo: la factura quedó emitida y autorizada.

Etapa 3 de 3

Trabajás con la factura emitida

Obtené el PDF

GET /API/1.1/imprimirPDF?idtransaccion=98432&tipoimpresion=1

Obligatorio: idtransaccion y tipoimpresion, que va del 1 al 5 y tiene que existir para ese tipo de comprobante. No hay parámetros opcionales.

Respuesta

{
  "urlPdf": "https://xubio.com/NXV/ImprimirPdf?transaccionid=98432&tenant=tnt_000000&tipoimpresion=1"
}

No devuelve el archivo: devuelve el link de descarga en el campo urlPdf.

Enviá el comprobante por mail

POST /API/1.1/enviarTransaccionPorMail

Ejemplo

{
  "transaccionId": 98432,
  "para": "administracion@distribuidoradelnorte.com",
  "asunto": "Factura A-00003-00001547",
  "cuerpo": "Te adjuntamos la factura correspondiente a tu compra."
}

Obligatorio: transaccionId, y al menos una dirección de destino.

Opcional: para, copia y copiaOculta (separadas por punto y coma, hasta cinco por campo), asunto, cuerpo y la marca para adjuntar el certificado de retención.

Tres cosas a tener en cuenta: el mail del cliente no se toma automáticamente, tenés que mandarlo siempre; el PDF se adjunta solo, con el formato por defecto del comprobante; y la respuesta confirma que recibimos el pedido, no que el mail haya llegado.

Emití una nota de crédito

No hay un endpoint aparte: se usa el mismo de la factura. El cuerpo es igual al del Paso 3 —cliente, punto de venta, fecha, condición de pago e items— y cambian solo estos tres campos.

Ejemplo

{
  "tipo": 3,
  "comprobante": 98432,
  "comprobanteAsociado": 1
}

comprobante es el transaccionid de la factura original y comprobanteAsociado indica el tipo de vínculo: 1 por comprobante, 2 por período.

De los dos, el que no podés omitir es comprobanteAsociado: sin él el alta se rechaza con El campo comprobanteAsociado debe contener el valor 1 (comprobante) o 2 (período). Si elegís por período, sumá también fechaDesde y fechaHasta.

El cliente de la nota de crédito tiene que ser el mismo que el de la factura original. Si no coincide, el alta se rechaza con El ID cliente del comprobante creado debe coincidir con el ID cliente del comprobante asociado.

Después pedile el CAE igual que a cualquier comprobante.

Preguntas frecuentes

¿Las facturas que emito por API consumen mi cupo mensual de comprobantes?
Sí. Una factura emitida por API consume el mismo cupo que una hecha a mano desde la aplicación. No hay un cupo aparte para integraciones.
¿Hay un límite de llamados?
Podés hacer hasta 50 llamados simultáneos con el mismo token. Si los superás, recibís un error "Too many requests". Es un límite de simultaneidad, no de volumen: no hay tope por minuto, por hora ni por día.
¿Puedo modificar o eliminar un cliente o un producto?
Sí, los dos admiten consulta, modificación y baja. Recordá que al modificar un cliente los campos que no mandes quedan en blanco, así que mandalo siempre completo.
¿Puedo facturar en moneda extranjera?
Sí, siempre que tu plan incluya multimoneda. Si no mandás la moneda se usa la principal de tu cuenta, y si no mandás la cotización se toma 1. Tené en cuenta que ARCA rechaza los comprobantes cuya cotización supere el tipo de cambio del Banco Nación.
¿Necesito saber programar para usar la API?
Sí. Integrar tu sistema con la API requiere desarrollo, así que lo mejor es que lo trabajes con un programador. Si solo querés automatizar tus ventas online, fijate primero si te sirve alguna de nuestras integraciones con Tiendanube, Mercado Libre o Mercado Pago, que no necesitan desarrollo.