Skip to content

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. 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. 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. 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. 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 likeIt is not
Subscribing to everything covers everythingtransaction.* is never delivered, and a * subscription silently misses compliance and provider events
The CLI can produce any eventIt triggers eight. The other forty nine you produce by driving the resource
Konsole's Send test proves your handler worksIts 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 liveThe sandbox accepts every operator in its table. Your live account is limited by your contracts
Konsole shows every routing decisionRouting exists in live only. There is nothing to look at in sandbox

Pick by symptom

SymptomStart here
I do not know which events existEvent catalogue
My signature check never passesSignature verification
My endpoint is not reachable from the internetwajub listen
I need a failed payment right nowwajub trigger
The API returned something I do not understandAPI logs
The event fired but my handler never ranWebhook deliveries
The payment went through the wrong providerRouting
I want my agent to write it correctlyAgent Skills

What did you think of this content?