Ir a contenido
Crea una cuenta
o
Inicia sesión
Logotipo de Stripe Docs
/
Pregúntale a la IA
Crear una cuenta
Iniciar sesión
Empieza ahora
Pagos
Ingresos
Plataformas y marketplaces
Gestión del dinero
Recursos para desarrolladores
Resumen
Billing
ResumenAcerca de las API de facturación
Suscripciones
Invoicing
    Resumen
    Cómo funciona Invoicing
    Inicio rápido de la API
    Integrar con la API
    Facturación sin programación
    Ciclo de vida de la factura
    Vista previa de facturas
    Editar facturas
    Programa la finalización de las facturas
    Transiciones de estado y finalización
    Enviar correos electrónicos a clientes
    Generar notas de crédito
    Facturar a los clientes
    Clientes
    Saldo acreedor del cliente
    Identificaciones fiscales de los clientes
    Facturar pagos
    Página de facturas alojadas
    Crea planes de pago de facturas
    Acepta pagos parciales
    Métodos de pago para las facturas
    Cobros automatizados
    Personalización de facturas
    Personalizar facturas
    Plantillas de representación de facturas
    Agrupa partidas de factura
    Resumir las partidas
    Facturación internacional
    Prácticas recomendadas
    Clientes en varias monedas
    Otras funcionalidades de facturación
    Productos y precios
    Gestiona partidas de facturas en masa
    Impuestos
Cobro por consumo
Presupuestos
Gestión de clientes
Gestión de cobros con otros productos
Recuperación de ingresos
Automatizaciones
Prueba tu integración
Impuesto
Resumen
Usa Stripe Tax
Gestiona el cumplimiento de la normativa
Elaboración de informes
Resumen
Seleccionar un informe
Configura informes
API de informes
Informes para varias cuentas
Reconocimiento de ingresos
Datos
ResumenEsquema
Informes personalizados
Data Pipeline
Gestión de datos
InicioIngresosInvoicing

Integrar con la API Invoicing

Aprende a crear y enviar una factura con código.

El Dashboard es la vía más habitual para crear facturas. Si quieres automatizar este proceso, puedes hacer la integración con la API. Diseña una integración completa y funcional con Invoicing siguiendo nuestro modelo de integración.

Nota

No es necesario que te integres con la API Payments para integrarte con la API Invoicing.

Configurar Stripe

Usa nuestras bibliotecas oficiales para acceder a la API de Stripe:

Command Line
Ruby
# Available as a gem sudo gem install stripe
Gemfile
Ruby
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Crear un producto

Para crear un producto, ingresa su nombre:

Command Line
cURL
curl https://api.stripe.com/v1/products \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d name="Gold Special"

Crear un precio

Precios define cuánto cobrar por los productos y con qué frecuencia. Esto incluye cuánto cuesta el producto, qué moneda usar y el intervalo de facturación (cuando el precio es de una suscripción). Al igual que sucede con los productos, si tienes pocos precios, es preferible gestionarlos en el Dashboard. Usa el importe unitario para expresar los precios en la unidad más baja de la moneda, en este caso, centavos (USD 10 son 1,000 centavos, por lo que el importe unitario es 1000).

Nota

Como alternativa, si no necesitas crear un precio para tu producto, puedes usar el parámetro amount durante la creación de la partida de factura.

Para crear el precio y asignarlo al producto, especifica el ID de producto, el importe unitario y la moneda. En el siguiente ejemplo, el precio del producto “Gold Special“ es de USD 10:

Command Line
cURL
curl https://api.stripe.com/v1/prices \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d product=
{{PRODUCT_ID}}
\ -d unit_amount=1000 \ -d currency=usd

Crear un cliente

El objeto Customer representa al cliente que compra el producto y es necesario para generar la factura. Para crear un cliente con name, email y description, agrega el siguiente código y reemplaza los valores por los que correspondan:

Command Line
cURL
curl https://api.stripe.com/v1/customers \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d name="Jenny Rosen" \ --data-urlencode email="jenny.rosen@example.com" \ -d description="My first customer"

Después de crear el cliente, guarda su id en tu base de datos para poder usarlo después. En el próximo paso, por ejemplo, el ID del cliente se utiliza para crear una factura.

Nota

Busca los parámetros adicionales en Crear un cliente.

Crear una factura

Establece el atributo collection_method en send_invoice. Para que Stripe marque una factura como vencida, debes agregar el parámetro days_until_due. Cuando envías una factura, Stripe se la envía al cliente por correo electrónico junto con las instrucciones de pago.

Command Line
cURL
curl https://api.stripe.com/v1/invoices \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d customer=
{{CUSTOMER_ID}}
\ -d collection_method=send_invoice \ -d days_until_due=30

A continuación, debes crear un ítem de factura indicando el id del cliente, el price del producto y la invoice del ID de la factura.

La cantidad máxima de ítems de factura es 250.

Command Line
cURL
curl https://api.stripe.com/v1/invoiceitems \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d customer=
{{CUSTOMER_ID}}
\ -d "pricing[price]"=
{{PRICE_ID}}
\ -d invoice=
{{INVOICE_ID}}

Si estableces auto_advance en false, puedes seguir modificando la factura hasta su finalización. Para finalizar una factura en borrador, usa el Dashboard, envíasela al cliente o págala. También puedes utilizar la API Finalize:

Nota

Si creaste la factura por error, puedes anularla. También puedes marcar una factura como incobrable.

Command Line
cURL
curl -X POST https://api.stripe.com/v1/invoices/
{{INVOICE_ID}}
/finalize
\ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"

Aceptar pago con factura

Envía la factura a la dirección de correo electrónico asociada al cliente. Stripe finaliza la factura tan pronto como la envías. Muchas jurisdicciones consideran las facturas finalizadas como un documento legal, por lo que algunos campos no pueden cambiarse. Si envías facturas que ya se pagaron, el correo electrónico no hará mención del pago.

Nota

Si envias facturas que ya se pagaron, el correo electrónico no hará mención del pago. Stripe envía las facturas a la dirección de correo electrónico asociada al cliente.

Command Line
cURL
curl -X POST https://api.stripe.com/v1/invoices/
{{INVOICE_ID}}
/send
\ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"

Gestionar eventos posteriores al pago

Stripe envía un evento invoice.paid cuando se completa el pago de una factura. Escucha este evento para garantizar un cumplimiento confiable. Si su integración se basa solo en una devolución de llamada del lado del cliente, el cliente podría perder la conexión antes de que se ejecute la devolución de llamada, lo que provocaría que se le cobre al cliente sin notificar a tu servidor. Si configuras tu integración para escuchar eventos asincrónicos, también podrás aceptar diferentes tipos de métodos de pago con una sola integración.

Nota

Los pagos de facturas exitosos activan tanto un evento invoice.paid como invoice.payment_succeeded. Ambos tipos de eventos contienen los mismos datos de factura, por lo que solo es necesario escuchar a uno de ellos para recibir una notificación de pagos de facturas exitosos. La diferencia es que los eventos invoice.payment_succeeded se envían para pagos de facturas exitosos, pero no se envían cuando marcas una factura como paid_out_of_band. Por otro lado, los eventos invoice.paid se activan tanto para pagos exitosos como para pagos fuera de banda. Debido a que invoice.paid cubre ambas opciones, generalmente recomendamos escuchar invoice.paid en lugar de invoice.payment_succeeded.

Utiliza la herramienta webhook del Dashboard o sigue el inicio rápido del webhook para recibir estos eventos y ejecutar acciones como, por ejemplo, enviar un correo electrónico de confirmación del pedido a tu cliente, registrar la venta en una base de datos o iniciar un flujo de envío.

Además de administrar el evento invoice.paid, recomendamos administrar otros dos eventos si se cobran pagos con el Payment Element:

EventoDescripcióncliente
payment_intent.processingSe envía cuando el cliente inició correctamente el pago, pero el pago aún no se ha completado. Este evento se envía con mayor frecuencia cuando se inicia un débito bancario. Más adelante, lo sigue un evento invoice.paid o invoice.payment_failed.Envía al cliente una confirmación del pedido que indique que el pago está pendiente. En caso de productos digitales, quizá te convenga completar el pedido antes de esperar que se complete el pago.
invoice.payment_failedSe envía cuando el cliente intentó pagar una factura, pero el pago falló.Si un pago pasó de processing a payment_failed, ofrécele al cliente otro intento de pago.

OpcionalPersonalizar una factura

Consulta también

  • Después de la finalización
  • Usa webhooks entrantes para obtener actualizaciones en tiempo real
¿Te fue útil esta página?
SíNo
  • ¿Necesitas ayuda? Ponte en contacto con soporte.
  • Únete a nuestro programa de acceso anticipado.
  • Echa un vistazo a nuestro registro de cambios.
  • ¿Tienes alguna pregunta? Contacto.
  • ¿LLM? Lee llms.txt.
  • Con tecnología de Markdoc
Code quickstart
Guías relacionadas
Cómo funciona Invoicing
API Invoicing
Página de facturas alojadas
Productos utilizados
Invoicing