card soporta credencial almacenada (mandato COF de las
marcas): tu pagador guarda su tarjeta con consentimiento explícito en el
primer pago y después puedes ofrecerle pagar sin re-digitar el número — o
cobrarle tú suscripciones y cargos no programados sin que esté presente.
El número de tarjeta jamás existe en tu integración ni en la
plataforma: solo se guarda una referencia opaca del procesador más los
datos de display (marca, últimos 4 dígitos, expiración).
Semilla: ofrece guardar la tarjeta en el primer pago
card con save_card: true y tu referencia del pagador:card_stored y
la tarjeta aparece en tu listado.Lista las tarjetas del pagador
Pago con tarjeta guardada (el pagador presente)
card con stored_card_id: la página salta la captura del
número, muestra la tarjeta guardada (VISA •••• 2701) y el 3-D Secure
corre igual — el pagador solo confirma con su banco. Los datos de
facturación que el pagador ingresó al guardar la tarjeta también quedan
en archivo: la página los aplica sola y muestra solo un resumen enmascarado
(nombre, correo parcial y ciudad) con un enlace “usar otros datos” por si
quiere cambiarlos — no se re-tipea nada. Este camino server-to-server no
pide verificación adicional: tú ya conoces a tu cliente.¿No sabes qué tarjeta tiene guardada (o si tiene)? No pases
stored_card_id: la página de pago le ofrece al pagador descubrir sus
tarjetas verificando su correo con un código — ver
el pagador descubre sus tarjetas.Cobro recurrente / no programado (sin el pagador)
recurring: true) o cargos
no programados acordados con tu cliente:201 — el cobro aprobado acredita tu saldo automáticamente
(webhook payin_credited, mismo camino que cualquier payin de tarjeta):422 con el payin en failed y
failure_reason. Un retry con la misma idempotency_key devuelve el payin
original y jamás cobra dos veces.Dirección de facturación en archivo (requerida para capturar)
Todo cobro MIT necesita una dirección de facturación completa del tarjetahabiente — el procesador la exige para capturar el cobro. La plataforma la toma automáticamente de los datos de facturación que el pagador ingresó al guardar la tarjeta (nombre, correo, dirección, ciudad, código postal, país y estado/región cuando el país lo exige — ver estado/región de facturación por país), así que no envías nada extra en el request.- Tarjetas guardadas con billing completo — operan sin cambios.
- Tarjetas legacy sin billing completo — el cobro se rechaza con
422 core_rejected(dirección de facturación incompleta) sin mover plata. Pide al pagador guardar la tarjeta de nuevo consave_card: true(la página de pago captura la dirección completa, incluido el estado/región).
DELETE /v1/stored-cards/{stored_card_id} — los cobros dejan de funcionar
al instante y recibes stored_card_revoked (422 stored_card_revoked si
intentas cobrarla después).
El pagador descubre sus tarjetas en la página de pago
Toda página de pago con tarjeta — lapayment_url de un payin card y la
opción tarjeta del checkout universal — pide el correo del pagador como
primer campo. Si ese correo tiene tarjetas guardadas contigo, la página
le envía un código de verificación (con la marca de tu organización) y
solo cuando lo ingresa correctamente le revela sus tarjetas: marca,
últimos 4 dígitos y vencimiento, jamás el número completo. Al elegir una,
paga con 3-D Secure sin re-digitarla; también puede elegir “usar otra
tarjeta” y pagar con una nueva.
El pagador escribe su correo
customer.email (o un payer_reference con correo),
la página lo muestra pre-llenado. Si el correo no tiene tarjetas guardadas,
el formulario de tarjeta nueva sigue su curso — no se revela nada.Lo verifica con el código (una vez por dispositivo)
Elige la tarjeta y paga
Suscripciones (cobros recurrentes agendados)
Si en vez de cobrar tú manualmente cada mes quieres que la plataforma lleve el calendario, crea una suscripción sobre la tarjeta guardada: el primer período se cobra al crearla (salvostart_at futuro) y los
siguientes se disparan solos según el interval.
201 (el first_charge aparece cuando se cobró el primer
período al crear):
interval:daily,weekly,monthlyoyearly. El día del mes se conserva y se ajusta al último día en meses cortos (un plan del 31 cobra el 28/29 de febrero y vuelve al 31 en marzo).start_at(opcional, RFC3339 futuro): difiere el primer cobro (trial / fecha de inicio); sin él, cobra al crear.- Dunning: si el emisor declina, la plataforma reintenta cada 24 h
hasta 3 veces; agotados, la suscripción pasa a
past_duey recibes el webhooksubscription_status_changed.resumela reactiva con un intento fresco. - Cada cobro exitoso acredita tu saldo como cualquier payin de tarjeta
(webhook
payin_credited, consubscription_idpara enlazarlo al plan).
DELETE /v1/stored-cards/{id}) cancela
automáticamente sus suscripciones (cancel_reason: card_revoked).
Estados de la suscripción
Errores
FAQ
¿Almacenan el número de tarjeta (PAN)?
¿Almacenan el número de tarjeta (PAN)?
¿Por qué los cobros recurrentes no piden 3-D Secure?
¿Por qué los cobros recurrentes no piden 3-D Secure?
¿Qué pasa con las suscripciones si la tarjeta se revoca?
¿Qué pasa con las suscripciones si la tarjeta se revoca?
card_revoked). El pagador debe guardar la
tarjeta de nuevo y tú creas una suscripción nueva.¿Pausar acumula cobros?
¿Pausar acumula cobros?
¿Cómo funciona el dunning cuando un cobro declina?
¿Cómo funciona el dunning cuando un cobro declina?
past_due y recibes subscription_status_changed — no hay más
cobros hasta que hagas resume.¿Cuándo se cobra el primer período?
¿Cuándo se cobra el primer período?
start_at futuro (trial): ahí
el primer cobro espera esa fecha.¿Por qué la página de pago pide un código al correo del pagador?
¿Por qué la página de pago pide un código al correo del pagador?
¿El pagador debe verificar su correo en cada pago?
¿El pagador debe verificar su correo en cada pago?