Autorizador remoto IVR
Ahora tus clientes pueden pagarte con una simple llamada telefónica.
Esta es una forma segura de que tus clientes realizen sus pagos ya que ellos proporcionan sus datos de forma electronica y directa a Openpay.
En los pagos por IVR contamos con la opción para que una clave de pago se autorice por un servicio expuesto por tu aplicación.
Pasos de flujo
Los pasos para autorizar una clave de pago por IVR mediante un servicio expuesto por tu aplicación son los siguientes:

- El cliente llama al número de IVR asignado a tu negocio e ingresa su clave de pago que le fue proporcionada previamente.
- El IVR invoca al servicio expuesto por tu servidor para autorizar la clave de pago.
- Tu servidor ejecuta la validación de la clave de pago. Sí es válida, regresa el detalle del cargo como el monto, número de orden y descripción. En caso contrario, regresa el código de error correspondiente.
- El IVR informa al cliente el monto del cargo y solicita su confirmación para continuar.
- El cliente acepta o rechaza el cargo. Sí el cliente acepta el cargo, el IVR solicitará, en pasos separados, los datos de la tarjeta de débito o crédito.
- El IVR procesa el cargo mediante el API de Openpay.
- El API de Openpay regresa la respuesta al IVR.
- EL IVR informa al cliente el resultado del cargo.
Para esto Openpay requiere que implementes un servicio web en tu aplicación para autorizar los pagos de IVR.
Servicio para autorizar pagos de IVR
A continuación se describe el detalle de la petición y respuesta que deberá seguir el servicio expuesto por tu aplicación para autorizar claves de pago de IVR (Pasos 2 y 3).
Petición enviada por el IVR de Openpay
El IVR de Openpay llamará a este servicio mediante un método HTTP POST, utilizando autenticación HTTP Basic para identificarse. El contenido de la petición será de tipo application/json, codificado en UTF-8.
El cuerpo de la petición contendrá un objeto JSON con las siguientes propiedades:
Nombre | Tipo | Longitud | Descripcion |
---|---|---|---|
ivr_key | Numérico | 3 - 10 | Clave de pago ingresada por el cliente |
Ejemplo de la petición HTTP:
POST /openpay/authorizer HTTP/1.1
Host: example.com
Authorization: Basic dXNyOnB3ZA==
Content-Type: application/json
Cache-Control: no-cache
{ "ivr_key": 123456 }
Respuesta del servicio
El servicio deberá regresar una respuesta HTTP 200 OK, con un cuerpo de tipo application/json con las siguientes propiedades:
Nombre | Tipo | Longitud | Descripcion |
---|---|---|---|
response_code | Numérico | 1 | Código de respuesta indicando el resultado de la autorización: 0 para clave válida (obligatorio) |
amount | Numérico | 1 - 15 | Monto correspondiente al pago a efectuar. Hasta 13 dígitos para enteros y 2 dígitos para decimales (obligatorio) |
order_id | Alfanumérico | 50 | Número de orden o venta (opcional) |
description | Alfanumérico | 250 | Descripción del pago (opcional) |
Ejemplo de respuesta exitosa:
{
"response_code": 0,
"amount": 1520.99,
"description": "Compra de artículos",
"order_id": "orden-123"
}
Cuando la clave de pago es inválida se deberá regresar las siguientes propiedades:
Nombre | Tipo | Longitud | Descripcion |
---|---|---|---|
response_code | Numérico | 1 | Código de respuesta indicando el resultado de la autorización: 1 para clave inválida (obligatorio) |
error_description | Alfanumérico | 250 | Descripción del error, en caso de una autorización fallida. Esto solo es usado por Openpay para revisión de posibles errores (opcional) |
Ejemplo de respuesta fallida:
{
"response_code": 1,
"description": "Clave de pago inválida"
}
En caso de un error en tu aplicación se deberá regresar una respuesta HTTP 4XX o 5XX, según sea el caso.
Consideraciones
Tiempo de comunicación entre Openpay y el Servicio
Openpay esperará 5 segundos por una respuesta de tu servidor y una vez pasado ese tiempo Openpay cancelará la operación.
Comunicación HTTPS
Aunque en el ambiente de Sandbox se permite que el servicio sea HTTP, no olvides que en el ambiente de producción se requiere que el servicio se encuentre disponible mediante HTTPS