Denegaciones
Existen tres posibles razones por las cuales el cargo a una tarjeta puede ser denegado:
- Bancos y marcas de tarjetas.
- Ventas riesgosas.
- Peticiones inválidas.
El motivo de denegación es parte de la respuesta de un cargo cuando se usa el API y también se puede ver en el detalle de transacción en el Panel de Producción. El mensaje incluye el tipo de denegación obtenida e información adicional acerca del motivo de rechazo.
Denegaciones de Bancos y marcas de tarjetas
Cuando creas un Cargo en Culqi, el banco emisor y el procesador de la marca de la tarjeta (Visa, Mastercard, etc.) determinan, a través de sistemas automatizados, si una transacción será autorizada o no. En este proceso se toman en cuenta varios factores como los hábitos de compra de tus clientes, el balance en sus cuentas bancarias y la información de sus tarjetas (como fecha de expiración y CVV), entre otros.
Si el banco emisor de la tarjeta o el procesador de la marca rechazan la transacción de tu cliente, Culqi compartirá a través del Panel y el API, el parámetro Decline Code con toda la información posible explicando el motivo de la denegación.
En algunos casos, los bancos brindan explicaciones precisas sobre el rechazo. Por ejemplo, te avisaremos si la tarjeta no tiene fondos suficientes, si es una tarjeta robada o si la tarjeta está vencida, entre otros motivos.
Desafortunadamente, la mayoría de motivos son categorizados como genéricos, por lo que no siempre es posible conocer por qué un cargo fue rechazado. Si la información de la tarjeta parece correcta, es mejor que tu cliente se contacte con su banco para solicitar mayor información.
Cada IIN de tarjeta tiene privilegios y restricciones diferentes. Por privacidad y seguridad, los bancos pueden brindar el motivo específico del rechazo únicamente a su cliente, nunca al comercio.
Adicionalmente, a través del API puedes conocer el motivo de la denegación, utilizando el objeto Outcome. En este objeto te brindamos el tipo de error, el código de respuesta y el código de la denegación. Tambien, te mostraremos un mensaje con más información para el comercio y una respuesta sugerida al cliente.
{
"object": "error",
"type": "card_error",
"charge_id": "chr_test_9IeSADjs6y0Y8S30",
"code": "card_declined",
"decline_code": "insufficient_funds",
"merchant_message": "Fondos insuficientes.",
"user_message": "Su tarjeta no tiene fondos suficientes..."
}
Las denegaciones producidas por ingresar información errónea de la tarjeta (utilizar un número de tarjeta incorrecto o una fecha de expiración inválida) se pueden corregir pidiéndole a tus clientes que modifiquen el dato ingresado, utilicen otra tarjeta e incluso usen otro medio de pago.
Si utilizas nuestro Checkout, tus clientes recibiran feedback instantáneo al momento de completar la información de la tarjeta, de tal manera que puedan corregir el error o utilizar un método alternativo en caso sea necesario.
Códigos de Denegaciones de bancos
Si un cargo es rechazado por el banco o la marca procesadora de la tarjeta, el banco puede proveer un código de denegación con un motivo mucho más detallado. Te mostramos una lista de posibles códigos de denegación que pueden ser devueltos en el proceso de cargo.
A continuación te mostramos una lista de posibles códigos de denegación que pueden ser devueltos en el proceso de cargo:
Decline Code | Explicación |
---|---|
expired_card | Tarjeta vencida. La tarjeta está vencida o la fecha de vencimiento ingresada es incorrecta. |
stolen_card | Tarjeta robada. La tarjeta fue bloqueada y reportada al banco emisor como una tarjeta robada. |
lost_card | Tarjeta perdida. La tarjeta fue bloqueada y reportada al banco emisor como una tarjeta perdida. |
insufficient_funds | Fondos insuficientes. La tarjeta no tiene fondos suficientes para realizar la compra. |
contact_issuer | Contactar emisor. La operación fue denegada por el banco emisor de la tarjeta y el cliente necesita contactarse con la entidad para conocer el motivo. |
invalid_cvv | CVV inválido. El código de seguridad (CVV2, CVC2, CID) de la tarjeta es inválido. |
incorrect_cvv | CVV incorrecto. El código de seguridad (CVV2, CVC2, CID) de la tarjeta es incorrecto. |
too_many_attempts_cvv | Exceso CVV. El cliente ha intentado demasiadas veces ingresar el código de seguridad (CVV2, CVC2, CID) de la tarjeta. |
issuer_not_available | Emisor no disponible. El banco que emitió la tarjeta no responde. El cliente debe realizar el pago nuevamente. |
issuer_decline_operation | Operación denegada. La operación fue denegada por el banco emisor de la tarjeta por una razón desconocida. |
invalid_card | Tarjeta inválida. La tarjeta utilizada tiene restricciones para este tipo de compras. El cliente necesita contactarse con el banco emisor para conocer el motivo de la denegación. |
processing_error | Error de procesamiento. Ocurrió un error mientras procesábamos la compra. Para brindarte una solución, contáctate con nosotros en: culqi.com/soporte. |
fraudulent | Operación fraudulenta. El banco emisor de la tarjeta sospecha que se trata de una compra fraudulenta. |
culqi_card | Tarjeta Culqi. Estás utilizando una de las tarjetas de prueba de Culqi para realizar una compra real. |
Reduciendo denegaciones de bancos y marcas
Las denegaciones producidas por ingresar información errónea de la tarjeta (utilizar un número de tarjeta incorrecto o una fecha de expiración inválida) se pueden corregir pidiéndole a tus clientes que modifiquen el dato ingresado, utilicen otra tarjeta e incluso usen otro medio de pago.
Si utilizas nuestro Checkout, tus clientes recibiran feedback instantáneo al momento de completar la información de la tarjeta, de tal manera que puedan corregir el error o utilizar un método alternativo en caso sea necesario.
Las sospechas de los bancos por operaciones fraudulentas son más complejas de manejar. Recomendamos que siempre envíes toda la información que tengas de tu cliente: el código de seguridad (CVV), la dirección completa y cualquier información adicional que le sirva al banco para tomar una decisión correcta.
Denegaciones de ventas muy riesgosas
El motor de análisis de fraude de Culqi bloqueará cualquier compra que identifique como “de alto riesgo” o forme parte de de los usuarios o tarjetas reportadas por los bancos como fraudulentas. Por cada cargo que realices, te brindaremos un score de fraude que te permitirá conocer qué tan riesgosa es una transacción. Si el score es mayor o igual a 75%, la compra será rechazada. Recomendamos que revises el score de cada cliente antes de realizar la entrega de tu producto o servicio.
Usando el API, podrás obtener el score de fraude o fraud_score y la información de tu cliente a través del objeto cliente,lo que te servirá para conocer el nivel de riesgo de una transacción.
"fraud_score": 0,
"antifraud_details": {
"first_name": "William",
"last_name": "Muro",
"email": "wmuro@me.com",
"address": "Avenida Lima 213",
"address_city": "Lima",
"country_code": "PE",
"phone_number": 2132123
}
Reduciendo denegaciones por ventas muy riesgosas
El motor de prevención de fraudes es una herramienta de inteligencia artificial automatizada que aprende del comportamiento fraudulento de tu negocio y rechazará los cargos que le parecen muy riesgosos.
Es indispensable etiquetar a tus clientes como “Cliente de confianza” o “Cliente fraudulento” a través del Culqipanel. De esta manera, ayudas a que el motor se equivoque la menor cantidad de veces posible.
Adicionalmente, es muy importante que nos envíes lo datos de tus clientes cada vez que realizas un cargo a través del objeto antifraud_details:
{
"source_id": "tkn_live_bk75nbyKfdGuiHvU",
"email": "juan.perez@me.com",
"currency_code": "PEN",
"amount": 100000,
"antifraud_details": {
"address": "Avenida Lima 123",
"address_city": "Lima",
"country_code": "PE",
"first_name": "Juan",
"last_name": "Perez",
"phone_number": 9912321123
}
}
Enviar los mismos datos para todos tus clientes hará que la efectividad del motor baje, ya que relacionará a más de un cliente con los mismos datos de usuario.
Si omites los detalles anti-fraude a la hora de crear un cargo o crear un cliente, Culqi no realizará una evaluación de riesgo de tu cliente y estos cargos podrían convertirse en un fraude o una disputa.
Peticiones inválidas al API
Una buena práctica que debes realizar durante la integración es identificar cualquier error potencial que provoque una petición inválida al API. Esto te asegurará que dichas fallas sean muy raras en el entorno de producción. En estos casos, no verás un intento de compra en el Panel, sino un error de autenticación con un mensaje que te guiará a corregir el problema:
{
"object": "error",
"type": "{TIPO DE ERROR}",
"code" : "{CODIGO DE ERROR CULQI}",
"message": "{Descripción del error}",
"user_message": "{Descripción del error para el usuario/cliente}"
}
Controlar denegaciones automáticamente
Si deseas que tu integración responda a la falla de un cargo de manera automática, podrás acceder al objeto Outcome de dos maneras.
- Respuesta del API: El API devolverá un objeto de error cuando un cargo falla. El error tendrá el ID del cargo que podrás utilizar para consultar el cargo.
- Webhooks: Recibe notificaciones de cualquier evento que quieras controlar. Cuando un cargo es denegado, el evento charge.failed es enviado a la URL de tu preferencia, conteniendo el objeto del cargo.