Developer tools
Receive events, drive the sandbox, and see what actually happened.
Four gaps sit between writing an integration and trusting it: you do not know what the platform will tell you, your laptop is not reachable from the internet, you cannot make a payment fail on demand, and you cannot see what your endpoint answered. Each part of this section closes one of them, in that order.
The shortest path to a working integration
- 1
Learn what you will be told, then write the handler
Verify the signature, answer
2xx, then queue the work. The envelope, the catalogue and five working handlers are in Webhooks. - 2
Receive a real event on your laptop
wajub listen --forward-to localhost:3000/webhooks/wajub. No tunnel, no deploy, and the signature is real. Installing it takes one command, in CLI. - 3
Produce the outcomes you need
wajub trigger payment.failed, then the refund, then the timeout. For anything the CLI cannot trigger, a test number forces the outcome instead. - 4
Read back what happened
Konsole holds the request, the event and every delivery attempt with the body your endpoint returned.
The two commands that replace most of a test environment
wajub listen and wajub trigger, in two terminals, give you a full event loop without
deploying anything or touching a phone. Everything else here supports those two.
What each one cannot do
Every part of the loop has an edge, and each of these has cost somebody a day.
| It looks like | It is not |
|---|---|
| Subscribing to everything covers everything | transaction.* is never delivered, and a * subscription silently misses compliance and provider events |
| The CLI can produce any event | It triggers eight. The other forty nine you produce by driving the resource |
| Konsole's Send test proves your handler works | Its payload carries the type in type rather than event, so a handler written against it fails in production |
| A channel that works in sandbox works live | The sandbox accepts every operator in its table. Your live account is limited by your contracts |
| Konsole shows every routing decision | Routing exists in live only. There is nothing to look at in sandbox |
Pick by symptom
| Symptom | Start here |
|---|---|
| I do not know which events exist | Event catalogue |
| My signature check never passes | Signature verification |
| My endpoint is not reachable from the internet | wajub listen |
| I need a failed payment right now | wajub trigger |
| The API returned something I do not understand | API logs |
| The event fired but my handler never ran | Webhook deliveries |
| The payment went through the wrong provider | Routing |
| I want my agent to write it correctly | Agent Skills |