Polling events

Configure a polling endpoint to stream events on resource updates

The same events triggered on a webhook can be configured to be retrieved by a polling endpoint.

Configure polling endpoint


Polling endpoints are configured in the Rainforest Platform Portal on the Webhooks tab.

Create a polling endpoint

Add an endpoint and select Polling Endpoint as the type. Choose specific events or all events to poll for on this endpoint.

Create an API key

Create an endpoint-specific API key to call the endpoint generated to poll for events.

Poll for events

Follow the guidelines in the Portal on the Polling Endpoint to call the endpoint with the created API key and utilizing the iterator. The payload of each object will include the event_type and data for the event that occurred on the resource.

The data payload includes all fields returned by the GET endpoint of the corresponding resource.

The following example shows the response with events when processing a payin:

{
    "data": [
        {
            "eventId": "sbx_evt_2sMlUiAbZ000DwlABJbHiU2PKP8_payin.created",
            "eventType": "payin.created",
            "payload": {
                "data": {
                    // ...
                    "payin_id": "sbx_pyi_2sMlUgjm8BwWobZEkcAKDTiVWPJ",
                    // ...
                    "status": "CREATED",
                    // ...
                },
                "event_type": "payin.created"
            },
            "channels": null,
            "id": "msg_2sMlUiwdYwwxoRrovRFkuhJkJQ8",
            "timestamp": "2025-01-30T21:42:21.832Z"
        },
        {
            "eventId": "sbx_evt_2sMlUmSjqHS1aLoD1VOnPHuhpMv_payin.authorized",
            "eventType": "payin.authorized",
            "payload": {
                "data": {
                    // ...
                    "payin_id": "sbx_pyi_2sMlUgjm8BwWobZEkcAKDTiVWPJ",
                    // ...
                    "status": "AUTHORIZED",
                    // ...
                },
                "event_type": "payin.authorized"
            },
            "channels": null,
            "id": "msg_2sMlUmDGyayyAEVcfo2oJrL3KLM",
            "timestamp": "2025-01-30T21:42:22.240Z"
        },
        {
            "eventId": "sbx_evt_2sMlUo7339ntwfxYenD5cf6m8NH_payin.processing",
            "eventType": "payin.processing",
            "payload": {
                "data": {
                    // ...
                    "payin_id": "sbx_pyi_2sMlUgjm8BwWobZEkcAKDTiVWPJ",
                    // ...
                    "status": "PROCESSING",
                    // ...
                },
                "event_type": "payin.processing"
            },
            "channels": null,
            "id": "msg_2sMlUoK6L4Rk4s0vqzSH7JAU8kd",
            "timestamp": "2025-01-30T21:42:22.516Z"
        }
    ],
    "iterator": "eyJvZmZzZXQiOi05MjIzMzcyMDM2ODU0NjEzMTk4LCJhZnRlciI6bnVsbH0",
    "done": true
}