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
Les transactions sont systématiquement soumises à une analyse de risque afin de déterminer si une authentification 3D-Secure est nécessaire ou si elles présentent un risque trop élevé pour être acceptées.
A la fin du paiement, le résultat de l'analyse de risque est retourné dans le champ transactionDetails.fraudManagement.riskAnalysis.resultCode. Pour que l'analyse soit la plus pertinente possible, vous devez transmettre un maximum d'informations dans votre formulaire de paiement.
L'analyse de risque est basée sur les données décrites dans les chapitres :
- Transmitir los datos del comprador
- Transmitir los datos de entrega
- Transmisión del contenido del carrito
Pour affiner l'analyse, vous pouvez utiliser les metadata ci-dessous.
Ces champs seront retournés dans la notification à la fin du paiement.
Nombre del campo | DESCRIPCIÓN | Opcional / Recomendado | Formato |
---|---|---|---|
cybersource_mdd_12 | Email que el cliente ingresó en el registro o el que coloca durante el proceso de compra. | R | String (255) |
cybersource_mdd_13 | Numero de telefono utilizado. | R | String (255) |
cybersource_mdd_14 | Información del cliente que realiza la compra, en el campo se registrará el tipo concatenado con el número de identidad. 01-DNI 02-CARNET DE EXTRANJERIA 03-PASAPORTE 10-RUC 10 20-RUC 20 15-RUC 15 17-RUC 17 30-PTT Ejm :
| R | String (255) |
cybersource_mdd_15 | Identificador único del cliente de cara al comercio. | O | String (255) |
cybersource_mdd_16 | ¿Registro mediante Redes Soc u otras? SI NO | O | String (255) |
cybersource_mdd_17 | Cliente Frecuente. SI NO | O | String (255) |
cybersource_mdd_18 | Número de días transcurridos desde primera compra del cliente. | O | Float |
cybersource_mdd_19 | Número de días transcurridos desde última compra del cliente. | O | Float |
cybersource_mdd_20 | Número de cupón de descuento. | O | String (255) |
cybersource_mdd_21 | Número de Giftcard. | O | String (255) |
cybersource_mdd_22 | Indica si el cliente se ha registrado en la web del comercio y bajo qué modalidad Registrado. 01=Invitado 02=Empleado 03=Registro directo | O | String (255) |
cybersource_mdd_23 | Ticket promedio del cliente (sin incluir la compra actual). | O | Float |
cybersource_mdd_24 | Riesgo de la transacción. BAJO MEDIO ALTO | O | String (255) |
cybersource_mdd_27 | Información del beneficiario de la compra, en el campo se registrará el tipo concatenado con el número de identidad . 01-DNI 02-CARNET DE EXTRANJERIA 03-PASAPORTE 10-RUC 10 20-RUC 20 15-RUC 15 17-RUC 17 30-PTT Ejm :
| R | String (255) |
cybersource_mdd_28 | Aplica a ventas telefónicas, identificado único de la persona que atendió al cliente durante el proceso de venta (Asistidas). | R | String (255) |
cybersource_mdd_29 | Número de items que compra el cliente por pedido. | O | Float |
cybersource_mdd_30 | Enviado/Pendiente. Enviado Pendiente | R | String (255) |
cybersource_mdd_31 | Número de horas entre la compra y la entrega del producto / servicio. | R | Float |
cybersource_mdd_32 | Número de días que se encuentra esa dirección registrada en sistemas. | R | Float |
cybersource_mdd_33 | Número de pedidos realizados a esa dirección registrada en sistemas. | O | Float |
cybersource_mdd_34 | Número de compras realizadas en los últimos 6 meses según historial del cliente. | O | Float |
cybersource_mdd_35 | Identificador único del establecimiento del comercio. Aplica para delivery de productos/servicios y recoge en el establecimiento. | R | String (255) |
cybersource_mdd_36 | Nombre del establecimiento del comercio. Aplica para delivery de productos/servicios y recoge en el establecimiento. | R | String (255) |
cybersource_mdd_37 | Indica si la compra se enviará mediante delivery a la dirección del cliente o será recogida en el local del comercio Delivery / recoge en tienda. DELIVERY RECOJO EN TIENDA | R | String (255) |
cybersource_mdd_38 | Cuenta de destino para la recarga de billeteras de criptomonedas y otros instrumentos financieros. | R | String (255) |
cybersource_mdd_39 | Banco al cual pertenece la cuenta de destino. 2 = BCP, 3 = IBK PRIVADA, 5 = IBK, 7 = CITI, 9 = SBP, 10= LOY, 11 = BBVA, 18 = BN, 23 = COMERCIO, 35=PICHINCHA, 38 = BIF, 41=SBP, 43 = CSF, 49=MIBANCO | R | String (255) |
cybersource_mdd_40 | Número de placa de auto. | R | String (255) |
cybersource_mdd_41 | Indicar si el cliente ha adquirido o está recargando un número PREPAGO o POSTPAGO. Aplica para empresas de telefonía. PREPAGO POSTPAGO | R | String (255) |
cybersource_mdd_42 | Identificador único del usuario final del servicio, de cara al comercio. En el caso de telcos, ese el número de celular a recargar. | R | String (255) |
cybersource_mdd_43 | Número telefónico ingresado por el cliente al registrarse en la web/app del comercio. | R | String (255) |
cybersource_mdd_44 | Código de Reserva. | R | String (255) |
cybersource_mdd_45 | Número de código de fidelidad del viajero frecuente. | R | String (255) |
cybersource_mdd_46 | Canal de venta ticket.. OTA APP WEB | R | String (255) |
cybersource_mdd_47 | Round Trip or One Way Trip OW RT | R | String (255) |
cybersource_mdd_48 | Delta entre fecha de salida y fecha de regreso. Solo para vuelos de ida y vuelta (en días). | O | String (255) |
cybersource_mdd_49 | Número de adultos viajando. | O | String (255) |
cybersource_mdd_50 | Ciudad donde se inicia el viaje comprado por el cliente. | R | Código IATA |
cybersource_mdd_51 | Ciudad donde finaliza el viaje comprado por el cliente. | R | Código IATA |
cybersource_mdd_52 | Compra de millas/km. SI NO | R | String (255) |
cybersource_mdd_53 | Vuelo internacional. SI NO | R | String (255) |
cybersource_mdd_54 | Clase Tarifa. Letra que corresponde a la clase del billete. Ejm : W, Y, N. | O | String (255) |
cybersource_mdd_55 | Fecha de inicio del primer vuelo. | R | DateTime (25) |
cybersource_mdd_56 | Aeropuerto Origen | O | Código IATA |
cybersource_mdd_57 | Aeropuerto Destino | O | Código IATA |
Modificar el monto en función del código BIN
Vous pouvez modifier un montant à la baisse en fonction du code BIN.
Implémentez dans votre formulaire de paiement cette fonction KR.setBinUpdateNotificationUrl
.
Cette fonction appelle un endpoint : V4/Charge/UpdatePaymentAmount
pour modifier un montant.
Solicitud
Llame al endpoint: V4/Charge/UpdatePaymentAmount
con los siguientes parámetros:
updatedAmount
: Nuevo montocardBin
: Código BINformToken
: formTokencon el monto inicial
Ejemplo de solicitud
Campos obligatorios:
updatedAmount
: S/ 45,OO .cardBin
:"59701003" pour une MASTERCARDformToken
:"00H7BP(...)ItbHlyYSJ9b802"
{ "updatedAmount":"4500", "cardBin":"59701003", "formToken":"00H7BP(...)ItbHlyYSJ9b802" }
Respuesta
La plateforme crée un nouveau formToken
avec le nouveau montant. Récupèrez le nouveau formToken
pour afficher le formulaire de paiement (Plus d'infos : Afficher le formulaire).
{ "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
- Pour un montant fixe. Valorisez la variable
$newPrice
du fichierAmountUpdateCallback.phpavec un montant fixe.
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 |
---|---|---|
subMerchantDetails.address1 | ans..255 | Dirección del subvendedor. Transmitido por el facilitador de pago. |
subMerchantDetails.address2 | ans..255 | Complemento de la dirección del subvendedor. Transmitido por el facilitador de pagos. |
subMerchantDetails.city | an..128 | Ciudad del subvendedor. Transmitido por el facilitador de pago. |
subMerchantDetails.companyType | ans..60 | Tipo de empresa del subvendedor. Transmitido por el facilitador de pago. |
subMerchantDetails.country | a2 | Código del país de la dirección del subvendedor (norma ISO 3166 alpha-2). Transmitido por el facilitador de pago. |
subMerchantDetails.facilitatorId | ans..128 | Identificador del facilitador de pago. Transmitido por el facilitador de pago. |
subMerchantDetails.legalNumber | ans..24 | Número legal del subvendedor. Transmitido por el facilitador de pago. |
subMerchantDetails.mcc | n4 | Código MCC del subvendedor. Transmitido por el facilitador de pago. |
subMerchantDetails.mid | n..64 | Número de afiliación (MID) del subvendedor.Transmitido por el facilitador de pago. |
subMerchantDetails.name | ans..255 | Razón social del subvendedor. Transmitido por el facilitador de pago. |
subMerchantDetails.phoneNumber | an..32 | Número de teléfono del subvendedor. Transmitido por el facilitador de pago. |
subMerchantDetails.softDescriptor | ans..255 | Descripción (soft descriptor) del subvendedor que aparece en el extracto bancario del comprador. Transmitido por el facilitador del pago. |
subMerchantDetails.state | ans..128 | Región de la dirección del subvendedor. Transmitido por el facilitador de pago. |
subMerchantDetails.url | ans..128 | URL del subvendedor. Transmitido por el facilitador de pago. |
subMerchantDetails.zip | an..64 | 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
Utilisez le champ strongAuthentication (lien vers le playground : strongAuthentication).
Ce champ indique la préférence du marchand au sujet de l'authentification de l'acheteur.
- 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 |
|
| |
| |
FRICTIONLESSSin 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.