Recaudar con Alias de pago (CVU)
Con los Alias de pago generás CVUs recaudadores propios para recibir transferencias bancarias. El CVU (Clave Virtual Uniforme) es el equivalente al CBU para las cuentas virtuales. Cada transferencia llega identificada, así sabés quién te pagó sin intervención manual.
En esta guía vas a ver el flujo completo: crear un alias por cliente, recibir los cobros, definir qué transferencias aceptás, enterarte de cada novedad, seguir las liquidaciones y descargar reportes para conciliar.
Qué es un Alias de pago
Un Alias de pago es un CVU recaudador asociado a tu comercio, con un alias bancario legible (por ejemplo cliente.00123.p360). Cualquier persona le transfiere desde un banco o una billetera virtual, como a cualquier otra cuenta.
Te recomendamos crear un alias por cliente (o por contrato, unidad, sucursal, etc.). Cada CVU es único, así que cada transferencia que entra ya viene identificada con el alias que la recibió y, a través de él, con tu external_reference. Así identificás cada pago sin pedirle comprobantes al pagador ni cruzar montos a mano.
Así funciona:
Creás un alias por cliente con tu propia
external_reference.Le compartís al cliente el CVU o el alias.
El cliente transfiere cuando quiere, las veces que quiera.
Cada transferencia aceptada se registra como un cobro vinculado a ese alias.
Los cobros se liquidan periódicamente a tu comercio: PAGOS360 los agrupa en una liquidación para pagártelos.
Antes de empezar
Entornos
Entorno | URL base |
|---|---|
Pruebas (QA) |
|
Producción |
|
Autenticación
Todas las peticiones llevan tu API Key en el header X-API-Key:
La API de Alias de pago usa su propia API Key y un header distinto al de la API de PAGOS360 (Authorization: Bearer ...). Cada entorno tiene sus propias credenciales. Guardá la API Key en tu backend y mantenela fuera del código client-side y de los repositorios.
Si la API Key falta, es inválida o está inactiva, la API responde 401.
Flujo completo
1. Crear un alias por cliente
POST /collector
Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| string | Sí | Tu identificador del cliente. De 1 a 100 caracteres: letras, números, |
| string | Sí | Nombre del alias (por ejemplo, el nombre del cliente). De 1 a 255 caracteres: letras, números y espacios. |
| string | No | CUIT/CUIL/DNI asociado, solo dígitos, de 1 a 11 caracteres. |
| string | No | Alias bancario deseado. De 6 a 20 caracteres: letras, números, |
Respuesta 201 Created (recortada):
Guardá en tu sistema el id, el cvu y el alias junto a tu cliente.
Usá como external_reference el identificador que ya usás en tu sistema (ID de cliente, número de contrato). Es la clave que después te permite filtrar cobros y generar reportes por cliente.
Si enviás un alias que ya está en uso, la API responde 400 con el mensaje El alias '...' ya está en uso. Por favor, elija uno diferente.. Si la external_reference ya existe en otro alias activo, responde 409.
Gestionar tus alias
Acción | Método y ruta | Referencia |
|---|---|---|
Listar alias |
| |
Consultar un alias |
| |
Modificar nombre, |
| |
Cambiar el alias bancario |
| |
Eliminar |
|
Filtros de GET /collector: name, external_reference, id_number, alias, cvu, created_date_from, created_date_to.
El
statede un alias puede serACTIVEoINACTIVE.El alias bancario se puede cambiar una vez cada 24 horas y el nuevo valor tiene que ser distinto del actual.
DELETEresponde204y da de baja el CVU. Después de eliminarlo podés crear otro alias con la mismaexternal_reference.
2. Compartir el CVU o el alias con tu cliente
Mostrale a tu cliente el cvu (22 dígitos) o el alias en tu app, factura, email o portal de autogestión. Tu cliente transfiere desde cualquier banco o billetera virtual, el monto que quiera y cuando quiera. Si necesitás fijar un monto o una fecha límite, usá las reglas de validación (paso 4).
3. Recibir cobros
Cada transferencia aceptada genera un cobro (collection). Consultalos con:
GET /collection: listado paginado con filtros (referencia).GET /collection/{id}: detalle completo de un cobro (referencia).
Filtros de GET /collection:
Parámetro | Descripción |
|---|---|
| Cobros de los alias con esa |
| Cobros de un alias por CVU (exacto), alias (búsqueda parcial) o nombre. |
| Nombre del titular de la cuenta origen. |
| Identificador de la transferencia en COELSA. |
| Rango de montos. |
|
|
| Cobros incluidos en una liquidación. |
| Fecha de registro del cobro. |
| Fecha de ocurrencia de la transferencia. |
| Fecha de liquidación. |
| IDs de etiquetas separados por coma (máximo 5). |
Los filtros de fecha usan ISO-8601 con zona horaria, por ejemplo 2026-09-01T00:00:00-03:00 o 2026-09-01T03:00:00Z.
Respuesta 200 (recortada):
El estado de un cobro es RECEIVED (recibido, pendiente de liquidar) o SETTLED (liquidado). En el listado el campo se llama status, y en el detalle (GET /collection/{id}), state.
Para identificar al pagador, usá el alias que recibió la transferencia (collector.external_reference), no el nombre del titular de origen: un mismo cliente puede transferir desde cuentas de terceros.
4. Reglas de validación (opcional)
Con las reglas de validación aceptás solo las transferencias que cumplen las condiciones que definís. Las reglas se configuran por alias. Cuando llega una transferencia, se evalúan todas las reglas activas de ese alias. Si alguna no se cumple, la transferencia se rechaza: no se registra como cobro y el dinero vuelve a la cuenta de origen.
Tipo ( | Qué valida | Valores |
|---|---|---|
| Que el CUIL/CUIT del titular de la cuenta origen esté en la lista. | Uno o más CUIL/CUIT de 11 dígitos, sin repetir. |
| Monto mayor o igual al valor. | Un único monto mayor a 0. |
| Monto menor o igual al valor. | Un único monto mayor a 0. |
| Monto exactamente igual al valor. | Un único monto mayor a 0. |
| Transferencia realizada hasta esa fecha y hora, inclusive. | Una fecha ISO-8601 con zona horaria y posterior al momento actual, por ejemplo |
Al armar tus reglas, tené en cuenta estas condiciones:
Solo puede haber una regla de cada tipo por alias, y el
namede la regla no puede repetirse dentro del mismo alias.EXACT_AMOUNTno se puede combinar conMIN_AMOUNTni conMAX_AMOUNT.Si combinás
MIN_AMOUNTyMAX_AMOUNT, el mínimo tiene que ser menor que el máximo.Solo
ALLOWED_CUIL_CUITadmite agregar valores (POST /validation-rule/{id}/value). En las demás, modificás el valor existente conPUT /validation-rule/{id}/value/{id_value}.Una regla siempre tiene que tener al menos un valor.
Los estados de una regla son
ACTIVEeINACTIVE. Solo se evalúan las reglasACTIVE.
Antes de crear o activar una regla, configurá y activá el webhook COLLECTION_REJECTED (ver el paso 5). Sin ese webhook, la API responde 400. Por el mismo motivo, ese webhook tiene que seguir activo mientras tengas reglas activas: no podés inactivarlo ni eliminarlo.
Ejemplo: aceptar solo transferencias de $15.000 en adelante para un alias.
Respuesta 201 (recortada):
Más detalle en Reglas de validación, Nueva regla, Nuevo valor y Listar reglas. También podés consultar los tipos y estados disponibles con GET /validation-rule/options/rule-types y GET /validation-rule/options/states.
5. Enterarte de las novedades (webhooks)
Con los webhooks, PAGOS360 te envía una notificación HTTP POST a tu servidor cuando ocurre alguno de estos eventos:
Evento | Cuándo se envía |
|---|---|
| Se registró un cobro nuevo en uno de tus alias. |
| Una transferencia no cumplió las reglas de validación y se devuelve. |
| Una liquidación se completó. |
| Una liquidación falló. |
Para configurarlos:
Entrá al portal web de Alias de pago con un usuario de tu comercio. Los webhooks se gestionan desde ahí: la API Key de integración no tiene permisos para hacerlo.
Hay una configuración por tipo de evento. Para cambiar la URL, modificá la existente.
La URL de destino tiene que usar HTTPS y tener hasta 255 caracteres.
Podés definir headers personalizados (un JSON de hasta 255 caracteres), por ejemplo un token propio para validar que la notificación viene de PAGOS360.
El cuerpo de cada evento tiene esta estructura:
Contenido de payload según el evento:
Evento |
| Campos de |
|---|---|---|
|
|
|
|
|
|
|
|
|
Usá el webhook como aviso y confirmá con la API. Antes de dar por pagado algo en tu sistema, consultá el cobro con GET /collection/{entity_id}. Así también cubrís el caso de que una notificación no te llegue.
6. Liquidaciones
Periódicamente, PAGOS360 agrupa los cobros pendientes de tu comercio (RECEIVED) y los liquida. Cuando la liquidación termina, los cobros incluidos pasan a SETTLED y tienen settled_date.
GET /settlement: listado paginado de liquidaciones (referencia). Filtros:state(STARTED,COMPLETED,FAILED),settlement_date_fromysettlement_date_to.GET /collection?settlement_id={id}: los cobros que forman parte de una liquidación.
7. Reportes (COLLECTIONS y SETTLEMENT)
Los reportes se generan de forma asincrónica (en segundo plano, después de que los pedís) y se descargan en CSV o XLSX. Para saber cuándo un reporte está listo, consultá su estado: los reportes no envían webhooks.
Tipo | Para qué sirve | Campos del pedido |
|---|---|---|
| Detalle de los cobros de un período, de todos tus alias o de uno solo. |
|
| Detalle de una liquidación. |
|
Paso 1: pedir el reporte
Si no hay cobros en el período (o para el alias indicado), la API responde 404.
Paso 2: esperar a que esté listo
GET /report devuelve tus reportes con su state: IN_PROGRESS, READY o FAILED. Filtros: report_type, state, file_name, created_date_from y created_date_to.
Cuando el reporte está READY, trae además file_name, total_amount y quantity.
Paso 3: descargar el archivo
GET /report/file?report_id={id}&format={CSV|XLSX} (los dos parámetros son obligatorios).
Si el reporte todavía no está READY, la API responde 400 con el mensaje El reporte aún no está disponible.
Referencias: Nuevo reporte, Listar reportes, Descargar archivo.
Paginación
Los listados (GET /collector, /collection, /settlement, /report, /validation-rule) aceptan:
Parámetro | Descripción |
|---|---|
| Número de página, empezando en 0. |
| Elementos por página (por defecto, 20). |
| Campo y dirección, por ejemplo |
Y responden con este envoltorio:
count_per_page es la cantidad de elementos de la página actual y total_count, el total de resultados.
Errores
Todos los errores tienen el mismo formato:
message repite el primer error. errors detalla cada campo y solo viene en los errores de validación (en el resto puede venir en null).
Código | Cuándo |
|---|---|
| Regla de negocio no cumplida (por ejemplo, alias ya en uso, cambio de alias antes de 24 h, reporte no disponible) o parámetro con tipo inválido. |
| API Key ausente, inválida o inactiva. |
| La API Key no tiene permiso para esa operación. |
| El recurso no existe o no pertenece a tu comercio. |
| Recurso duplicado (por ejemplo, |
| Error de validación del body o de los parámetros (formato, longitud, campos obligatorios, JSON mal formado). |
| Error interno. Reintentá más tarde. |
Estas operaciones se hacen desde el portal, con un usuario de tu comercio. Existen en la API, pero con la API Key devuelven 403: gestionar webhooks, consultar el monto disponible a liquidar (GET /settlement/available-amount) y eliminar reportes.
Checklist de integración
Crear un alias por cliente y guardar
id,cvuyaliasjunto a tuexternal_reference.Mostrar el CVU o el alias al cliente.
Configurar los webhooks
COLLECTION_RECEIVEDySETTLEMENT_COMPLETED(yCOLLECTION_REJECTEDsi vas a usar reglas).Confirmar cada cobro con
GET /collection/{id}antes de imputarlo.Conciliar a diario con
GET /collection?settled=falsey las liquidaciones del día.Probar todo en QA antes de pasar a producción.