Skip to content

Pago con PayPal ​

Con PayPal, tu cliente puede pagar un link de dos formas desde la :

  • Con su cuenta de PayPal: inicia sesión en PayPal y aprueba el pago
  • Con tarjeta de débito o crédito, sin cuenta de PayPal: llena el formulario de tarjeta que muestra PayPal

El dinero llega a tu cuenta business de PayPal. PayPal está disponible en los links de pago únicos: los que creas desde el y con . No se ofrece en los links de colección de la , porque PayPal no puede guardar una tarjeta para cobros posteriores. Los pagos se cobran en USD.

Requisitos ​

  • Una cuenta business de PayPal
  • Una app REST de PayPal para cada entorno: créala en › Apps & Credentials, en la pestaña Sandbox (pruebas) o Live (producción), y copia su Client ID y su Secret

Usa una app exclusiva para Zelta Pay

Te recomendamos crear una app REST exclusiva para Zelta Pay, con solo la función de aceptar pagos. Los propietarios y administradores de tu cuenta de Zelta Pay pueden ver el Client Secret desde el dashboard, así que esa app no debería permitir nada más que recibir pagos.

Pagos con tarjeta sin cuenta de PayPal

Para que tus clientes puedan pagar con tarjeta sin cuenta de PayPal, tu cuenta business debe tener habilitada la opción PayPal Account Optional en las preferencias de pago de tu sitio web en PayPal. Si no está habilitada, PayPal puede no mostrar el botón de tarjeta.

Configurar PayPal en el dashboard ​

  1. Abre Métodos de pago en el menú lateral (visible solo para los roles propietario y administrador)
  2. Ubica la tarjeta Pagos con PayPal. Tiene dos bloques: Credenciales Producción y Credenciales Sandbox
  3. En el bloque del entorno que quieres configurar, haz clic en Agregar Credenciales
  4. En el diálogo Configurar credenciales, ingresa el Client ID y el Client Secret de tu app REST y haz clic en Configurar PayPal
CampoDescripción
Client IDClient ID de tu app REST de PayPal (Sandbox para el bloque de Sandbox, Live para el de Producción)
Client SecretSecret de la misma app REST

Antes de guardar, Zelta Pay verifica las credenciales con PayPal en el entorno del bloque elegido. Por eso unas credenciales de Sandbox guardadas en el bloque de Producción (o al revés) se rechazan:

MensajeQué significa
Guardado — "Credenciales actualizadas"PayPal aceptó las credenciales y se guardaron
Credenciales inválidas — "Las credenciales de PayPal no son válidas. Verifica tu Client ID y Client Secret y que correspondan al entorno seleccionado (Sandbox o Producción)."PayPal rechazó el Client ID o el Client Secret para ese entorno
PayPal no disponible — "No pudimos verificar tus credenciales con PayPal en este momento. Intenta de nuevo en unos minutos."No se pudo contactar a PayPal para verificarlas

Al guardar las primeras credenciales, PayPal se activa automáticamente. Puedes activarlo o desactivarlo con el interruptor del encabezado de la tarjeta Pagos con PayPal (Activado / Desactivado); el interruptor afecta a ambos entornos.

PayPal no reemplaza a tus otros métodos

PayPal es un método de pago propio: activarlo no desactiva tu procesador de tarjetas ni Yappy. Tus clientes pueden elegir entre todos los métodos activos.

Ver, editar y eliminar credenciales ​

  • Credenciales muestra el Client ID y el Client Secret completos
  • Editar permite reemplazarlos (se vuelven a verificar con PayPal antes de guardarse)
  • Eliminar borra las credenciales de ese entorno

Mientras haya pagos de PayPal en confirmación en un entorno, no puedes eliminar sus credenciales ni cambiarlas por las de otra app (otro Client ID): el dashboard muestra "Hay pagos de PayPal en confirmación para este entorno. Espera a que se confirmen antes de cambiar o eliminar las credenciales." Actualizar solo el Client Secret de la misma app sí está permitido.

Desde el dashboard ​

En el formulario , la sección Métodos de pago incluye la opción PayPal ("Cuenta PayPal o tarjeta sin cuenta"). La sección aparece cuando tienes al menos dos métodos activos en el entorno del link; si PayPal es tu único método activo, se selecciona automáticamente.

Desde la API ​

Incluye "paypal" en paymentMethods al crear el link:

json
{
  "concept": "Orden #12345",
  "amount": 4999,
  "customerName": "Maria Lopez",
  "isTest": false,
  "paymentMethods": ["card", "paypal"]
}

PayPal debe estar activo para el entorno del link; si no, la solicitud se rechaza con ERR_INACTIVE_PAYMENT_METHOD. Si omites paymentMethods, la página de pago ofrece PayPal junto con los demás métodos activos. Consulta .

Lo que ve el cliente ​

1. Elegir PayPal ​

En la , el cliente elige PayPal ("Cuenta PayPal o tarjeta de débito/crédito"). Si PayPal es el único método del link, se muestra directamente con el título Pago con PayPal. A diferencia de tarjeta y Yappy, PayPal no exige llenar el campo de correo electrónico.

2. Elegir cómo pagar ​

Se muestran los botones de PayPal:

  • El botón de PayPal, para pagar con su cuenta
  • El botón de tarjeta de débito o crédito, separado por el texto "o paga con tarjeta sin cuenta PayPal"

Debajo aparece "Procesado de forma segura por PayPal.". PayPal dibuja los botones en español y muestra cada uno solo si esa forma de pago está disponible para el cliente y el monto.

3. Aprobar el pago ​

  • Con cuenta de PayPal: se abre una ventana de PayPal donde el cliente inicia sesión y aprueba el pago
  • Con tarjeta: PayPal muestra su formulario de tarjeta en la misma página, junto al botón

PayPal no le pide al cliente una dirección de envío. Si el navegador bloquea la ventana de PayPal, la página muestra "Tu navegador bloqueó la ventana de PayPal. Abre este enlace en una pestaña nueva para pagar con PayPal." con el enlace Abrir en una pestaña nueva.

Si el cliente cierra la ventana o cancela, ve "Cancelaste el pago en PayPal." y puede volver a intentarlo: el link sigue disponible.

4. Resultado ​

Después de que el cliente aprueba, la página muestra "Procesando tu pago con PayPal… No cierres esta página." y luego:

ResultadoLo que ve el cliente
Pago completadoLa pantalla Pago Completado con los detalles del pago. En Método de Pago aparece PayPal (pagó con su cuenta) o Tarjeta de Crédito/Débito (pagó con tarjeta). Si el link tiene redirectUrl, se le redirige a los pocos segundos
Pago rechazado"El pago fue rechazado. Prueba con otra tarjeta u otro método de pago." El cliente puede intentarlo de nuevo
Pago en revisiónLa pantalla Estamos procesando tu pago… con el mensaje "PayPal está revisando tu pago." El cliente puede cerrar la página: recibirá un correo cuando el pago se confirme

Pagos en revisión ​

PayPal retiene algunos pagos para revisarlos antes de completarlos, lo que puede tardar desde minutos hasta varios días. Mientras tanto:

  • El link aparece como Procesando en el dashboard y como processing en la API
  • El link no se puede pagar de nuevo ni anular (la API responde 409 con ERR_PAYMENT_IN_PROGRESS al intentar cancelarlo)
  • Zelta Pay consulta a PayPal periódicamente: cuando PayPal completa el pago, el link pasa a Completado y recibes el webhook payment.success; si PayPal lo rechaza, el link vuelve a estar pendiente de pago

Algunas retenciones dependen de una acción en tu cuenta de PayPal (por ejemplo, aceptar el pago manualmente o confirmar tu cuenta business). Complétala en PayPal y Zelta Pay detectará el cambio en su siguiente consulta.

Notificaciones ​

Como con los demás métodos, cuando el pago se completa:

  • Recibes el webhook con transaction.paymentProvider: "paypal" y transaction.paymentMethod "paypal" (cuenta de PayPal) o "credit_card" (tarjeta sin cuenta de PayPal). transaction.externalPaymentId es el ID de la captura de PayPal, el mismo que ves en tu cuenta de PayPal
  • El cliente recibe el correo de confirmación con su comprobante (si se conoce su email: el del link, el que escribió en la página o el de su cuenta de PayPal), y el propietario de la cuenta recibe un aviso del pago

El webhook payment.failed se envía solo cuando PayPal rechaza el pago, con failureReason en el formato "PayPal: <motivo>". No se envía cuando el cliente cierra la ventana de PayPal o abandona el pago.

Reembolsos

Si necesitas reembolsar un pago de PayPal, hazlo desde tu cuenta de PayPal: busca el pago por el ID de captura que llega en transaction.externalPaymentId.

Modo de prueba ​

Los links de prueba (isTest: true en la API, o Activar entorno sandbox en el dashboard) usan las credenciales del bloque Credenciales Sandbox y el entorno sandbox de PayPal, así que no mueven dinero real. La página de pago muestra la etiqueta Modo prueba.

Para probar el pago, usa una cuenta personal de prueba que puedes crear en developer.paypal.com › Sandbox accounts, o paga con tarjeta usando datos de prueba de PayPal. Los webhooks de estos pagos llevan transaction.isTest: true.

Siguientes pasos ​

  • — Vista general de la página de pago y sus estados
  • — Configura los métodos de pago disponibles
  • — Flujo de pago con tarjeta de crédito/débito
  • — Flujo de pago con Yappy
  • — Payloads de payment.success y payment.failed

Documentación oficial de Zelta