// guide

Accept payments with SkyPay

Everything on one page — get your API key, add checkout, verify payments, and get paid.

Getting started

SkyPay lets you take eSewa, Khalti, and bank payments through one integration. Here's the short version: grab your API key, send customers to checkout, verify the payment, deliver the order. That's it.

Merchant account

Sign up at app.skypay.dev.

API key

Generated from your dashboard.

A payment provider

eSewa, Khalti, or bank — at least one.

// mobile

Building a Flutter mobile app?

Use the official skypay_sdk package — one integration for eSewa, Khalti, and more on Android & iOS. Provider list loads from your SkyPay account automatically.

skypay_sdk: ^0.0.7 · install guide, example app & full docs on pub.dev

Get your API key

You'll pass this key on every checkout link and verify request.

  1. 1 Log in to the merchant dashboard at app.skypay.dev
  2. 2 Open Developers → API Keys (or Profile → API Key)
  3. 3 Create or rotate a key and copy it once
  4. 4 Use the key in the Key header for verification; generate checkout links from the dashboard (signed ck token)

Connect providers

Turn on the payment methods your customers actually use.

  1. 1 Open your Merchant Dashboard
  2. 2 Go to Providers
  3. 3 Add and configure eSewa, Khalti, or Other
  4. 4 Save — you’re ready to accept payments

Integration modes

Pick how you want to accept payments. You can switch anytime from the dashboard.

API Mode

Most popular

Fully automatic payments. Connect your own eSewa/Khalti merchant credentials.

Best for: Businesses with merchant accounts

Manual Mode

P2P friendly

Customers pay via QR or bank transfer; you confirm in the dashboard. Fulfill with webhooks — redirects alone are not enough.

Add checkout to your site

Redirect customers to SkyPay with a link or form. On return, verify the payment.

  1. Your app generates a unique code (order ID).
  2. Generate a checkout link from the dashboard (includes a signed ck token).
  3. SkyPay handles the payment at app.skypay.dev/checkout.
  4. Customer returns to your success or failure URL.
  5. Verify server-side, then fulfill the order.

Parameters

ParamDescription
ckSigned checkout token from the dashboard (not your raw API key)
amountAmount to be paid (in Rupees)
codeUnique order ID (used for verification)
success_urlRedirect after successful payment
failure_urlRedirect after failed payment

Checkout link

html
<a href="https://app.skypay.dev/checkout?ck=YOUR_CHECKOUT_TOKEN&amount=100&code=ORDER123&success_url=https://yourapp.com/success&failure_url=https://yourapp.com/failure">
  Pay with SkyPay
</a>

Great for quick redirects, email/SMS links, or low-code flows.

Verify payments

Always verify after redirect and before fulfillment. A success screen doesn't mean the money landed.

ElementValue
MethodGET
Endpointhttps://app.skypay.dev/api/v1/checkout/payments-verify/{code}
HeaderKey: YOUR_API_KEY
javascript
const res = await fetch(
  'https://app.skypay.dev/api/v1/checkout/payments-verify/ORDER123',
  { headers: { Key: 'YOUR_API_KEY' } }
);
const { data } = await res.json();

if (data?.status === 'complete') {
  // Fulfill the order
}

Status values

StatusMeaning
completePayment successful — fulfill the order.
waitingManual payment marked paid, awaiting your review. Manual Mode tutorial →
pendingSession active, user hasn't finished.
cancelledUser cancelled or the session timed out.
failedProvider validation failed.

Use cases

The same integration fits a lot of business models:

eCommerce & stores

Accept eSewa, Khalti, or bank right at checkout.

Student projects

Learn integration without real merchant accounts (Manual mode).

Freelancers & P2P

Sell via Instagram/TikTok with payment links — no website needed.

SaaS & marketplaces

Let your users plug in their own providers.

Restaurants & POS

QR payments at the table, counter, or kiosk.

ERP & invoicing

Collect money from internal tools, CRMs, and billing software.

Using QR or bank transfer?

Read the Manual Mode tutorial — redirects, webhooks, and how to fulfill safely.

Continue after mark paid → — let customers leave while you verify via webhooks

Manual Mode tutorial →

Ready to go live?

Create your account and grab your API key in minutes.