Payment gateway

One payment gateway.
Nothing else on the shelf.

Dear reader — we make a single thing: a quiet, exact way to accept card payments on your site. No marketplace, no upsell tiers. This page is the whole shop.

Run a test charge →

1.4% + 20¢

per successful charge · no monthly fee

99.995%

uptime, last 12 mo

180 ms

median authorisation

T+2

payouts to your bank

PCI DSS L1

card data scope


The making-of

We kept a notebook while building it. These are the entries we'd want to read if we were trusting someone with our revenue.


Week 1

We wrote the refund path before the charge path. If money can't come back cleanly, it shouldn't go out at all.


Week 4

Idempotency keys on every write. Retrying a charge twice now costs your customer exactly once — we tested it 40,000 times.


Week 9

Card numbers never touch your server. Tokenisation happens in the browser; you only ever hold a reference.


Week 14

Webhooks are signed, timestamped and replayable for 30 days. Lost one during a deploy? Ask for it again.


Week 22

Settlement reports reconcile to the cent, in plain CSV. No dashboard required to know where your money is.


Week 31

We removed eleven settings. Defaults that are right beat options that are confusing.


What's in the box


POST /api/charge
{
  "amount": 4200,          // cents
  "currency": "usd",
  "card": "tok_…",         // from the browser
  "idempotency_key": "order_8812"
}

→ 200 { "id": "ch_…", "status": "succeeded" }

“If something goes wrong with a payment, you'll hear from a person who wrote the code. That's the whole support policy.”

— VictoryPay