Casos de uso
He aquí una lista no exhaustiva de los casos de uso que se definen cuando se inicializa el pago (durante la llamada al servicio web 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:
- Visibles en el
Back Office del Experto , en los detalles 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:
- Visibles en el
Back Office del Experto , en los detalles de la transacción (pestaña Comprador ), - devueltos en la IPN, sin cambios.
Ejemplo para una entrega de tipo “Retiro en tienda”
La dirección de entrega es la de la tienda.
La dirección de facturación no es la misma que la dirección de entrega.
El nombre del destinatario del envío es 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 entrega es la del punto de retiro.
El nombre del punto de retiro se indica en la segunda línea de la dirección de entrega.
La dirección del punto de retiro se indica en la primera línea de la dirección de entrega.
El nombre del destinatario es el de la dirección de facturación.
La dirección de facturación no es la misma que la dirección de entrega.
{ "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" } } }
Transmitir el contenido del carrito
Al crear un pago, el vendedor puede transmitir el contenido del carrito del comprador.
Estos datos se mostrarán en el
Para ello, utilice el campo cartItemInfo (matriz de objetos json) durante la llamada al servicio web 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" } ] } } }
Notas:
- El campo cartItemInfo siempre se devuelve vacío en la respuesta.
- Para que la pestaña Carrito se muestre correctamente en el
Back Office del Experto , debe trasmitir por lo menos el campo productAmount de cada producto.
Enviar los datos del sub-comerciante
El facilitador de pagos puede transmitir los datos del subcomerciante involucrado en la transacción.
Estos datos serán:
- Visibles en el
Back Office del Experto , en los detalles de la transacción (pestaña Comprador ), - devueltos en la IPN, sin cambios.
El campo subMerchantDetails.name se vuelve requerido siempre que al menos un campo de submerchant está presente en la petición de pago.
Campo nombre | DESCRIPCIÓN | Formato |
---|---|---|
subMerchantDetails.address1 | Dirección del subvendedor. Transmitido por el facilitador de pago. | ans..255 |
subMerchantDetails.address2 | Información complementaria sobre la dirección del subvendedor. Transmitido por el facilitador de pago. | ans..255 |
subMerchantDetails.city | Ciudad del subvendedor. Transmitido por el facilitador de pago. | an..128 |
subMerchantDetails.companyType | Tipo de empresa del subvendedor. Transmitido por el facilitador de pago. | ans..60 |
subMerchantDetails.country | Código de país de la dirección del subvendedor (norma ISO 3166 alpha-2). Transmitido por el facilitador de pago. | a2 |
subMerchantDetails.legalNumber | Número legal del subvendedor. Transmitido por el facilitador de pago. | ans..24 |
subMerchantDetails.mcc | Código MCC del subvendedor. Transmitido por el facilitador de pago. | n4 |
subMerchantDetails.mid | Número de afiliación (MID) del subvendedor. Transmitido por el facilitador de pago. | n..64 |
subMerchantDetails.name | Razón social del subvendedor. Transmitido por el facilitador de pago. | an..255 |
subMerchantDetails.phoneNumber | Número de teléfono del subvendedor. Transmitido por el facilitador de pago. | an..32 |
subMerchantDetails.softDescriptor | Descripción (soft descriptor) del subvendedor que aparece en el extracto bancario del comprador. Transmitido por el facilitador de pago. | ans..255 |
subMerchantDetails.url | URL del subvendedor. Transmitido por el facilitador de pago. | ans..128 |
subMerchantDetails.zip | Código postal del subvendedor. Transmitido por el facilitador de pago. | an..64 |
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 del comerciante a través del campo paymentMethodToken .
De esta manera, el comprador ya no tendrá que ingresar su método 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 método 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 verificación.
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 completarán automáticamente. El comprador solo tendrá que ingresar su código de seguridad (CVV) para finalizar su 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
Cuando el comprador desea realizar una nueva compra, el comerciante puede, si lo desea, ofrecer la lista de los métodos de pago registrados para este cliente. Para hacerlo, muestra en su página el pan oculto y la fecha de validez devueltos al registrar el o los medios de pago. El comprador selecciona el medio de pago a utilizar y el vendedor inicializa el pago con el token asociado.
Para no mostrar el formulario incrustado, simplemente utilice el parámetro formAction con el valor SILENT :
{ "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 .
- Dependiendo de la configuración de su tienda para los pagos por token, puede que se requiera el CVV o una autenticación 3D Secure. En tal caso, el modo SILENT no es el indicado.
Transmitir la preferencia del vendedor
Con 3DS2, ya no será posible desactivar 3DS. Sin embargo, el vendedor podrá pedir una exención en su solicitud de pago (lo que se conoce como "preferencia del vendedor").
Para ello, utilice el campo strongAuthentication .
Valor | Descripción 3DS1 | Descripción 3DS2 |
---|---|---|
ENABLED | Habilita (de ser posible) la autenticación fuerte. | En desuso. Este valor se interpretará como CHALLENGE_REQUESTED. |
DISABLED | Deshabilita (de ser posible) la autenticación fuerte. Requiere la opción "3DS1 Selectivo". No se tomará en cuenta la desactivación si los medios de pago requieren necesariamente una autenticación fuerte. Es el caso de las tarjetas MAESTRO. | Permite solicitar una autenticación sin interacción (frictionless). Requiere la opción "Frictionless 3DS2".
Si la tienda no tiene la opción "Frictionless 3DS2", la elección de preferencia se delega al emisor de la tarjeta (No Preference). |
CHALLENGE_REQUESTED | Habilita (de ser posible) la autenticación fuerte. | Permite solicitar una autenticación fuerte para la transacción. |
CHALLENGE_MANDATE | Habilita (de ser posible) la autenticación fuerte. | Permite indicar que, por razones reglamentarias, se requiere una autenticación fuerte para la transacción. |
NO_PREFERENCE | Habilita (de ser posible) la autenticación fuerte. | Indica al DS que el vendedor no tiene preferencia. El pago quedará garantizado si el emisor decide realizar una autenticación sin interacción (frictionless). |
AUTO | Valor predeterminado. Habilita (de ser posible) la autenticación fuerte. | Valor predeterminado. Se delega la elección de la preferencia al emisor de la tarjeta (No Preference). |
Aumentar la probabilidad de frictionless en 3DS2
Cuando todos los actores sean operativos, será posible transmitir datos suplementarios para aumentar la probabilidad de frictionless durante el pago.
Lista de campos a enviar
Parámetro | DESCRIPCIÓN |
---|---|
customer.email | Dirección de correo electrónico 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 la norma ISO 3166 |
customer.shippingDetails.shippingMethod | Modo de entrega. Los nuevos valores específicos de 3DS2 estarán disponibles pronto |
customer.shippingDetails.shippingSpeed | Plazo de entrega. Los nuevos valores específicos de 3DS2 estarán disponibles pronto |
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á:
- Visibles en el
Back Office del Experto , en los detalles de la transacción (pestaña Comprador ), - 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 servicio web 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
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 funcionalidad 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 sobrecargar la URL de la página que se notificará.
Si el valor del campo ipnTargetUrl es incorrecto, el formulario no será rechazado.
{ "ipnTargetUrl" : "https://my.site/my-ipn", }