Conectarse a un lector
Conecta tu aplicación a un lector de Stripe Terminal.
Nota
Si aún no has elegido ningún lector, compara los lectores de Terminal disponibles y elige el que mejor se adapte a tus necesidades.
Tap to Pay permite a los usuarios aceptar pagos sin contacto en persona con dispositivos Android compatibles con NFC o iPhones compatibles. Tap to Pay es compatible con las tarjetas sin contacto de Visa, Mastercard, American Express y los monederos móviles basados en NFC (Apple Pay, Google Pay y Samsung Pay). El soporte de Tap to Pay en iPhone y en Android está incluido en los SDK nativos de Terminal y permite los pagos directamente en tu aplicación móvil.
Para conectar la aplicación al lector Tap to Pay en un dispositivo compatible, sigue estos pasos:
- Detecta lectores usando el SDK para confirmar la compatibilidad del dispositivo.
- Conéctate a un lector usando el SDK para aceptar pagos.
- Gestiona desconexiones inesperadas para asegurarse de que el usuario pueda seguir aceptando pagos si el lector se desconecta inesperadamente.
Detectar lectores
Utiliza el método discoverReaders
para determinar el soporte de hardware para Tap to Pay en tu dispositivo.
Si tu aplicación se ejecuta en un dispositivo que no cumple con los requisitos anteriores, el método discoverReaders
devolverá un error.
export default function DiscoverReadersScreen() { const { discoverReaders, discoveredReaders } = useStripeTerminal({ onUpdateDiscoveredReaders: (readers) => { // The `readers` variable will contain an array of all the discovered readers. }, }); useEffect(() => { const { error } = await discoverReaders({ discoveryMethod: 'tapToPay', }); }, [discoverReaders]); return <View />; }
Conectarse a un lector
Para aceptar pagos de Tap to Pay, proporciona el lector detectado del paso anterior al método connectReader
.
Debes registrar tu lector en una ubicación tras la conexión. Para hacerlo, debes pasar el ID de ubicación correspondiente a connectReader
.
Al usar cargos indirectos con on_behalf_of en iPhones, también debes proporcionar el ID de la cuenta conectada.
const { reader, error } = await connectReader({ reader: selectedReader, locationId:
}, 'tapToPay' ); if (error) { console.log('connectTapToPayReader error:', error); return; } console.log('Reader connected successfully', reader);'{{LOCATION_ID}}'
Vinculación de la cuenta y condiciones generales de Apple
Verás los términos y condiciones de Tap to Pay de Apple en el iPhone la primera vez que te conectes al lector. Para registrarte en Apple, deberás especificar un ID de Apple válido que represente a tu empresa antes de aceptar las condiciones presentadas por Apple. Solo necesitas realizar esto una vez por cada cuenta de Stripe. La cuenta no necesita repetir este proceso en conexiones posteriores, incluyendo en otros dispositivos móviles.
Cada cuenta conectada debe aceptar las condiciones generales cuando:
- Un usuario de Connect cree cargos directos
- Un usuario de Connect crea un cargo de destino y especifica una cuenta
on_
behalf_ of

Vincula tu cuenta de Apple ID para aceptar pagos Tap to Pay
Cualquier iPhone puede usar hasta 3 cuentas únicas de Stripe en todas las aplicaciones dentro de un período continuo de 24 horas al llamar a connectReader
para Tap to Pay en iPhone. Si se utilizan más cuentas para el dispositivo dentro del mismo período de 24 horas, el método connectReader
genera un error SCPErrorTapToPayReaderMerchantBlocked.
Obtén más información sobre la vinculación de cuentas en la sección de Información empresarial de Tap to Pay en el iPhone de las preguntas frecuentes sobre Tap to Pay en el iPhone de Apple.
Gestionar las desconexiones inesperadas
Pueden producirse desconexiones inesperadas entre tu aplicación y el lector. Por ejemplo, es posible que el lector Tap to Pay se desconecte inesperadamente porque el dispositivo pierda la conectividad a Internet y cuando el sistema operativo Android finaliza el servicio del lector Tap to Pay debido a limitaciones de memoria.
Durante las pruebas, puedes simular una desconexión inesperada desactivando el acceso a Internet en tu dispositivo.
Intenta la reconexión de forma automática
Cuando se produce una desconexión inesperada, Stripe intenta automáticamente volver a conectarse de forma predeterminada y te recomienda que muestres notificaciones en tu aplicación que transmitan el estado del lector durante todo el proceso.
const { reader, error } = await connectReader({ reader, autoReconnectOnUnexpectedDisconnect: true, // default setting }, 'tapToPay' ); if (error) { console.log('connectReader error:', error); return; } console.log('Reader connected successfully', reader);
Cuando el SDK intenta la reconexión de forma automática, ocurre lo siguiente:
- El SDK te notifica a través de
onDidStartReaderReconnect
. Asegúrate de que la aplicación indique que se ha perdido la conexión y que se está intentando reconectar.- Puedes utilizar el método
cancelReaderReconnection
para detener el intento de reconexión en cualquier momento.
- Puedes utilizar el método
- Si el SDK se vuelve a conectar correctamente al lector, Stripe te notifica a través de
onDidSucceedReaderReconnect
. Asegúrate de que la aplicación indique que se ha restablecido la conexión y de que continúe con el funcionamiento normal. - Si el SDK no puede reconectarse al lector, Stripe te notifica a través de
onDidFailReaderReconnect
yonDidDisconnect
. Asegúrate de que la app indique que se ha producido una desconexión inesperada.
const { discoverReaders, connectedReader, discoveredReaders } = useStripeTerminal({ onDidStartReaderReconnect: (disconnectReason) => { // 1. Notified at the start of a reconnection attempt // Use cancelable to stop reconnection at any time }, onDidSucceedReaderReconnect: () => { // 2. Notified when reader reconnection succeeds // App is now connected }, onDidFailReaderReconnect: (): => { // 3. Notified when reader reconnection fails // App is now disconnected } });
Gestiona la desconexión de forma manual
Para manejar la desconexión tú mismo, establece autoReconnectOnUxpectedDisconnect
en false
e implementa la devolución de llamada onDidReportUnexpectedReaderDisconnect
. Esto permite que tu aplicación se vuelva a conectar al lector de Tap to Pay y que, cuando corresponda, notifique al usuario qué ha pasado y cómo puede habilitar el acceso a Tap to Pay. Los usuarios finales pueden resolver ciertos errores, como problemas de conexión a Internet.
const { discoverReaders, connectedReader, discoveredReaders } = useStripeTerminal({ onDidReportUnexpectedReaderDisconnect: (readers) => { // Consider displaying a UI to notify the user and start rediscovering readers }, });
Próximos pasos
Has conectado tu aplicación al lector. A continuación, recoge tu primer pago de Stripe Terminal.
El nombre y el logotipo de BBPOS y Chipper™ son marcas comerciales o marcas registradas de BBPOS Limited en los Estados Unidos y/u otros países. El nombre y el logotipo de Verifone® son marcas comerciales o marcas registradas de Verifone en los Estados Unidos y/u otros países. El uso de las marcas comerciales no implica la aprobación por parte de BBPOS o Verifone.