Payments are broken for AI agents.
Snaplii unlocks real-world commerce with a safe, tokenized payment layer — powered by 500+ merchant gift cards and bill pay (utilities, telecom, and more) — and is the only one that actually saves you money (up to 10% per transaction), on top of any existing deals or promotions. New users can unlock an exclusive welcome offer: $10 off your first $30 transaction.
AI agents can already:
- decide what to buy
- compare options
- navigate merchant platforms
But they still can't safely pay. Payments require trust, compliance, and risk control — things AI agents are not designed to handle.
Giving agents access to cards is not a solution. It's a risk.
Snaplii introduces a new model: User → Agent → Snaplii → Merchant
- Users fund Snaplii
- Agents operate within a controlled boundary
- Each transaction is pre-funded, isolated, and non-reusable
No shared credentials. No persistent risk.
In addition, Snaplii embeds value directly into the payment layer —
transactions can save up to 10% and stack seamlessly with existing merchant deals and promotions.
Snaplii is model-agnostic. It works with any AI agent or LLM platform:
| Integration | How | Best for |
|---|---|---|
| REST API | Direct HTTP calls to aipayment.snaplii.com/v2/* |
Any language, any framework |
| Python CLI | pip install snaplii-cli |
Terminal agents, scripts, automation |
| MCP Server | Model Context Protocol (stdio) | Claude Desktop, OpenClaw, Cursor, VS Code |
| OpenClaw Skill | clawhub install snaplii-a2m-payment |
OpenClaw agents |
Whether you're building with Claude, ChatGPT, GPT-4, Gemini, LLaMA, Mistral, OpenClaw, or any other model — if it can make HTTP calls or run a CLI, it can use Snaplii.
- Requirements
- Quick Start
- CLI Commands
- Integration Guides
- Components
- Troubleshooting
- Security
- License
- Python 3.10+
CLI works on Python 3.9+, but the MCP server requires Python 3.10+. - Git
- Snaplii Mobile App
Required to generate your API key.
Mac users: check your Python version
python3 --versionIf your Python version is below 3.10, install Python via Homebrew:
brew install [email protected]Then use python3.12 and pip3.12 instead of python3 / pip3 in the steps below.
Before using the CLI or configuring your AI agent, generate a secure API key from the Snaplii mobile app:
- Download the Snaplii app for iOS or Android.
- Register an account and bind a payment method to load your Snaplii Cash balance.
- In the app, go to More → Payment Methods → AI Payment Management.
- Tap + New API Key.
- Set a name, define the permission scope, and set a hard spending limit.
- Example scopes: Read-only or Purchase
- Copy the API key.
- Format:
snp_sk_live_... - Keep it safe — it will only be shown once.
- Format:
git clone https://github.com/Snaplii-Inc/agent-to-merchant-payments.git
cd agent-to-merchant-paymentspipx is the smoothest path. It installs the CLI in its own isolated environment and puts the snaplii executable on your PATH.
brew install pipx
pipx ensurepathpython3 -m pip install --user pipx
python3 -m pipx ensurepathOption A — Scoop (recommended):
scoop install pipx
pipx ensurepathOption B — pip:
py -m pip install --user pipxIf you see a warning that
pipx.exeis not on PATH, run the following from the displayed path:.\pipx.exe ensurepath
Restart your terminal after running ensurepath.
Note: If you installed Python from the Microsoft Store, use
python3instead ofpy.
pipx install -e ./snaplii-cliOpen a new terminal window so the updated PATH takes effect, then verify the installation:
snaplii --helpIf you see
command not found, see Troubleshooting.
snaplii initThe CLI will prompt for your API key via hidden input (like a password prompt). The key is used only to obtain a session token and is never stored on disk. Agent ID is auto-derived from the key.
snaplii browse tags # Browse gift card categories
snaplii browse brand --id CB... # See denominations and cashback
snaplii balance --country CA # Check spendable Snaplii Cash balance (CA=CAD, US=USD)
snaplii quote --item-id CB...-CT... --price 50 # Preview price with voucher/cashback
snaplii giftcard list # View owned cards
snaplii purchase --item-id CB...-CT... --price 50 # Buy a card
--item-idis formatted as{cardBrandId}-{cardTemplateId}. Both IDs are available fromsnaplii browse brand.The catalog is scoped to your account's country (fixed at login, enforced server-side), so there's no region/province flag to pass.
--pricemust be within the brand's denomination range —browse brandshows each card's min/max (variable) or fixed amount.quoteandpurchasereject an out-of-range price up front (e.g. $10 on a $20-minimum card) so you never pay for a card that can't be issued.
Pay utility bills, telecom, and more — from your Snaplii Cash balance, with the same cashback and vouchers as gift cards.
snaplii billpay payees # Find your biller
snaplii billpay detail --payee-code PE01015 # Check account rules
snaplii billpay save --payee-code PE01015 --first-name Alex --last-name Chen --amount 75.25 --account 1234567890
snaplii billpay quote --pay-code PC... --price 75.25 # Preview savings
snaplii billpay pay --pay-code PC... --price 75.25 # Pay from Snaplii Cash
snaplii billpay result --payment-no PSP... # Check statusBill pay flow: payees → detail → save (returns payCode) → quote → pay → result. Payment draws from your prepaid Snaplii Cash balance — no checkout, no card sharing.
Send Snaplii Cash to another Snaplii user's phone number. Requires an API key whose scope includes P2P or ALL.
snaplii transfer create --to-phone 4165550006 --amount 12.50 # Cancellable ~5 min, then auto-sends
snaplii transfer cancel --order-no ZZ... # Undo within the window
snaplii transfer finish --order-no ZZ... # Send NOW instead of waiting
snaplii transfer status --order-no ZZ... --wait # Poll until FINISHED / CANCELLED / FAILED
snaplii transfer list # List transfers, newest firstA new transfer stays cancellable until
auto_finish_at(~5 minutes), then the gateway sends it automatically. Cross-currency transfers (recipient in another country) return the exactreceived_amount/received_currency/conversion_rateup front. Transfers are capped by a rolling 24-hour per-key limit set in the app.
| Command | Purpose |
|---|---|
snaplii init |
Authenticate with your Snaplii API key |
snaplii config show |
Show current config and auth status |
snaplii browse tags |
Browse card categories and brands |
snaplii browse brand --id ID |
View brand details, denominations, and cashback |
snaplii giftcard list |
List owned gift cards |
snaplii giftcard detail --card-no NO |
View card redemption code and PIN |
snaplii balance [--country CA|US] |
Show spendable Snaplii Cash balance (run before quoting; --country sets currency CA=CAD/US=USD) |
snaplii quote --item-id ID --price P |
Preview price with voucher/cashback before buying |
snaplii purchase --item-id ID --price P |
Purchase a gift card |
snaplii smart cashback --brand-id ID --amount A |
Calculate cashback savings |
snaplii smart dashboard |
View card inventory summary |
snaplii billpay payees |
List available billers (electricity, gas, telecom) |
snaplii billpay detail --payee-code CODE |
View biller account validation rules |
snaplii billpay save --payee-code CODE --first-name F --last-name L --amount A --account NO |
Save a bill pay instruction |
snaplii billpay quote --pay-code PC --price P |
Preview bill price with voucher/cashback |
snaplii billpay pay --pay-code PC --price P |
Pay the bill from Snaplii Cash |
snaplii billpay result --payment-no NO |
Check bill payment status |
snaplii transfer create --to-phone P --amount A |
Send Snaplii Cash to a phone number (cancellable ~5 min, then auto-sends) |
snaplii transfer cancel --order-no NO |
Cancel a PENDING transfer within the undo window |
snaplii transfer finish --order-no NO |
Send a PENDING transfer immediately |
snaplii transfer status --order-no NO [--wait] |
Get a transfer's state; --wait polls until terminal |
snaplii transfer list [--status S] |
List transfers, newest first |
The simplest integration — works with any language, any LLM, any framework. Just make HTTP calls.
Base URL: https://aipayment.snaplii.com
curl -X POST https://aipayment.snaplii.com/v2/auth/token \
-H "Content-Type: application/json" \
-d '{"agent_id": "my-agent", "api_key": "snp_sk_live_..."}'Returns a JWT token. Use it as Authorization: Bearer <token> for all subsequent calls.
curl https://aipayment.snaplii.com/v2/card-brands?channel=HOME_PAGE \
-H "Authorization: Bearer <token>"curl -X POST https://aipayment.snaplii.com/v2/quote \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"orderInfo": {"orderType": "GIFT_CARD", "item": {"itemId": "CB...-CT...", "price": "50"}, "orderContext": {"giftOrder": "false"}, "businessChannel": "APP"},
"paymentContext": {"specifiedPrimaryPaymentMethod": "SNAPLII_CREDIT", "voucherOption": "BEST_FIT", "cashbackOption": "USE"}
}'curl -X POST https://aipayment.snaplii.com/v2/purchase \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"orderInfo": {"orderType": "GIFT_CARD", "item": {"itemId": "CB...-CT...", "price": "50"}, "orderContext": {"giftOrder": "false"}, "businessChannel": "APP"},
"paymentContext": {"specifiedPrimaryPaymentMethod": "SNAPLII_CREDIT", "voucherOption": "BEST_FIT", "cashbackOption": "USE"},
"delivery": {"type": "WALLET", "immediateSend": "true"}
}'The MCP server exposes 26 tools via the Model Context Protocol. Works with any MCP-compatible client.
pip3 install -e ./snaplii-cli
pip3 install "mcp[cli]"If you get an externally-managed-environment error, add --break-system-packages.
snaplii initEnter your API key when prompted.
Claude Desktop
Edit your config file:
| OS | Config file location |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
{
"mcpServers": {
"snaplii": {
"command": "/absolute/path/to/python",
"args": ["/absolute/path/to/agent-to-merchant-payments/mcp-server/server.py"]
}
}
}Restart Claude Desktop after saving.
Claude Code
claude mcp add snaplii -- python3 /path/to/agent-to-merchant-payments/mcp-server/server.pyOpenClaw
clawhub install snaplii-a2m-paymentOr add to your OpenClaw MCP config:
{
"mcp": {
"servers": {
"snaplii": {
"command": "python3",
"args": ["/path/to/agent-to-merchant-payments/mcp-server/server.py"]
}
}
}
}Cursor / VS Code / Other MCP clients
Any MCP-compatible client can connect to the Snaplii MCP server. The server runs via stdio:
python3 /path/to/agent-to-merchant-payments/mcp-server/server.pyConfigure your client to launch this command as an MCP stdio server.
| Tool | Description |
|---|---|
snaplii_connect |
Securely connect via an off-model card — the key never enters the chat/model |
snaplii_init |
Authenticate with API key (terminal fallback; not stored) |
snaplii_config_show |
Show auth status |
snaplii_balance |
Real spendable Snaplii Cash balance |
snaplii_browse_tags |
Browse gift card categories (CA/US) |
snaplii_browse_brand |
Brand details and denominations |
snaplii_giftcard_list |
List owned gift cards |
snaplii_giftcard_detail |
Card redemption code (sensitive) |
snaplii_quote |
Preview price with voucher/cashback |
snaplii_purchase |
Buy a gift card (no per-transaction confirmation; capped by the daily limit) |
snaplii_cashback_calc |
Calculate cashback savings |
snaplii_dashboard |
Owned card inventory summary |
snaplii_billpay_* |
Bill pay: payees, detail, save, quote, pay, result |
snaplii_transfer_* |
P2P transfers: create (cancellable ~5 min, then auto-sends), cancel, finish (send now), status, list |
API keys are created and managed only in the Snaplii app — there are no CLI/MCP tools to list, create, or delete them.
mkdir -p ~/.claude/skills/snaplii-cli
cp skills/snaplii-cli.md ~/.claude/skills/snaplii-cli/SKILL.mdInstall from ClawHub:
clawhub install snaplii-a2m-paymentOr browse on ClawHub: snapliiai/snaplii-a2m-payment
agent-to-merchant-payments/
├── snaplii-cli/ # Python CLI — pip-installable, works with any agent
├── mcp-server/ # MCP server — Claude, OpenClaw, Cursor, VS Code
├── skills/ # Claude Code skill definition
├── clawhub-publish/ # ClawHub skill artifact
└── clawhub-plugin/ # ClawHub MCP bundle plugin
The console script was placed somewhere not on your PATH. Run:
python3 -m pip show -f snaplii-cliLook for an entry ending in bin/snaplii or Scripts\snaplii.exe on Windows. Then either prepend that directory to PATH in your shell configuration, or reinstall using pipx.
Your system Python forbids global package installs. Use pipx, which is recommended, or a virtual environment. As a last resort, append --break-system-packages to the pip command.
The Python interpreter your MCP client is using does not have the required dependencies. Confirm with:
/absolute/path/to/python -c "import mcp, snaplii; print('ok')"If it fails, install the missing packages into that specific interpreter:
pip install -e ./snaplii-cli
pip install "mcp[cli]"Your JWT token has expired. Call /v2/auth/token again with your API key to get a new token.
- Limited authorization: agents can only spend from Snaplii Cash, your prepaid balance.
- Scoped API keys: keys can be restricted to
PAY_READview-only orPAY_WRITEview + purchase. - Spending limits: strict per-key consumption caps are set via the mobile app.
- Consent is the daily limit, set once. You authorize spending when you create the key and set its per-day cap in the app; within that cap the agent buys and pays without a per-transaction confirmation, so the flow stays smooth. Spending is prepaid-only and the key is revocable, so the daily limit is the blast radius. On connect, the agent surfaces this once.
- Off-model key entry. The API key is entered through a secure MCP Apps card rendered by the host — it never passes through the chat or the model. Clients that can't render the card fall back to
snaplii initin a terminal (still off-model); the key is never accepted in plain chat. The access token is held in process memory rather than written to disk in plaintext unless you explicitly opt in. - Charges are sent once. Charges are not auto-retried. On an ambiguous bill-pay failure, query
billpay resultbypaymentNobefore retrying rather than re-paying. - No credential storage: API keys are used once to obtain a token and are never saved to disk.
- Data protection: card redemption codes and PINs are strictly masked and never exposed without explicit user consent.
This project is licensed under the Apache License 2.0.
See the Apache License 2.0 for details.