+ En este primer paso, procederemos a autorizar una transacción en la + tarjeta que ha sido previamente inscrita. +
-- En este primer paso, procederemos a autorizar una transacción en la tarjeta que ha sido previamente - inscrita. -
++ Ahora que contamos con el username y el tbkUser obtenidos + durante la inscripción, estamos listos para autorizar transacciones en la + tarjeta inscrita. +
-- Ahora que contamos con el username y el tbkUser obtenidos durante la inscripción, - estamos listos para autorizar transacciones en la tarjeta inscrita. -
- -
+
var options = new WebpayOptions(
IntegrationCommerceCodes.ONECLICK_MALL_DEFERRED,
IntegrationApiKeys.WEBPAY,
@@ -39,66 +39,96 @@ Paso 1: Petición
var resp = transaction.authorize(username, tbkUser, buyOrder, details);
- Paso 2: Respuesta
-
-
- Una vez que la transacción ha sido autorizada, Transbank proporcionará la siguiente información.
- Es fundamental conservar esta respuesta y verificar que el campo responseCode tenga un valor de
- 0 y que el campo status sea AUTHORIZED.
-
-
-
-
- ¡Casi listo!
-
-
- Ya puedes mostrar al usuario una página de éxito de la transacción.
- Debes tener en cuenta que la transacción aún no ha sido capturada, solo se ha retenido el saldo en la
- tarjeta del Tarjetahabiente.
-
-
-
-
+ Paso 2: Respuesta
+
+
+ Una vez que la transacción ha sido autorizada, Transbank proporcionará la
+ siguiente información. Es fundamental conservar esta respuesta y verificar
+ que el campo responseCode tenga un valor de 0 y que el campo
+ status sea AUTHORIZED.
+
+
+
+
+ ¡Casi listo!
+
+
+ Ya puedes mostrar al usuario una página de éxito de la transacción. Debes
+ tener en cuenta que la transacción aún no ha sido capturada, solo se ha
+ retenido el saldo en la tarjeta del Tarjetahabiente.
+
+
+
+
+
+
+ CONSULTAR ESTADO
+
+
+ En este paso debemos capturar la transacción para realmente capturar el + dinero que había sido previamente reservado al hacer la transacción. +
-- En este paso debemos capturar la transacción para realmente capturar el dinero que había sido - previamente reservado al hacer la transacción. -
++ Para capturar una transacción necesitaremos el código de comercio de la + tienda, la orden de compra de la tienda, el código de autorización y el + monto a capturar. Se hace de la siguiente manera: +
-- Para capturar una transacción necesitaremos el código de comercio de la tienda hija, la orden de compra - de la tienda hija, el código de autorización y el monto a capturar. Se hace de la siguiente manera: -
- -
+
var options = new WebpayOptions(
IntegrationCommerceCodes.ONECLICK_MALL_DEFERRED,
IntegrationApiKeys.WEBPAY,
@@ -25,58 +25,69 @@ Paso 1: Petición
var response = transaction.capture(childCommerceCode, childBuyOrder, authorizationCode, amount);
- Paso 2: Respuesta
-
-
- Una vez creada la transacción, recibirás los siguientes datos de respuesta:
-
+ Paso 2: Respuesta
-
+
+ Una vez creada la transacción, recibirás los siguientes datos de
+ respuesta:
+
- ¡Transacción Capturada!
-
- Con la transacción capturada, puedes mostrar al usuario una página de éxito de la transacción,
- proporcionándole la confirmación de que el proceso se ha completado con éxito.
-
-
- Otras Utilidades: Después de confirmar la transacción, considera las siguientes utilidades
- adicionales:
-
-
- Reembolso: Evalúa la posibilidad de reversar o anular el pago según ciertas condiciones
- comerciales.
-
-
- Consulta de Estado: Hasta 7 días después de la transacción, puedes consultar su estado para
- obtener más detalles.
-
+
-
+
+
+
+
+
-
+
+ + Es necesario confirmar el registro; este solo se puede hacer una sola vez o retornará error. +
+ ++ Luego de que se termina el flujo en el formulario de inscripción recibirás un POST con la siguiente respuesta. +
+ +
+{
+ "J_TOKEN": ""
+}
+
+
+ + Usarás el token recibido para confirmar la inscripción usando el método status de PatpassComercio. +
+ +
+var response = inscription.status(token);
+
+
+ + Transbank contestará con lo siguiente. Debes guardar esta información; lo importante es validar que + el atributo authorized sea igual a true. +
+ +
+
+ + Una vez realizada la inscripción y confirmada, puedes visualizar el voucher. +
+ ++ En este paso inicial, procederemos a inscribir una tarjeta con el objetivo de obtener un identificador único. + Esto nos permitirá redirigir al Tarjetahabiente hacia el formulario de inscripción en el siguiente paso. +
+ ++ Todas las transacciones de este proyecto ejemplo son realizadas en ambiente de integración. +
+ +
+ Para comenzar, importa la librería PatpassComercio y luego inicia una inscripción. Tener en cuenta:
+ el ambiente de integración no admite direcciones locales en los atributos url y finalUrl.
+
+import cl.transbank.common.IntegrationApiKeys;
+import cl.transbank.common.IntegrationCommerceCodes;
+import cl.transbank.patpass.PatpassComercio;
+
+var inscription = PatpassComercio.Inscription.buildForIntegration(
+ IntegrationCommerceCodes.PATPASS_COMERCIO,
+ IntegrationApiKeys.PATPASS_COMERCIO
+);
+
+var resp = inscription.start(
+ returnUrl,
+ name,
+ lastName,
+ secondLastName,
+ rut,
+ serviceId,
+ finalUrl,
+ maxAmount,
+ phone,
+ cellPhone,
+ patpassName,
+ personEmail,
+ commerceEmail,
+ address,
+ city
+);
+
+
+ + Una vez iniciada la inscripción, recibirás los siguientes datos de respuesta: +
+ +
+
+ + Utiliza los datos obtenidos durante la inscripción para generar un formulario, proporcionando al + Tarjetahabiente una experiencia de inscripción fluida y segura. +
+ +
+
+
+ + Para poder iniciar la inscripción, se necesitan los siguientes datos: +
+ + + ++ La inscripción ya se encuentra finalizada. Una vez finalizada la inscripción puedes seguir consultando por el voucher. +
+ +En este primer paso, procederemos a autorizar una transacción en la tarjeta que ha sido previamente inscrita.
+Ahora que contamos con el username y el tbkUser, estamos listos para autorizar transacciones.
+var details = MallTransactionCreateDetails.build()
+ .add(amount1, childCode1, childBuyOrder1, (byte) installments1)
+ .add(amount2, childCode2, childBuyOrder2, (byte) installments2);
+var resp = transaction.authorize(username, tbkUser, buyOrder, details);
+ Verifica que el campo responseCode tenga valor 0 y que el campo status sea AUTHORIZED.
+
+ Después de autorizar la transacción, considera las siguientes utilidades adicionales:
+En este paso fundamental, procederemos a eliminar la inscripción del usuario y su medio de pago.
+Para llevar a cabo la eliminación, necesitas el "username" y el "tbkUser".
+inscription.delete(tbkUser, username);
+ En caso de éxito, Transbank responderá con un status code 204 (No Content), y el SDK no retornará ningún valor.
+En el caso de que no se encuentre el "username" o el "tbkUser", el SDK lanzará una excepción del tipo TransbankException.
+En esta fase, completaremos el proceso de inscripción, permitiéndonos posteriormente realizar cargos a la tarjeta inscrita.
+Después de finalizar el flujo en el formulario de inscripción, recibirás un GET con la siguiente información:
+{"TBK_TOKEN":""}
+ Utiliza el token recibido para finalizar la inscripción mediante una nueva llamada a Oneclick.
+var response = inscription.finish(token);
+ Transbank responderá con información crucial. Guarda estos detalles, ya que serán necesarios para autorizar transacciones futuras.
+
+ Con la inscripción exitosa se pueden autorizar transacciones.
+Asegúrate de guardar los datos de la respuesta obtenidos durante la inscripción.
+ +Después de una inscripción exitosa, tienes tres opciones: autorizar un pago, consultar bines o borrar al usuario que se acaba de inscribir.
+Tienda 1
+Tienda 2
+
+ Con esta operación puedes consultar el BIN asociado al medio de pago
+ inscrito usando el valor de tbkUser. Si el comercio no tiene
+ habilitado este servicio, la respuesta incluirá un error.
+
+ Para realizar la consulta, necesitarás el tbkUser obtenido al
+ finalizar la inscripción.
+
var resp = binInfo.queryBin(tbkUser);
+
+ + Transbank responderá con la información del BIN consultado. +
+
+ + En esta etapa, tienes la opción de solicitar el reembolso del monto al + titular de la tarjeta. +
++ Para llevar a cabo el reembolso, necesitas la orden de compra, el código + de comercio(tienda), la orden de compra(tienda) y el monto. +
++ En + este link + podrás ver mayor información sobre las condiciones y casos para anular o + reversar transacciones. +
+var resp = transaction.refund(buyOrder, childCommerceCode, childBuyOrder, amount);
+ + Transbank responderá con el resultado del proceso de reembolso. +
+
+ CONSULTAR ESTADO
+ En esta etapa comienza el proceso de inscripción del medio de pago. Este paso inicial es fundamental para dirigir al Tarjetahabiente al formulario de inscripción.
+Todas las transacciones en este proyecto de ejemplo son realizadas en ambiente de integración.
+var options = new WebpayOptions(commerceCode, apiKey, IntegrationType.TEST);
+var inscription = new Oneclick.MallInscription(options);
+var resp = inscription.start(username, email, responseUrl);
+ Una vez que hayas iniciado la inscripción, aquí encontrarás los datos de respuesta generados por el proceso.
+
+ Utiliza estos datos de respuesta para redireccionar al usuario al formulario de inscripción del Tarjetahabiente.
+
+ Para llevar a cabo una inscripción en nuestro sistema, primero debemos crearla.
+ +Para fines de este ejemplo, haremos visible el campo "TBK_TOKEN", el cual es esencial para completar el proceso.
+ Antes de continuar al formulario de Webpay, asegúrate de contar con los datos de las tarjetas de prueba que están en la documentación. +Puedes solicitar el estado de una transacción hasta 7 días después de su realización. No hay límite de solicitudes durante ese período.
+Para realizar la consulta, necesitarás el buyOrder de la transacción de interés.
+var response = transaction.status(buyOrder);
+ Transbank responderá con la siguiente información.
+
+ + En este paso crucial, procederemos a confirmar la transacción con el objetivo de notificar a + Transbank que hemos recibido la transacción de manera exitosa. Es fundamental destacar que si no se confirma la + transacción, esta será caducada. +
+ ++ Para confirmar la transacción, debes enviar el token correspondiente. En el caso de pagos a + plazos, también debes incluir el ID de la consulta de cuotas. En algunos casos, será necesario proporcionar el + índice del periodo diferido y un valor boolean indicando si se tomará el periodo de gracia. +
+ +
+import cl.transbank.common.IntegrationApiKeys;
+import cl.transbank.common.IntegrationCommerceCodes;
+import cl.transbank.common.IntegrationType;
+import cl.transbank.webpay.common.WebpayOptions;
+import cl.transbank.webpay.transaccioncompleta.FullTransaction;
+
+FullTransaction tx = new FullTransaction(
+ new WebpayOptions(
+ IntegrationCommerceCodes.TRANSACCION_COMPLETA,
+ IntegrationApiKeys.WEBPAY,
+ IntegrationType.TEST
+ )
+);
+var resp = tx.commit(token, idQueryInstallments, deferredPeriodIndex, gracePeriod);
+
+
+ + Una vez que la transacción ha sido confirmada Transbank proporcionará la siguiente información. Es fundamental + conservar esta respuesta y verificar que el campo "response_code" tenga un valor de cero y que el campo "status" + sea "AUTHORIZED". +
+ +
+
+ + Con la transacción confirmada, puedes mostrar al usuario una página de éxito de la transacción, + proporcionándole la confirmación de que el proceso se ha completado con éxito. +
+ +Después de confirmar la transacción, podrás realizar otras operaciones útiles:
++ En este paso sucede la creación de la transacción con el objetivo de obtener un identificador único para la misma. +
+ ++ Comienza importando la librería TransaccionCompleta, y a continuación, crea la transacción necesaria. +
+ +
+import cl.transbank.common.IntegrationApiKeys;
+import cl.transbank.common.IntegrationCommerceCodes;
+import cl.transbank.common.IntegrationType;
+import cl.transbank.webpay.common.WebpayOptions;
+import cl.transbank.webpay.transaccioncompleta.FullTransaction;
+
+FullTransaction tx = new FullTransaction(
+ new WebpayOptions(
+ IntegrationCommerceCodes.TRANSACCION_COMPLETA,
+ IntegrationApiKeys.WEBPAY,
+ IntegrationType.TEST
+ )
+);
+
+var resp = tx.create(buyOrder, sessionId, amount, cvv, cardNumber, cardExpiry);
+
+
+ Una vez creada la transacción, recibirás los siguientes datos de respuesta:
+ +
+
+ Ahora que hemos creado la transacción, se abren dos opciones para continuar:
++ En esta primera etapa necesitas obtener los datos esenciales de la tarjeta + de crédito, débito o prepago del titular. Utiliza el formulario para + recolectar esta información de manera segura. +
+ ++ En esta etapa, realizaremos una consulta de cuotas para conocer sus condiciones. Es importante + destacar que este paso es opcional y se utiliza únicamente si deseas ofrecer opciones de pago a plazos. +
+ +Para llevar a cabo la consulta de cuotas, debemos enviar los siguientes datos relevantes.
+ +
+import cl.transbank.common.IntegrationApiKeys;
+import cl.transbank.common.IntegrationCommerceCodes;
+import cl.transbank.common.IntegrationType;
+import cl.transbank.webpay.common.WebpayOptions;
+import cl.transbank.webpay.transaccioncompleta.FullTransaction;
+
+FullTransaction tx = new FullTransaction(
+ new WebpayOptions(
+ IntegrationCommerceCodes.TRANSACCION_COMPLETA,
+ IntegrationApiKeys.WEBPAY,
+ IntegrationType.TEST
+ )
+);
+
+var resp = tx.installments(token, installments);
+
+
+ Una vez realizada la consulta de cuotas, recibirás los siguientes datos de respuesta:
+ +
+
+ + Si decides utilizar cuotas y estás satisfecho con las condiciones obtenidas en la consulta, el + siguiente paso sería confirmar la transacción. +
+ ++ En esta etapa, tendrás la posibilidad de solicitar el reembolso del dinero al tarjeta habiente. El + tipo de reembolso (Reversa, Anulación o Anulación parcial) dependerá del monto y el tiempo transcurrido desde la + transacción. +
+ ++ Para efectuar la solicitud de reembolso, necesitarás el token de la transacción y el monto que + deseas reversar. Si decides anular el monto total, puede resultar en una Reversa o Anulación, según ciertas + condiciones. En caso de un monto menor al total, se realizará una Anulación parcial. Las anulaciones parciales + para tarjetas débito y prepago no están soportadas. +
++ En este + link + podrás ver mayor información sobre las condiciones y casos para anular o reversar + transacciones. +
+ +
+import cl.transbank.common.IntegrationApiKeys;
+import cl.transbank.common.IntegrationCommerceCodes;
+import cl.transbank.common.IntegrationType;
+import cl.transbank.webpay.common.WebpayOptions;
+import cl.transbank.webpay.transaccioncompleta.FullTransaction;
+
+FullTransaction tx = new FullTransaction(
+ new WebpayOptions(
+ IntegrationCommerceCodes.TRANSACCION_COMPLETA,
+ IntegrationApiKeys.WEBPAY,
+ IntegrationType.TEST
+ )
+);
+var resp = tx.refund(token, amount);
+
+
+ + Transbank responderá con el resultado de la reversa o anulación. Evalúa cuidadosamente esta respuesta para + confirmar que el reembolso se haya procesado de manera efectiva. +
+ +
+
+ CONSULTAR ESTADO
+ + En esta fase, tendrás la capacidad de solicitar el estado actual de una transacción hasta 7 días + después de su realización. Es importante destacar que no hay límite en la cantidad de solicitudes de este tipo + durante este período. Sin embargo, una vez transcurridos los 7 días, ya no podrás revisar el estado de la + transacción. +
+ ++ Para llevar a cabo la solicitud de estado, necesitarás el token correspondiente a la transacción + de la cual deseas obtener información. Utiliza este token para realizar una llamada a + Transaction.status(). +
+ +
+import cl.transbank.common.IntegrationApiKeys;
+import cl.transbank.common.IntegrationCommerceCodes;
+import cl.transbank.common.IntegrationType;
+import cl.transbank.webpay.common.WebpayOptions;
+import cl.transbank.webpay.transaccioncompleta.FullTransaction;
+
+FullTransaction tx = new FullTransaction(
+ new WebpayOptions(
+ IntegrationCommerceCodes.TRANSACCION_COMPLETA,
+ IntegrationApiKeys.WEBPAY,
+ IntegrationType.TEST
+ )
+);
+
+var resp = tx.status(token);
+
+
+ + Transbank responderá con la siguiente información. Asegúrate de guardar estos detalles; lo único que necesitas + validar es que el campo "response_code" sea igual a cero. +
+ +
+ + En este paso debemos capturar la transacción para realmente capturar el dinero que habia sido previamente + reservado al hacer la transacción. +
+ ++ Para capturar una transacción, necesitaremos el Token, la Orden de compra, el Código de autorización y el monto + a capturar. +
+ +
+import cl.transbank.common.IntegrationApiKeys;
+import cl.transbank.common.IntegrationCommerceCodes;
+import cl.transbank.common.IntegrationType;
+import cl.transbank.webpay.common.WebpayOptions;
+import cl.transbank.webpay.transaccioncompleta.FullTransaction;
+
+FullTransaction tx = new FullTransaction(
+ new WebpayOptions(
+ IntegrationCommerceCodes.TRANSACCION_COMPLETA_DEFERRED,
+ IntegrationApiKeys.WEBPAY,
+ IntegrationType.TEST
+ )
+);
+var resp = tx.capture(token, buyOrder, authorizationCode, amount);
+
+
+ Una vez capturada la transacción, recibirás los siguientes datos de respuesta.
+ +
+
+ + Con la transacción capturada, puedes mostrar al usuario una página de éxito de la transacción, proporcionándole + la confirmación de que el proceso se ha completado con éxito. +
+ +Después de capturar la transacción, podrás realizar otras operaciones útiles:
++ En este paso crucial, procederemos a confirmar la transacción con el objetivo de notificar a + Transbank que hemos recibido la transacción de manera exitosa. Es fundamental destacar que si no se confirma la + transacción, esta será caducada. +
+ ++ Para confirmar la transacción, debes enviar el token correspondiente. En el caso de pagos a + plazos, también debes incluir el ID de la consulta de cuotas. En algunos casos, será necesario proporcionar el + índice del periodo diferido y un valor boolean indicando si se tomará el periodo de gracia. +
+ +
+import cl.transbank.common.IntegrationApiKeys;
+import cl.transbank.common.IntegrationCommerceCodes;
+import cl.transbank.common.IntegrationType;
+import cl.transbank.webpay.common.WebpayOptions;
+import cl.transbank.webpay.transaccioncompleta.FullTransaction;
+
+FullTransaction tx = new FullTransaction(
+ new WebpayOptions(
+ IntegrationCommerceCodes.TRANSACCION_COMPLETA_DEFERRED,
+ IntegrationApiKeys.WEBPAY,
+ IntegrationType.TEST
+ )
+);
+var resp = tx.commit(token, idQueryInstallments, deferredPeriodIndex, gracePeriod);
+
+
+ + Una vez que la transacción ha sido confirmada Transbank proporcionará la siguiente información. Es fundamental + conservar esta respuesta y verificar que el campo "response_code" tenga un valor de cero y que el campo "status" + sea "AUTHORIZED". +
+ +
+
+ + Ahora que se ha confirmado la transacción, puedes capturar el monto previamente autorizado. El monto a capturar + puede ser igual o menor al monto autorizado. La captura debe efectuarse dentro de un plazo máximo de 7 días + calendario. +
+ ++ En este paso sucede la creación de la transacción con el objetivo de obtener un identificador único para la misma. +
+ ++ Comienza importando la librería TransaccionCompleta, y a continuación, crea la transacción necesaria. +
+ +
+import cl.transbank.common.IntegrationApiKeys;
+import cl.transbank.common.IntegrationCommerceCodes;
+import cl.transbank.common.IntegrationType;
+import cl.transbank.webpay.common.WebpayOptions;
+import cl.transbank.webpay.transaccioncompleta.FullTransaction;
+
+FullTransaction tx = new FullTransaction(
+ new WebpayOptions(
+ IntegrationCommerceCodes.TRANSACCION_COMPLETA_DEFERRED,
+ IntegrationApiKeys.WEBPAY,
+ IntegrationType.TEST
+ )
+);
+
+var resp = tx.create(buyOrder, sessionId, amount, cvv, cardNumber, cardExpiry);
+
+
+ Una vez creada la transacción, recibirás los siguientes datos de respuesta:
+ +
+
+ Ahora que hemos creado la transacción, se abren dos opciones para continuar:
++ En esta primera etapa necesitas obtener los datos esenciales de la tarjeta + de crédito del titular. Utiliza el formulario para recolectar esta + información de manera segura. +
+ ++ En esta etapa, realizaremos una consulta de cuotas para conocer sus condiciones. Es importante + destacar que este paso es opcional y se utiliza únicamente si deseas ofrecer opciones de pago a plazos. +
+ +Para llevar a cabo la consulta de cuotas, debemos enviar los siguientes datos relevantes.
+ +
+import cl.transbank.common.IntegrationApiKeys;
+import cl.transbank.common.IntegrationCommerceCodes;
+import cl.transbank.common.IntegrationType;
+import cl.transbank.webpay.common.WebpayOptions;
+import cl.transbank.webpay.transaccioncompleta.FullTransaction;
+
+FullTransaction tx = new FullTransaction(
+ new WebpayOptions(
+ IntegrationCommerceCodes.TRANSACCION_COMPLETA_DEFERRED,
+ IntegrationApiKeys.WEBPAY,
+ IntegrationType.TEST
+ )
+);
+
+var resp = tx.installments(token, installments);
+
+
+ Una vez realizada la consulta de cuotas, recibirás los siguientes datos de respuesta:
+ +
+
+ + Si decides utilizar cuotas y estás satisfecho con las condiciones obtenidas en la consulta, el + siguiente paso sería confirmar la transacción. +
+ ++ En esta etapa, tendrás la posibilidad de solicitar el reembolso del dinero al tarjeta habiente. El + tipo de reembolso (Reversa, Anulación o Anulación parcial) dependerá del monto y el tiempo transcurrido desde la + transacción. +
+ ++ Para efectuar la solicitud de reembolso, necesitarás el token de la transacción y el monto que + deseas reversar. Si decides anular el monto total, puede resultar en una Reversa o Anulación, según ciertas + condiciones. En caso de un monto menor al total, se realizará una Anulación parcial. Las anulaciones parciales + para tarjetas débito y prepago no están soportadas. +
++ En este + link + podrás ver mayor información sobre las condiciones y casos para anular o reversar + transacciones. +
+ +
+import cl.transbank.common.IntegrationApiKeys;
+import cl.transbank.common.IntegrationCommerceCodes;
+import cl.transbank.common.IntegrationType;
+import cl.transbank.webpay.common.WebpayOptions;
+import cl.transbank.webpay.transaccioncompleta.FullTransaction;
+
+FullTransaction tx = new FullTransaction(
+ new WebpayOptions(
+ IntegrationCommerceCodes.TRANSACCION_COMPLETA_DEFERRED,
+ IntegrationApiKeys.WEBPAY,
+ IntegrationType.TEST
+ )
+);
+var resp = tx.refund(token, amount);
+
+
+ + Transbank responderá con el resultado de la reversa o anulación. Evalúa cuidadosamente esta respuesta para + confirmar que el reembolso se haya procesado de manera efectiva. +
+ +
+
+ CONSULTAR ESTADO
+ + En esta fase, tendrás la capacidad de solicitar el estado actual de una transacción hasta 7 días + después de su realización. Es importante destacar que no hay límite en la cantidad de solicitudes de este tipo + durante este período. Sin embargo, una vez transcurridos los 7 días, ya no podrás revisar el estado de la + transacción. +
+ ++ Para llevar a cabo la solicitud de estado, necesitarás el token correspondiente a la transacción + de la cual deseas obtener información. Utiliza este token para realizar una llamada a + Transaction.status(). +
+ +
+import cl.transbank.common.IntegrationApiKeys;
+import cl.transbank.common.IntegrationCommerceCodes;
+import cl.transbank.common.IntegrationType;
+import cl.transbank.webpay.common.WebpayOptions;
+import cl.transbank.webpay.transaccioncompleta.FullTransaction;
+
+FullTransaction tx = new FullTransaction(
+ new WebpayOptions(
+ IntegrationCommerceCodes.TRANSACCION_COMPLETA_DEFERRED,
+ IntegrationApiKeys.WEBPAY,
+ IntegrationType.TEST
+ )
+);
+
+var resp = tx.status(token);
+
+
+ + Transbank responderá con la siguiente información. Asegúrate de guardar estos detalles; lo único que necesitas + validar es que el campo "response_code" sea igual a cero. +
+ +
+ + En este paso crucial, procederemos a confirmar la transacción con el objetivo de notificar a + Transbank que hemos recibido la transacción de manera exitosa. Es fundamental destacar que si no se confirma la + transacción, esta será caducada. +
+ ++ Para confirmar la transacción, debes enviar el token correspondiente. En el caso de pagos a + plazos, también debes incluir el ID de la consulta de cuotas. En algunos casos, será necesario proporcionar el + índice del periodo diferido y un valor boolean indicando si se tomará el periodo de gracia. +
+ +
+import cl.transbank.common.IntegrationApiKeys;
+import cl.transbank.common.IntegrationCommerceCodes;
+import cl.transbank.common.IntegrationType;
+import cl.transbank.webpay.common.WebpayOptions;
+import cl.transbank.webpay.transaccioncompleta.MallFullTransaction;
+import cl.transbank.webpay.transaccioncompleta.model.MallTransactionCommitDetails;
+
+MallFullTransaction tx = new MallFullTransaction(
+ new WebpayOptions(
+ IntegrationCommerceCodes.TRANSACCION_COMPLETA_MALL,
+ IntegrationApiKeys.WEBPAY,
+ IntegrationType.TEST
+ )
+);
+
+// idQueryInstallments, deferredPeriodIndex y gracePeriod son opcionales
+var details = MallTransactionCommitDetails.build()
+ .add("597055555574", "O-123", idQueryInstallments, deferredPeriodIndex, gracePeriod)
+ .add("597055555575", "O-456", idQueryInstallments, deferredPeriodIndex, gracePeriod);
+
+var resp = tx.commit(token, details);
+
+
+ + Una vez que la transacción ha sido confirmada Transbank proporcionará la siguiente información. Es fundamental + conservar esta respuesta y verificar que el campo "response_code" tenga un valor de cero y que el campo "status" + sea "AUTHORIZED". +
+ +
+
+ Con la transacción confirmada, puedes mostrar al usuario una página de éxito de la transacción, proporcionando la confirmación de que el proceso se ha completado con éxito.
+Después de confirmar la transacción, podrás realizar otras operaciones útiles:
++ En este paso sucede la creación de la transacción con el objetivo de obtener un identificador único para la misma. +
+ ++ Comienza importando la librería TransaccionCompleta Mall, y a continuación, crea la transacción necesaria. +
+ +
+import cl.transbank.common.IntegrationApiKeys;
+import cl.transbank.common.IntegrationCommerceCodes;
+import cl.transbank.common.IntegrationType;
+import cl.transbank.model.MallTransactionCreateDetails;
+import cl.transbank.webpay.common.WebpayOptions;
+import cl.transbank.webpay.transaccioncompleta.MallFullTransaction;
+
+MallFullTransaction tx = new MallFullTransaction(
+ new WebpayOptions(
+ IntegrationCommerceCodes.TRANSACCION_COMPLETA_MALL,
+ IntegrationApiKeys.WEBPAY,
+ IntegrationType.TEST
+ )
+);
+
+var details = MallTransactionCreateDetails.build()
+ .add(1000, IntegrationCommerceCodes.TRANSACCION_COMPLETA_MALL_CHILD1, "O-123")
+ .add(1000, IntegrationCommerceCodes.TRANSACCION_COMPLETA_MALL_CHILD2, "O-456");
+
+var resp = tx.create(buyOrder, sessionId, cardNumber, cardExpiry, details, cvv);
+
+
+ Una vez creada la transacción, recibirás los siguientes datos de respuesta:
+ +
+
+ Ahora que hemos creado la transacción, se abren dos opciones para continuar:
++ En esta primera etapa necesitas obtener los datos esenciales de la tarjeta + de crédito, débito o prepago del titular. Utiliza el formulario para + recolectar esta información de manera segura. +
+ ++ En esta etapa, realizaremos una consulta de cuotas para conocer sus + condiciones. Es importante destacar que este paso es opcional y se utiliza + únicamente si deseas ofrecer opciones de pago a plazos. +
+ ++ Para llevar a cabo la consulta de cuotas, debemos enviar los siguientes + datos relevantes. +
+ +
+import cl.transbank.common.IntegrationApiKeys;
+import cl.transbank.common.IntegrationCommerceCodes;
+import cl.transbank.common.IntegrationType;
+import cl.transbank.webpay.common.WebpayOptions;
+import cl.transbank.webpay.transaccioncompleta.MallFullTransaction;
+import cl.transbank.webpay.transaccioncompleta.responses.MallFullTransactionInstallmentsDetails;
+
+MallFullTransaction tx = new MallFullTransaction(
+ new WebpayOptions(
+ IntegrationCommerceCodes.TRANSACCION_COMPLETA_MALL,
+ IntegrationApiKeys.WEBPAY,
+ IntegrationType.TEST
+ )
+);
+
+var details = MallFullTransactionInstallmentsDetails.build()
+ .add("597055555574", "O-123", (byte) 3)
+ .add("597055555575", "O-456", (byte) 3);
+
+var resp = tx.installments(token, details);
+
+
+ + Una vez realizada la consulta de cuotas, recibirás los siguientes datos de + respuesta: +
+ +
+
+ + Si decides utilizar cuotas y estás satisfecho con las condiciones + obtenidas en la consulta, el siguiente paso sería confirmar la + transacción. +
+ ++ En esta etapa, tendrás la posibilidad de solicitar el reembolso del dinero al tarjeta habiente. El + tipo de reembolso (Reversa, Anulación o Anulación parcial) dependerá del monto y el tiempo transcurrido desde la + transacción. +
+ ++ Para efectuar la solicitud de reembolso, necesitarás el token de la transacción, el buy order del detalle, + el commerce code hijo y el monto que deseas reversar. +
+ +
+import cl.transbank.common.IntegrationApiKeys;
+import cl.transbank.common.IntegrationCommerceCodes;
+import cl.transbank.common.IntegrationType;
+import cl.transbank.webpay.common.WebpayOptions;
+import cl.transbank.webpay.transaccioncompleta.MallFullTransaction;
+
+MallFullTransaction tx = new MallFullTransaction(
+ new WebpayOptions(
+ IntegrationCommerceCodes.TRANSACCION_COMPLETA_MALL,
+ IntegrationApiKeys.WEBPAY,
+ IntegrationType.TEST
+ )
+);
+
+var resp = tx.refund(token, buyOrder, childCommerceCode, amount);
+
+
+ + Transbank responderá con el resultado de la reversa o anulación. Evalúa cuidadosamente esta respuesta para + confirmar que el reembolso se haya procesado de manera efectiva. +
+ +
+
+ CONSULTAR ESTADO
+ + En esta fase, tendrás la capacidad de solicitar el estado actual de una transacción hasta 7 días + después de su realización. Es importante destacar que no hay límite en la cantidad de solicitudes de este tipo + durante este período. Sin embargo, una vez transcurridos los 7 días, ya no podrás revisar el estado de la + transacción. +
+ ++ Para llevar a cabo la solicitud de estado, necesitarás el token correspondiente a la transacción + de la cual deseas obtener información. Utiliza este token para realizar una llamada a + MallFullTransaction.status(). +
+ +
+import cl.transbank.common.IntegrationApiKeys;
+import cl.transbank.common.IntegrationCommerceCodes;
+import cl.transbank.common.IntegrationType;
+import cl.transbank.webpay.common.WebpayOptions;
+import cl.transbank.webpay.transaccioncompleta.MallFullTransaction;
+
+MallFullTransaction tx = new MallFullTransaction(
+ new WebpayOptions(
+ IntegrationCommerceCodes.TRANSACCION_COMPLETA_MALL,
+ IntegrationApiKeys.WEBPAY,
+ IntegrationType.TEST
+ )
+);
+
+var resp = tx.status(token);
+
+
+ + Transbank responderá con la siguiente información. Asegúrate de guardar estos detalles; lo único que necesitas + validar es que el campo "response_code" sea igual a cero. +
+ +
+ + En este paso debemos capturar la transacción para realmente capturar el dinero que habia sido previamente reservado al hacer la transacción. +
+ ++ Para capturar una transacción, necesitaremos el Token, la Orden de compra, el Código de autorización y el monto a capturar. +
+ +
+import cl.transbank.common.IntegrationApiKeys;
+import cl.transbank.common.IntegrationCommerceCodes;
+import cl.transbank.common.IntegrationType;
+import cl.transbank.webpay.common.WebpayOptions;
+import cl.transbank.webpay.transaccioncompleta.MallFullTransaction;
+
+MallFullTransaction tx = new MallFullTransaction(
+ new WebpayOptions(
+ IntegrationCommerceCodes.TRANSACCION_COMPLETA_MALL_DEFERRED,
+ IntegrationApiKeys.WEBPAY,
+ IntegrationType.TEST
+ )
+);
+
+var resp = tx.capture(token, childCommerceCode, childBuyOrder, authorizationCode, amount);
+
+
+ Una vez capturada la transacción, recibirás los siguientes datos de respuesta:
+ +
+
+ + Con la transacción capturada, puedes mostrar al usuario una página de éxito de la transacción, proporcionándole la confirmación de que el proceso se ha completado con éxito. +
+ +Después de capturar la transacción, podrás realizar otras operaciones útiles:
++ En este paso crucial, procederemos a confirmar la transacción con el objetivo de notificar a + Transbank que hemos recibido la transacción de manera exitosa. Es fundamental destacar que si no se confirma la + transacción, esta será caducada. +
+ ++ Para confirmar la transacción, debes enviar el token correspondiente. En el caso de pagos a + plazos, también debes incluir el ID de la consulta de cuotas. En algunos casos, será necesario proporcionar el + índice del periodo diferido y un valor boolean indicando si se tomará el periodo de gracia. +
+ +
+import cl.transbank.common.IntegrationApiKeys;
+import cl.transbank.common.IntegrationCommerceCodes;
+import cl.transbank.common.IntegrationType;
+import cl.transbank.webpay.common.WebpayOptions;
+import cl.transbank.webpay.transaccioncompleta.MallFullTransaction;
+import cl.transbank.webpay.transaccioncompleta.model.MallTransactionCommitDetails;
+
+MallFullTransaction tx = new MallFullTransaction(
+ new WebpayOptions(
+ IntegrationCommerceCodes.TRANSACCION_COMPLETA_MALL_DEFERRED,
+ IntegrationApiKeys.WEBPAY,
+ IntegrationType.TEST
+ )
+);
+
+// idQueryInstallments, deferredPeriodIndex y gracePeriod son opcionales
+var details = MallTransactionCommitDetails.build()
+ .add("597055555577", "O-123", idQueryInstallments, deferredPeriodIndex, gracePeriod)
+ .add("597055555578", "O-456", idQueryInstallments, deferredPeriodIndex, gracePeriod);
+
+var resp = tx.commit(token, details);
+
+
+ + Una vez que la transacción ha sido confirmada Transbank proporcionará la siguiente información. Es fundamental + conservar esta respuesta y verificar que el campo "response_code" tenga un valor de cero y que el campo "status" + sea "AUTHORIZED". +
+ +
+
+ Ahora que se ha confirmado la transacción, puedes capturar el monto previamente autorizado.
+ ++ En este paso sucede la creación de la transacción con el objetivo de obtener un identificador único para la misma. +
+ ++ Comienza importando la librería TransaccionCompleta Mall, y a continuación, crea la transacción necesaria. +
+ +
+import cl.transbank.common.IntegrationApiKeys;
+import cl.transbank.common.IntegrationCommerceCodes;
+import cl.transbank.common.IntegrationType;
+import cl.transbank.model.MallTransactionCreateDetails;
+import cl.transbank.webpay.common.WebpayOptions;
+import cl.transbank.webpay.transaccioncompleta.MallFullTransaction;
+
+MallFullTransaction tx = new MallFullTransaction(
+ new WebpayOptions(
+ IntegrationCommerceCodes.TRANSACCION_COMPLETA_MALL_DEFERRED,
+ IntegrationApiKeys.WEBPAY,
+ IntegrationType.TEST
+ )
+);
+
+var details = MallTransactionCreateDetails.build()
+ .add(1000, IntegrationCommerceCodes.TRANSACCION_COMPLETA_MALL_DEFERRED_CHILD1, "O-123")
+ .add(1000, IntegrationCommerceCodes.TRANSACCION_COMPLETA_MALL_DEFERRED_CHILD2, "O-456");
+
+var resp = tx.create(buyOrder, sessionId, cardNumber, cardExpiry, details, cvv);
+
+
+ Una vez creada la transacción, recibirás los siguientes datos de respuesta:
+ +
+
+ Ahora que hemos creado la transacción, se abren dos opciones para continuar:
++ En esta primera etapa necesitas obtener los datos esenciales de la tarjeta + de crédito del titular. Utiliza el formulario para recolectar esta + información de manera segura. +
+ ++ En esta etapa, realizaremos una consulta de cuotas para conocer sus + condiciones. Es importante destacar que este paso es opcional y se utiliza + únicamente si deseas ofrecer opciones de pago a plazos. +
+ ++ Para llevar a cabo la consulta de cuotas, debemos enviar los siguientes + datos relevantes. +
+ +
+import cl.transbank.common.IntegrationApiKeys;
+import cl.transbank.common.IntegrationCommerceCodes;
+import cl.transbank.common.IntegrationType;
+import cl.transbank.webpay.common.WebpayOptions;
+import cl.transbank.webpay.transaccioncompleta.MallFullTransaction;
+import cl.transbank.webpay.transaccioncompleta.responses.MallFullTransactionInstallmentsDetails;
+
+MallFullTransaction tx = new MallFullTransaction(
+ new WebpayOptions(
+ IntegrationCommerceCodes.TRANSACCION_COMPLETA_MALL_DEFERRED,
+ IntegrationApiKeys.WEBPAY,
+ IntegrationType.TEST
+ )
+);
+
+var details = MallFullTransactionInstallmentsDetails.build()
+ .add("597055555577", "O-123", (byte) 3)
+ .add("597055555578", "O-456", (byte) 3);
+
+var resp = tx.installments(token, details);
+
+
+ + Una vez realizada la consulta de cuotas, recibirás los siguientes datos de + respuesta: +
+ +
+
+
+
+ + Si decides utilizar cuotas y estás satisfecho con las condiciones + obtenidas en la consulta, el siguiente paso sería confirmar la + transacción. +
+ ++ En esta etapa, tendrás la posibilidad de solicitar el reembolso del dinero + al tarjeta habiente. El tipo de reembolso (Reversa, Anulación o Anulación + parcial) dependerá del monto y el tiempo transcurrido desde la + transacción. +
+ ++ Para efectuar la solicitud de reembolso, necesitarás el token de la + transacción, el buy order del detalle, el commerce code (tienda) y el + monto que deseas reversar. +
+ +
+import cl.transbank.common.IntegrationApiKeys;
+import cl.transbank.common.IntegrationCommerceCodes;
+import cl.transbank.common.IntegrationType;
+import cl.transbank.webpay.common.WebpayOptions;
+import cl.transbank.webpay.transaccioncompleta.MallFullTransaction;
+
+MallFullTransaction tx = new MallFullTransaction(
+ new WebpayOptions(
+ IntegrationCommerceCodes.TRANSACCION_COMPLETA_MALL_DEFERRED,
+ IntegrationApiKeys.WEBPAY,
+ IntegrationType.TEST
+ )
+);
+
+var resp = tx.refund(token, buyOrder, childCommerceCode, amount);
+
+
+ + Transbank responderá con el resultado de la reversa o anulación. Evalúa + cuidadosamente esta respuesta para confirmar que el reembolso se haya + procesado de manera efectiva. +
+ +
+
+
+
+
+ CONSULTAR ESTADO
+
+ + En esta fase, tendrás la capacidad de solicitar el estado actual de una transacción hasta 7 días + después de su realización. Es importante destacar que no hay límite en la cantidad de solicitudes de este tipo + durante este período. Sin embargo, una vez transcurridos los 7 días, ya no podrás revisar el estado de la + transacción. +
+ ++ Para llevar a cabo la solicitud de estado, necesitarás el token correspondiente a la transacción + de la cual deseas obtener información. Utiliza este token para realizar una llamada a + MallFullTransaction.status(). +
+ +
+import cl.transbank.common.IntegrationApiKeys;
+import cl.transbank.common.IntegrationCommerceCodes;
+import cl.transbank.common.IntegrationType;
+import cl.transbank.webpay.common.WebpayOptions;
+import cl.transbank.webpay.transaccioncompleta.MallFullTransaction;
+
+MallFullTransaction tx = new MallFullTransaction(
+ new WebpayOptions(
+ IntegrationCommerceCodes.TRANSACCION_COMPLETA_MALL_DEFERRED,
+ IntegrationApiKeys.WEBPAY,
+ IntegrationType.TEST
+ )
+);
+
+var resp = tx.status(token);
+
+
+ + Transbank responderá con la siguiente información. Asegúrate de guardar estos detalles; lo único que necesitas + validar es que el campo "response_code" sea igual a cero. +
+ +
+