For developers
A PSP-shaped API without the PSP
If you have integrated a modern payments API, this will feel familiar: idempotency keys, signed webhooks, test and live keys, integer minor units. The difference is what sits behind it.
One integration, the whole flow
- Products, payment links and checkout sessions through one REST API
- Subscriptions with trials and proration preview
- Signed webhooks with retries, replay and a test-event button
- Typed Node SDK with no runtime dependencies
- Go live by switching the key; no code changes
// npm i @pandycon/sdk
import { Pandycon } from "@pandycon/sdk";
const pandycon = new Pandycon("pandy_sk_test_...");
const product = await pandycon.products.create({
project_id: "proj_demo",
name: "Starter plan",
prices: { USD: "4900", EUR: "4500" },
});
const session = await pandycon.checkoutSessions.create({
project_id: "proj_demo",
product_id: product.id,
success_url: "https://yoursite.com/thanks",
});
// webhook: order.paid → purchase_price_minor
// accrues to your payables
Principles
Integer minor units
Money is integers in cents, sent and returned exactly. No floats anywhere in the money path.
Idempotent by key
Retries are safe: the same idempotency key returns the same result, never a second charge.
Test mode is the whole flow
Test keys run checkout, webhooks and subscriptions end to end. Going live is one key swap.
Read the reference
Every endpoint, with copy-paste examples and the Node SDK.