API para desarrolladores
Integra y personaliza
Abre Payment for Stripe desde tu propia aplicación o sitio web con esquemas de URL, y controla qué productos aparecen en la aplicación directamente desde tu panel de Stripe.
Integración con esquemas de URL
Cómo funciona
Tu aplicación abre una payment:// URL con parámetros
Payment for Stripe se inicia y procesa la transacción.
Al finalizar, la aplicación redirige a tu URL de devolución de llamada con el resultado.
Endpoints
Crear un cargo
payment://new?Procesar un pago único con importe, moneda y descripción.
Parámetros
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
amount | integer | Sí | Importe en centavos (por ejemplo, 1000 = $10,00) |
currency | string | No | Código ISO de moneda de tres letras (predeterminado: la moneda actual de la aplicación) |
description | string | No | Descripción del cargo codificada en URL |
customerAlias: customer_id | string | No | ID de cliente de Stripe existente |
email | string | No | Correo electrónico del cliente para el recibo |
name | string | No | Nombre del cliente codificado en URL |
metadata | string | No | Pares clave-valor personalizados (JSON codificado en URL) |
callback | string | No | URL a la que volver después de finalizar |
autoprocessAlias: auto | boolean | No | Omitir la pantalla de inicio y comenzar el cobro inmediatamente |
auto_return | boolean | No | Se activa la función de devolución de llamada cuando se carga el resultado, en lugar de esperar a que el comerciante cierre el cuadro de diálogo de resultados. Valor predeterminado: falso. |
Vende artículos de tu catálogo.
payment://cart?Rellena el carrito con los precios de tu catálogo Stripe para un pago presencial. La venta se guarda como una factura Stripe pagada. No se envía nada al cliente.
Parámetros
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
pricesAlias: line_items | string | Sí | Identificadores de precios separados por comas con cantidades (p. ej., price_abc:2,price_xyz:1) |
coupon | string | No | ID del cupón Stripe para aplicar al carrito |
customerAlias: customer_id | string | No | ID de cliente de Stripe existente |
email | string | No | Correo electrónico del cliente para el recibo |
name | string | No | Nombre del cliente codificado en URL |
metadata | string | No | Pares clave-valor personalizados (JSON codificado en URL) |
callback | string | No | URL a la que volver después de finalizar |
autoprocessAlias: auto | boolean | No | Omitir la pantalla de inicio y comenzar el cobro inmediatamente |
auto_return | boolean | No | Se activa la función de devolución de llamada cuando se carga el resultado, en lugar de esperar a que el comerciante cierre el cuadro de diálogo de resultados. Valor predeterminado: falso. |
Pagar una factura existente
payment://invoice?Cobra un pago en persona contra una factura Stripe existente. El importe, la moneda, el cliente y los impuestos provienen de la factura. Cualquier modificación de estos datos será rechazada. El comerciante acerca una tarjeta a través del lector / Tap to Pay / entrada manual; si la transacción es exitosa, la factura se marca como pagada fuera de banda y se vincula mediante los metadatos charge_id y payment_intent_id. Las facturas con suscripciones, default_payment_method o un estado pagado, anulado o incobrable son rechazadas con un error procesable. Borradores de facturas: iOS los finaliza primero, Android los rechaza con invoice_state_changed.
Parámetros
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id | string | Sí | ID de factura de Stripe (debe comenzar con in_) |
callback | string | No | URL a la que regresar después de completar la operación. Recibe invoice_id y payment_intent_id en caso de éxito. |
metadata | string | No | Pares clave-valor personalizados (JSON codificado en URL) fusionados en los metadatos de PaymentIntent. |
autoprocessAlias: auto | boolean | No | Omitir la pantalla de inicio y comenzar el cobro inmediatamente |
auto_return | boolean | No | Se activa la función de devolución de llamada cuando se carga el resultado, en lugar de esperar a que el comerciante cierre el cuadro de diálogo de resultados. Valor predeterminado: falso. |
Manejo de devoluciones de llamadas
Cuando se completa la transacción, Payment for Stripe redirige a tu URL de devolución de llamada con parámetros de consulta que indican el resultado. Por defecto, la redirección se activa después de que el comerciante cierre el cuadro de diálogo de resultados para que pueda realizar acciones posteriores al cobro (enviar un recibo por correo electrónico, realizar un reembolso). Si pasas `auto_return=true`, se activará tan pronto como se conozca el resultado. Compatible con iOS y Android.
Parámetros de devolución de llamada
| Parámetro | Valores | Descripción |
|---|---|---|
status | success | error | cancelled | Resultado de la transacción |
charge_id | string | ID de cargo Stripe (en caso de éxito). iOS envía el ID de cargo (ch_). Android envía el ID de PaymentIntent (pi_) y coloca el ID de cargo en stripe_charge_id. |
stripe_charge_id | string | ID de cargo Stripe (ch_) en caso de éxito. Solo para Android. |
invoice_id | string | ID de factura de Stripe (solo en caso de éxito, flujo payment://invoice) |
payment_intent_id | string | ID de Stripe PaymentIntent (en caso de éxito). iOS: solo flujo payment://invoice. Android: en cada venta con tarjeta. |
error | string | Mensaje de error (en caso de error) |
Se capturó el cargo pero no se pudo marcar la factura como pagada: iOS devuelve status=error con charge_id, invoice_id y payment_intent_id. Android devuelve status=success con invoice_reconciliation_failed=true.
Campos heredados, conservados para integraciones antiguas: success, amount, currency, chargeId, cancelled, error[message]. Las nuevas integraciones deben leer los campos anteriores.
Ejemplos
Cargo simple
Cobrar $10,00 solo con un importe
payment://new?amount=1000Cargo con descripción
Cobrar 25,00 € con una descripción
payment://new?amount=2500¤cy=eur&description=Coffee%20and%20pastryCargo con cliente nuevo
Cobrar $50,00 y crear un registro de cliente
payment://new?amount=5000&name=John%20Smith&[email protected]Cobrar a un cliente existente
Cobrar $75,00 a un cliente existente de Stripe
payment://new?amount=7500&customer=cus_ABC123xyzCargo con metadatos
Cobrar $100,00 con metadatos personalizados para tus registros
payment://new?amount=10000&description=Invoice%20%231234&metadata=%7B%22order_id%22%3A%221234%22%2C%22location%22%3A%22Store%20A%22%7DProcesamiento automático con devolución de llamada
Omite la pantalla de inicio y regresa a tu aplicación cuando hayas terminado
payment://new?amount=3500&autoprocess=true&callback=myapp://payment-completeRetorno automático al obtener el resultado
Activa la devolución de llamada en cuanto se conozca el resultado, en lugar de esperar a que el comerciante cierre el cuadro de diálogo de resultados
payment://new?amount=3500&autoprocess=true&auto_return=true&callback=myapp://payment-completeCarrito con artículos
Cobra por los productos de tu catálogo Stripe
payment://cart?prices=price_coffee:2,price_muffin:1&[email protected]Pagar una factura existente
Cobra el pago en persona de una factura de Stripe existente. Devuelve invoice_id y payment_intent_id si la operación se realiza correctamente.
payment://invoice?id=in_1ABC123xyz&autoprocess=true&callback=myapp://invoice-paidEjemplo completo
Todos los parámetros combinados para un flujo totalmente integrado
payment://new?amount=15000¤cy=usd&description=Service%20Fee&customer=cus_ABC123xyz&metadata=%7B%22invoice%22%3A%22INV-2024-001%22%7D&autoprocess=true&callback=myapp://payment-resultCodificación de URL
Recuerda codificar en URL los caracteres especiales de los valores de los parámetros. Los espacios se convierten en %20 y las llaves en %7B y %7D.
¿Listo para integrarlo?
Descarga la aplicación y empieza a probar tu integración hoy mismo.