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 facuta (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".

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.