Wajub CLI
The API, your webhooks and your sandbox, from the terminal.
The CLI calls the Wajub API from your terminal: it keeps your keys out of your shell history,
forwards live events to localhost, produces real sandbox payments on demand, and installs
Wajub's guidance into your coding agent.
npm install -g @wajub/cli
wajub login
wajub doctor
wajub listen --forward-to localhost:3000/webhooks/wajubwajub login waits for your team to approve it in the Dashboard: the owner, an Administrator or a
Developer (a Sandbox User too, for a sandbox key) picks the environment there, and the key the CLI
receives lasts 90 days.
Install and authenticate has the rules.
Of all its commands, you will use about eight.
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 -f per_page=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. Live key only |
accounts | 6 | Sync connected accounts, including token |
disputes | 6 | Accept, close, message, submit-evidence, list, retrieve |
shield | 6 | Settings and update-settings, stats, blocklist, block, unblock. Live key only |
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 | Find a number's operator in sandbox, validate an IBAN |
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.
Three 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-key | Pass a key inline. Avoid it: the key 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=sk_test.… 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 (≥ 22 required)
✓ Environment wajub-cli v1.7.3 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.