Skip to main content
Your integration must expose the following endpoints for Wavy Node to communicate with your application.

GET /users/:userId

Wavy Node calls this endpoint to retrieve information about a specific user. The :userId parameter is the user’s ID in your system. Your endpoint should return a JSON object with the following structure:
{
  "givenName": "Maria Guadalupe",
  "maternalSurname": "Sánchez",
  "paternalSurname": "Rodríguez",
  "birthdate": "1992-05-15",
  "nationality": "MX",
  "phoneNumber": {
    "countryCode": "+52",
    "phoneNumber": 5512345678
  },
  "email": "[email protected]",
  "address": {
    "country": "MX",
    "region": "CDMX",
    "city": "Ciudad de México",
    "street": "Avenida Insurgentes Sur",
    "colonia": "Condesa",
    "exteriorNumber": "123",
    "interiorNumber": "4B",
    "postalCode": "06100"
  },
  "mexico": {
    "rfc": "ROSM920515XXX",
    "curp": "ROSM920515MDFRXXXX",
    "actividadEconomica": 612012,
    "cuentaRelacionada": "1234567890",
    "monedaCuentaRelacionada": 1,
    "documentoIdentificacion": {
      "tipoIdentificacion": 1,
      "numeroIdentificacion": "IDMEX12345678"
    }
  }
}
FieldTypeDescription
givenNamestringThe individual’s given name(s)
maternalSurnamestringMaternal surname
paternalSurnamestringPaternal surname
birthdatestringDate of birth in YYYY-MM-DD format (ISO 8601)
nationalitystringISO 3166-1 alpha-2 country code
phoneNumber.countryCodestringPhone country code
phoneNumber.phoneNumbernumberPhone number
emailstringEmail address
addressobjectPhysical address
mexicoobjectFields required for Mexican legislation reports (optional)
The mexico object is only needed if you have Mexican compliance enabled in your dashboard.

POST /webhook

Wavy Node sends real-time notifications to this endpoint. The request body contains:
FieldTypeDescription
typestringnotification or error
dataobject or stringThe notification payload or error message

Notification payload

When type is notification, the data object contains transaction and compliance details:
{
    "type": "notification",
    "data": {
        "id": 1,
        "projectId": 1,
        "chainId": 42161,
        "address": {
            "id": 543,
            "userId": "user-in-your-db-123",
            "address": "0xyour-address-involved",
            "description": "Your address' description"
        },
        "txHash": "some-tx-hash",
        "timestamp": "2025-08-20T05:10:57.228Z",
        "amount": {
            "value": 1000000000000000000,
            "usd": 3000
        },
        "token": {
            "name": "Ethereum",
            "symbol": "ETH",
            "decimals": 18,
            "address": null
        },
        "inflictedLaws": [
            {
                "name": "The name of the law inflicted",
                "description": "Description of the law",
                "source": "Source of the law",
                "risk": "warn",
                "country": "mexico",
                "countryCode": "MX"
            }
        ]
    }
}
FieldTypeDescription
idnumberNotification ID
projectIdnumberProject ID
chainIdnumberChain ID where the transaction occurred
address.idnumberAddress ID
address.userIdstringUser ID in your system
address.addressstringWallet address
address.descriptionstringAddress description
txHashstringTransaction hash
timestampstringTransaction timestamp (ISO 8601)
amount.valuenumberAmount in the token’s smallest unit
amount.usdnumberAmount in USD
token.namestringToken name
token.symbolstringToken symbol
token.decimalsnumberToken decimals
token.addressstringToken contract address (null for native tokens)
inflictedLawsarrayLaws inflicted by the transaction
inflictedLaws[].namestringLaw name
inflictedLaws[].descriptionstringLaw description
inflictedLaws[].sourcestringLaw source
inflictedLaws[].riskstringwarn or illegal
inflictedLaws[].countrystringCountry name
inflictedLaws[].countryCodestringISO country code

Error payload

When type is error, the data field is a string containing the error message.