Saltearse al contenido
GitHub

Direcciones de Billetera

En el centro de todas las interacciones en Pagos se encuentra una cuenta habilitada para Pagos Abiertos. Cada cuenta habilitada para Pagos Abiertos se identifica mediante una o más URL. Estas URL no solo son identificadores de cuenta, sino también puntos finales de servicio para acceder a las API de Pagos Abiertos. Estas URL se denominan direcciones de billetera. No todas las URL son direcciones de billetera, pero todas las direcciones de billetera son URL.

¿Cómo está construida una dirección de Billetera?

Sección titulada «¿Cómo está construida una dirección de Billetera?»

Una URL solo es una dirección de billetera si cumple los siguientes criterios:

  • El servidor que gestiona las solicitudes HTTP admite el protocolo de Pagos Abiertos en la URL.
  • La URL utiliza el protocolo https y no contiene partes de user-info, port, query string, o fragment.

La forma más rápida de probar si una URL es una dirección de billetera es realizar una solicitud HTTP GET a la URL con un valor de encabezado Accept en application/json.

curl --request GET \
--url https://billetera.ejemplo.com/maria \
--header 'accept: application/json'

Si la URL es una dirección de billetera, la respuesta proporcionará detalles sobre la cuenta subyacente habilitada para Pagos Abiertos, incluyendo la URL del punto de acceso de la solicitud de concesión (authServer). Este punto de acceso se utiliza para obtener tokens de acceso para conectarse a la cuenta mediante las API de Pagos Abiertos.

HTTP/1.1 200 Success
Content-Type: application/json
{
"id": "https://billetera.ejemplo.com/maria",
"publicName": "Maria",
"assetCode": "USD",
"assetScale": 2,
"authServer": "https://auth.billetera.ejemplo.com"
}

Al configurar un pago, el cliente debe obtener la dirección de la billetera tanto del remitente como del destinatario. Dado que el remitente suele ser el usuario del cliente, este puede obtenerla durante el proceso de incorporación, por ejemplo. El remitente debe estar autenticado por su entidad gestora de cuentas (ASE) para otorgar al cliente el permiso necesario para acceder a su cuenta habilitada para Pagos Abiertos.

Un servidor de direcciones de billetera es un punto final de API que recupera información pública sobre una dirección de billetera, incluidas sus claves públicas asociadas.

Una dirección de billetera actúa como un identificador proxy (alias) para una cuenta financiera subyacente. Si un ASE lo permite, una misma cuenta puede tener varias direcciones de billetera. Permitiendo que los titulares de cuentas generen direcciones de billetera únicas para cada cliente con el que interactúan y ayudan a evitar que una sola dirección se convierta en un vector de seguimiento.

Además de los modelos de “una cuenta a una dirección de billetera” y “una cuenta a múltiples direcciones de billetera”, un ASE puede permitir que una sola dirección de billetera represente todas las cuentas de un usuario. Por ejemplo, imaginemos que un usuario tiene tres cuentas con un proveedor de billetera digital. El proveedor le asigna una única dirección de billetera. Cuando se envía un pago a la dirección de billetera, el proveedor determina cuál de las tres cuentas debe recibirlo según el tipo de moneda u otros criterios acordados.

En última instancia, corresponde al ASE definir la configuración compatible de las relaciones entre las direcciones de billetera y las cuentas de usuario. Este acoplamiento flexible permite deshabilitar las direcciones de billetera o incluso vincularlas a una nueva cuenta (aunque se deben tener en cuenta ciertas consideraciones antes de permitirlo) sin afectar la cuenta subyacente.

Para cualquier cliente, una dirección de billetera es tan válida como una cuenta. Cualquier par de direcciones de billetera distintas debe ser tratada como cuentas distintas por los clientes, incluso si el cliente sabe que son proxys de la misma cuenta subyacente. El permiso para que un cliente acceda a una cuenta a través de una dirección de billetera no se otorga automáticamente cuando accede a la misma cuenta a través de otra dirección de billetera.

Usar URLs como instrumentos de pago resuelve dos de los mayores problemas de la experiencia de usuario (UX) en los pagos actuales: la capacidad descubribilidad y la interacción.

Las URLs (localizadores universales de recursos) se han utilizado en la web durante décadas para permitir que los clientes localicen directamente un recurso e interactúen con él mediante HTTP. Una dirección de billetera funciona tanto como un identificador proxy como un localizador de recursos para la cuenta subyacente, utilizada para acceder a la cuenta a través de las APIs de Open Payments e iniciar interacciones con el ASE (Entorno Seguro de la Cuenta).

Usar URLs como proxies también es preferible a sobrecargar otros identificadores, como direcciones de correo electrónico o el directorio de teléfonos móviles (MSISDN), ya que estos proxies no cuentan con un estándar para la interacción. Como resultado, identificadores como un MSISDN o un correo electrónico requieren un registro que mapee ese identificador a un proveedor de cuentas y un mecanismo para gobernar de forma segura dicho mapeo.