Casos de uso
Esta es una lista no exhaustiva de los casos de uso en los que se crea un formToken
(al llamar al Web Service Charge/createPayment ).
Transmitir el número de pedido
Para transmitir el número de pedido, utilice el campo orderId :
{ "orderId" : "CX-1254" }
Transmitir los datos del comprador
El vendedor puede transmitir la dirección de facturación y los datos del comprador (dirección de e-mail, tratamiento, número de teléfono, etc.).
Estos datos son:
- se muestran en el
Back Office Vendedor , en la información de la transacción (pestaña Comprador ), - devueltos en la IPN, sin cambios.
Para ello, utilice el campo customer :
Ejemplo
{ "customer": { "reference":"C2383333540", "email" : " <sample@example.net>", "billingDetails" : { "category" : "PRIVATE", "title" : "M", "firstName" : "Laurent", "lastName" : "DURANT", "streetNumber" : "109", "address" : "rue de l'innovation", "zipCode" : "31670", "city" : "LABEGE", "country" : "FR", "phoneNumber" : "0123456789", "cellPhoneNumber" :"0623456789" } } }
Transmitir los datos de entrega
El vendedor puede transmitir los datos de entrega del comprador (dirección, civilidad, número de teléfono, etc.).
Estos datos son:
- se muestran en el
Back Office Vendedor , en la información de la transacción (pestaña Envío ), - devueltos en la IPN, sin cambios.
Ejemplo para una entrega de tipo “Retiro en tienda”
La dirección de envío corresponde a la de la tienda.
La dirección de facturación es distinta a la dirección de envío.
El nombre del destinatario es el mismo que el de la dirección de facturación.
{ "customer": { "shippingDetails": { "shippingMethod": "RECLAIM_IN_SHOP", "shippingSpeed": "STANDARD", "streetNumber": "230", "address": "avenue des Champs Elysées", "zipCode": "59170", "city": "CROIX", "country": "FR", "firstName": "Marie-Charlotte", "lastName": "GRIMALDI", "phoneNumber": "0328386789" } } }
Ejemplo para una entrega de tipo “punto de retiro”
La dirección de envío corresponde a la del punto de retiro.
El nombre del punto de retiro se indica en la segunda línea de la dirección de entrega.
Se transmite la dirección del punto de retiro en la primera línea de dirección de envío.
El nombre del destinatario es el mismo que el de la dirección de facturación.
La dirección de facturación es distinta a la dirección de envío.
{ "customer": { "shippingDetails": { "shippingMethod": "RELAY_POINT", "shippingSpeed": "STANDARD", "streetNumber": "100", "address": "avenue du parc Barbieux", "address2": "Pressing du Parc", "zipCode": "59170", "city": "CROIX", "country": "FR", "firstName": "Martine", "lastName": "DURAND", "phoneNumber": "0328386789", "deliveryCompanyName":"Chronospost" } } }
Transmisión del contenido del carrito
Al crear un pago, el vendedor puede transmitir el contenido del carrito del comprador.
Estos datos se muestran en el
Para ello, utilice el campo cartItemInfo (tabla de objetos json) durante la llamada al Web Service Charge/CreatePayment.
Ejemplo para definir 2 artículos en el carrito
{ "customer": { "shoppingCart": { "cartItemInfo": [ { "productRef": "myRef1", "productAmount": "1200", "productLabel": "myLabel1", "productQty" : "1" }, { "productRef": "myRef2", "productAmount": "2400", "productLabel": "myLabel2", "productQty" : "1" } ] } } }
Observaciones:
- El campo cartItemInfo siempre se devuelve vacío en la respuesta.
- Para que la pestaña Carrito se muestre correctamente en el
Back Office Vendedor , debe trasmitir por lo menos el campo productAmount de cada producto.
Transmitir los datos para el análisis de riesgos
Las transacciones se someten sistemáticamente a un análisis de riesgos para determinar si la autenticación 3D-Secure es necesaria o si presentan un riesgo demasiado alto para ser aceptadas.
Al finalizar el pago, el resultado del análisis de riesgos se devuelve en el campo transactionDetails.fraudManagement.riskAnalysis.resultCode . Para garantizar un análisis lo más preciso posible, debe proporcionar la mayor cantidad de información posible en su formulario de pago.
El análisis de riesgos se basa en los datos descritos en los capítulos:
- Transmitir los datos del comprador
- Transmitir los datos de entrega
- Transmisión del contenido del carrito
Para refinar el análisis, puede utilizar los metadatos siguientes.
Estos campos serán devueltos en la notificación al finalizar el pago.
DESCRIPCIÓN | Formato | ||
---|---|---|---|
Correo electrónico que el cliente ingresó en el registro o que el co-loca durante el proceso de compra. | R | ||
Número de teléfono utilizado. | R | ||
Informando al cliente que la compra ha sido realizada, el tipo quedará registrado con el número de identidad. 02 - CUADERNO DE EXTRAJERIA
| R | ||
Identificador único del cliente de la empresa. | |||
SI | |||
SI | |||
Número de días transcurridos a que deberá comprarse primero al cliente. | |||
Número de días transcurridos desde la última compra del cliente. | |||
Número de copa de descuento. | |||
Número de tarjeta de regalo. | |||
Indique si el cliente se ha registrado en la página web del comercio y tiene las mismas condiciones registradas. | |||
Ticket medio del cliente (excluyendo el precio de compra actual). | |||
Informando al beneficiario de la compra, en el campo se registrará el tipo con el número de identidad. 02 - CUADERNO DE EXTRAJERIA
| R | ||
Aplicar a las ventas telefónicas, identificando de forma única a la persona que el cliente está escuchando durante el proceso de venta (Assistidas). | R | ||
Número de artículos adquiridos por el cliente bajo pedido. | |||
R | |||
Número de horas entre la empresa y la empresa del producto/servicio. | R | ||
El número de días que escuchas es la dirección registrada en los sistemas. | R | ||
Número de pedidos realizados en esta dirección registrados en los sistemas. | |||
Número de compras realizadas en los últimos 6 meses siguiendo el historial del cliente. | |||
Identificador único del establecimiento comercial. Solicitud de entrega de productos/servicios y recepción en el establecimiento. | R | ||
Número de actividad comercial estable. Solicitud de entrega de productos/servicios y recepción en el establo. | R | ||
Indique si la compra será enviada mediante entrega a domicilio del cliente o será recibida en el local del negocio Entrega/recepción por parte del cliente. DISCO EN TIENDA | R | ||
Descripción de destino para recarga de tickets de criptomonedas y otros instrumentos financieros. | R | ||
Banco que pierde la señal del destino. 9 = PAS, 43 = LCR, | R | ||
Número de matrícula del vehículo. | R | ||
Indique si el cliente ha adquirido o recibido un número PREPAGO o POSTPAGO. Solicitud para empresas de telefonía. | R | ||
Identificador único del usuario final del servicio, del nombre comercial. En el caso de las empresas de telecomunicaciones, es necesario recargar el número de teléfono celular. | R | ||
Número de teléfono ingresado por el cliente y registrado en la web/app del negocio. | R | ||
Código de reserva. | R | ||
Número de código de confiabilidad de viajes frecuentes. | R | ||
Canal de venta de entradas.. | R | ||
Viaje de ida y vuelta o viaje de ida | R | ||
Delta entre pérdida de salud y pérdida de regreso. Solo para vuelos de ida y vuelta (en días). | |||
Número de adultos que viajan. | |||
Ciudad donde se inicia la ruta adquirida por el cliente. | R | ||
Ciudad para finalizar la ruta adquirida por el cliente. | R | ||
Comprar millas/km. SI | R | ||
SI | R | ||
Clase Tarifa. Letra que corresponde a la clase de billete. Ejm: W, Y, N. | |||
Iniciar la primera vista. | R | ||
Modificar el monto en función del código BIN
Puede cambiar un monto hacia abajo según el código BIN .
Implementa esta función en tu formulario de pago KR.setBinUpdateNotificationUrl
.
Esta función llama a un punto final: V4/Charge/UpdatePaymentAmount
para modificar un monto.
Solicitud
Llame al endpoint: V4/Charge/UpdatePaymentAmount
con los siguientes parámetros:
updatedAmount
: Nuevo montocardBin
: Código BINformToken
:formToken con el monto inicial
Ejemplo de solicitud
Campos obligatorios:
updatedAmount
:S/ 45,000.cardBin
:"59701003" para una MASTERCARDformToken
:"00H7BP(...)ItbHlyYSJ9b802"
{ "updatedAmount":"4500", "cardBin":"59701003", "formToken":"00H7BP(...)ItbHlyYSJ9b802" }
Respuesta
La plataforma crea un nuevo formToken
con el nuevo importe . Recupera el nuevo formToken
para mostrar el formulario de pago (Más información: Mostrar el formulario ).
{ "answer": { "formToken": "00H7BPcbxFR(...)002", "_type": "V4/Charge/PaymentForm" } }
Casos de uso
Utilice el código en Github modificando la variable $newPrice
del archivo AmountUpdateCallback.php. (enlace de Github : Amount Update ).
- Disminución del monto con un valor fijo.
Ejemplo: Desea una disminución de 10,00 PEN para las tarjetas Mastercard (código BIN: 59701003) y una disminución de 5,00 PEN para las tarjetas AMEX (código BIN: 37828200).
Modifique el archivoAmountUpdateCallback.php.
/*Define new price*/ $newPrice = null; switch($request['bin']) { // BIN MASTERCARD case '59701003': $newPrice = $request['amount']-1000; break; // BIN AMEX case '37828200': $newPrice = $request['amount']-500; break; }
Ilustración para Mastercard

- Disminución del monto con un porcentaje.
Ejemplo: Desea un descuento del 50 % para las tarjetas Mastercard (código BIN: 59701003) y un descuento del 30 % para las tarjetas AMEX (código BIN: 37828200).
Modifique el archivoAmountUpdateCallback.php.
/*Define new price*/ $newPrice = null; switch($request['bin']) { // BIN MASTERCARD case '59701003': $newPrice = $request['amount']*0.5; break; // BIN AMEX case '37828200': $newPrice = $request['amount']*0.3; break; }
Ilustración para AMEX

- Por una cantidad fija. Valora la variable.
$newPrice
du fichier AmountUpdateCallback.phpcon una cantidad fija.
Transmitir los datos del subvendedor
El facilitador de pago puede transmitir los datos del subvendedor concernido por la transacción.
Estos datos serán:
- se muestran en el
Back Office Vendedor , en la información de la transacción (pestaña Subvendedor ), - devueltos en la IPN, sin cambios.
La tabla describe los campos comunes disponibles con la información del subvendedor.
Nombre del campo | Formato | Descripción |
---|---|---|
Dirección del subvendedor. Transmitido por el facilitador de pago. | ||
Complemento de la dirección del subvendedor. Transmitido por el facilitador de pagos. | ||
Ciudad del subvendedor. Transmitido por el facilitador de pago. | ||
Tipo de empresa del subvendedor. Transmitido por el facilitador de pago. | ||
Código del país de la dirección del subvendedor (norma ISO 3166 alpha-2). Transmitido por el facilitador de pago. | ||
Identificador del facilitador de pago. Transmitido por el facilitador de pago. | ||
Número legal del subvendedor. Transmitido por el facilitador de pago. | ||
Código MCC del subvendedor. Transmitido por el facilitador de pago. | ||
n..64 | Número de afiliación (MID) del subvendedor.Transmitido por el facilitador de pago. | |
Razón social del subvendedor. Transmitido por el facilitador de pago. | ||
Número de teléfono del subvendedor. Transmitido por el facilitador de pago. | ||
Descripción (soft descriptor) del subvendedor que aparece en el extracto bancario del comprador. Transmitido por el facilitador del pago. | ||
Región de la dirección del subvendedor. Transmitido por el facilitador de pago. | ||
URL del subvendedor. Transmitido por el facilitador de pago. | ||
Código postal del subvendedor. Transmitido por el facilitador de pago. |
Ofrecer el registro del medio de pago
El vendedor puede ofrecer al comprador la posibilidad de facilitar sus compras solicitando el registro de sus datos bancarios en la plataforma de pago.
Gracias a esta operación, la plataforma de pago asigna un token único al medio de pago y lo devuelve al sitio web comercial en el campo paymentMethodToken.
De esta manera, el comprador ya no necesitará ingresar su medio de pago en sus futuras compras.
Esta solución brinda un nivel adicional de seguridad a los pagos, ya que transita únicamente el token que solo puede ser utilizado por la plataforma de pago.
Para ofrecer al comprador que registre su modo de pago al momento del pago, utilice el campo formAction con el valor ASK_REGISTER_PAY
{ "formAction" : "ASK_REGISTER_PAY", "customer": { "email": " <sample@example.net>" } }
Nota
El campo email se vuelve obligatorio al registrar el medio de pago.
Cuando se muestre el formulario, aparecerá una casilla de control.
De forma predeterminada, esta casilla no está marcada.
Si el comprador acepta el registro de su medio de pago, debe marcar la casilla.
Si el pago es rechazado, no se registrará el medio de pago.
Forzar el registro del medio de pago
Si el vendedor ha notificado al comprador en un paso previo del proceso de compra, puede "forzar" el registro del medio de pago sin mostrar una casilla adicional.
Para hacerlo, utilice el campo formAction con el valor REGISTER_PAY :
{ "formAction" : "REGISTER_PAY", "customer": { "email": " <sample@example.net>" } }
Utilizar un medio de pago registrado
El vendedor puede transmitir el token que se debitará al inicializarse el pago.
Cuando se muestra el formulario, los campos kr-pan y kr-expiry se rellenan automáticamente. El comprador solo debe introducir su código de seguridad (CVV) para finalizar la compra.
Para ello, simplemente transmita el token a debitar en el campo paymentMethodToken y asigne al campo formAction el valor PAYMENT.
Dado que este valor es el valor predeterminado, el campo formAction ya no es necesario.
{ "formAction" : "PAYMENT", "paymentMethodToken":"d3d9cc0d24a4400e9d123e9e1b8f1793", }
Utilizar un medio de pago registrado sin mostrar el formulario incrustado
Este modo permite crear una transacción sin mostrar el formulario de pago y sin autentificación (llamada de servidor a servidor).
{ "formAction" : "SILENT", "paymentMethodToken":"d3d9cc0d24a4400e9d123e9e1b8f1793", }
Nota
- Este caso de uso no utiliza el cliente JavaScript, sino solo una llamada de servidor a servidor. No hay redirección hacia la URL de retorno indicada en kr-post-url-success.
- La respuesta no contiene un formToken , sino directamente un objeto Transaction.
- Utilice la referencia de encadenamiento en el campo
initialIssuerTransactionIdentifier
, si esta está ausente, los emisores pueden rechazar la transacción.("Soft Decline"). - Ver: Paiement 0 clic
Transmitir la preferencia del vendedor
Utilice el campo strongAuthentication (enlace al área de juegos: strongAuthentication).
Este campo indica la preferencia del comerciante con respecto a la autenticación del comprador.
- Sin interacción del titular ( frictionless ).
- Con interacción del titular (autentificación fuerte o challenge ).
- Sin preferencia del vendedor.
Casos de uso | Valores posibles |
---|---|
CHALLENGE : Con interacción del titular |
|
| |
| |
Opción "Frictionless 3DS2" obligatoria |
Si la tienda no dispone de la opción "Frictionless 3DS2", la elección de preferencia se delega al emisor de la tarjeta (No Preference). Si el emisor acepta la solicitud de frictionless, la transacción no está cubierta por la transferencia de responsabilidad en caso de disputa del titular de de tarjeta. |
Sin preferencia del vendedor |
|
|
Aumentar la probabilidad de frictionless en 3DS2
Transmita estos datos para aumentar la probabilidad de frictionless durante el pago.
Lista de campos a enviar
CARACTERÍSTICAS | Descripción |
---|---|
customer.email | E-mail del comprador. |
customer.billingDetails.identityCode | Identificación nacional. Identifica de manera única a cada ciudadano en un país. CPF o CNPJ en Brasil. |
customer.billingDetails.streetNumber | Número de calle de la dirección de facturación |
customer.billingDetails.address | Dirección postal |
customer.billingDetails.address2 | Segunda línea de dirección |
customer.billingDetails.zipCode | Código Postal |
customer.billingDetails.city | Ciudad |
customer.billingDetails.state | Estado / región |
customer.billingDetails.country | Código del país según ISO 3166 alpha-2 |
customer.billingDetails.phoneNumber | Número de teléfono |
customer.billingDetails.cellPhoneNumber | Número de teléfono móvil |
customer.shippingDetails.address | Dirección postal |
customer.shippingDetails.address2 | Segunda línea de dirección |
customer.shippingDetails.zipCode | Código Postal |
customer.shippingDetails.city | Ciudad |
customer.shippingDetails.state | Estado / región |
customer.shippingDetails.country | Código del país según ISO 3166 |
customer.shippingDetails.shippingMethod | Modo de entrega. |
customer.shippingDetails.shippingSpeed | Plazo de entrega. |
Transmitir datos personalizados
Al crear un pago, el vendedor puede enviar información específica a la plataforma de pago para atender necesidades específicas de su negocio.
Por ejemplo, transmitir un número de archivo, un número de contrato, etc.
Esta información será:
- se muestran en el
Back Office Vendedor , en la información de la transacción (pestaña Extras ), - visibles en el e-mail de confirmación de pago destinado al vendedor,
- devueltas en la URL de notificación, sin cambios.
Para ello, utilice los campos metadata (en formato json) durante la llamada al Web Service Charge/CreatePayment :
Ejemplo para transmitir un elemento de datos llamado “contract” y su valor:
{ "metadata": { "contract": "1245KL-78/ZE" } }
Sobrecargar la URL de notificación instantánea (desaconsejado)
Puede sobrescribir la URL de notificación instantánea (también llamada IPN) en el formulario si utiliza una única tienda para diferentes canales de venta, diferentes tipos de pago, diferentes idiomas, etc.
Esta función es incompatible con la ejecución desde el
Se llamará a la URL definida en la regla de notificación (consulte el capítulo Configurar las notificaciones).
Utilice el campo ipnTargetUrl al inicializar el pago para sobrescribir la URL de la página que se notifica.
Si el valor del campo vads_shop_url es incorrecto, el formulario no será rechazado.
{ "ipnTargetUrl" : "<https://my.site/my-ipn>", }
Cambiar el tipo de captura
La plataforma de pago asocia un modo de captura predeterminado con el contrato del adquirente (MID): captura inmediata o captura diferida.
Si el adquirente lo autoriza, el sitio web vendedoro tiene la posibilidad de forzar el tipo de captura a utilizar.
Para ello, utilice el campo overridePaymentCinematic de la siguiente manera:
Captura inmediata
{ "overridePaymentCinematic": "IMMEDIATE_CAPTURE" }
Captura diferida
{ "overridePaymentCinematic": "DELAYED_CAPTURE" }
Por defecto se aplica el valor configurado en el contrato.