# PayLynks > Payments for small businesses and the software platforms that serve them: embedded checkout, payment links, invoices, text/email payment requests, subscriptions, voice payments, and compliant surcharging. REST API at https://paylynks.io/api/v1, MCP server at https://paylynks.io/api/mcp. Amounts are integer cents. Create payment intents on the server with the secret key; send only the client_secret to the browser. Never put secret keys in client code. Test card: 4242 4242 4242 4242. ## Docs - [Quickstart](https://paylynks.io/docs/quickstart.md): Take a test payment in about five minutes: get keys, create a payment intent on your server, and show the PayLynks checkout in the browser. - [Build with AI](https://paylynks.io/docs/ai-builders.md): PayLynks is built to be wired up by AI coding tools (Claude Code, Cursor, Lovable, Bolt, Replit) on the first try, safely. - [PayLynks agent skill](https://paylynks.io/docs/agent-skill.md): Instructions for AI coding agents adding PayLynks payments to an app. Also served at https://paylynks.io/SKILL.md. - [MCP server](https://paylynks.io/docs/mcp.md): Connect PayLynks to Claude, Cursor, Claude Code or any MCP client so the assistant can create payment links and invoices, look up payments and fetch integration code for you. - [CLI](https://paylynks.io/docs/cli.md): `paylynks` sets up an app for payments in one command. - [Checkout and snippets](https://paylynks.io/docs/checkout.md): Three ways to take a payment, from no code to fully custom. - [Payment links](https://paylynks.io/docs/payment-links.md): A hosted page with a shareable URL and QR code. Fixed price or let the payer enter an amount. - [Payment intents](https://paylynks.io/docs/payment-intents.md): A payment intent is one attempt to collect an amount. Create it on your server, confirm it from the browser (via checkout) or the server. - [Bank payments (ACH), Apple Pay and Google Pay](https://paylynks.io/docs/bank-payments.md): Checkout can take a US bank account as well as cards. Apple Pay and Google Pay appear automatically on supported devices and are priced as cards. - [Invoices](https://paylynks.io/docs/invoices.md): Invoices with line items, installments, late fees, early-payment discounts and automatic reminders. - [Payment requests (text and email)](https://paylynks.io/docs/payment-requests.md): Ask a customer to pay an amount; they get a link by email and/or text. - [Customers and saved cards](https://paylynks.io/docs/customers-and-saved-cards.md): - `POST /api/v1/customers` `{name, email?, phone?}` (phone in E.164, e.g. `+15555550123`) - `GET /api/v1/customers`, `GET /api/v1/customers/:id` - [Customer portal](https://paylynks.io/docs/customer-portal.md): A page where your customers see what they owe and what they've paid, and manage their saved cards and subscriptions. No passwords: they sign in with a one-time link sent to their email. - [Subscriptions and payment plans](https://paylynks.io/docs/subscriptions.md): Bill a customer on a schedule: memberships, retainers, or a fixed number of payments. - [Donation pages](https://paylynks.io/docs/donations.md): Branded giving pages for nonprofits and fundraisers: suggested amounts, a custom amount, one-time or monthly gifts, an optional goal with a progress bar, and an option for donors to cover processing costs. - [Refunds](https://paylynks.io/docs/refunds.md): ```bash curl -X POST https://paylynks.io/api/v1/refunds -H "Authorization: Bearer $PAYLYNKS_SECRET_KEY" \ -H "Content-Type: application/json" -d '{"payment_intent": "pi_...", "amount": 5000}' ``` - [Webhooks](https://paylynks.io/docs/webhooks.md): PayLynks POSTs events to your HTTPS endpoint as they happen. - [Voice payments](https://paylynks.io/docs/voice-payments.md): Take a card payment during a phone call with an AI agent or a person. The caller types the card on their keypad into Twilio ``; the digits go straight to the gateway, and neither PayLynks nor the agent hears them. - [Surcharging and dual pricing](https://paylynks.io/docs/surcharging.md): Merchants can pass card costs to payers in two ways. PayLynks applies the rules; your integration doesn't calculate anything. - [Partners: onboarding businesses](https://paylynks.io/docs/partners.md): Software platforms and resellers onboard the businesses they serve through PayLynks with a white-label signup, then act for each one through the API. - [Security and API versions](https://paylynks.io/docs/security.md): Send `PayLynks-Version: 2026-10-21` to pin the API version your integration was built against. Without the header you get the latest version. Every `/api/v1` response includes the `PayLynks-Version` that served it. Unknown versions are rejected with `400 api_version_invalid`. Breaking changes ship a - [Testing](https://paylynks.io/docs/testing.md): Everything in test mode works end to end and never moves money. Test keys start with `sk_test_` / `pk_test_`; agent tokens with `ak_test_`. - [Errors](https://paylynks.io/docs/errors.md): Errors return an HTTP status and a JSON body: - [API reference](https://paylynks.io/docs/api-reference.md): Base URL `https://paylynks.io/api/v1`. Authenticate with `Authorization: Bearer `. Amounts are integer cents. Send `Idempotency-Key` on POSTs; the same key and body return the same response. Pin a version with `PayLynks-Version: 2026-10-21` (see [Security and API versions](/docs/security)). ## Optional - [Everything in one file](https://paylynks.io/llms-full.txt) - [Agent skill](https://paylynks.io/SKILL.md)