This guide takes you from a new account to a paid payment link and a verified webhook in about fifteen minutes. You need a terminal and, for the webhook, a server reachable over https://.
1. Open a business account and get verified
Create your business account and finish verification in Settings → Verification. The API answers 403 NOT_ENROLLED until your business is verified and set up for card payments.
2. Create a secret key
In Settings → Developers, choose Create key and copy it: it's shown once. Keep it in an environment variable on your server, never in front-end code. Check it works:
export ANYTIME_API_KEY="ak_live_…"
curl "https://anytime-capital.com/api/v1/payments?limit=1" \
-H "Authorization: Bearer $ANYTIME_API_KEY"A 200 with {"object": "list", …} means you're connected. A 401 means the key is wrong; see Authentication.
3. Create a payment link
curl -X POST https://anytime-capital.com/api/v1/payment-links \
-H "Authorization: Bearer $ANYTIME_API_KEY" \
-H "Idempotency-Key: order-1042" \
-H "Content-Type: application/json" \
-d '{
"title": "Consulting — October",
"amountCents": 12500,
"singleUse": true,
"metadata": { "orderId": "1042" }
}'import { randomUUID } from "node:crypto";
// Server-side only: the key never reaches the browser.
const res = await fetch("https://anytime-capital.com/api/v1/payment-links", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.ANYTIME_API_KEY}`,
"Content-Type": "application/json",
"Idempotency-Key": randomUUID(), // store it with the order and reuse it on retries
},
body: JSON.stringify({
title: "Consulting — October",
amountCents: 12500,
singleUse: true,
metadata: { orderId: "1042" },
}),
});
const link = await res.json();
if (!res.ok) throw new Error(`${link.error.code}: ${link.error.message}`);
console.log(link.url); // send the customer hereimport os, uuid, requests
res = requests.post(
"https://anytime-capital.com/api/v1/payment-links",
headers={
"Authorization": f"Bearer {os.environ['ANYTIME_API_KEY']}",
"Idempotency-Key": str(uuid.uuid4()), # store it with the order and reuse it on retries
},
json={"title": "Consulting — October", "amountCents": 12500, "singleUse": True, "metadata": {"orderId": "1042"}},
timeout=30,
)
link = res.json()
if not res.ok:
raise RuntimeError(f"{link['error']['code']}: {link['error']['message']}")
print(link["url"]) # send the customer here{
"object": "payment_link",
"id": "pl_4kTz8QwN2xYb6RcD1mPa",
"url": "https://anytime-capital.com/pay/business/pl_4kTz8QwN2xYb6RcD1mPa",
"title": "Consulting — October",
"description": null,
"amountCents": 12500,
"currency": "usd",
"active": true,
"singleUse": true,
"shippingCents": 0,
"collectShipping": false,
"allowDiscountCodes": false,
"successUrl": null,
"confirmationMessage": null,
"requireTermsConsent": false,
"metadata": {
"orderId": "1042"
},
"items": [],
"createdAt": "2026-10-01T09:30:00.000Z",
"deactivatedAt": null,
"allowQuantity": false,
"maxQuantity": null,
"customFields": [],
"tipsEnabled": false,
"payWhatYouWant": false,
"minAmountCents": null
}4. Send the customer to the link
Redirect the customer to url, email or text it, or show it as a QR code. To keep customers on your site, open the same link as a Pay button or an inline checkout: see Checkout. Add successUrl when you create the link to bring them back to your site afterwards.
5. Confirm payment with a webhook
In Settings → Developers, choose Add endpoint, enter your https:// URL and pick payment.succeeded. Store the signing secret as ANYTIME_WEBHOOK_SECRET, verify the Anytime-Signature header on every request, and mark order data.metadata.orderId paid. The full verification code for Node.js, Next.js and Python is on Webhooks.
6. Check your payments
curl "https://anytime-capital.com/api/v1/payments?status=paid&limit=10" \
-H "Authorization: Bearer $ANYTIME_API_KEY"