Proteja su integración con contraseñas o certificados

Puede autenticarse en Mastercard Payment Gateway mediante contraseñas o certificados SSL.

Autenticación de contraseña

Puede habilitar el acceso seguro a la API de Mastercard Payment Gateway e integraciones de Batch mediante contraseñas. La contraseña generada por el sistema es de 16 bytes, valor generado aleatoriamente y codificado como una cadena hexadecimal. Aunque tiene la longitud y la calidad suficientes para resistir una adivinación forzada, debe protegerse de la misma manera que las contraseñas de usuario y otros datos confidenciales.

Su contraseña es secreta y solo debe conocerla usted y Mastercard. Es importante mantenerla confidencial para proteger su cuenta.

Generar una contraseña para API

Puede generar su contraseña de la API en Merchant Administration. Como requisito previo, su perfil de negocio debe estar habilitado para la API, Batch y el privilegio "Usar autenticación con contraseña".

Para acceder a Merchant Administration, necesita sus credenciales de inicio de sesión. your payment service provider le proporcionará las credenciales de inicio de sesión de administrador cuando se haya registrado correctamente en el motor de pagos. Como administrador, puede crear un nuevo operador con permisos para generar la contraseña de la API.

  1. Inicie sesión en https://evopaymentsmexico.gateway.mastercard.com/ma con sus credenciales de inicio de sesión de administrador.
  2. Vaya a Admin > Operadores
  3. Cree un nuevo operador completando todos los campos obligatorios. Asigne el privilegio "Puede configurar ajustes de integración" para permitir que el operador genere la contraseña de la API.
  4. Cierre sesión en Merchant Administration y vuelva a iniciar sesión en Merchant Administration como el nuevo operador.
  5. Vaya a Admin > Ajustes de integración de la API de servicios web > Editar.
  6. Haga clic en Generar nueva y seleccione la casilla Habilitar el acceso a la integración a través de una contraseña.
  7. Esta es la contraseña de la API que utilizará para autenticar las solicitudes de API realizadas desde su servidor web al motor de pagos.
  8. Haga clic en Enviar.

Siempre debe tener al menos una contraseña generada y habilitada, pero puede tener hasta dos contraseñas configuradas. Por seguridad, debe cambiar la contraseña de manera periódica. Solo debe usarse una contraseña para configurar su aplicación, mientras la segunda funciona en suspensión para fines de rotación de contraseña.

Una vez generada la contraseña, debe incluirla en todas las solicitudes de transacción dirigidas al Mastercard Payment Gateway. Si la solicitud se envía usando el protocolo REST-JSON, entonces la solicitud debe contener el ID de usuario y la contraseña en el encabezado de autenticación básico HTTP. Con NVP, debe proporcionar parámetros adicionales en la solicitud, apiUsername y apiPassword para usar la API.

Para autenticarse como negocio, el nombre (apiUsername para NVP y el ID de usuario para REST-JSON) y la contraseña (apiPassword para NVP y la contraseña para REST-JSON) deben contener 'merchant.<your gateway merchant ID>' y la contraseña generada por el sistema respectivamente.

Proporcionar tanto el nombre como la contraseña es obligatorio desde API v13 en adelante. Antes de v13, era obligatorio dejar el nombre en blanco y proporcionar solo la contraseña.

Referencia de API de Contraseña [REST][NVP]

Autenticación de certificación

La Autenticación de certificación actualmente no es compatible con las API de Batch o Reporting.

Tenga en cuenta que el nombre del host para la autenticación de certificación es diferente de https://evopaymentsmexico.gateway.mastercard.com/api. Comuníquese con your payment service provider para solicitar el nombre del host.

Con la autenticación de certificación, debe presentar un certificado para autenticarse ante Mastercard Payment Gateway. Por lo general, se emiten certificados de una de muchas organizaciones que actúan como entidades de certificación (CA). Este modelo de autenticación es un componente de la infraestructura de clave pública (PKI), donde la seguridad se logra a través de confidencialidad, integridad, no rechazo y autenticación. La CA asegura que la clave pública adjunta al certificado es correcta, pertenece a la persona o entidad que se asegura (es decir, es ‘auténtica’) y no ha sido manipulada ni reemplazada por un tercero malintencionado.

El mecanismo de autenticación para la autenticación de certificación requiere que el cliente (su Servidor web) y el servidor (Servidor HTTP de Mastercard Payment Gateway) presenten certificados para autenticarse. Esto se conoce como autenticación mutua, cuyo flujo de trabajo se ilustra a continuación.

Autenticación de certificación

Al conectarse con Mastercard Payment Gateway mediante la autenticación de certificación, ocurre lo siguiente:

  1. El cliente solicita conexión con un recurso protegido del servidor. Esto tiene lugar para cada solicitud de transacción iniciada por el cliente.
  2. El servidor presenta su cadena de certificados al cliente.
  3. El cliente verifica el certificado del servidor mediante una tienda de confianza, la cual contiene las CA de raíz confiables. El cliente valida la ruta del certificado a un certificado raíz de CA confiable.
  4. Si todo está correcto, el cliente envía su cadena de certificación al servidor, la cual está contenida en una tienda clave.
  5. Dependiendo del software cliente del servidor web, la tienda confiable y la tienda clave suelen ser la misma.
  6. El servidor verifica el certificado del cliente mediante un completo conjunto de certificados de raíz confiables o aprobados por la CA que están cargados en el servidor. Se realizan las siguientes comprobaciones:
    1. Comprueba si el certificado está en formato de certificación X.509.
    2. Valida la ruta del certificado a un certificado raíz de CA confiable.
    3. Realiza comprobación de CRL u OCSP (Protocolo de estado de certificación en línea) para garantizar que el certificado no se haya revocado.
    4. Comprueba si el certificado no ha vencido.

    Una vez que el Servidor HTTP ha validado correctamente el certificado cliente, toda la cadena de certificado cliente se pasa a API para su verificación. Si no, el Servidor HTTP devuelve mensajes de error de certificado SSL estándar.

    La verificación se produce en los niveles de Servidor HTTP y API. El Servidor HTTP realiza una validación de certificación SSL y API realiza una autenticación de certificado a nivel comercial.
  7. API realiza las siguientes comprobaciones:
    1. Extrae el nombre común de sujeto del certificado de cliente y confirma que coincida con el nombre común de sujeto registrada contra el negocio en la base de datos. El nombre común de sujeto del certificado debe contener el nombre comercial legal del negocio.
    2. Verifica que el certificado de cliente tiene una extensión Key-Usage, marcada crítica que incluye la autenticación de cliente como un uso permisible del certificado.
    3. Realiza una validación simple del certificado de cliente ante un certificado raíz de CA contenido en el conjunto de CA permitidas. Esto significa que la aplicación de API debe contener el certificado raíz de CA que se usó para emitir y firmar el certificado de cliente.
      El conjunto inicial de CA que se pueden permitir lo determina Mastercard.
    4. Comprueba si el certificado presentado coincide con el estado del perfil de negocio. Un perfil de producción solo aceptará certificados de producción, mientras que un perfil de prueba aceptará certificados de prueba o producción.

    Si los pasos del 1 al 4 están correctos, entonces la autenticación de negocio seguramente será correcta, de lo contrario, la conexión se rechaza mediante la devolución de un mensaje de error correspondiente.

  8. Si todas las comprobaciones del paso 5 y 6 son correctas, entonces el servidor acepta la conexión y permite que la solicitud de operación proceda.

Puede elegir presentar su certificado de cliente o un certificado diferente para autenticarse cuando el pagador acceda a su aplicación. En esta interacción, su Servidor web actúa como servidor y el pagador como cliente. Integrarse con este mecanismo de autenticación puede entregar a sus pagadores la seguridad agregada de que están haciendo transacciones con una empresa legítima.

Obtención de certificado de prueba y producción desde una CA

Antes de iniciar transacciones en producción con su certificado de producción, puede desarrollar y probar la autenticación de PKI con un certificado de prueba. Esto puede ser útil, por ejemplo, si no desea compartir el certificado de producción y la clave privada con un integrador web de terceros.

Es importante que el certificado que procure de la CA de su preferencia cumpla con los requisitos de implementación de certificación de Mastercard. Estos son algunos puntos clave que se deben considerar al procurar su certificado SSL.

  • El certificado debe contar con formato de certificación X.509.
  • El certificado debe tener una extensión Key-Usage marcada como crítica e incluir la autenticación de cliente como un uso permisible del certificado.
  • El certificado debe ser emitido por una CA aprobada por Mastercard. Póngase en contacto con Mastercard para obtener una lista de CA aprobadas.
  • El nombre común (CN) de sujeto del certificado debe contener el nombre de dominio completamente calificado (con o sin un comodín) del sitio web para el cual se está comprando el certificado.
  • El campo de organización (O) de sujeto debe contener la organización del negocio.
Configurar certificados de negocio en Administrador de negocios

Después de obtener el certificado de una CA de confianza, your payment service provider debe configurar su certificado de prueba y/o de producción en Administrador de negocios como parte de la configuración de todos los ajustes de la API para su perfil del negocio en el motor de pagos. Si se requiere, un certificado de negocio se puede vincular a varios perfiles de negocio desde el mismo negocio o entre negocios. Para obtener más información sobre cómo configurar certificados de negocio en Administrador de negocios, consulte la sección Configuración de la API de la Guía de usuario de Administrador de negocios.

El sitio controla la lista de certificados raíz aceptables que se usan para verificar certificados de negocio. Para permitir la verificación de certificado, el sistema recopila la versión PEM codificada del certificado de producción a través del Administrador de negocios. El Nombre común de sujeto se extrae del certificado y se verifica con respecto al Nombre común de sujeto del certificado presentado durante el protocolo de enlace SSL.

Siempre que renueve su certificado con el mismo nombre común de sujeto que el del certificado vencido, no necesita actualizar la configuración en Administrador de negocios. Esto se debe que el sistema solo guarda el Nombre común de sujeto del certificado como medio para validar el certificado.
Integrar el certificado SSL con su aplicación

Después de configurar el certificado con respecto a su perfil de negocio, debe realizar los siguientes pasos para instalar el certificado en su entorno.

  1. Deje la clave privada y el certificado disponibles para el software de cliente SSL que hace la conexión SSL con el Mastercard Payment Gateway. Dependiendo del software, la clave privada, el certificado y la cadena de certificación asociada, es posible que deba convertir a un formato compatible. Por ejemplo, las claves privadas y los certificados a menudo se proporcionan en archivos de texto, en formato PEM con la clave privada protegida por una contraseña. En Java, estos archivos generalmente se cargan en una tienda de claves Java. Consulte su documentación de software para conocer los formatos compatibles.
    En el caso de entornos Java y .NET, recomendamos que convierta los archivos PEM a PKCS12.
  2. En casi todos los casos, la CA emisora para su certificado también proporciona certificados adicionales conocidos como cadena de certificación. Debe proporcionar estos al Mastercard Payment Gateway durante el protocolo de enlace SSL para permitir que el motor de pagos valide su certificado. Su software de cliente SSL tendrá instrucciones sobre cómo y dónde colocar estos certificados.
  3. Una prueba sencilla para comprobar si tiene todos los certificados necesarios consiste en cargarlos en un explorador web como Internet Explorer, Firefox o Safari, navegar hasta la URL de Check Gateway de API del motor de pagos y recuperar el estado del motor de pagos. Si los certificados se cargan correctamente, acceder a la URL de Check Gateway provocará que el explorador le pida seleccionar o aceptar el certificado que se usará para conectarse con el motor de pagos. Si el explorador se lo pide y se logra una conexión satisfactoria, obtendrá la siguiente respuesta: {status: "OPERATING"}.
  4. La mayoría de los exploradores también requieren que los certificados con formato PEM se conviertan. De manera que usar el explorador para probar los certificados correctos también confirmará que puede convertir satisfactoriamente los certificados al formato adecuado. Internet Explorer admite los siguientes formatos: PKCS#12, PKCS#7 y el Almacén de certificados en serie de Microsoft. La utilidad OpenSSL es una herramienta excelente para conversión entre formatos PEM y formatos basados en PKCS.

Referencia de API de URL de Check Gateway [REST][NVP]

Rotar certificados

Es posible que desee cambiar del certificado existente a un nuevo certificado por diversos motivos. Por ejemplo, actualizar el certificado por un cambio de nombre de la empresa o pasar de un certificado de prueba a uno de producción.

Para pasar a un nuevo certificado, your payment service provider debe agregar el nuevo certificado como certificado principal, mientras que el certificado anterior se convierte en un certificado adicional. Puede tener uno o más certificados adicionales. Los negocios configurados para usar el nuevo certificado pueden autenticarse ante API mediante el certificado antiguo o el nuevo. Se supone que esta sea una configuración interina hasta haber actualizado todas las integraciones para usar el nuevo certificado. Para obtener más información sobre cómo agregar certificados adicionales, consulte la sección Configuración de la API de la Guía de usuario de Administrador de negocios.

Autenticación con sesión

La autenticación de sesión utiliza la sesión de pago del motor de pagos, un contenedor temporal de campos de solicitud, para autenticar el negocio. Debido a que un negocio autenticado (mediante autenticación con contraseña o con certificado) crea la sesión de pago, el pagador puede usarla para interacciones del motor de pagos, como la realización de operaciones de autenticación.

Este mecanismo de autenticación permite que los pagadores proporcionen sus detalles de pago directamente al motor de pagos. Los datos del pagador se obtienen mediante una interacción del lado cliente con el motor de pagos, ya sea a través del explorador del pagador o de una aplicación de su dispositivo móvil. Ofrece un modelo sencillo de integración para obtener de forma segura los datos necesarios del pagador, ya que las solicitudes de API al motor de pagos se realizan directamente de parte del cliente y no del servidor.

Utiliza un mecanismo básico de autenticación HTTP (similar a la autenticación con contraseña), en el que debe proporcionar 'merchant.<your gateway merchant ID>;> en la parte de ID de usuario y el ID de sesión en la parte de contraseña.

La autenticación de sesión solo está disponible desde API v55 en adelante.

Para usar este tipo de autenticación:

  1. Cree una sesión enviando una solicitud Create Session de API desde su servidor al servidor del motor de pagos. Esta operación devuelve un ID de sesión.
  2. Envíe la solicitud Update Session mediante autenticación con sesión para agregar cualquier dato pertinente a la sesión creada en el paso 1.
  3. Proporcione la sesión al pagador.

Transacciones admitidas

Las siguientes operaciones admiten autenticación mediante un ID de sesión.

  • Update Session
  • Initiate Authentication
  • Authenticate Payer

Campos de entrada y de salida del pagador

En las interacciones con el motor de pagos autenticadas con sesión, el pagador se restringe a un subconjunto de campos dentro de una operación API. Estos se conocen como campos de entrada del pagador. Si proporciona campos que no sean campos de entrada del pagador en una solicitud autenticada con sesión, la solicitud se rechaza. Por ejemplo, el pagador no puede enviar datos como el monto del pedido.

De manera similar a los campos de entrada del pagador, el motor de pagos permite la devolución de solo ciertos campos en la respuesta para una interacción con el motor de pagos autenticada con sesión. Estos se conocen como campos de salida del pagador. Solo se devuelven los campos que deben mostrarse a un pagador en un explorador o una aplicación para realizar una transacción. Por ejemplo, no se devuelven los datos confidenciales de seguridad como el ID de sesión.

Update Session

Campos de entrada del pagador
  • billing.address.city
  • billing.address.company
  • billing.address.country
  • billing.address.postcodeZip
  • billing.address.stateProvince
  • billing.address.stateProvinceCode
  • billing.address.street
  • billing.address.street2
  • browserPayment.preferredLanguage
  • correlationId
  • customer.dateOfBirth
  • customer.email
  • customer.firstName
  • customer.lastName
  • customer.mobilePhone
  • customer.nationalId
  • customer.phone
  • customer.taxRegistrationId
  • device.browser
  • device.browserDetails.3DSecureChallengeWindowSize
  • device.browserDetails.acceptHeaders
  • device.browserDetails.colorDepth
  • device.browserDetails.javaEnabled
  • device.browserDetails.language
  • device.browserDetails.screenHeight
  • device.browserDetails.screenWidth
  • device.browserDetails.timeZone
  • device.fingerprint
  • device.hostname
  • device.ipAddress
  • device.mobilePhoneModel
  • gatewayEntryPoint
  • locale
  • merchant
  • order.id
  • order.walletProvider
  • session.version
  • shipping.contact.email
  • shipping.contact.firstName
  • shipping.contact.lastName
  • shipping.contact.mobilePhone
  • shipping.contact.phone
  • sourceOfFunds.provided.card.devicePayment.3DSecure.eciIndicator
  • sourceOfFunds.provided.card.devicePayment.3DSecure.onlinePaymentCryptogram
  • sourceOfFunds.provided.card.devicePayment.cryptogramFormat
  • sourceOfFunds.provided.card.devicePayment.emv.emvData
  • sourceOfFunds.provided.card.devicePayment.paymentToken
  • sourceOfFunds.provided.card.expiry.month
  • sourceOfFunds.provided.card.expiry.year
  • sourceOfFunds.provided.card.mobileWallet.emv.emvData
  • sourceOfFunds.provided.card.nameOnCard
  • sourceOfFunds.provided.card.number
  • sourceOfFunds.provided.card.provided.card.prefix
  • sourceOfFunds.provided.card.securityCode
  • sourceOfFunds.token
  • sourceOfFunds.type
  • transaction.acquirer.customData
  • transaction.acquirer.traceId
  • transaction.id
Campos de salida del pagador
  • correlationId
  • error.cause
  • error.field
  • error.supportCode
  • error.validationType
  • order.amount
  • order.currency
  • order.customerNote
  • order.customerReference
  • order.invoiceNumber
  • result
  • session.updateStatus
  • session.version

Initiate Authentication

Campos de entrada del pagador
  • apiOperation
  • correlationId
  • order.walletProvider
  • session.id
  • session.version
  • sourceOfFunds.provided.card.devicePayment.3DSecure.eciIndicator
  • sourceOfFunds.provided.card.devicePayment.3DSecure.onlinePaymentCryptogram
  • sourceOfFunds.provided.card.devicePayment.cryptogramFormat
  • sourceOfFunds.provided.card.devicePayment.emv.emvData
  • sourceOfFunds.provided.card.devicePayment.paymentToken
  • sourceOfFunds.provided.card.number
  • sourceOfFunds.token
  • sourceOfFunds.type
Campos de salida del pagador
  • authentication.3ds2.methodCompleted
  • authentication.3ds2.methodSupported
  • authentication.redirect.customized.3DS.methodPostData
  • authentication.redirect.customized.3DS.methodUrl
  • authentication.redirectHtml
  • authentication.version
  • correlationId
  • error.cause
  • error.field
  • error.supportCode
  • error.validationType
  • order.authenticationStatus
  • order.currency
  • order.status
  • response.gatewayCode
  • response.gatewayRecommendation
  • result
  • sourceOfFunds.provided.card.number
  • sourceOfFunds.type
  • transaction.authenticationStatus
  • version

Authenticate Payer

Campos de entrada del pagador
  • apiOperation
  • billing.address.city
  • billing.address.company
  • billing.address.country
  • billing.address.postcodeZip
  • billing.address.stateProvince
  • billing.address.stateProvinceCode
  • billing.address.street
  • billing.address.street2
  • correlationId
  • device.browser
  • device.browserDetails.3DSecureChallengeWindowSize
  • device.browserDetails.acceptHeaders
  • device.browserDetails.colorDepth
  • device.browserDetails.javaEnabled
  • device.browserDetails.language
  • device.browserDetails.screenHeight
  • device.browserDetails.screenWidth
  • device.browserDetails.timeZone
  • device.ipAddress
  • order.walletProvider
  • session.id
  • session.version
  • sourceOfFunds.provided.card.devicePayment.3DSecure.eciIndicator
  • sourceOfFunds.provided.card.devicePayment.3DSecure.onlinePaymentCryptogram
  • sourceOfFunds.provided.card.devicePayment.cryptogramFormat
  • sourceOfFunds.provided.card.devicePayment.emv.emvData
  • sourceOfFunds.provided.card.devicePayment.paymentToken
  • sourceOfFunds.provided.card.expiry.month
  • sourceOfFunds.provided.card.expiry.year
  • sourceOfFunds.provided.card.number
  • sourceOfFunds.provided.card.securityCode
Campos de salida del pagador
  • authentication.3ds2.acsReference
  • authentication.3ds2.challenge.signedContent
  • authentication.3ds2.methodCompleted
  • authentication.3ds2.methodSupported
  • authentication.3ds2.sdk.interface
  • authentication.3ds2.sdk.timeout
  • authentication.3ds2.sdk.uiType
  • authentication.payerInteraction
  • authentication.redirect.customized.3DS.acsUrl
  • authentication.redirect.customized.3DS.cReq
  • authentication.redirect.domainName
  • authentication.redirectHtml
  • authentication.version
  • correlationId
  • encryptedData.ciphertext
  • encryptedData.nonce
  • encryptedData.tag
  • error.cause
  • error.field
  • error.supportCode
  • error.validationType
  • order.authenticationStatus
  • order.currency
  • order.status
  • response.gatewayCode
  • response.gatewayRecommendation
  • result
  • sourceOfFunds.provided.card.number
  • sourceOfFunds.type
  • transaction.authenticationStatus
  • version

Proteger información del pagador con SSL

Todos los sitios web que recopilan información confidencial deben proteger los datos que pasan entre el explorador de Internet del pagador, la aplicación y Mastercard Payment Gateway.

SSL es una tecnología de seguridad que se usa para proteger el servidor web en transacciones de explorador de Internet. Esto incluye proteger cualquier información (como el número de tarjeta de crédito del pagador) transmitida por un explorador de Internet a un servidor web (como su aplicación "Shop & Buy"). SSL protege los datos enviados por Internet de que no sean interceptados ni vistos por destinatarios no intencionados.

Al implementar el Direct Payment, debe asegurarse de que su aplicación presente un formulario seguro que use SSL. También debe considerar el uso de un formulario seguro en su aplicación al recopilar información confidencial como direcciones del pagador.

¿Cómo saben mis pagadores si mi sitio usa SSL?

Cuando un pagador se conecta a su aplicación con SSL, verá que http:// cambia a https:// y también aparecerá un pequeño candado amarillo en el explorador de Internet, por ejemplo:

SSL

Siempre que un explorador de Internet se conecte a un servidor web (sitio web) por https://, significa que la comunicación con Mastercard Payment Gateway será cifrada y segura. Puede alertar a sus pagadores en relación con este hecho para que sepan qué buscar cuando hacen transacciones en su sitio web.

Tabla de referencia de diferencias clave entre modelos de seguridad

En la siguiente tabla se describen algunas diferencias clave entre modelos de autenticación de contraseña y de certificación, con la intención de ayudarlo a elegir la solución de autenticación que mejor cumple los requisitos de autenticación de su negocio.

  Autenticación de contraseña Autenticación de certificación
Cuándo usar
Con empresas pequeñas, donde una autenticación sencilla cumple los requisitos. Con empresas grandes, donde el costo de infraestructura para implementar PKI es mínimo frente a la seguridad que se obtiene al usar un nivel de autenticación más alto.
Habilidades técnicas requeridas
Requiere conocimientos de autenticación HTTP básica Requiere conocimientos de autenticación mutua y PKI con Entidades de certificación
Facilidad de integración
Fácil de integrar Configurar el archivo keystore y otra infraestructura puede sumarse a la complejidad de la integración.
Nivel de autenticación Moderado Alto
Costo El método de autenticación menos costoso. Implica costo adicional, como el costo de suscripción a la entidad de certificación para emitir los certificados SSL.
Beneficios Ideal para negocios más pequeños, donde el costo de integración es un factor importante y los modelos comerciales no requieren niveles de seguridad más altos. La autenticación mutua SSL proporciona seguridad muy alta y se considera una buena práctica industrial.
Optimiza el rendimiento de autenticación al usar la conexión SSL existente, la cual, por lo general, se crea de todas maneras. El costo adicional de enviar el certificado de cliente es mínimo.
Desventajas La contraseña se incrusta como cleartext en el encabezado de autenticación HTTP y solo debe mandarse por SSL. Mastercard Payment Gateway solo acepta conexiones protegidas por SSL, por lo tanto protege la contraseña de divulgación; sin embargo, es muy importante para la seguridad de la conexión que se realice una autenticación de servidor adecuada para evitar una divulgación accidental ante servidores no autorizados. Ninguno
Compatibilidad con el uso compartido de credenciales en varios perfiles de negocio No puede compartir contraseñas en varios perfiles de negocio Le permite compartir un ID de conjunto de certificados con varios perfiles de negocio dentro y en MSO (basado en privilegios).

Derechos de autor © 2023 Mastercard