Recurso de pago
Pagos asistidos por agentes
Introducción
Los pagos asistidos por agentes les permiten a estos últimos recopilar información de pago del cliente en virtud del PCI en las llamadas de voz de Twilio en el contact center. Con los pagos asistidos por agentes, estos últimos permanecen en el teléfono y guían al cliente a través del flujo de pago, en el cual solicitan diversos datos de pago requeridos, uno a la vez.
Para que el agente pueda controlar el flujo de pago, solicita la información correspondiente en el orden en el que más le convenga al cliente e incluso puede volver a solicitar información según sea necesario. Cuando el cliente ingresa su información de pago, el agente no podrá escuchar los tonos DTMF (multifrecuencia de dos tonos), lo que garantiza el cumplimiento del PCI DSS (Estándar de Seguridad de Datos de la Industria de Tarjetas de Pago) respecto a la información de pago y la seguridad de esta.
Una vez que el agente progresó a través de todos los pasos a fin de recopilar la información de pago del cliente, completan el registro a través de Twilio. Twilio envía la información de pago directamente al conector de pago para su procesamiento, y se asegura de que no se divulgue información de la tarjeta al agente.
El flujo de trabajo
- El agente solicita información al cliente, incluido el método de pago, e inicia una sesión de Twilio Pay.
- El agente activa las llamadas de API a través de su interfaz de usuario para recopilar información de pago específica del cliente, por ejemplo, el número de tarjeta de crédito, fecha de vencimiento o número de cuenta bancaria.
- El agente de llamada ingresa la información de pago solicitada mediante el teclado del teléfono. Los agentes no pueden oír ningún tono DTMF.
- Una vez que el cliente termina, el agente ve el resultado de la entrada del cliente, por ejemplo
xxxx xxxx xxxx 4242
oinvalid-card-number
. - El agente solicita la siguiente información de pago necesaria y continúa haciéndolo hasta que se ingresa toda la información requerida.
- El agente puede volver a solicitar un dato de pago según sea necesario en cualquier orden y momento durante el flujo.
- El agente también puede cancelar el pago en cualquier momento durante el flujo.
- Una vez recopilada toda la información, el agente completa la sesión de Pay y recibe el resultado del pago.
Diseño y flujo de trabajo de la API
Con la asistencia del agente, la clave es capturar la información del cliente mientras el agente está en la llamada con el cliente. Esto significa que el agente puede interactuar con el cliente y guiarlo a través de la experiencia de ingresar los datos de su tarjeta. A continuación, se describe un flujo de agentes típico:
- El agente recopila e ingresa información como el método de pago, el monto del cargo o el tipo de token y, a continuación, inicia la sesión de Pay.
- Luego, el agente llama a la API de actualización (a través de su propia interfaz de usuario) para cada dato de pago de forma sucesiva.
- Si los clientes cometen un error al ingresar la información, el agente simplemente llama de nuevo a la API de actualización para volver a capturar ese dato en particular.
- Una vez recopilada toda la información de pago necesaria, el agente finaliza la sesión de Pay mediante el establecimiento del estado en
complete
, lo que procesa el pago y completa la transacción. El agente también puede cancelar la sesión de Pay, si es necesario en esta fase, mediante el establecimiento del estado de la API de actualización encancel
. - La información resultante de cada una de las llamadas anteriores se entregará mediante devoluciones de llamada de estado, que se pueden utilizar para actualizar la interfaz de usuario del agente casi en tiempo real.
Propiedades de pagos
Resource Properties in REST API format | |
---|---|
account_sid
|
SID de la cuenta que creó el recurso de pagos. |
call_sid
|
El SID de la llamada al que está asociado el recurso de pagos. Esto hará referencia al SID de llamada que produce la información de la tarjeta de pago (crédito/ACH) a través de DTMF. |
sid
|
El SID del recurso de pagos. |
date_created
|
La fecha y hora en GMT en que se creó el recurso, especificadas en formato RFC 2822. |
date_updated
|
La fecha y hora en GMT en que se actualizó el recurso por última vez, especificadas en el formato RFC 2822. |
uri
|
La URL del recurso, referente a “https://api.twilio.com”. |
Iniciar una sesión de Pay
https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Calls/{CallSid}/Payments.json
Parameters
Parameters in REST API format | |
---|---|
account_sid
Path
|
El SID de la Account que creará el recurso. |
call_sid
Path
|
El SID de la llamada que creará el recurso. Se espera que el tramo de llamada asociado a este SID proporcione información de pago a través de DTMF. |
idempotency_key
Required
|
Un token único que se utilizará para garantizar que varias llamadas de API con la misma información no den como resultado varias transacciones. Debe ser un valor de cadena único por llamada de API y puede ser generado aleatoriamente. |
status_callback
Required
|
Proporciona una dirección URL absoluta o relativa para recibir actualizaciones de estado relacionadas con tu sesión de Pay. Obtén más información sobre los valores de StatusCallback esperados |
bank_account_type
Optional
|
Tipo de cuenta bancaria si el origen del pago es ACH. Puede ser “consumer-checking”, “consumer-savings” o “commercial-checking”. El valor predeterminado es “consumer-checking”. |
charge_amount
Optional
|
Un valor decimal positivo inferior a 1 000 000 para cargar en la tarjeta de crédito o en la cuenta bancaria. La moneda predeterminada se puede sobrescribir con el campo “currency” (moneda). Déjalo en blanco o establece el valor en 0 para realizar la tokenización. |
currency
Optional
|
La moneda del campo “charge_amount”, con formato ISO 4127. El valor predeterminado es “USD” y se aceptan todos los valores permitidos desde el conector de pago. |
description
Optional
|
La descripción se puede utilizar para proporcionar más detalles sobre la transacción. Esta información se envía junto con los detalles de pago al conector de pago, los cuales, luego, se publican en las transacciones. |
input
Optional
|
Una lista de entradas que deben aceptarse. Actualmente solo se admite “dtmf”. Todos los dígitos capturados durante una sesión de pago se borran de los registros. |
min_postal_code_length
Optional
|
Un entero positivo que se utiliza para validar la longitud del valor de “PostalCode” ingresado por el usuario. El usuario debe ingresar esa cantidad de dígitos. |
parameter
Optional
|
Un objeto JSON de un solo nivel que se utiliza para pasar parámetros personalizados a procesadores de pago. (Requerido para pagos ACH). La información que se debe incluir aquí depende del conector |
payment_connector
Optional
|
Este es el nombre único que corresponde al conector de pago instalado en los complementos de Twilio. Obtén más información sobre los conectores de |
payment_method
Optional
|
Tipo de pago que se captura. Puede ser “credit-card” o “ach-debit”. El valor predeterminado es “credit-card”. |
postal_code
Optional
|
Indica si el código postal de la tarjeta de crédito (código postal) es un dato de pago obligatorio que debe proporcionar el agente de llamada. El valor predeterminado es “true”. |
security_code
Optional
|
Indica si el código de seguridad de la tarjeta de crédito es un dato de pago obligatorio que debe proporcionar el agente de llamada. El valor predeterminado es “true”. |
timeout
Optional
|
Cantidad de segundos que |
token_type
Optional
|
Indica si el método de pago se debe tokenizar como un token “one-time” (único) o “reusable” (reutilizable). El valor predeterminado es “reusable”. No ingreses un monto de cargo cuando realices el pago. Si se ingresa un monto de cargo, el método de pago se cargará y no se tokenizará. |
valid_card_types
Optional
|
Tipos de tarjeta de crédito separados por espacio que Pay debe aceptar. El valor predeterminado es “visa mastercard amex”. |
Example 1
StatusCallback
Proporciona una dirección URL absoluta o relativa para este parámetro. Twilio Pay realizará una solicitud POST
a esta URL siempre que haya una actualización del parámetro que se está capturando. La solicitud POST
tendrá los siguientes parámetros:
Parámetro |
Descripción |
|
Es el identificador exclusivo de la cuenta responsable de esta sesión de pago. |
|
Ee el identificador exclusivo de la llamada asociada a la sesión de pago. |
|
Es el identificador exclusivo de la sesión de Pay actual. |
|
Es la fecha en que se inició la sesión de Pay. |
|
Si se utiliza |
|
Si no se aplica tokenización, es decir, el monto del cargo se especifica y es superior a cero, es el monto que se cargará en el método de pago. |
|
Es el nombre único del conector de pago correspondiente al conector de pago instalado en los complementos de Twilio. |
|
|
|
Puede ser de un solo uso o reutilizable si no se especifica el monto del cargo. |
Todas las solicitudes de StatusCallback
contendrán estos campos. Se pueden encontrar valores de StatusCallback
adicionales durante las API Update
y Complete/Cancel
.
Actualizar una sesión de Pay
https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Calls/{CallSid}/Payments/{Sid}.json
Parameters
Parameters in REST API format | |
---|---|
account_sid
Path
|
El SID de la cuenta que actualizará el recurso. |
call_sid
Path
|
El SID de la llamada que actualizará el recurso. Debe ser el mismo SID de llamada que se utilizó para crear el recurso de pagos. |
sid
Path
|
El SID de la sesión de pagos que se debe actualizar. |
idempotency_key
Required
|
Un token único que se utilizará para garantizar que varias llamadas de API con la misma información no den como resultado varias transacciones. Debe ser un valor de cadena único por llamada de API y puede ser generado aleatoriamente. |
status_callback
Required
|
Proporciona una dirección URL absoluta o relativa para recibir actualizaciones de estado relacionadas con tu sesión de Pay. Lee más sobre las solicitudes POST de actualización y de completar/cancelar. |
capture
Optional
|
La información de pago que deseas que el agente de llamada ingrese. Debe ser uno de estos: “payment-card-number”, “expiration-date”, “security-code”, “postal-code”, “bank-routing-number” o “bank-account-number”. |
status
Optional
|
Indica si la sesión de pago actual debe cancelarse o completarse. Cuando es “cancel”, se cancela la sesión de pago. Cuando es “complete”, Twilio envía la información de pago al conector de pago seleccionado para su procesamiento. |
Example 1
StatusCallback (Update)
Proporciona una dirección URL absoluta o relativa para este parámetro. Twilio Pay realizará una solicitud POST a esta URL siempre que se llame a la API de actualización y cuando haya una actualización del parámetro que se está capturando. La solicitud POST contendrá todos los parámetros de StatusCallback comunes, así como los siguientes parámetros adicionales:
Parámetro |
Descripción |
|
La fecha en que se actualizó por última vez la sesión de Pay |
|
Si “arch-debit” es el valor de |
|
Si “arch-debit” es el valor de |
|
Es la información de pago que Pay esperaba. |
|
Si no se aplica tokenización, es decir, el monto del cargo se especificó y era superior a cero, es el monto que se cargará en el método de pago. |
|
Aquí se muestra la lista completa de tipos de error. |
|
Si el valor de |
|
Puede ser |
|
Si el valor de |
|
Si el valor de |
|
Si el valor de |
|
La información de pago que queda por recopilar. Por ejemplo, si el código postal y el código de seguridad tienen el valor “false” y ya se ingresó el número de tarjeta de crédito, entonces aparecerá |
|
Si el valor de |
Estado
Indica si la sesión de pago actual debe cancelarse o completarse cuando se realice esta solicitud de API. Cuando el estado es cancel
, la sesión de pago se cancelará. Tendrás que utilizar la API de inicio para iniciar una nueva sesión de pago. Cuando el estado es complete
, Twilio envía la información de pago al conector de pago seleccionado para su procesamiento.
Example 2
Example 3
StatusCallback (Cancel/Complete)
Proporciona una dirección URL absoluta o relativa para este parámetro. Twilio Pay realizará una solicitud POST
a esta URL siempre que se llame a la API para cancelar/completar. La solicitud POST
contendrá todos los parámetros de StatusCallback comunes, así como los siguientes parámetros adicionales:
Parámetro |
Descripción |
|
La fecha en que se actualizó por última vez la sesión de Pay |
|
Este parámetro contiene el código/mensaje de error recibido de la puerta de enlace de pago subyacente. |
|
Código de error numérico que proporciona más detalles sobre el error. Para obtener más información sobre el error, visita la página de error y busca el código de error |
|
Error de pago por fallos. Por ejemplo, |
|
Si el método de pago proporcionado se cargó y no se tokenizó, este es el código de confirmación de la puerta de enlace de pago |
|
El valor tokenizado de los datos de pago de la tarjeta de crédito o ACH. El pago no se tokenizará si se proporciona la cantidad del cargo. Valores:
|
|
El identificador del objeto de cliente al que está asociado el pago. Se puede utilizar como token en función del conector. El pago no se tokenizará si se proporciona la cantidad del cargo. Valores:
|
El resultado de la transacción. Consulta la siguiente tabla para ver todos los valores. |
Resultado
Resultado |
Descripción |
|
Twilio capturó con éxito los datos de pago y tokenizó o procesó el pago. |
|
Twilio Pay experimentó un error al comunicarse con la puerta de enlace de pago. |
|
El agente de llamada presionó la tecla * (asterisco) para interrumpir la sesión de Pay. |
|
El agente de llamada colgó la llamada. |
|
Es un valor de parámetro no válido, por ejemplo, |
¿Necesitas ayuda?
Todos la necesitamos a veces; la programación es difícil. Obtén ayuda ahora de nuestro equipo de soporte, o recurre a la sabiduría de la multitud visitando Stack Overflow Collective de Twilio o navegando por la etiqueta de Twilio en Stack Overflow.