Skip to main content
This guide walks you through creating your first payment link from scratch. You will install Kibble (or call the API directly), pick a wallet, generate a shareable link, and check payment status. The whole flow takes under five minutes.
Kibble only accepts USDC on Base. Make sure your payer is sending USDC on the Base network (chain ID 8453) before sharing any payment link.
1

Install Kibble or prepare your API client

You have two options: run the interactive CLI, or call the REST API directly from any HTTP client.
npx create-kibble
The CLI walks you through every prompt interactively. If you prefer scripting or are building a server-side integration, use the REST API instead.
Pass the --yes flag to npx create-kibble to skip all interactive prompts and accept defaults. This is useful in CI pipelines or automated provisioning scripts.
2

Choose your wallet

Kibble supports two wallet modes. You select one when you create your first payment link or invoice.
ModeHow it works
Managed (privy)Kibble provisions a new USDC address on Base for you. No existing wallet required.
Bring your own (BYO)Supply an existing USDC address on Base. Kibble monitors it for incoming transfers.
In the CLI, you are prompted to choose a wallet type. In the API, set "wallet_type": "privy" for a managed wallet or provide your own address.
3

Create a payment link

Create a payment link by specifying your business name, contact email, and the expected USDC amount.
npx create-kibble
# Follow the interactive prompts:
#   Business name: Acme SaaS
#   Email: you@example.com
#   Amount (USDC): 49.00
#   Wallet type: managed (privy)
A successful request returns a JSON object with everything you need to share the link and track the payment:
Response
{
  "slug": "abc12345",
  "payment_link": "https://pay.kibble.sh/pay/abc12345",
  "merchant_portal": "https://pay.kibble.sh/merchant/abc12345",
  "wallet_address": "0x...",
  "iframe_snippet": "<iframe src=\"https://pay.kibble.sh/pay/abc12345\" width=\"400\" height=\"600\" frameborder=\"0\"></iframe>",
  "js_widget_snippet": "<script src=\"https://pay.kibble.sh/w.js\" data-slug=\"abc12345\"></script>"
}
4

Share your payment link

Send the payment_link URL to your payer. When they open it, they see a checkout page with the expected amount and a QR code.The payer scans the QR code with any USDC-compatible wallet, confirms the amount, and sends USDC on Base to the deposit address. No account or sign-up required on their end.You can also embed the checkout page directly on your site using the iframe_snippet or js_widget_snippet from the response.
5

Track payment status

Once you have shared your link, monitor the payment using the status API or the merchant portal.Poll via API:
curl
curl https://pay.kibble.sh/api/payments/status/abc12345
The response includes the current status field, which will be one of: pending, confirmed, partial, excess, or error.Merchant portal:Open https://pay.kibble.sh/merchant/abc12345 (the merchant_portal URL from step 3) in your browser to see real-time payment activity, transaction details, and status updates without writing any code.

Next steps

Now that you have created your first payment link, explore the rest of Kibble:
  • CLI overview — learn all available kibble commands
  • Payment links — embed links, customize checkout, and handle partial payments
  • Invoices — create and send PDF invoices by email
  • Wallets — compare managed vs. bring-your-own wallet options
  • API reference — full endpoint documentation