Referencia del Checkout Component
Referencia completa de la interfaz del Checkout Component: métodos, parámetros de configuración, callbacks y los objetos que recibes (OrderDTO, Charge).
Esta página documenta toda la interfaz pública del Checkout Component: los métodos para inicializarlo, los parámetros de config, cada uno de los callbacks y la forma de los objetos que recibes. Para el paso a paso de integración ve a Pagos con Checkout Component.
VersionadoEl contrato (callbacks y objetos) avanza con la versión del Component, no con la versión de la API REST. Los campos se agregan de forma aditiva entre versiones. Esta referencia corresponde a la línea
4.xdel Component.
Cómo se carga
<script crossorigin src="https://pay.conekta.com/v1.0/js/conekta-checkout.min.js"></script>pay.conekta.com/v1.0/… es un punto de entrada estable: carga la build vigente del Component.
Métodos
| Método | Uso |
|---|---|
ConektaCheckoutComponents.Integration({ config, callbacks, options }) | Checkout embebido (este es el método principal) |
ConektaCheckoutComponents.Card({ config, callbacks, options }) | Solo tokenizador de tarjeta |
Ambos reciben el mismo objeto con config y callbacks; options es opcional.
Checkout embebido — Integration (el flujo principal): monta el formulario de pago y procesa la orden.
window.ConektaCheckoutComponents.Integration({
config: {
publicKey: '{{yourKey}}',
checkoutRequestId: '{{checkoutRequestId}}', // el checkout.id que creaste en tu servidor
targetIFrame: 'example',
locale: 'es',
},
callbacks: {
onFinalizePayment: function (order) {
// No es confirmación de pago: confírmalo en tu servidor (ver onFinalizePayment).
console.log('Orden:', order.id);
},
onErrorPayment: function (error) {
console.error('Error de pago:', error);
},
},
options: {
backgroundMode: 'lightMode', // lightMode o darkMode
inputType: 'minimalMode', // minimalMode o flatMode
},
});Solo tokenizador — Card: genera el token de una tarjeta. No crea una orden, por lo que no usa checkoutRequestId.
window.ConektaCheckoutComponents.Card({
config: {
publicKey: '{{yourKey}}',
targetIFrame: 'example',
locale: 'es',
},
callbacks: {
onCreateTokenSucceeded: function (token) {
// Envía el token a tu servidor para crear el cargo.
console.log('Token:', token);
},
onCreateTokenError: function (error) {
console.error('Error al tokenizar:', error);
},
},
});Configuración (config)
config)| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
publicKey | string | Sí | Tu llave pública (solo en el cliente). |
checkoutRequestId | string | Sí (Integration) | El checkout.id de la orden que creaste en tu servidor. El tokenizador (Card) no lo usa. |
targetIFrame | string | Sí | El id del contenedor (elemento HTML) donde se monta el Component. |
locale | string | Sí | Idioma, p. ej. es. |
useExternalSubmit | boolean | No | Oculta el botón de pago integrado para que dispares el cobro desde tu propio botón. Ver Submit externo más abajo. |
options | object | No | Estilos y comportamiento (colores, inputType, autoResize, …). Ver Customización. |
Callbacks
Se pasan dentro del objeto callbacks. Todos son opcionales.
onGetInfoSuccess
onGetInfoSuccessSe dispara cuando el Component terminó de cargar.
(perf: { initLoadTime: number }) => void — initLoadTime es el tiempo de carga en ms.
onFinalizePayment
onFinalizePaymentSe dispara cuando el pago se procesó correctamente. Recibe el objeto OrderDTO (ver abajo).
(order: OrderDTO) => void
El callback no es una confirmación de pago. Confírmalo desde tu servidor: por el webhookorder.paid, o consultando el estado de la orden y sus cargos vía API (Obtener una orden).
onErrorPayment
onErrorPaymentSe dispara cuando ocurrió un error durante el pago. Recibe un string (no un objeto).
(error: string) => void
onChargeFailed
onChargeFailedSe dispara cuando falla el cargo. Recibe un objeto con el detalle del error.
(error: { code?: string; message: string }) => void
onCreateTokenSucceeded
onCreateTokenSucceeded(Flujo de tokenizador) Se dispara cuando se creó el token de tarjeta.
(token: string) => void
onCreateTokenError
onCreateTokenError(Flujo de tokenizador) Se dispara cuando falló la creación del token.
(error: string) => void
onFormError
onFormErrorSe dispara ante un error de validación del formulario.
(error: any) => void
onUpdateSubmitTrigger
onUpdateSubmitTriggerEntrega la función de submit cuando usas useExternalSubmit: true. Guárdala e invócala desde tu propio botón "Pagar". Ver Submit externo para el flujo completo.
(submit: (args: any) => void) => void
onPayByBankWaitingPay
onPayByBankWaitingPaySe dispara en el estado de espera de Pago Directo (pay by bank).
(data: { provider: string; redirectUrl?: string; deepLink?: string; reference?: string }) => void
onEventListener
onEventListenerFlujo genérico de eventos del Component.
(payload: { name: string; value: any }) => void
preRedirect
preRedirectIntercepta una redirección antes de que ocurra; resuelve false para cancelarla.
(urlRedirect: string) => Promise<boolean>
Submit externo
Por defecto el Component muestra su propio botón "Pagar". Para dispararlo desde un botón de tu interfaz:
- Pasa
useExternalSubmit: trueenconfig; esto oculta el botón integrado. - Implementa el callback
onUpdateSubmitTrigger: el Component te entrega una funciónsubmitcuando el checkout está listo para pagarse. - Guarda esa función e invócala desde el
clickde tu propio botón.
Agrega tu botón en tu HTML (vive en tu página, fuera del iframe del Component):
<button id="mi-boton-pagar">Pagar</button>Luego inicializa el Component y conéctalo a ese botón:
// Placeholder hasta que el Component entregue la función real:
// si alguien hace click antes de tiempo, avisa en consola en vez de fallar.
let triggerSubmit = function () {
console.warn('La función de submit aún no está disponible.');
};
window.ConektaCheckoutComponents.Integration({
config: {
publicKey: '{{yourKey}}',
checkoutRequestId: '{{checkoutRequestId}}',
targetIFrame: 'example',
locale: 'es',
useExternalSubmit: true, // oculta el botón integrado del Component
},
callbacks: {
onUpdateSubmitTrigger: function (submit) {
triggerSubmit = submit; // guarda la función de submit real
},
onFinalizePayment: function (order) {
console.log('Orden:', order.id);
},
},
});
// '#mi-boton-pagar' es el botón que TÚ agregas a tu HTML; usa el selector del tuyo.
document.querySelector('#mi-boton-pagar').addEventListener('click', function () {
triggerSubmit();
});
onUpdateSubmitTriggersolo se invoca cuandouseExternalSubmitestruey el checkout está listo para pagarse. Asegúrate de haber recibido la funciónsubmitantes de invocarla desde tu botón.
Objetos
OrderDTO — payload de onFinalizePayment
OrderDTO — payload de onFinalizePayment
Este objeto lo emite el Component y es específico de este flujo: no es el objetoorderde la API REST (ese usapayment_statusy una lista paginada decharges). Usa nombres en camelCase y trae tantochargecomocharges.
| Campo | Tipo | Descripción |
|---|---|---|
id | string | ID de la orden (ord_...). |
reference | string | Referencia de la orden. |
status | string | Estado del cobro (p. ej. paid). Es del Component, no payment_status. |
charge | Charge | El primer cargo (charges[0]), por conveniencia. |
charges | Charge[] | Todos los cargos. |
metaData | object | Tu metadata (nota: en camelCase aquí). |
urlRedirect | string | URL de redirección de éxito/error, cuando aplica. |
cardSaved | string | Si se guardó la tarjeta. |
nextAction | object | null | Acción siguiente, p. ej. una redirección 3DS. |
Charge — elemento de charge / charges
Charge — elemento de charge / charges| Campo | Tipo | Descripción |
|---|---|---|
id | string | ID del cargo. |
status | string | Estado del cargo (ver más abajo). |
amount | number | Monto en centavos. |
currency | string | Moneda (ISO 4217). |
paymentMethod | object | Método de pago usado. |
object | string | Tipo de objeto. |
description | string | Descripción. |
createdAt | number | Fecha de creación (epoch). |
paidAt | number | null | Fecha de pago (epoch) o null. |
fee | number | Comisión. |
customerId | string | ID del cliente. |
orderId | string | ID de la orden. |
Estados de cargo (status)
status)| Valor | Significado |
|---|---|
paid | Pagado. |
pending_payment | Pendiente de pago. |
partially_paid | Pagado parcialmente. |
unsuccessfully_paid | Pago fallido. |
canceled | Cancelado. |
Updated about 7 hours ago

