From checkout to settlement.

The drop-in checkout SDK for Sui - one package, one modal, every major way to pay. You integrate once; customers pay how they like.

bash
$ npm install suioutkit

One integration. Every way to pay.

Everything merchants need to accept money and settle on Sui, without building a payment stack from scratch.

Fiat

Bank transfer and OPay (NGN), plus card checkout - built into the modal.

Crypto

Sui wallet and outPay in the same flow - no second integration.

Settlement

Payouts and receipts on Sui when checkout completes - handled for you.

What's inside the package.

A quick look at the SDK surface you import from npm.

index.ts
what’s inside the package
Exports
import SuiOutKit, request, formatNgn, toTokenUnits, formatToken, createPolling, DEFAULT_API_ORIGIN, API_V1_PREFIX from "suioutkit";
// core checkout flow
class SuiOutKit
initCheckout(options) create a payment session
openModal(session, options?) bank · OPay · card · wallet UI
wrapButton(selector, options) one-line pay button on your site
confirmCryptoPayment(nonce, txDigest, method?) confirm wallet / outPay settlement
 
// utility exports
request(url, options?) fetch wrapper with timeout
formatNgn(amount) format NGN with ₦
toTokenUnits(base, decimals?) convert base units to float
formatToken(amount, decimals?, digits?) display-friendly token amount string
createPolling(fn, intervalMs) polling utility

Get started.

1

Install the SDK

Add SuiOutKit to your app or storefront.

bash
$ npm install suioutkit
2

Set your merchant address

Pass the Sui address where you want to receive settlement.

checkout.ts
src/checkout.ts
Ready
import { SuiOutKit } from "suioutkit";

const sdk = new SuiOutKit({
  merchantAddress: "0x...",
  // mode: "local", // optional, local dev
  // mode: "live",  // optional, production (default)
});
3

Open checkout

Create a session and launch the modal - or use wrapButton for a one-liner.

checkout.ts
src/checkout.ts
Ready
sdk.initCheckout({
  amount: 45000,
  currency: "NGN",
  // coinType: "0x2::sui::SUI",   // optional settlement coin override
  // metadata: { orderId: "..." },
});

Read the docs