Skip to main content
Las credenciales almacenadas — también llamadas Merchant Initiated Transactions (MIT) — te permiten cobrar la tarjeta guardada de un cliente en cualquier momento después de que te haya autorizado explícitamente a hacerlo. Los casos de uso comunes incluyen renovaciones de suscripción, planes de cuotas y cobros no programados como la facturación por uso. Las reglas de las banderas de tarjeta (Visa, Mastercard y otras) requieren que declares el tipo de uso de la credencial tanto en el cobro inicial como en cada cobro posterior. Therius pasa esta información directamente a las redes de tarjetas en tu nombre, pero tú debes suministrar los campos correctos.

CIT vs. MIT

Toda relación de credencial almacenada comienza con una Customer Initiated Transaction (CIT), durante la cual el cliente está presente y autoriza explícitamente los cobros futuros.

CIT — cliente presente

El cliente está completando activamente el checkout. Recolectas la tarjeta vía un nonce fresco (o número de tarjeta sin procesar) y estableces cardOnFile.usage: "first". La respuesta devuelve card.networkTransactionId y card.networkReferenceIdguarda ambos valores en tu base de datos. Los necesitarás para cada MIT posterior.

MIT — iniciada por el comercio

El cliente no está presente. Pasas el vault token guardado más los campos de credencial almacenada, incluidos el networkTransactionId y el networkReferenceId de la CIT original. Las redes de tarjetas usan estas referencias para enlazar el cobro con el mandato autorizado.

El objeto cardOnFile

Agrega un bloque cardOnFile dentro del objeto card tanto en la CIT como en cada MIT. cardOnFile en sí es opcional (Therius deriva un valor predeterminado según el contexto — un tokenize nuevo frente a una reutilización de tokenData — cuando se omite), pero una vez que lo envías, usage, initiatedBy y type son los tres campos que juntos clasifican el cobro ante las redes de tarjetas.
initiatedBy usa "cardholder", no "customer" — respeta el valor exacto del enum.
exceptionReason es opcional y se sitúa en un eje propio, independiente de type — no reemplaza a type, añade una etiqueta de excepción de negocio encima. La mayoría de los cobros MIT posteriores nunca lo envían; establécelo solo cuando el cobro específico caiga en una de estas categorías definidas por la bandera:

Ejemplo de CIT inicial

Recolecta la tarjeta de forma normal (usando un nonce del SDK o datos de tarjeta sin procesar en un servidor que cumple PCI), tokenízala estableciendo tokenize: true, e incluye el bloque cardOnFile.
De la respuesta, guarda estos dos campos en tu base de datos — enlazados al vault token del cliente:

Guardar una tarjeta sin conocer el patrón de cobro futuro

Si estás guardando en el vault una tarjeta y aún no sabes si se convertirá en una suscripción recurrente, un plan de cuotas o un cargo único no programado, decláralo como "type": "unscheduled" — la categoría que las redes de tarjetas destinan a “uso futuro autorizado por el titular, patrón aún no determinado”. Guarda igualmente el networkTransactionId/networkReferenceId devueltos; los necesitarás para cualquier MIT que termines enviando.
Si la tarjeta solo se reutilizará en un futuro checkout con el cliente presente — el cliente la elige entre sus métodos guardados y confirma el cobro él mismo, nunca cobrada sin presencia por ti — no necesitas ningún bloque cardOnFile. Solo envía tokenize: true con shopper.id. cardOnFile solo importa cuando ocurrirá una MIT.

Ejemplo de MIT posterior — renovación recurrente

En cada cobro posterior — una renovación, una cuota, un cargo adicional no programado — pasa el vault token más los campos de credencial almacenada y las referencias de red de la CIT original. Este ejemplo muestra una renovación recurrente (estilo suscripción); cambia type por installment o unscheduled para que coincida con el mandato que estableciste en la CIT.
El motor de suscripciones de Therius administra las credenciales almacenadas internamente para todas las renovaciones de suscripción. Nunca necesitas suministrar cardOnFile ni campos de referencia de red al usar la API de suscripciones — esta guía solo es relevante si estás construyendo tu propia lógica de facturación fuera del motor de suscripciones.
Si tu CIT inicial pasa por el Checkout Widget en lugar de una llamada directa a la API, no necesitas construir este bloque cardOnFile a mano — pásalo una vez al crear la sesión del SDK (POST /sdk/session’s cardOnFile). El widget entonces muestra un aviso de “la tarjeta se guardará” y el servidor aplica el etiquetado de credencial almacenada y la tokenización por ti. Ver Suscripciones gestionadas por el comercio.

Tipos de credencial

Recurrente

Usa "type": "recurring" para cobros de monto fijo que se repiten en un calendario predecible — cuotas mensuales de SaaS, renovaciones anuales, cuotas de membresía.

Cuota

Usa "type": "installment" cuando un cliente autoriza un pago dividido en una cantidad fija de cobros — por ejemplo, tres pagos mensuales por una sola compra.

No programada

Usa "type": "unscheduled" para cobros que se autorizan por adelantado pero se disparan por un evento definido por el comercio — facturación por uso, recargas de cuenta, tarifas de conveniencia, o una tarjeta guardada para uso futuro antes de conocer su patrón definitivo.
Ver Razones de excepción arriba para exceptionReason — un eje separado y opcional de type, usado solo cuando una MIT específica cae en una categoría de excepción definida por la bandera.
Las reglas de las banderas de tarjeta requieren una declaración CIT/MIT precisa en cada transacción. Clasificar mal un cobro — por ejemplo, enviar un MIT sin el networkTransactionId original — puede resultar en tasas de rechazo más altas, contracargos o penalidades del adquirente. Ante la duda, contacta al soporte de Therius antes de salir a producción con un nuevo modelo de facturación.