sayren

Many payment gateways,
connected through one API.

Register the keys from your payment gateway (PG) contract in the Sayren dashboard. Sayren handles payment approval, cancellation and partial refund amounts.

  • Toss PaymentsCards · wallets · bank transfer · mobilePG
  • PortOne V2Payment methods of the PGs on your channelPG aggregator
  • KakaoPayDirect wallet integrationWallet
  • NaverPayDirect integration (payment type)Wallet

+ More payment gateways are on the way.

Coverage

Payment methods and features by PG.

Supported payment methods and features by PG
FeatureToss PaymentsPortOne V2KakaoPayNaverPay
Credit and debit cardsSupportedChannel settingNot supportedNot supported
Wallet paymentsNaverPay · KakaoPay · TossPay · PAYCOChannel settingKakaoPayNaverPay
Bank transfer · mobileSupportedChannel settingNot supportedNot supported
Partial cancellationSupportedSupportedSupportedSupported
Cash receiptsSupportedSupportedNot supportedNot supported
Sayren test keySupportedSupportedSupportedSupported

PortOne uses the payment methods accepted by the PGs connected to your channel. Virtual accounts are not yet supported for live payments.

Payment flow

Your storefront only opens the payment window.

When the customer completes payment, the Sayren server approves it. Approval keys never stay in the browser.

  1. 01Checkout · Get the list of payment options (PG · payment method · wallet provider).
  2. 02Start payment · The SDK opens the PG payment window.
  3. 03Approval · The PG returns to Sayren, and the server checks the amount before approving.
  4. 04Return · Read the result on your storefront's return page.
checkout.ts
import { createPayments } from "@sayren/storefront-sdk/payments";

const payments = createPayments({ client: sdk, returnUrl });

// Checkout — payment options come with it
const checkout = await sdk.checkout.create({ cartItemIds });

// Start payment — opens the PG payment window
await payments.start(checkout.checkoutId, {
  option: checkout.paymentOptions[0],
  shippingAddress,
});

// Return page
const result = await payments.result();
From test to live

Run test payments before you sign a PG contract.

Turn on test mode keys and the payment window opens with test keys provided by Sayren. For real payments, switch to live keys after signing a PG contract.

  1. Turn on test mode keys

    Test payments right away, no contract needed

  2. Connect your test keys

    Test the connection with test keys from your PG

  3. Test payment · refund

    One payment and one refund of that payment

  4. Go live

    Switch after testing the live key connection

After payment

Sayren also handles what comes after payment.

  • Partial refund settlement

    Calculates coupon allocation and return shipping fees based on the order snapshot.

  • Duplicate payment cancellation

    If a customer pays twice, the later payment is canceled automatically.

  • Unresolved payment checks

    Payments with a lost response are confirmed by querying the PG again.

  • Cash receipts

    Issued for bank transfer payments and adjusted when you refund.

  • Sales report

    Payments, refunds and net sales by PG and payment method

  • Payment failure alerts

    Get an email when the same failure repeats because of a merchant setting issue.

Sales proceeds settle directly from the PG to you.

Sayren never holds your sales proceeds. Payment fees are your contracted PG rate, unchanged.

  1. CustomerPays
  2. PGSettles
  3. SellerReceives

Frequently asked questions

Can I use more than one PG?

Yes. The payment options at checkout list the payment methods of every PG you turn on, and the payment goes through the PG of the option the customer picks.

Can I start without a PG contract?

You can run test payments with test mode keys. Real payments require a PG contract and registered live keys.

Is card information stored on Sayren servers?

No. Customers enter card details in the PG payment window, and Sayren receives only the approval result.

Can I integrate without the SDK?

Yes. Integrate directly with the payment start and status APIs and the PG script. Native apps send the PG app SDK result to the approval API.

How are PG keys stored?

They are encrypted per store and stored only on the server. The dashboard shows only the first 4 characters, and only public keys reach the browser.