Saltar al contenido principal

Recibos electrónicos

Un E-Receipt es la versión digital de un ticket o nota de venta. Es un comprobante de pago que puedes darle a tu cliente sin solicitarle sus datos fiscales. Dicho comprobante incluye toda la información de la venta con el propósito de que pueda facturarse si el cliente lo solicita y también para incluirse dentro de una factura global.

Al crear un e-receipt en Facturapi, tus clientes tendrán acceso a un sitio web a donde podrán llenar sus datos fiscales y descargar su factura (portal de autofactura).

También puedes crear una factura global al final del mes que incluya todos aquellos recibos que no fueron facturados.

Crear un recibo

Para ver las descripciones de todos los parámetros, consulta la referencia completa del método Crear Recibo.

Opcionalmente, puedes asociar un cliente al recibo enviando el campo customer (ya sea el ID de un cliente existente o el objeto del cliente para crearlo).

const facturapi = new Facturapi('sk_test_API_KEY');
const receipt = await facturapi.receipts.create({
folio_number: 1234,
payment_form: Facturapi.PaymentForm.DINERO_ELECTRONICO,
items: [{
quantity: 1,
product: {
description: 'Ukelele',
product_key: '60131324',
price: 345.60,
sku: 'ABC1234'
}
}]
});

Cliente asociado al recibo

Un recibo puede existir sin cliente asociado. Ese estado significa que el destino de facturación todavía no está decidido.

Puedes asociar un cliente al recibo desde el método Crear Recibo, enviando el campo customer, o después con Asignar o reasignar cliente a recibo. En ambos casos puedes enviar el ID de un cliente existente o un objeto para crear uno nuevo.

curl https://www.facturapi.io/v2/receipts/58e93bd8e86eb318b019743d \
-H "Authorization: Bearer sk_test_API_KEY" \
-H "Content-Type: application/json" \
-X PUT \
-d '{
"customer": "58e93bd8e86eb318b0197456"
}'

Portal de Autofactura

Cuando creas un e-receipt, tienes la opción de enviarlo por correo electrónico a tu cliente. En el correo se incluye un enlace a un portal de autofactura donde tu cliente podrá llenar sus datos fiscales y descargar su factura.

Para más información consulta el artículo de Autofactura.

Formas de facturar recibos

Los recibos abiertos pueden facturarse a un cliente específico o incluirse en una factura global a PUBLICO EN GENERAL.

  • Facturar un recibo crea una factura para un solo recibo. Si envías customer, ese cliente se usa como receptor y sobrescribe el cliente asignado previamente al recibo. Si omites customer, el recibo debe tener un cliente asignado.
  • Facturar múltiples recibos crea una factura para varios recibos seleccionados por key. Si envías customer, ese cliente se usa para todos los recibos incluidos. Si omites customer, todos los recibos deben tener asignado el mismo cliente; si hay clientes distintos o recibos sin cliente, la operación falla.
  • Vista previa PDF de factura múltiple y dry_run validan las mismas reglas de cliente que la creación real, pero no persisten cambios.
  • Factura global también agrupa múltiples recibos, pero siempre los factura al cliente genérico PUBLICO EN GENERAL. Los recibos incluidos quedan asociados a ese cliente y cambian su status a "invoiced_globally".

Facturas globales con más de 5,000 recibos

El límite de una factura global se calcula sobre los recibos abiertos incluidos, no sobre los conceptos resultantes después de agruparlos.

Si un periodo contiene más de 5,000 recibos, envía limit_to_max_receipts: true. La llamada generará una factura con hasta 5,000 recibos y dejará el resto con status = "open". Repite la misma solicitud, conservando el rango y la periodicidad originales, hasta que la API responda null. Así puedes dividir un mismo periodo entre varias facturas globales sin cambiar su información de periodicidad.

Si omites esta opción, la API devuelve global_invoice_too_many_items y no genera una factura parcial.

Automatizar las facturas globales

Las organizaciones que tienen contratado el feature de factura global pueden activar la automatización mediante Editar configuración de recibos:

{
"periodicity": "month",
"activate_global_invoice": true
}

La automatización procesa cada periodo después de que termina, según la zona horaria de la organización. Puedes cambiar periodicity para reprogramar los periodos futuros o enviar activate_global_invoice: false para pausarla. Los periodos que transcurran mientras esté desactivada no se facturan automáticamente al reactivarla.

Las tareas automáticas y programadas se pueden monitorear desde Factura global automática en el Dashboard.

Agrupar conceptos al facturar recibos seleccionados

La opción de configuración grouped_items_invoice agrupa conceptos equivalentes cuando se facturan varios recibos seleccionados, tanto desde la API como desde el portal de autofactura. No se utiliza para las facturas globales.

Facturar un recibo

Por medio del método Facturar Recibo puedes convertir un e-receipt en una factura a un cliente específico. Si el recibo ya tiene un cliente asignado, puedes omitir customer; si envías customer, ese cliente será el receptor de la factura.

const invoice = await facturapi.receipts.invoice(receipt.id, {
customer: {
legal_name: 'Roger Watters',
tax_id: 'ROWA121212A11',
email: 'roger@pinkfloyd.com'
},
folio_number: 914,
series: 'F'
});

Facturar múltiples recibos

El método Facturar múltiples recibos crea una sola factura a partir de recibos abiertos seleccionados por key.

También puedes enviar dry_run: true para validar la operación y obtener un resumen sin crear la factura, o usar la vista previa PDF.