Skip to main content

Overview

During sandbox integration, you can trigger PRESS events directly from the UAE KYC dashboard — no code or API calls needed. This lets you test your webhook endpoint against real event payloads before going live.
Pre-requisite: You must have at least one sandbox resident created before you can generate test events. If you haven’t done this yet, follow the Sandbox Residents guide to add test residents to your portfolio.
You must be in the Sandbox environment to generate test events. Events triggered here are delivered to your sandbox webhook endpoint only.

Generate events

Try the interactive demo below to see how sandbox event testing works.

Step-by-Step Guide

1

Switch to Sandbox and generate an event

Log in to the UAE KYC dashboard. Click the environment toggle in the top-right corner and select Sandbox. Go to Sandbox Residents, find the resident you want to trigger an event for, click the actions menu (...) on their row, and select Generate Event.
Switch to Sandbox and generate event
2

Choose an event category and type

The Generate Event dialog shows all available event categories. Expand a category to see the specific events you can trigger.
Event category selection
CategoryEvents Available
Tourist Visa EventsVISA_EXTENSION, VISA_CANCELLATION
Emirates ID EventsNEW_ID, FILE_CANCEL
Travel EventsIMMIGRATION_ENTRY
Person Category ChangeSTATUS_CHANGE
Travel Events expanded
3

Fill in event details and save

After selecting an event type, fill in the required fields (e.g., entry date, travel document number) and click Save Event. The event is immediately sent to your sandbox webhook endpoint.
Fill event details and save

What Happens After You Save

  1. The dashboard sends the event to the PRESS engine.
  2. PRESS matches the resident to your sandbox portfolio.
  3. A signed webhook delivery (HMAC-SHA256) is sent to your sandbox webhook endpoint.
  4. Your endpoint receives the payload in CloudEvents v1.0 format.
Use tools like Webhook.site or ngrok to inspect incoming payloads if your endpoint is not ready yet.

Troubleshooting

ProblemWhat to check
No event receivedConfirm you are in Sandbox mode, not Production. Check that your sandbox webhook URL is correctly registered.
Signature mismatchMake sure you are using your sandbox signing secret, not the production one.
Event not matchingThe resident must be onboarded in your sandbox portfolio. Add a sandbox resident if needed.
Timeout errorsYour endpoint must respond with 200 within 500 milliseconds. Move business logic to a background worker.

FAQ

Do not run business logic inside your webhook handler. Instead, write the incoming payload to a message broker (e.g., Apache Kafka, RabbitMQ, Amazon SQS, or any queue available in your system) and return the HTTP 200 response immediately from your POST endpoint.Your background consumers can then pick up the event from the queue and process it at their own pace — updating accounts, triggering notifications, calling Validation APIs, etc.
1. Receive POST → Verify HMAC → Check idempotency
2. Write payload to Kafka / message queue
3. Return HTTP 200 (< 500ms)
4. Background worker picks up event → runs business logic
This pattern ensures your endpoint always responds well within the 500ms window, regardless of how complex your downstream processing is.
There are two reasons an event type may appear disabled (greyed out) in the Generate Event dialog:1. Event not subscribedThe event type is not enabled for your organisation from the ICP side. This means you have not subscribed to this event during onboarding, or ICP has not activated it for your use case. Contact ICP support to enable additional event subscriptions.2. Invalid state transition for the residentThe current person classification of the sandbox resident does not allow the selected transition. ICP enforces real-world state transition rules even in sandbox. If a transition is not logically valid, it will be disabled.Common examples:
Current Person ClassAllowed TransitionsNot Allowed
TouristEntry, Visa Extension, Visa Cancellation, Status Change (to Resident or Visitor)NEW_ID — Emirates ID events are not available for tourists
VisitorEntry, NEW_ID, Status Change (to Resident or Golden Visa)
ResidentEntry, NEW_ID, FILE_CANCEL, Visa Extension, Visa Cancellation, Status Change (to Golden Visa or another Resident visa)Status Change to GCC — not a valid transition
GCC NationalEntry, Status Change (to Resident or Golden Visa)Transition to GCC from other classes is not possible
Golden VisaEntry, NEW_ID, FILE_CANCEL, Visa Cancellation
To test a specific event, make sure the sandbox resident’s person classification supports that transition. You can edit the resident to change their person class before generating the event.
Not in one go. Since each event changes the resident’s state, you may need to reset or edit the resident’s person classification between tests. For example, to test NEW_ID you need the resident set to Visitor or Resident — not Tourist.Create multiple sandbox residents with different person classifications to cover all event types efficiently.
PRESS uses at-least-once delivery. Duplicates can happen due to retries or network issues. Use the X-Webhook-Id header as your idempotency key to detect and skip duplicates. See Signature & Delivery for implementation details.