Webhooks
Recibir notificaciones

Recibir notificaciones

Cuando ocurre un evento al que estás suscripto, Propago envía una solicitud POST a tu notificationUrl con el cuerpo que se describe abajo.

Estructura común

Todas las notificaciones comparten la misma envoltura:

CampoTipoDescripción
actionstringEl tipo de evento, igual al notificationType con el que te suscribiste.
datetime_createddatetimeMomento en que se generó el evento.
dataobjectContenido propio del evento. Su forma depende de action.
trace_idstringIdentificador único de la notificación.

Validar antes de procesar

Cada notificación llega firmada. Validá la firma antes de procesar el contenido, y validá también el timestamp para descartar retransmisiones.

Confirmar la recepción

Tu endpoint tiene que responder 200 (OK) o 201 (CREATED). Cualquier otra respuesta, o la falta de respuesta dentro del tiempo de espera, se interpreta como que la notificación no llegó y dispara un reintento.

⚠️

Respondé primero, procesá después. El tiempo de espera del primer envío es de 30 segundos, y el de los reintentos de 5. Si tu endpoint hace trabajo pesado antes de contestar, vas a recibir reintentos de notificaciones que en realidad procesaste bien. Confirmá la recepción y encolá el procesamiento.

Política de reintentos

EventoPlazo después del primer envíoTiempo de espera de confirmación
Envío—30 segundos
1.er intento15 minutos5 segundos
2.º intento30 minutos5 segundos
3.er intento6 horas5 segundos
4.º intento48 horas5 segundos
5.º intento72 horas5 segundos

Los tiempos son aproximados. Después del último intento, la notificación se marca como finalizada sin éxito y no se vuelve a enviar.

⚠️

Tu endpoint tiene que tolerar duplicados. Con hasta cinco reintentos, una notificación que procesaste pero no confirmaste a tiempo te va a llegar de nuevo. Hacé que procesar dos veces la misma notificación no duplique efectos de tu lado.

NEW_MONEY_MOVEMENT

Se dispara cuando se registra un nuevo movimiento de dinero entre cuentas del usuario.

JSON
{
    "action": "NEW_MONEY_MOVEMENT",
    "datetime_created": "2026-03-04T15:08:37.6122851",
    "data": {
        "type": "DEBIT",
        "sub_type": "OTHER",
        "source": {
            "account": "0000099900000012345678",
            "taxNumber": "30123456789"
        },
        "target": {
            "account": "0000099900000087654321",
            "taxNumber": "20345678901"
        },
        "currency": "ARS",
        "amount": 19.99,
        "transaction_ids": [
            "RM 1a2b3c4d5e6f7890abcdef1234567890"
        ],
        "order_id": "PQR-000987654"
    },
    "trace_id": "6b758d443b6e4c9e87be646fbc80d892906484329b8546fa8fc9339ba6d8fb1e"
}

Información adicional sobre campos

  • source / target: account es el CVU de la cuenta, taxNumber el CUIT o CUIL de su titular.
  • order_id (opcional): identificador del QR que originó el movimiento, el mismo propagoQrId que usan los servicios de QR de cobro. Solo viene cuando el movimiento corresponde a un cobro por QR; se omite en el resto de los casos.
ℹ️

Este evento es la alternativa al polling para cobros por QR. En vez de consultar el estado de cada QR, podés suscribirte a NEW_MONEY_MOVEMENT y correlacionar por order_id. Ver Consultar estado.

TRXPULL_AP_TOKEN_GIVEN y TRXPULL_WALLET_TOKEN_REVOKED

Se disparan cuando se otorga o se revoca un token de acceso para transferencias pull. Ambos comparten la misma forma; cambia el action. Corresponden a Open Banking.

JSON
{
    "action": "TRXPULL_AP_TOKEN_GIVEN",
    "datetime_created": "2026-08-02T12:18:19.883045",
    "data": {
        "iss": "33550",
        "aud": "33563",
        "accounts": [
            "0000099900000012345678"
        ],
        "cui": "23244825664"
    },
    "trace_id": "5ac58915-6b44-44c4-b1e4-89bfa599f990"
}