Revolut Business
Receive Revolut Business webhook events in Wexio flows
Wexio verifies Revolut Business signatures natively. Revolut signs with Revolut-Signature: v1=<hex> plus a Revolut-Request-Timestamp header in milliseconds.
During a secret rotation Revolut can send several v1= signatures in one header. Wexio accepts the request if any one of them matches.
Provider docs: Setting up webhooks in Revolut Business
Setup
1. Connect It in Wexio
Go to Settings → Webhooks and API → Webhooks → New connection → Inbound and click the Revolut chip under Dedicated providers, or set Authentication mode to Revolut Business manually. Copy the Wexio endpoint URL.
2. Set Up the Provider
In Revolut Business, go to Settings → APIs → Webhooks → Add webhook.
| Field | Value |
|---|---|
| URL | The Wexio endpoint URL |
| Events | The events you need |
Revolut shows the signing secret once, when you create the webhook. Copy it immediately. If you dismiss the dialog without copying, delete and recreate the webhook in Revolut.
Paste the signing secret into the Wexio Signing secret field.
3. Resolve Contacts
| Identifier type | JSON path | Notes |
|---|---|---|
$.data.counterparty.email | When the payload carries a counterparty email |
Account-level events without an email do not resolve to a contact, so no flow runs for them (the log shows IDENTIFIER_NOT_FOUND).
4. Capture the Schema and Bind a Flow
Tap Capture schema, trigger a test event, then add a Webhook Received trigger.
Timestamp Tolerance
Wexio rejects timestamps outside ±5 minutes. Revolut sends milliseconds since epoch, unlike Stripe, Slack and Paddle, which use seconds. Wexio handles the conversion.
Troubleshooting
| Symptom | Fix |
|---|---|
UNAUTHORIZED: Revolut signature mismatch | You pasted the wrong value into Wexio. Rotate the webhook in Revolut to get a fresh secret |
| Lost the signing secret | Delete the webhook in Revolut and create a new one. Revolut never shows it twice |
UNAUTHORIZED: Revolut timestamp outside ±5 min tolerance | Check for clock skew. Old retries can be rejected |
Related
- Inbound Webhooks - auth modes, contact resolution and response codes
- Webhook Received - the trigger that starts your flow
- Webhook History - check why a request failed