Webhooks are optional but recommended for tracking transaction status in real-time.
Overview
Webhooks allow you to receive automatic notifications when order events occur. Configure them in your Rampnow Partner Dashboard to stay updated on transaction statuses without polling.Configuration Steps
1
Access API Hub
Navigate to the API Hub in your Rampnow Partner Dashboard.
2
Add Webhook URL
Enter your server endpoint URL that will receive webhook notifications.
3
Select Event Types
Choose which events to receive:
- All events - Get notified of every status change
- Specific events - Select only the events you need
Order Events
Each event carries aneventType and the current orderStatus in its payload. Ramp-order events use the ramp_order.status_change type. The concrete status is always in the orderStatus field of the payload — not in the event name.
Order status semantics
The concrete status is inpayload.orderStatus. The Webhook column shows which statuses are pushed to your endpoint — the rest are observable only by polling GET /ext/ramp_order/{uid}.
Every terminal state now emits a webhook — including
expired, canceled and blocked — so you no longer need to poll to observe a terminal failure. completed is immutable once reached.Implementation Example
Here’s a simple Flask server that receives webhook notifications:Signature Verification
Every webhook is signed so you can verify it originated from Rampnow. Reject any request whose signature does not match.
Algorithm: HMAC-SHA256, hex-encoded.
Signing secret: your API secret — the same secret you use to sign outbound API calls (from the API Hub in the Partner Dashboard). There is no separate webhook secret.
Signed message — the concatenation, in this exact order:
timestamp— the value of theX-RAMPNOW-TIMESTAMPheader.path— the path (and query string, if any) of the webhook URL you registered, e.g./rampnow/webhook.rawBody— the exact raw request body bytes, verified before any JSON re-serialization.
Webhook Payload Schema
The webhook payload for On/Off Ramp Orders is shown below.
Field Descriptions
Best Practices
Security
Security
- Use HTTPS endpoints only
- Always verify the
X-RAMPNOW-SIGNsignature (see Signature Verification) and reject requests that fail - Implement rate limiting on your endpoint
- Log all incoming webhooks for debugging
Reliability
Reliability
- Return
200 OKquickly (process async if needed) - Implement idempotency using
orderUid - Handle duplicate webhook deliveries gracefully
- Set up monitoring and alerts for failures
Error Handling
Error Handling
- Always respond with status codes
- Implement retry logic on your side if needed
- Store failed webhooks for manual review
- Contact support if webhooks stop arriving
Testing Your Webhook
1
Set Up Local Endpoint
Run your webhook server locally on the specified port.
2
Use Tunneling Tool
Use tools like ngrok to expose your local server:
3
Add Tunnel URL
Copy the ngrok URL and add it to your Rampnow dashboard.
4
Create Test Order
Create a test order and verify your endpoint receives the webhook.