Checkout stays with your store.

The payment window opens over your own page. Buyers pay with eSewa, Khalti, or Fonepay, wallet approval stays with the provider, and they land back on your cart, not on ours.

  • Your address bar, start to finish
  • eSewa, Khalti, Fonepay inside
  • Growth plan and up

They pay. Your page never moves.

The address bar is the whole difference. It stays on your domain through the whole payment, including the moment most checkouts never show: the buyer closes the window, comes back, and picks up the same payment instead of starting a second one.

Wallet approval stays with the provider
The buyer enters their PIN with eSewa or Khalti, never with you or us. Fonepay QR confirms inside the window.
Same checkout, same verification
It is the hosted checkout in a window. Payments are verified server-side and your webhook is signed the same way.

The card on the right is the real sandbox button. Press Pay and the real checkout opens, with no real money involved.

Your store

Connecting to the sandbox

NPR 10
Sandbox totalNPR 10
Ram Bahadurram@example.com · 98XXXXXXXX

Accepted here

eSewaKhaltiFonepay

This sandbox runs on eSewa and Khalti. Fonepay is live in production, just without a sandbox.

Checkout stays with your storeWallet approval stays with the provider.

No real purchase · Powered by PayBridgeNP

Allow your domain, then pick a path.

A fixed-price button needs no server code. A cart your own server prices needs no button. Both open the same overlay on your page, and both need your exact origin under Project, Embed domains, per mode, so sandbox and live are registered separately.

Read the Embedded Checkout guide
  • 1

    A fixed price

    No server code

    One product, one amount. Create a payment button, tick one box, paste one tag beside your buy button.

  • 2

    A real cart total

    Your server sets the amount

    Per-product pricing, or a basket that changes. Your server creates the session, so the browser cannot edit the price on the way. No button involved.

  • 3

    On Shopify, WooCommerce or WHMCS?

    Those plugins run Hosted Checkout. Embedded is for a site whose pages you control.

What your buyer actually sees.

Most buyers here finish on a phone. They tap Pay on your cart, pick a wallet, approve it in that wallet the way they always do, and come back to a confirmed order without ever leaving your store.

  • Your address, all the way

    Your domain in the bar, before and after the payment.

  • Their cart is still there

    It dims behind the sheet. Nothing unmounts, nothing is lost.

  • The sheet is the checkout

    It asks for contact details, then the wallet, on your page.

  • The PIN leaves for the wallet

    eSewa and Khalti take it in their own app, never here.

The buyer's side of one payment: tap, pick a wallet, approve it in the wallet, and land back on the store's own cart.

Questions before you put it on the cart page

Read the guide
What is Embedded Checkout?

It is a payment window that opens over your own page instead of sending the buyer to a separate checkout page. Your shop stays behind it and the window closes when payment finishes. PayBridgeNP builds, hosts and secures everything inside the window.

How is it different from Hosted Checkout?

The checkout is the same, but the entry point is different. Hosted Checkout sends the buyer to a PayBridgeNP-hosted page. Embedded Checkout opens the payment step over your website. Both accept eSewa, Khalti, and Fonepay and verify payments the same way.

What if my domain is not on the allow list?

Checkout falls back to a full-page redirect instead of opening blank. The payment still completes the same way. Add your exact origin under Project, Embed domains, to get the overlay back.

Does the buyer still open eSewa or Khalti?

For wallet approval, yes. The wallet opens its own app or site so the buyer enters their PIN with the provider, never with you or PayBridgeNP. On a phone the wallet opens and returns. Fonepay QR confirms inside the checkout.

What if the buyer closes checkout halfway?

Reopening checkout restores the same payment instead of creating another one. Details already entered are still there, so the buyer can continue without paying twice for the same order.

Are returning buyers recognised inside the overlay?

Mostly. A returning buyer types their number, gets a code, and their saved details fill in, exactly as on the hosted checkout. What the overlay cannot do is greet them before they type: that needs a cookie on our own domain, and browsers withhold it from a page running inside another site.

Do I have to build the payment form?

No. Add the Payment Button script and PayBridgeNP handles the fields, validation, Nepali translation, QR, expiry countdown and error states. Your site never handles payment credentials.

Can I use it on a cart page with a changing total?

Yes, with a cart session. Your server calls POST /v1/checkout with the total and an embedOrigin, then your page opens the returned checkout_url with window.PayBridgeNP.openSession(). The amount comes from your server, so the browser cannot change the price. Use this for real carts and for product pages where each product has its own price. A fixed-price button is fine for a single item; what you must not do is let a custom-amount button read a cart total off the page.

Which plan includes Embedded Checkout?

Growth or higher. Hosted Checkout works on the Free plan, so it is the checkout route to use there.

Growth plan

Keep the store. Keep the customer.

Try the sandbox on this page, then create the button your own store will use.