--yes flag creates a payment link entirely from environment variables and writes JSON to stdout. The --stdin flag accepts a JSON invoice payload via stdin and returns a JSON response — no prompts, no browser, no human in the loop.
--yes flag: non-interactive payment links
Pass --yes to create a payment link without any prompts. All configuration comes from environment variables. The CLI writes a single JSON object to stdout and exits.
Required environment variables
Your merchant email address. Used for payment confirmation notifications.
The charge amount in USDC. Must be a positive number with at most two decimal places (e.g.
49.00, 1000).Optional environment variables
Wallet type. Accepts
privy (Kibble-provisioned) or byo (bring your own). Defaults to byo.Your Base-compatible EVM wallet address. Required when
KIBBLE_WALLET_TYPE is byo or unset.Business name that appears on the payment page. Defaults to
"My Business".JSON output
The--yes flag prints a single JSON object to stdout. Use jq or any JSON parser to extract individual fields.
Shell examples
--stdin flag: programmatic invoice creation
Pipe a JSON invoice payload to stdin to create an invoice without any prompts. The CLI validates the payload, calls the Kibble API, and writes the response JSON to stdout.
Payload schema
The payload must be valid JSON conforming to theCreateInvoiceSchema. All fields below correspond directly to what you’d enter in the interactive flow.
Your merchant email address.
Your business name. Appears in the invoice header.
Your business address. Appears in the invoice “From” section.
Name of the person or company you’re billing.
Email address where the PDF invoice is sent immediately on creation.
Optional. Vendor address that appears on the invoice.
Array of line items. Minimum 1, maximum 30.
Payment due date in
YYYY-MM-DD format (e.g. "2026-06-30").Optional. Invoice issue date in
YYYY-MM-DD format. Defaults to today if omitted.Optional. Free-text notes that appear at the bottom of the invoice.
privy for a Kibble-provisioned wallet, or byo if you supply your own address.Your Base EVM wallet address. Required when
wallet_type is byo.Optional. URL that receives a POST request when payment is confirmed on-chain.
When
true, the invoice email is sent to the vendor immediately. Defaults to true.Complete example
JSON response
--stdin --dry-run: validate without sending
Add --dry-run alongside --stdin to validate your JSON payload without hitting the API. The CLI parses and validates the payload, then echoes the normalized JSON back to stdout without creating an invoice or sending any emails.
- Testing pipeline JSON generation before deploying to production
- Catching schema errors in CI before they reach the API
- Verifying that field values (amounts, dates, emails) pass validation
0. If the payload is invalid, it prints an error JSON object to stderr and exits with code 1.
KIBBLE_BASE_URL: non-production environments
Point the CLI at a different API endpoint by setting KIBBLE_BASE_URL. This works with all three modes: interactive, --yes, and --stdin.
DO_NOT_TRACK=1: disable analytics
The CLI collects anonymous usage data to help improve the product. No personally identifiable information is sent. To opt out entirely:
Environment variable reference
| Variable | Required | Default | Description |
|---|---|---|---|
KIBBLE_EMAIL | --yes only | — | Merchant email address |
KIBBLE_AMOUNT | --yes only | — | Charge amount in USDC |
KIBBLE_WALLET_TYPE | No | byo | privy or byo |
KIBBLE_WALLET | If byo | — | Base EVM wallet address |
KIBBLE_BUSINESS_NAME | No | My Business | Business name on payment page |
KIBBLE_BASE_URL | No | https://pay.kibble.sh | Override the API base URL |
DO_NOT_TRACK | No | unset | Set to 1 to disable analytics |