joomjoo
The official Joomjoo SDK for Python. Issue capped virtual cards and let your agent complete real checkouts. Card controls, 3DS, and fraud caps are handled for you. Zero dependencies.
Install
pip install joomjoo
Requires Python 3.8+.
Quickstart
import os
from joomjoo import Joomjoo
joomjoo = Joomjoo(api_key=os.environ["JOOMJOO_API_KEY"]) # key looks like mk_live_...
# Issue a single-use card capped at $20
card = joomjoo.cards.create(amount=20, merchant="namecheap", single_use=True)
print(card["id"], card["last4"], card["spend_limit"])
Get your API key from the Joomjoo console (Developer -> API keys). Keep it server-side; never commit it.
Tools
Cards
card = joomjoo.cards.create(amount=20, merchant="namecheap", single_use=True)
full = joomjoo.cards.reveal(card["id"]) # {"number","cvc","exp",...} — use at the moment of purchase
closed = joomjoo.cards.close(card["id"]) # release the unused reserve back to your wallet
Spend status
spend = joomjoo.spend.get(card["spend_request_id"])
# spend["status"]: "not_started" | "authorized" | "cleared" | "declined"
Checkout (Joomjoo drives the buy)
run = joomjoo.checkout.create(
task="buy the domain joomjoo.click for 1 year",
merchant="namecheap",
amount=20,
confirm_pay=False, # dry run: stops at the final review. True = pay up to the cap.
)
status = joomjoo.checkout.get(run["checkout_id"])
# status["status"]: "queued" | "running" | "awaiting_approval" | "needs_login" | "submitted" | "blocked"
Connections (login-gated merchants)
conn = joomjoo.connections.create(merchant="namecheap", user_ref="user-123")
# open conn["connect_url"] so the user signs in, then:
joomjoo.connections.complete(conn["connection_id"])
# now pass connection_id to checkout.create to run signed-in
Errors
Any non-2xx response raises JoomjooError with the HTTP status, the Joomjoo error code, and the request id.
from joomjoo import Joomjoo, JoomjooError
try:
joomjoo.cards.create(amount=999999, merchant="namecheap")
except JoomjooError as e:
print(e.status, e.code, e.request_id) # e.g. 402 insufficient_funds
Configuration
Joomjoo(
api_key=os.environ["JOOMJOO_API_KEY"],
base_url="https://mooj-api-277196974190.us-central1.run.app", # optional override
timeout=60.0,
)
Docs
Full API reference: https://storage.googleapis.com/mooj-docs/index.html
Release files for joomjoo 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| joomjoo-0.1.0.tar.gz | 3.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| joomjoo-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 7.8 kB
Release files / joomjoo-0.1.0.tar.gz
| Download URL | joomjoo-0.1.0.tar.gz |
|---|---|
| Size | 3.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
789ebdadc349a6ac120911a14500568f537c23d0986ad8c723a5998d60494a58
|
|
BLAKE2b-256 checksum How to use checksums |
f571dc44272f4b64375ba733ab079d671da9da9070ecefd2a77b06fe88d6b046
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.2
|
Release files / joomjoo-0.1.0-py3-none-any.whl
| Download URL | joomjoo-0.1.0-py3-none-any.whl |
|---|---|
| Size | 4.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
37bcf17a09dfc91734820b5dda713486ec981498c2efb2ab322c7c824eaf80e7
|
|
BLAKE2b-256 checksum How to use checksums |
32a2f1d97e82c283a3d314e45edff62aba26ef850c881b8690ac6635e9683043
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.2
|