Saltar al contenido principal

Registrar pagos de Apple Pay

Clatri recibe datos de una automatización de Wallet al acercar una tarjeta a un lector. No lee todo el historial bancario ni captura automáticamente transferencias, ingresos, devoluciones o pagos de suscripciones. El evento del tap tampoco demuestra por sí solo que el banco haya aprobado o liquidado una compra.

Configuración paso a paso​

  1. Abre Clatri con tu sesión iniciada. Después de instalar o actualizar, abre la app una vez para conectar Wallet; no copies claves ni tokens en Atajos.
  2. En Atajos, crea un disparador de transacción de Wallet: When Any Card is tapped. En la interfaz de las capturas, activa Automation y desactiva Notify. En versiones que muestran Run Immediately / Ejecutar de inmediato, elige esa opción. Deja Any Category y Any Merchant si quieres capturar todos los taps compatibles.
  3. Antes de la acción de Clatri, añade Set Variable / Definir variable y llámala WalletAmount. En su entrada, selecciona Transaction, toca esa variable y marca Amount. Debe quedar Set variable WalletAmount to Amount.
  4. Añade Clatri → Log Wallet transaction y despliega sus campos con la flecha.
  5. Enlaza los cuatro campos según la tabla. Para campos de texto, toca el campo y usa Select Variable; en Amount, también puedes mantener pulsado el campo para elegir WalletAmount. Después toca cada variable insertada para elegir su propiedad.
Campo de ClatriVariable y propiedad que debes seleccionar
AmountWalletAmount → Currency Amount, la segunda fila con ese nombre, debajo de Currency Code
Currency CodeWalletAmount → Currency Code
MerchantTransaction → Merchant
CardTransaction → Card or Pass
Last 4 digits — opcionalDéjalo vacío o configúralo con una de las alternativas de identificación explicadas abajo
  1. Desactiva Show When Run / Mostrar al ejecutar en la acción de Clatri. Ningún campo debe estar en Ask Each Time / Preguntar cada vez.
  2. Guarda y vuelve a abrir el editor para comprobar los enlaces. El nombre visible de una variable puede seguir siendo WalletAmount o Transaction: toca el token y verifica la propiedad marcada; su etiqueta por sí sola no basta.
El paso intermedio es necesario

El selector directo de Transaction muestra Amount, Merchant y Card or Pass, pero no permite encadenar ahí otra selección de divisa. Al guardar Transaction → Amount en WalletAmount, Atajos reconoce el tipo Currency Amount y ofrece sus propiedades.

En el selector de WalletAmount aparecen dos filas Currency Amount: la primera representa el objeto completo; la que está debajo de Currency Code es la propiedad numérica que necesita Amount. No elijas la primera. Para la moneda, elige Currency Code de esa misma variable: así puede llegar USD, COP u otra moneda del evento, sin fijar USD manualmente.

Usa la salida Transaction del disparador. Shortcut Input solo sirve si has configurado un atajo separado que reciba la transacción como entrada.

Capturas de la configuración​

Disparador con Automation activado y Notify desactivado:

Disparador para cualquier tarjeta, categoría y comercio; Automation activado y Notify desactivado

Variable intermedia: selecciona Amount de Transaction:

Set variable WalletAmount con Amount seleccionado dentro de Transaction

Campo Amount: elige la propiedad Currency Amount debajo de Currency Code:

WalletAmount de tipo Currency Amount, con la segunda fila Currency Amount marcada para extraer el número

Campo Currency Code: elige el código de la misma variable:

Propiedad Currency Code marcada en WalletAmount

Comercio y tarjeta procedentes del disparador:

Propiedad Merchant marcada dentro de Transaction Propiedad Card or Pass marcada dentro de Transaction

Flujo con Last 4 digits conectado al diccionario y Show When Run desactivado:

Acción Log Wallet transaction con los cuatro campos del evento y Last 4 digits enlazado a Dictionary Value Una sola automatización guardada con el nombre Log Wallet transaction

Comprobar el próximo pago​

No pulses ▶ para simular un pago: una ejecución manual no contiene la transacción del lector. Después de tu próxima compra real con Apple Pay, comprueba en Clatri el importe, la moneda, el comercio, la tarjeta y la entidad. Que la automatización esté guardada o el servidor tenga una conexión válida no demuestra por sí solo que se haya contabilizado un gasto.

Si Wallet no envía los últimos cuatro dígitos​

Wallet puede entregar solo un nombre, como Visa Oro. Un diccionario no recupera dígitos ocultos: usa una asociación que tú defines entre ese nombre y la tarjeta guardada en Clatri. El importe, la divisa y el comercio siguen viniendo de la transacción.

Últimos cuatro dígitos opcionales

El campo Last 4 digits / Últimos 4 dígitos de Log Wallet transaction es opcional. Permite indicar la terminación de la tarjeta mediante las alternativas siguientes. Si lo dejas vacío, Clatri utiliza la información de Card. No pegues texto en Card, que recibe un objeto de Wallet. Vacío no significa «Preguntar cada vez»: la acción conserva la información de Card sin solicitar que rellenes la terminación. Clatri puede pedir aclaración después si no encuentra una tarjeta única o una cuenta de débito verificada.

Usa solo una de estas alternativas para cada tarjeta. Desactiva cualquier automatización anterior que también enviaría el mismo pago a Clatri: dos automatizaciones pueden crear dos gastos.

Alternativa A: una automatización por tarjeta​

  1. Crea el disparador Transaction / Transacción y selecciona una tarjeta concreta en lugar de Any Card. Apple permite elegir la tarjeta que dispara la automatización.
  2. Configura Amount, Currency Code, Merchant y Card como en la tabla de arriba.
  3. En Last 4 digits, escribe como texto los cuatro dígitos de esa tarjeta tal como está registrada en Clatri. Por ejemplo, 0042 conserva ambos ceros. Es un ejemplo ficticio: sustitúyelo por tu terminación.
  4. Elige ejecutar de inmediato y guarda. Repite para las otras tarjetas, cambiando tanto el filtro del disparador como los dígitos.

Es la opción recomendada si dos tarjetas tienen el mismo nombre en Wallet y puedes verificar cuál seleccionas en el disparador. Si el selector solo muestra nombres idénticos, no asignes terminaciones basándote en el orden de las filas. Nunca fijes los dígitos de una sola tarjeta en una automatización que acepta cualquier tarjeta.

Alternativa B: una automatización con Diccionario​

  1. Mantén el disparador Any Card y la variable WalletAmount del flujo básico.
  2. Añade Set Variable / Definir variable, llámala WalletCard y selecciona Transaction → Card or Pass como entrada. Conserva el tipo Payment Method / Método de pago; no escribas un nombre fijo en esta variable.
  3. Añade Diccionario / Dictionary. Crea una entrada por tarjeta con el nombre exacto como clave y los cuatro dígitos como valor de tipo Texto, nunca Número. Ejemplo ficticio:
{
"Visa Oro": "0042",
"Mastercard Viajes": "5678"
}
  1. Añade Obtener valor del diccionario / Get Dictionary Value. En Key / Clave, selecciona WalletCard, toca el token y marca Name / Nombre. En Dictionary, selecciona la salida del diccionario anterior. Debe verse Get Value for Name in Dictionary. Apple explica cómo consultar un diccionario por su clave.
  2. Coloca Log Wallet transaction después de la consulta. En Last 4 digits, selecciona Dictionary Value / Valor del diccionario. Conserva los otros cuatro enlaces del evento; Card sigue siendo Transaction → Card or Pass, no el nombre ni el resultado del diccionario.
  3. Guarda y vuelve a abrir. Si el nombre no está en el diccionario, deja la terminación vacía. El campo opcional queda sin terminación configurada y Clatri utiliza lo que recibe en Card. Si no puede identificar una tarjeta única ni una cuenta de débito verificada, recibe el evento para aclaración y no registra automáticamente el gasto.

Si cambia el nombre recibido, actualiza la clave. Dos tarjetas llamadas «Wise Card» no pueden distinguirse con esa clave, aunque Clatri tenga ambas terminaciones. No añadas claves repetidas esperando que Atajos elija ni les asignes una terminación supuesta. Si son de débito y Clatri tiene verificada una única cuenta de origen, puede registrar el gasto contra esa cuenta sin identificar la tarjeta física o virtual; consulta la sección siguiente. Para crédito o destinos distintos, usa una automatización por tarjeta únicamente cuando puedas verificar el filtro concreto; de lo contrario, revisa la aclaración en Clatri. Los dígitos configurados tienen prioridad sobre la pista que entregue Wallet: comprueba la asociación antes de activarla.

No hace falta Apple Intelligence para ninguna de estas dos alternativas. Después del próximo pago real, comprueba que el recibo recibido muestra la terminación configurada y que se registró en la tarjeta y entidad correctas. No uses ▶ con importes de prueba en la acción real de Clatri.

Capturas del diccionario y su conexión​

Ejemplo con WalletAmount, WalletCard y un diccionario con tres nombres distintos. Sustituye los nombres y las terminaciones de las capturas por los de tus tarjetas.

WalletCard obtiene Card or Pass; el diccionario asocia Visa Oro con 0056, Debito Mastercard con 2510 y Wise Business Physical con 5226

Selecciona Name de WalletCard para consultar el diccionario:

WalletCard de tipo Payment Method con la propiedad Name marcada

La acción final y su campo Last 4 digits → Dictionary Value aparecen en las capturas del flujo de arriba.

Asociaciones en Clatri y Comportamientos​

El diccionario de la alternativa B se crea en la app Atajos de Apple y envía la terminación con cada pago. También existe una asociación explícita del nombre de Wallet con una tarjeta en Clatri: si ya está configurada y es única, permite identificarla sin recibir los dígitos. Es una configuración distinta del texto de Comportamientos.

En Configuración → Tendencias de comportamiento, dentro de la entidad correspondiente, puedes anotar preferencias y explicar qué tarjeta corresponde a un nombre de Apple Pay. El agente recibe esos comportamientos cuando procesa el pago, y puedes editarlos mediante un prompt en el chat de Clatri. Por ejemplo, usando datos ficticios:

Añade a los comportamientos de esta entidad, conservando las otras reglas: en Apple Pay, «Visa Oro» corresponde a mi tarjeta terminada en 0042. Si falta información para identificarla, pídeme aclaración. Confirma qué texto guardaste.

Para cambiarlo después, pide sustituir esa asociación concreta e indica el nombre y la nueva terminación. Revisa el texto guardado en Configuración; una respuesta del chat sin confirmación de guardado no demuestra que la preferencia persista.

Identificación del pago: el flujo identifica primero la tarjeta o una cuenta de débito verificada, y su entidad, mediante los dígitos o una asociación explícita. Si no encuentra un destino único, se detiene antes de ejecutar al agente. Por eso escribir una asociación únicamente en Comportamientos no configura el reconocimiento automático de Wallet. Puedes conservarla como contexto, pero para esta automatización usa el diccionario de Atajos o una automatización por tarjeta. El comportamiento tampoco cambia una tarjeta que el flujo ya identificó.

Ayuda con un prompt en iPhone compatible​

Apple documenta la creación de atajos describiéndolos con un prompt en iOS 27, con Apple Intelligence habilitado en iPhone 15 Pro, 15 Pro Max o modelos compatibles posteriores, según idioma y región. No basta con el modelo de iPhone: comprueba que tu editor ofrece esa función. Consulta la guía de creación de atajos de Apple y sus requisitos de Apple Intelligence.

Puedes copiar este prompt, reemplazando primero los ejemplos por tus asociaciones. Revisa las acciones generadas y configura el disparador de Wallet; generar un atajo no demuestra que la automatización ya esté conectada. La IA ayuda a prepararlo, pero el flujo de cada pago solo necesita variables y un diccionario.

Ayúdame a preparar el flujo de una automatización de transacción de Wallet
para Clatri. Usa únicamente acciones disponibles; si no puedes crear el
disparador o enlazar una propiedad, dime el paso manual pendiente.

Del evento Transaction, guarda Amount en WalletAmount. En la acción de
Clatri Log Wallet transaction, enlaza Amount a la propiedad numérica
Currency Amount de WalletAmount, Currency Code a su Currency Code,
Merchant a Transaction.Merchant y Card a Transaction.Card or Pass.
No fijes el importe ni la divisa y no uses Preguntar cada vez.

Guarda Transaction.Card or Pass en WalletCard. Busca WalletCard.Name
en un Diccionario con valores Texto: {"Visa Oro":"0042","Mastercard Viajes":"5678"}.
Estas son asociaciones de ejemplo que sustituiré por mis tarjetas.
Conserva los ceros iniciales. Pasa Dictionary Value a Last 4 digits.
Si no hay coincidencia, deja ese resultado vacío y conserva Card para
que Clatri procese la información original o pida aclaración. No uses
Preguntar cada vez. No asocies nombres repetidos a una tarjeta supuesta
ni uses un modelo de IA durante cada pago.

Si creas un atajo separado, explícame cómo pasarle Transaction desde
la automatización como Entrada del atajo; no asumas que esa entrada
ya existe. Deja pendiente la activación hasta que revise los enlaces
y desactive otras automatizaciones que enviarían el mismo pago.
No ejecutes la acción de Clatri con datos ficticios.

Cómo se elige la entidad​

Clatri busca la terminación recibida entre las tarjetas activas a las que tu usuario tiene acceso. Si Wallet solo envía un nombre, puede usar una asociación explícita previamente verificada; no deduce la tarjeta por la marca Visa o Mastercard. Una tarjeta identificada determina también su entidad. Si falta una coincidencia, puede mostrar el recibo en el chat personal o en la primera entidad disponible, pero eso no identifica automáticamente un destino contable.

Tarjetas de débito física y virtual de la misma cuenta​

No es necesario distinguir la tarjeta física de la virtual para registrar el débito cuando se verifica un único origen:

  • Todas las tarjetas candidatas son de débito, pertenecen a la misma entidad, apuntan a la misma cuenta activa y comparten su moneda; o
  • Existe una asociación explícita del nombre de Wallet con una cuenta de débito en Clatri, sin coincidencias contradictorias.

El gasto queda en esa cuenta y entidad, sin asignar una tarjeta ni inventar los últimos cuatro dígitos. Se conserva el nombre recibido de Wallet. Si la compra llegó en otra divisa, se convierte a la moneda de la cuenta y conserva el aviso de conversión estimada, sin comisiones adicionales.

Crédito es diferente: siempre requiere identificar una tarjeta concreta, esté vinculada a una cuenta o sea independiente. La cuenta asociada no convierte una compra a crédito en débito. Dos tarjetas de crédito ambiguas no se agrupan aunque compartan cuenta. Si hay candidatas de ambos tipos, cuentas, entidades o monedas distintas, Clatri pide aclaración.

Estas asociaciones de cuenta se configuran en el servidor y no tienen un editor en la app. Escribirlas solo en Comportamientos no las crea. En Atajos, conserva el nombre original y deja sin terminación los nombres repetidos: el servidor debe tener la asociación verificada.

La terminación que entrega Wallet puede corresponder a la tarjeta virtual del dispositivo. Comprueba qué terminación recibe la automatización y que permite identificar la tarjeta correcta en Clatri; no asumas que siempre es la de la tarjeta física.

Se requiere una suscripción activa para procesar el gasto. Sin suscripción, el chat muestra el aviso correspondiente.

Qué ocurre en segundo plano​

La entrega se hace desde iOS y no espera a que se abra la interfaz Flutter. Primero guarda el evento en Keychain y después lo envía con un identificador estable. Si no hay conexión, conserva el evento para reintentarlo al abrir o volver a Clatri. No hay una garantía de reintento inmediato con la app cerrada.

El servidor confirma la recepción después de persistir el evento. Un worker lo procesa para la entidad correspondiente. “Recibido para procesar” no significa “gasto contabilizado”: comprueba el resultado en el chat. Los casos cuyo procesamiento quede incierto se conservan para revisión y no se ejecutan otra vez automáticamente.

Aviso del resultado​

Clatri envía una notificación después de procesar el evento:

  • Gasto de Apple Pay registrado: se comprobó que el gasto quedó guardado.
  • Tu pago necesita una aclaración: abre el chat y responde qué tarjeta, entidad o información falta. Recibir el evento no significa haber registrado el gasto.
  • Revisa tu pago de Apple Pay: no se pudo confirmar el registro. Comprueba el chat antes de repetirlo para evitar duplicados.
  • Suscripción inactiva: se recibió el pago, pero hace falta un plan activo para procesarlo.

Permite las notificaciones de Clatri en los ajustes del iPhone. La opción Notify del disparador de Atajos es independiente del aviso de resultado de Clatri: puede permanecer desactivada. Al tocar el aviso se abre el chat y, cuando se identificó, su entidad.

Los avisos no muestran importes, comercios ni tarjetas en la pantalla bloqueada. El servidor reintenta el envío hasta ocho veces, con cinco minutos entre intentos, sin volver a registrar el pago. Que el proveedor acepte el aviso no garantiza que iOS lo muestre: influyen los permisos, los modos de concentración y la conexión.

Compras en otra divisa​

La moneda de Wallet es la moneda de la compra. Clatri convierte automáticamente ese importe a la moneda configurada en la tarjeta identificada o en la cuenta de débito verificada, sin pedir confirmación por usar una divisa diferente. Por ejemplo, una compra en USD con una tarjeta en COP se registra como gasto en COP.

La conversión se calcula en el servidor con una cotización de mercado consultada al procesar el pago. Si no está disponible, usa una tasa diaria reciente de su historial. Para pagos antiguos que llegan tras estar sin conexión, busca la tasa de la fecha del pago o una anterior de hasta siete días; no usa una tasa futura. Si no hay una tasa válida, avisa del problema y conserva el evento para revisión.

El gasto conserva el importe y la moneda originales, el equivalente registrado, la tasa, su fuente y fecha. La conversión queda marcada como estimada: el importe final del banco puede variar por su tasa o comisiones y se puede reconciliar después. No se inventa una tasa ni se presenta la cotización de mercado como una confirmación del banco.

La moneda de la tarjeta identificada, o de la cuenta cuando el registro es solo por cuenta de débito, es el destino de esta automatización; puede ser distinta de la moneda principal de la entidad. Esto no cambia el manejo de extractos bancarios que incluyan saldos facturados en varias monedas ni convierte retroactivamente movimientos anteriores.

Confirmar el importe convertido​

Las conversiones automáticas muestran Conversión estimada · comisiones no incluidas en el listado, en el detalle y al editar el gasto. Clatri registra el equivalente sin añadir comisiones bancarias; conserva el importe original, la tasa, su fuente y fecha.

Si un gasto antiguo tiene una conversión guardada pero no tiene estado de revisión, muestra Conversión sin verificar en esas tres vistas. Esto no afirma que la tasa sea bancaria ni que incluya o excluya comisiones. Puedes revisar y corregir el importe desde el editor y pulsar Confirmar importe final también en estas conversiones antiguas. Guardar una edición normal no confirma la conversión: el aviso permanece hasta la confirmación explícita. La conversión inicial se conserva sin etiquetarla como estimación automática ni deducir comisiones. Los importes antiguos no se recalculan al mostrar este aviso.

Abre el gasto, toca Editar, compara el importe con el cargo del banco y corrígelo si hace falta. Toca Confirmar importe final para guardar: el estado pasa a Confirmado por ti, conservando la estimación original. Esta confirmación valida el total; no afirma que no existieron comisiones ni inventa su desglose. Si luego cambias el importe, la moneda o la tarjeta, necesitará confirmación de nuevo.

Una confirmación manual no se presenta como verificación bancaria. El historial de conversión se conserva. Los gastos antiguos que ya estaban marcados como estimados también se pueden revisar, sin convertir de nuevo sus importes.

Si Wallet ya envía el cargo en la moneda de destino —por ejemplo, al elegir COP en un datáfono— no se realiza otra conversión ni se añade esta etiqueta.

Si aparece un error​

  • Importe o moneda ausente: no se envió el pago. Comprueba el enlace de variables; si Wallet no proporcionó el dato, Clatri no puede inventarlo. La acción no pide rellenarlo con Done.
  • Abrir Clatri para conectar Wallet: abre la app con tu sesión activa. También se necesita tras caducar o revocarse la conexión.
  • Pago guardado en el iPhone, pendiente: abre Clatri para reenviar el evento guardado. No ejecutes manualmente otra vez la acción: una ejecución nueva crea otro evento.
  • Couldn’t communicate with a helper application: es un fallo de ejecución de iOS que no permite afirmar que el evento haya llegado. Comprueba Clatri antes de repetirlo y conserva la hora del fallo para el diagnóstico.

Al cerrar sesión o cambiar de usuario se descartan los pagos pendientes de la conexión anterior en este iPhone. Los eventos ya aceptados por el servidor conservan su propietario original.