Webhooks Notifications

Description of the webhook notifications send by Upland Developers APIs

The webhook notifications will be sent to the third-party application through an HTTP POST request with a standard body containing the notification type and data. Each third-party application should handle all the notifications described below using its webhook URL.

Authentication

AuthenticationSuccess

It occurs when an upland user completes the authentication process on his Upland Account.

With the accessToken, the third-party application can request any endpoint that requires Upland User Credentials.

{
      "type": "AuthenticationSuccess",
      "data": {
            "code": "<connection-code::string>",
            "userId": "<upland-user-id::uuid>",
            "accessToken": "<jwt-token::string>"
      }
}
  

AuthenticationFailure

This event is notified if some part of the Authentication process fails or the code is expired, for example.

{
    "type": "AuthenticationFailure",
    "data": {
        "code": "<connection-code::string>",
        "message": "<error-message::string>"
    }
}

UserDisconnectedApplication

The event is triggered when a user disconnects their account from the application.

{
    "type": "UserDisconnectedApplication",
    "data": {
        "appId": <application-id::number>,
        "userId": "<upland-user-id::uuid>"
    }
}

Transaction to Escrow

TransactionToEscrowCreated

This notification is triggered when the transaction is created, and It’s waiting for the user to sign.

{
    "type": "TransactionToEscrowCreated",
    "data": {
        "containerId": <container-id::number>,
        "transactionId": "<transaction-id::uuid>",
        "ownerEosId": "<user-eos-id::string>"
    }
}

TransactionToEscrowSigned

This notification is triggered when the user confirms and signs the transaction on your Upland account.

You can not assume that the transaction is yet completed on the blockchain level. We will notify you about this on another notification called TransactionToEscrowFinal.

{
    "type": "TransactionToEscrowSigned",
    "data": {
        "containerId": <container-id::number>,
        "transactionId": "<transaction-id::uuid>",
        "ownerEosId": "<user-eos-id::string>"
    }
}

TransactionToEscrowFinal

This notification is triggered when the transaction is completed on the blockchain level. The third-party application can assume all assets were transferred from the users to the container.

{
    "type": "TransactionToEscrowFinal",
    "data": {
        "containerId": <container-id::number>,
        "transactionId": "<transaction-id::uuid>",
        "ownerEosId": "<user-eos-id::string>"
    }
}

TransactionToEscrowFailure

This notification is triggered in case of any issues with the transaction finalization.

{
    "type": "TransactionToEscrowFailure",
    "data": {
        "containerId": <container-id::number>,
        "transactionId": "<transaction-id::uuid>,"
        "ownerEosId": "<user-eos-id::string>",
        "message": "<error-message::string>"
    }
}

TransactionToEscrowExpired

This event is triggered when the request to include assets in escrow has not been signed by the user after a 10-minute period.

{
    "type": "TransactionToEscrowExpired",
    "data": {
        "containerId": <container-id::number>,
        "transactionId": "<transaction-id::uuid>",
        "ownerEosId": "<user-eos-id::string>"
    }
}

TransactionToEscrowRejected

This event is triggered when the user rejects a transaction request made by the application for some of their assets to be placed in escrow.

{
    "type": "TransactionToEscrowRejected",
    "data": {
        "containerId": <container-id::number>,
        "transactionId": "<transaction-id::uuid>",
        "ownerEosId": "<user-eos-id::string>"
    }
}

Transaction from Escrow

TransactionFromEscrowCreated

This notification is triggered when the third-party application initiates a final resolution request, indicating Upland is handling the requests.

You can not assume that the transaction is completed on the blockchain level. We will notify you about this on another notification called TransactionFromEscrowFinal.

{
    "type": "TransactionFromEscrowCreated",
    "data": {
        "containerId": <container-id::number>,
        "transactionId": "<transaction-id::uuid>"
    }
}

TransactionFromEscrowFinal

Whenever the container resolution transaction is final and irreversible, the container is set to resolve, and no further transactions will be allowed.

{
    "type": "TransactionFromEscrowFinal",
    "data": {
        "containerId": <container-id::number>,
        "transactionId": "<transaction-id::uuid>"
    }
}

TransactionFromEscrowFailure

This notification is triggered in case of any issues with the container resolution transaction.

{
    "type": "TransactionFromEscrowFailure",
    "data": {
        "containerId": <container-id::number>,
        "transactionId": "<transaction-id::uuid>"
    }
}

Escrow Container

ContainerExpired

It is triggered whenever a container expires before the resolution. The container will be closed (expired status) for further transactions, and the assets will be transferred back to the original owners without any charges (if any).

{
    "type": "ContainerExpired",
    "data": {
        "containerId": <container-id::number>,
    }
}

Tournament

RumbleTournamentNewParticipantAdded

This notification is triggered every time a new participant is added to a rumble tournament.

{
    "type": "RumbleTournamentNewParticipantAdded",
    "data": {
        "appId": <app-id::number>,
        "participantId": <participant-id::uuid>,
        "tournamentId": <tournament-id::uuid>,
        "transactionId": <transaction-id::uuid>,
        "userId": <upland-user-id::uuid>,
        "status": <participant-status::string>,
    }
}

RumbleTournamentParticipantStatusUpdated

This notification is triggered every time the status of a tournament participant is updated.

Participant status must be one of them: WAITING_PAYMENT, PROCESSING_PAYMENT, ACTIVE, REMOVED

{
    "type": "RumbleTournamentParticipantStatusUpdated",
    "data": {
        "appId": <app-id::number>,
        "participantId": <participant-id::uuid>,
        "tournamentId": <tournament-id::uuid>,
        "transactionId": <transaction-id::uuid>,
        "userId": <upland-user-id::uuid>,
        "status": <participant-status::string>,
    }
}

RumbleTournamentClosed

This notification is triggered every time the tournament is finished.

{
    "type": "RumbleTournamentClosed",
    "data": {
        "appId": <app-id::number>,
        "tournamentId": "<tournament-id::uuid>",
        "transactionId": "<transaction-id::uuid>",
        "status": "CLOSED",
    }
}

RumbleTournamentCanceled

This notification is triggered every time the tournament is canceled.

{
    "type": "RumbleTournamentCanceled",
    "data": {
        "appId": <app-id::number>,
        "tournamentId": "<tournament-id::uuid>",
        "transactionId": "<transaction-id::uuid>",
        "status": "CANCELED",
    }
}

RumbleTournamentStatusUpdated

This notification is triggered every time the tournament status is changed.

Tournament status must be one of them: WAITING_FOR_PARTICIPANTS, WAITING_PAYMENT, REGISTRATION_CLOSED, IN_PROGRESS, DISTRIBUTING_PRIZES, CLOSED, FAILED

{
    "type": "RumbleTournamentStatusUpdated",
    "data": {
        "appId": <app-id::number>,
        "tournamentId": "<tournament-id::uuid>",
        "transactionId": "<transaction-id::uuid>",
        "status": "<tournament-status::string>",
        "error": "<error::string>"
    }
}

The 'error' field is optional and can be used to provide additional information.

Last updated