Apple Pay
Acepta pagos con Apple Pay en cualquiera de tus integraciones — Link de Pago, Checkout redireccionado o Checkout embebido — con una sola configuración.
¿Por qué Apple Pay?
Tus clientes pagan con Face ID o Touch ID en segundos, sin capturar datos de tarjeta ni direcciones.
La tasa de aprobación con Apple Pay es 15 a 20 puntos porcentuales más alta que con tarjeta digitada.
Cada transacción está autenticada biométricamente por el titular, lo que reduce drásticamente el fraude.
Ficha del método
| Propiedad | Detalle |
|---|---|
| Tipos de integración | Link de Pago · Checkout redireccionado · Checkout embebido · Direct API |
| Dispositivos | Dispositivos Apple (iPhone, iPad, Mac, Apple Watch) y PC |
| Navegadores | Safari en dispositivos Apple · Chrome, Edge y Firefox en PC vía código QR escaneado con iPhone |
| Reembolsos | Totales y parciales, igual que un cargo de tarjeta |
| Recurrencia | No disponible actualmente |
| Cuenta de Apple | No se requiere en ninguna integración de Checkout — Conekta gestiona la integración con Apple Pay en tu nombre. Solo Direct API con certificado propio requiere cuenta de Apple Developer |
1. Cómo funciona
Cuando el cliente confirma el pago con Face ID / Touch ID, el dispositivo genera un token de pago único que viaja a Conekta sin exponer el número real de la tarjeta:
sequenceDiagram
participant C as Cliente (Safari / iOS)
participant A as Apple Pay
participant K as Conekta
participant B as Banco emisor
C->>A: Autoriza con Face ID / Touch ID
A-->>C: Token de dispositivo + criptograma
C->>K: Pago tokenizado (checkout)
K->>B: Procesa el cargo
B-->>K: Autorización
K-->>C: Pago confirmado (order.paid)
El botón de Apple Pay se muestra cuando el dispositivo y navegador del cliente soportan Apple Pay: Safari en dispositivos Apple, o navegadores compatibles en PC — donde el pago se completa escaneando un código QR con el iPhone. Si el tarjetahabiente no tiene tarjetas registradas en su wallet, al presionar el botón podrá registrar una tarjeta nueva y completar el pago sin salir del checkout. Si el dispositivo no soporta Apple Pay, el resto de los métodos de pago se renderiza con normalidad.
2. Intégralo en tu Conekta Checkout
Apple Pay se habilita enviando apple en el campo allowed_payment_methods al crear tu checkout.
Requisitos
- Debes procesar pagos con tarjeta: cuenta con cards activado y tu integración de tarjetas funcionando (Apple Pay se muestra dentro de tu mismo checkout de tarjetas).
- Envía el valor
appleen el campoallowed_payment_methods.- No necesitas crear una cuenta con Apple: Conekta gestiona la integración por ti.
Crea una orden con checkout de tipo HostedPayment — exactamente igual que un cargo con tarjeta:
curl --request POST \
--url https://api.conekta.io/orders \
--header 'accept: application/vnd.conekta-v2.2.0+json' \
--header 'content-type: application/json' \
--header 'authorization: Bearer key_XXXXXXX' \
--data '{
"currency": "MXN",
"customer_info": {
"name": "Juan Perez",
"email": "[email protected]",
"phone": "+5218181818181"
},
"line_items": [
{
"name": "Box of Cohiba S1s",
"unit_price": 35000,
"quantity": 1
}
],
"checkout": {
"allowed_payment_methods": ["card", "apple"],
"type": "HostedPayment",
"success_url": "https://www.mysite.com/payment/confirmation",
"failure_url": "https://www.mysite.com/payment/failure",
"redirection_time": 4
}
}'La respuesta incluye checkout.url; al redirigir a esa URL tu cliente verá el botón de pago Apple Pay junto al resto de los métodos habilitados.

Los ejemplos completos de creación de orden en PHP, Ruby, Python, Node, .NET, Go y Java están en Cargo único con tarjeta.
Requisito exclusivo del Checkout embebidoDebes verificar tu dominio ante Apple — incluyendo cada subdominio y entorno (staging y producción) — y servir tu sitio exclusivamente por HTTPS. Link de Pago y Checkout redireccionado no lo requieren, porque el pago ocurre en el dominio de Conekta.
a) Carga el script del Component y prepara el contenedor
<script src="https://pay.conekta.com/v1.0/js/conekta-checkout.min.js"></script>
<div id="conektaApplePayComponent"></div>b) Crea el Order con checkout Integration desde tu backend
curl --request POST \
--url https://api.conekta.io/orders \
--header 'accept: application/vnd.conekta-v2.2.0+json' \
--header 'authorization: Bearer key_YOUR_PRIVATE_API_KEY' \
--header 'content-type: application/json' \
--data '{
"checkout": {
"allowed_payment_methods": ["card", "apple"],
"type": "Integration",
"name": "Pago con Apple Pay"
},
"currency": "MXN",
"customer_info": {
"name": "Jorge Martínez",
"email": "[email protected]",
"phone": "+5218181818181"
},
"line_items": [{
"name": "Producto/Servicio",
"unit_price": 23000,
"quantity": 1
}]
}'La respuesta incluye el objeto checkout con un id — pásalo a tu frontend como checkoutRequestId.
c) Inicializa el Component
<script>
const config = {
locale: 'es',
publicKey: '{{yourPublicKey}}',
targetIFrame: '#conektaApplePayComponent',
checkoutRequestId: '{{yourCheckoutId}}'
};
const options = {
backgroundMode: 'lightMode',
colorPrimary: '#081133',
inputType: 'minimalMode'
};
const callbacks = {
onGetInfoSuccess: function (info) {},
onFinalizePayment: function (order) {
console.log('success:', JSON.stringify(order));
},
onErrorPayment: function (error) {
console.error('Error en el pago:', error);
}
};
window.ConektaCheckoutComponents.Integration({ config, callbacks, options });
</script>El Component detecta automáticamente si el dispositivo es compatible y renderiza el botón nativo en la sección Pago rápido. Cuando el cliente autoriza el pago con Face ID / Touch ID, el Component completa el cargo y dispara onFinalizePayment.
Confirma el estado final del pago con webhooks (order.paid), no solo con el callback del frontend.
Desde el Panel
- Ingresa a tu panel de administración y entra a Link de pago → Crear Link.
- En Configuración avanzada verás los métodos de pago habilitados, entre ellos Apple Pay.

Por API
Crea el link de pago:
curl --request POST \
--url https://api.conekta.io/checkouts \
--header 'accept: application/vnd.conekta-v2.2.0+json' \
-u key_eYvWV7gSDkNYXsmr: \
--header 'content-type: application/json' \
--data '{
"name": "Payment Link Name",
"type": "PaymentLink",
"recurrent": false,
"expires_at": 1799999999,
"allowed_payment_methods": ["card", "apple"],
"needs_shipping_contact": true,
"order_template": {
"line_items": [{
"name": "Red Wine",
"unit_price": 1000,
"quantity": 10
}],
"currency": "MXN",
"customer_info": {
"name": "Juan Perez",
"email": "[email protected]",
"phone": "5566982090"
}
}
}'
expires_atdebe ser un timestamp futuro (entre 5 minutos y 365 días a partir de la creación).
3. Prueba tu integración
En el sandbox de Conekta no existen "tarjetas de prueba de Apple Pay": Apple Wallet solo acepta tarjetas reales. Prueba con tus llaves de sandbox y una tarjeta real — el cargo no se procesa fuera del ambiente de pruebas.
Para simular rechazos, envía un email con el formato {motivo}[email protected] en el campo customer_info.email de la orden. El prefijo determina el resultado:
Email en customer_info.email | Resultado simulado |
|---|---|
[email protected] | insufficient_funds |
[email protected] | card_declined |
[email protected] | suspected_fraud |
| Cualquier otro email | Pago aprobado |
La lista completa de escenarios simulables está en el kit de pruebas.
4. ¿No aparece el botón?
La causa más común de tickets de Apple Pay. Diagnostica en dos pasos: primero el dispositivo, luego tu integración.
Checklist del dispositivo del cliente
- Es un dispositivo Apple (iPhone, iPad, Mac) con Safari, o una PC con navegador compatible (el pago se completa vía código QR con el iPhone).
- Si no tiene tarjetas en Apple Wallet, el botón sí aparece: al presionarlo puede registrar una tarjeta nueva (Visa, Mastercard o Amex) en el momento.
- Apple Pay está habilitado en la configuración del dispositivo.
Checklist de tu integración (Checkout embebido)
- El dominio exacto donde corre el Component está verificado ante Apple — cada subdominio y entorno (staging, producción) requiere su propia verificación.
- El archivo
/.well-known/apple-developer-merchantid-domain-associationrespondeHTTP 200sin redirects y sin autenticación. - El sitio se sirve exclusivamente por HTTPS con certificado TLS válido.
- Si el Component vive dentro de un
<iframe>tuyo, el iframe debe incluir el atributoallow="payment". allowed_payment_methodsdel checkout incluyeapple.
- El archivo
El botón aparece pero el pago falla
- Revisa que el token no haya expirado (validez de 10 minutos, un solo uso).
- Confirma el estado final vía webhooks (
order.paid/order.declined), no solo con el callback del frontend. - Una declinación bancaria regresa el código del emisor en la respuesta del cargo; una declinación antifraude rechaza sin cobro.
- Confirma el estado final vía webhooks (
5. Disputas y contracargos
Cada pago con Apple Pay está autenticado biométricamente por el titular y tokenizado por red, por lo que la evidencia de autenticación del dispositivo acompaña la transacción. En la práctica esto se traduce en mucho menor incidencia de fraude — y mejor posición de defensa — que un pago con tarjeta digitada.
Los reembolsos (totales o parciales) funcionan igual que en cualquier cargo de tarjeta.
Siguiente paso
- Google Pay — habilita la otra wallet con la misma orden.
Updated about 5 hours ago

