Descubre qué es Apple Pay en apps móviles, cómo funciona internamente y cómo integrarlo de forma segura para acelerar el checkout y mejorar la conversión.

Apple Pay es la cartera digital y el servicio de pagos de Apple. Permite a los usuarios almacenar tarjetas de crédito, débito y algunas tarjetas prepago o de tienda de forma segura en su iPhone, Apple Watch, iPad o Mac y pagar con un solo toque o mirada.
En lugar de introducir números de tarjeta y datos de facturación, el usuario se autentica con Face ID, Touch ID o el código del dispositivo. Apple genera un token específico del dispositivo para que el número real de la tarjeta no se comparta con el comerciante.
Apple Pay funciona en tres contextos principales:
Esta guía se centra en Apple Pay in‑app, donde toda la experiencia de pago permanece dentro de la app.
Introducir datos de tarjeta en una pantalla pequeña es lento y propenso a errores. Apple Pay reemplaza varios campos de formulario por una sola interacción, lo que normalmente:
Como las tarjetas y direcciones ya están almacenadas en el dispositivo, Apple Pay también reduce la fricción para clientes primerizos.
Apple Pay funciona en modelos recientes de iPhone, iPad, Apple Watch y Mac en regiones con soporte, con redes principales como Visa, Mastercard, American Express y muchos esquemas locales, según el banco emisor.
Apple Pay es más adecuado cuando:
Debe coexistir junto a formularios de tarjeta tradicionales y otros wallets, no sustituirlos por completo, para que los usuarios sin Apple Pay puedan seguir pagando.
Apple Pay oculta mucha complejidad tras una sencilla experiencia de “doble clic para pagar”. Detrás, varias partes y capas de seguridad coordinan el movimiento de dinero de forma segura.
Una transacción típica de Apple Pay involucra:
Cuando un usuario añade una tarjeta a Wallet, el número real de tarjeta (el FPAN, Funding Primary Account Number) se envía de forma segura a la red de tarjetas y al emisor. Ellos responden con un DPAN (Device Primary Account Number) más claves criptográficas únicas para ese dispositivo.
El DPAN es lo que Apple Pay usa durante las transacciones. Tu app y backend nunca ven el FPAN. Este es el núcleo del modelo de tokenización de Apple Pay: el dispositivo usa un número de tarjeta sustituto y criptogramas de un solo uso en lugar de exponer la tarjeta real.
En dispositivos compatibles, las credenciales y claves de pago residen en el Secure Element (o están protegidas por el Secure Enclave). Cuando el usuario se autentica (Face ID, Touch ID o código), el Secure Element:
Tu app recibe este token opaco y encriptado vía las APIs de Apple Pay y lo envía a tu backend, que lo reenvía al PSP o gateway.
El PSP descifra el token, extrae el DPAN y el criptograma, y presenta una solicitud de autorización a través de la red de tarjetas al banco emisor. El emisor valida el criptograma y el estado de la tarjeta, y entonces aprueba o rechaza.
Más tarde, durante la liquidación, el importe autorizado se captura, agrupa y pasa del banco emisor al banco adquirente del comerciante. Para tu app, esto es sólo la confirmación de captura o venta, pero tras bambalinas se coordina entre adquirente, red y emisor usando el DPAN—no el número real de la tarjeta del cliente.
Antes de añadir Apple Pay a tu app, necesitas cumplir una serie de requisitos técnicos, comerciales y regionales.
En el lado del comerciante debes tener:
Muchos comerciantes también crean un certificado de Merchant Identity para la validación de merchant en flujos web o híbridos.
Apple Pay en apps es compatible con:
Consulta la documentación actual de Apple para el soporte mínimo de versiones, sobre todo si dependes de APIs más nuevas.
Apple Pay no está disponible en todos los países ni con todos los bancos. Debes confirmar:
Apple puede restringir ciertas categorías de comerciantes y usos (p. ej., bienes ilegales, algunos contenidos o servicios digitales, industrias de alto riesgo). Verifica que:
Finalmente, necesitas un PSP o gateway que soporte la tokenización y el descifrado de Apple Pay. Confirma que tu proveedor:
Un flujo fluido de Apple Pay resulta casi invisible para el usuario. Así es como suele desarrollarse, paso a paso.
El recorrido generalmente empieza en la página de producto o en la pantalla de carrito. Tras elegir artículos y opciones (talla, color, cantidad), el usuario pasa al checkout.
En la pantalla de checkout o carrito, muestra el botón oficial de Apple Pay proporcionado por Apple. Debe:
Cuando el usuario toca el botón, la hoja de Apple Pay se desliza desde la parte inferior de la pantalla.
La hoja suele incluir:
El usuario puede ajustar detalles (tarjeta, envío, contacto) directamente en la hoja antes de confirmar.
Para autorizar el pago, el usuario se autentica con:
La hoja indica claramente la acción, por ejemplo: “Dobla el botón lateral para pagar” en dispositivos con Face ID.
Tras la autenticación, la hoja muestra progreso y luego desaparece, devolviendo al usuario a tu app.
Tu app debe mostrar inmediatamente un estado claro:
Mantener estos estados claros y consistentes tranquiliza a los usuarios sobre su estado de pago y que siguen en control durante el flujo.
La implementación en iOS se centra en el framework PassKit y unas pocas clases clave. Aquí tienes el flujo end‑to‑end a nivel de app.
Esto vincula el bundle de tu app con tu identidad de comerciante para que se puedan generar tokens de Apple Pay para tu servidor.
PKPaymentRequestimport PassKit
func createPaymentRequest() -> PKPaymentRequest? {
guard PKPaymentAuthorizationController.canMakePayments() else { return nil }
let request = PKPaymentRequest()
request.merchantIdentifier = "merchant.com.yourcompany.app"
request.countryCode = "US"
request.currencyCode = "USD"
request.supportedNetworks = [.visa, .masterCard, .amex]
request.merchantCapabilities = [.capability3DS]
request.paymentSummaryItems = [
PKPaymentSummaryItem(label: "Pro Subscription", amount: 9.99),
PKPaymentSummaryItem(label: "Your Company", amount: 9.99)
]
return request
}
merchantIdentifier, countryCode y currencyCode deben coincidir con la configuración de tu merchant. supportedNetworks refleja los esquemas de tarjeta que tú y tu PSP soportan. Como mínimo, incluye .capability3DS en merchantCapabilities.
PKPaymentButtonUsa PKPaymentButton en lugar de botones personalizados para cumplir las directrices de interfaz de Apple:
let payButton = PKPaymentButton(paymentButtonType: .buy, paymentButtonStyle: .black)
Colócalo donde la intención de compra sea más fuerte: pantalla de producto, carrito y checkout final. Desactívalo u ocúltalo si PKPaymentAuthorizationController.canMakePayments() devuelve false.
PKPaymentAuthorizationController y manejar callbacksCrea un controlador a partir de la request y conforma PKPaymentAuthorizationControllerDelegate:
func startApplePay() {
guard let request = createPaymentRequest() else { return }
let controller = PKPaymentAuthorizationController(paymentRequest: request)
controller.delegate = self
controller.present(completion: nil)
}
extension CheckoutViewController: PKPaymentAuthorizationControllerDelegate {
func paymentAuthorizationController(_ controller: PKPaymentAuthorizationController,
didAuthorizePayment payment: PKPayment,
handler completion: @escaping (PKPaymentAuthorizationResult) -> Void) {
// Send payment.token to your server for processing
// Then call completion(.init(status: .success, errors: nil)) or .failure
}
func paymentAuthorizationControllerDidFinish(_ controller: PKPaymentAuthorizationController) {
controller.dismiss(completion: nil)
}
}
En didAuthorizePayment es donde debes pasar el payment.token a tu servidor para el cargo real. Tras la respuesta del servidor, completa con .success o .failure, y después descarta la hoja en paymentAuthorizationControllerDidFinish.
La lógica del servidor convierte la hoja de Apple Pay en movimiento real de dinero. La app recoge la autorización del usuario; tu backend valida el merchant, procesa el token y habla con tu gateway de pagos.
Antes de mostrar la hoja de Apple Pay, tu app debe obtener una merchant session de Apple.
PKPaymentAuthorizationController.Este flujo prueba a Apple que la app está asociada con tu identidad de merchant y dominio.
Tras la autorización del usuario, la app recibe un token de pago encriptado (PKPaymentToken) y lo envía a tu backend vía HTTPS.
En el servidor:
El gateway descifra el token (usando tokens de red o DPANs) y realiza la autorización con las redes de tarjetas.
Los gateways suelen ofrecer dos flujos:
Tu backend debe persistir el ID de transacción del gateway, importe, moneda y estado—pero no datos crudos de la tarjeta ni tokens descifrados.
Guarda solo lo necesario para conciliación, reembolsos y soporte:
Nunca almacenes números completos de tarjeta, CVV o tokens de pago sin cifrar en tus servidores. Deriva el manejo sensible a gateways compatibles con PCI y asegúrate de comunicación TLS, logging y controles de acceso estrictos.
Apple Pay está diseñado para que tu app nunca toque números de tarjeta en crudo, pero aún así debes entender el modelo de seguridad y tus responsabilidades.
Cuando un usuario agrega una tarjeta a Apple Pay, el emisor y la red reemplazan el PAN real por un Device Account Number (DAN).
Durante un pago:
Tu app y backend sólo ven tokens y metadatos, no los detalles de la tarjeta subyacente.
Las claves y credenciales sensibles se almacenan y procesan dentro del Secure Enclave, un coprocesador aislado por hardware.
La autorización está ligada a la verificación del usuario:
Tu app solo recibe una señal de éxito o fallo desde la hoja del sistema; nunca accede a datos biométricos ni al contenido del Secure Enclave.
Cada transacción Apple Pay usa:
Redes y emisores validan estos valores, lo que ayuda a detectar clonación, reproducción y manipulación.
Apple Pay puede reducir significativamente el alcance PCI DSS de tu app porque:
Sin embargo:
Para orientación formal, consulta con tu banco adquirente, PSP y un asesor de seguridad cualificado.
Apple Pay reduce el riesgo, pero integraciones descuidadas pueden volver a introducir exposición.
Consejos prácticos:
Respetando estos límites, aprovechas las protecciones de Apple Pay mientras mantienes la carga de cumplimiento razonable.
Probar a fondo es la única forma de estar seguro de que tu integración de Apple Pay se comporta correctamente para clientes reales. Empieza con un sandbox adecuado y un plan claro de pruebas.
En tu cuenta de Apple Developer / App Store Connect, crea cuentas sandbox bajo Users and Access → Sandbox. Estas Apple IDs especiales se usan en dispositivos de prueba para simular usuarios reales sin cargos reales.
En tus dispositivos de prueba:
Usa testers sandbox separados para distintos perfiles (regiones, monedas, redes) para reproducir casos límite de forma consistente.
El iOS Simulator soporta pruebas básicas de Apple Pay, útil para validación rápida de UI y desarrollo temprano. Puedes simular autorizaciones y comprobar que el flujo de PKPaymentAuthorizationController funciona.
Sin embargo, valida siempre en dispositivos físicos porque solo ellos proporcionan:
Trata el Simulator como una comodidad, no como un sustituto.
Cubre al menos los siguientes flujos end‑to‑end (cliente y servidor):
Usa números y triggers de tarjeta de test del gateway para forzar rechazos y códigos de error.
Registra lo suficiente para trazar problemas, pero nunca registres datos sensibles. Evita:
En su lugar, registra:
created → authorized → captured → failed)Correlaciona logs cliente y servidor mediante un ID de correlación compartido pasado desde la app al backend.
Mientras ejecutas ciclos de prueba, observa:
Si detectas errores intermitentes o autorizaciones lentas, comprueba tanto el estado del gateway como el de Apple antes de asumir un bug de integración.
Un diseño cuidadoso de Apple Pay puede convertir una característica agradable en un importante impulsor de conversión. Pequeñas decisiones de colocación y copy impactan en la frecuencia de uso.
Usa Apple Pay donde la intención de compra sea más fuerte:
Evita ocultar Apple Pay detrás de pasos adicionales como “Más opciones de pago”. Cada paso extra reduce su uso.
Ofrece Apple Pay como checkout exprés desde:
Cuando se use como exprés, deja claro que envío y contacto se gestionarán durante la autorización de Apple Pay.
Sigue las Human Interface Guidelines de Apple:
Evita colores o iconos personalizados que diluyan el reconocimiento o violen las reglas de marca.
Deja que Apple Pay haga el trabajo pesado:
El objetivo es un tap decisivo, no un embudo de múltiples pantallas.
El camino más rápido para perder una venta es un estado de fallo confuso. Planifica errores con:
Registra detalles de error de forma silenciosa para tu equipo, pero muestra a los usuarios solo lo necesario para comprender qué pasó y qué hacer.
La mayoría de los problemas de Apple Pay vienen de una mala configuración.
Lo primero a confirmar es que el merchant ID usado en el código coincide exactamente con el del Apple Developer y con la configuración del gateway. Un solo carácter fuera de lugar (o un merchant ID de sandbox en producción) rompe el flujo.
Verifica también entitlements y capabilities:
Si el botón no aparece o la hoja nunca se presenta, la configuración es la principal sospechosa.
Apple Pay puede estar disponible en algunos países, emisores o dispositivos y no en otros.
Usa PKPaymentAuthorizationController.canMakePayments() y canMakePayments(usingNetworks:) antes de mostrar el botón. Si devuelven false, oculta el botón y presenta una explicación clara y una alternativa.
Cuando usuarios informan que una tarjeta “no es compatible”, comprueba:
Los fallos de validación suelen manifestarse con la hoja que se descarta rápidamente o que no llega a mostrarse.
En apps nativas, suelen ser causados por:
En el endpoint de servidor de validación, registra:
Estos logs normalmente señalan directamente el elemento mal configurado.
No todos los fallos son técnicos; muchos son rechazos del emisor.
Inspecciona siempre la respuesta del gateway. Distingue entre:
Mapea estas categorías a mensajes amigables como:
Evita mostrar códigos crudos del gateway o detalles técnicos innecesarios.
Para mantener Apple Pay estable en producción, invierte en logging estructurado alrededor de cada intento de pago:
Configura dashboards y alertas para picos en rechazos, errores de validación de merchant o timeouts. Correlaciona eventos cliente con logs servidor para trazar rápidamente dónde fallan las transacciones.
Este nivel de observabilidad acorta drásticamente el tiempo de depuración cuando surgen problemas en tráfico real.
Una vez Apple Pay esté en tu app, necesitas demostrar que realmente mejora el checkout, no solo que es moderno. Registra los eventos adecuados, vigila métricas clave y ejecuta experimentos estructurados.
Empieza con un embudo claro y registra eventos en cada paso:
Correlaciona estos eventos con contexto:
Esto te permite ver dónde los usuarios abandonan y si los problemas son de UX (cancelaciones), técnicos (fallos de autorización) o de backend (fallos de captura).
Un conjunto de métricas enfocado facilita juzgar impacto:
Rastrea estas métricas a lo largo del tiempo y por versiones de app para ver si los cambios mueven los indicadores.
Ejecuta experimentos para optimizar el impacto de Apple Pay:
Mide adopción, tasa de éxito, tiempo hasta el pago y conversión. Incluso pequeños cambios de diseño pueden dar ganancias significativas.
Integra analítica respetando las garantías de privacidad de Apple Pay y la normativa:
Plataformas de analítica comunes (Mixpanel, Amplitude, Firebase) pueden manejar estos eventos siempre que los payloads estén libres de datos sensibles.
Los insights de Apple Pay extienden más allá de ese botón:
Con el tiempo, estas mediciones te ayudan a optimizar no sólo Apple Pay, sino todo el proceso de checkout.
Soportar Apple Pay raramente termina en una sola app iOS. Los usuarios esperan pagar igual en dispositivos y canales, y tus decisiones de implementación deben reflejarlo.
Las apps nativas usan PKPaymentAuthorizationController y pasan tokens directamente al backend. Esto ofrece:
Apple Pay en la web (Safari) usa JavaScript y la Payment Request API. Es ideal cuando:
Para muchos equipos, la combinación ideal es: Apple Pay nativo en la app y Apple Pay en la web en Safari, con un pipeline de pagos compartido en el backend.
Si además soportas Google Pay, PayPal u otros wallets, alinea el flujo de alto nivel:
Así, cambiar de dispositivo o método no se siente como aprender un sistema nuevo.
En React Native, Flutter y similares, normalmente te apoyarás en:
Prueba en iPhone, iPad y Apple Watch donde corresponda:
Apunta a un sistema de diseño y lógica de checkout compartido entre iOS, web y otras plataformas, con capas de integración delgadas para cada canal.
Mantener Apple Pay sano es menos sobre grandes reescrituras y más sobre mantenimiento disciplinado.
Apple Pay depende de merchant IDs y certificados de procesamiento que caducan.
Crea un mapa de responsabilidades: quién posee la cuenta de Apple Developer, dónde viven los certificados y cómo se usan en CI/CD y servidores.
Luego:
Cada versión mayor de iOS debe desencadenar un ciclo de pruebas para los flujos de Apple Pay en builds beta y finales. Enfócate en:
Vigila:
Planifica una revisión de diseño al menos una vez al año para alinear redacción, colocación del botón y accesibilidad con la guía más reciente.
Las redes, monedas y regiones soportadas cambian con el tiempo. Mantén esto configurable:
Coordina con tu gateway cuando añadan redes o métodos locales y actualiza tu PKPaymentRequest en consecuencia.
Para cambios de gateway, reestructuras o actualizaciones de formato de token:
Documenta estos flujos para que nuevos miembros del equipo puedan mantenerlos sin ingeniería inversa.
Espera mayor tokenización por parte de las redes, recibos y actualizaciones de pedido más ricas en Wallet, y vínculos más estrechos entre app, web y en tienda. Funcionalidades como Tap to Pay on iPhone y opciones de financiación regional seguirán expandiéndose, así que diseña tu integración para que sea driven por configuración y pueda adoptar nuevas capacidades sin rehacer el flujo central.
Apple Pay es la cartera digital de Apple que permite a los usuarios pagar con las tarjetas almacenadas en su iPhone, iPad, Apple Watch o Mac.
En las aplicaciones móviles, sustituye la entrada manual de datos de la tarjeta por una hoja del sistema segura donde los usuarios confirman el pago mediante Face ID, Touch ID o código del dispositivo. La app recibe un token de pago encriptado en lugar de datos crudos de la tarjeta, que envía a tu backend y al gateway de pago para completar el cobro.
Esto acelera el proceso de pago, reduce errores y evita que los números de tarjeta entren en la infraestructura de tu app.
Deberías añadir Apple Pay cuando:
Apple Pay funciona mejor como una opción adicional junto con tarjetas, PayPal u otros métodos. No elimines otras opciones: ofrece Apple Pay como la vía más rápida para los usuarios elegibles.
Como mínimo necesitas:
En iOS debes:
El dispositivo crea un token de pago encriptado que contiene:
Este token está cifrado para tu procesador de pagos, por lo que tu app y backend lo tratan como un blob opaco. Tu backend lo reenvía al gateway, que lo descifra, envía la autorización al emisor a través de la red de tarjetas y devuelve éxito o fallo.
Nunca ves el PAN real ni las claves criptográficas; solo recibes metadatos de la transacción y su estado.
Tu backend debe:
No intentes descifrar tokens tú mismo ni almacenarlos a largo plazo. Deja el procesamiento sensible al gateway PCI‑compliant.
Los fallos más comunes incluyen:
Revisa primero la configuración en Apple Developer, las entitlements en Xcode y los ajustes del gateway; luego inspecciona los logs del servidor para la validación del merchant y los códigos de error del gateway.
Para probar Apple Pay de forma segura:
Usa el Simulator para comprobaciones rápidas de UI, pero valida siempre en dispositivos físicos para probar Wallet, biometría y condiciones de red reales.
Para mejorar la conversión:
Mide Apple Pay como su propio embudo. Señales útiles incluyen:
Realiza pruebas A/B para ubicación del botón y mensajes, y compara la finalización y la tasa de cancelación de usuarios de Apple Pay frente a otros métodos para ver si realmente mejora el checkout.
También debes operar en regiones y con bancos donde Apple Pay esté disponible y asegurarte de que tu categoría de comerciante y productos cumplen las normas de Apple.
PKPaymentRequest con el identificador del merchant, país, moneda, redes soportadas y los items del resumen.PKPaymentButton donde el usuario decida pagar.PKPaymentAuthorizationController con la petición.didAuthorizePayment, enviar payment.token a tu backend para su procesamiento..success o .failure y descartar la hoja.La mayoría de las tareas pesadas (biometría, creación de tokens) las gestiona la interfaz del sistema.
PKPaymentButton oficial con el branding correcto y un texto cercano claro (por ejemplo, “Paga al instante con Apple Pay”).Estos patrones minimizan la fricción y hacen que Apple Pay se perciba como un atajo rápido y fiable.