Wajub CLI
The API, your webhooks and your sandbox, from the terminal.
The CLI is the same API you call from code, reachable without writing any. It does four things
that a curl alias cannot: it keeps your keys out of your shell history, it forwards live events
to localhost without a tunnel, it produces real sandbox payments on demand, and it installs
Wajub's guidance into your coding agent.
npm install -g @wajub/cli
wajub login
wajub doctor
wajub listen --forward-to localhost:3000/webhooks/wajubVersion 1.4.0 ships 91 commands across 15 topics. You will use about eight of them.
What it is good at
| You want to | Command |
|---|---|
| Receive live events on your laptop | wajub listen |
| Produce a real sandbox payment | wajub trigger |
| Read or write any resource | wajub payments list, wajub get /balance |
| Find out why nothing works | wajub doctor |
| Teach your coding agent the API | wajub skills install |
The command grammar
Topics are separated by a space, not a colon. wajub payments list, never
wajub payments:list.
wajub payments list --limit 5
wajub payments retrieve trx_CSUGajfv9xh0XQ5wu2lx
wajub customers create -d email=amina@example.com -d name="Amina Nkem"
wajub customers update cus_4tRb3nP8sZcXvK2mQ9wL -d name="Amina N."Every topic below answers to the same shape, so learning one teaches you the rest.
| Topic | Commands | What it covers |
|---|---|---|
payments | 6 | Create, process, cancel, list, retrieve, list refunds |
customers | 9 | The four verbs, plus block, unblock, activate, deactivate, delete |
invoices | 8 | The four verbs, plus send, mark-paid, cancel, delete |
accounts | 6 | Sync connected accounts, including token |
disputes | 6 | Accept, close, message, submit-evidence, list, retrieve |
shield | 6 | Blocklist, settings, stats, block, unblock |
webhooks | 6 | Endpoints, plus rotate-secret |
beneficiaries, links | 5 each | The four verbs, plus delete |
refunds, transfers, events, skills | 3 each | Create or install, list, retrieve |
identity | 2 | Resolve a number to a name, validate an account |
config | 2 | set and use, for profiles |
Alongside them sit the commands that belong to no topic: balance, channels, countries,
currencies, listen, trigger, login, logout, doctor, status, version, open,
samples, feedback, and the raw get, post and delete.
Four flags exist on every command
| Flag | Effect |
|---|---|
--json | Machine readable output instead of a table |
--profile | Use a named profile rather than the default |
--api-base | Point at another API host |
--api-key | Pass a key inline. Deprecated, it lands in your shell history |
The last one is hidden from --help on purpose. Use wajub login, or WAJUB_API_KEY in CI.
When something is wrong, ask the CLI first
wajub doctor checks the seven things that break an integration, in order, and stops being vague
about which one failed.
Wajub CLI diagnostics
✓ Config 2 profile(s), default: sandbox
✓ Credentials key=pk_test.mT9xW… env=sandbox base=https://api.wajub.com source=profile
✓ API reachability https://api.wajub.com (HTTP 200)
✓ Auth API key accepted, Boutique Akwa (sandbox)
✓ Node.js v22.11.0 (≥ 20 required)
✓ Environment wajub-cli v1.4.0 node v22.11.0 darwin/arm64
✓ Support last request id: fbe6773e9ce64f158af89e5740fc5817
Everything looks good.That last line is the one to copy into a support message. The request id lets support find your call in the logs without asking you for anything else.
Check which profile you are on before anything destructive
wajub config lists your profiles with the keys masked and marks the default. A delete or a
transfers create run against the wrong profile moves real money.