Pandycon

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.