PensoPay · payments

PensoPay integration in a custom checkout

A PensoPay integration means your custom checkout accepts cards — and usually MobilePay — through PensoPay’s API, with settlement on a Danish merchant agreement. The product is aimed at Danish shops and SaaS teams that want a gateway with local support and an API that does not assume you live in Shopify. If you already hold a PensoPay contract from an old WooCommerce shop, reusing it is almost always cheaper than changing acquirer in the middle of a build. We wire the session, hosted window or embedded field, webhook, refund and idempotency so a double-click cannot capture the same order twice. Transaction fees stay with PensoPay. In a Ceptiv package, PensoPay counts as one integration.

Pick a hosted window or an embedded field — one, not both. Switching halfway through the project means a new test matrix. Store the payment_id on the order before the customer leaves your page. Payment integrations is the right place if you are still choosing a gateway.

Jeres checkout
MobilePay
Kort
Checkout with PensoPay as the card layer and MobilePay as the Danish button.

What a PensoPay integration must do in your system

  • A payment session after the order is locked — amount and currency set server-side
  • Hosted window or embedded field. Pick one and stay on it
  • Webhook on capture, refund and failed. Show “paid” only after the signature is verified
  • Idempotency: the same order must not be captured twice if the customer double-clicks
  • Admin: a refund button with a reason, so bookkeeping can see it without opening PensoPay
1

Order locked

The backend creates a PensoPay session with your order id as the reference.

2

Customer pays

Card or MobilePay in the chosen window. 3-D Secure runs at the gateway.

3

Webhook

You verify the call, write status, and can trigger bookkeeping.

4

Refund

Happens from your admin with user id and reason — not only in the PensoPay dashboard.

From locked order to settled payment.

PensoPay, QuickPay or Stripe

PensoPay or QuickPay

  • Danish agreement and support
  • MobilePay usually in the same pipe
  • Good if you are already a customer in DK

Stripe

  • Strongest on subscriptions and seats
  • Weaker Danish support
  • MobilePay often no or a workaround
Keep the agreement you already have. A new acquirer mid-project is a project of its own.

A quick comparison. The contract you hold beats the logo you like.

PensoPayQuickPayStripe
Danish agreement and supportStrongStrongWeak
MobilePayUsually yesUsually yesOften no / workaround
Subscriptions and seatsOkayOkayBest
PensoPayQuickPayStripeMobilePay
Same checkout UI. Different agreements behind it.

What people forget about 3-D Secure

3-D Secure fails on older phones and on corporate cards with an extra step-up. Your UI needs a path back to the cart, not a white page. Also read QuickPay integration and Stripe integration if you are still choosing a gateway.

A new acquirer in the middle of a build is KYC, PCI questions, 3-D Secure testing and the first settlement. It is not a footnote in another quote.

When you already have PensoPay from WooCommerce

Keep the merchant agreement. Change only the system that calls the API. Tell us the merchant id, whether you use hosted or embedded, and whether MobilePay is already enabled. Then we can say if you are a one-integration package. MobilePay integration is a separate track if you also need Invoice or Subscriptions.

FAQ: PensoPay integration

Can PensoPay run without a webshop?

Yes. The API is for invoices, booking and subscriptions as much as for carts.

Should we switch to Stripe because we are rebuilding?

Only if you need something PensoPay cannot do. A new system is not by itself a reason for a new acquirer.

Who sets the transaction fee?

PensoPay. We do not invent their rates as our price. Our number is the package that builds the flow.

What about a double-click on the pay button?

Idempotency on the order id. Without it you capture twice and refund afterwards. That is more expensive than building it correctly.