Stripe implementation note · checked 11 August 2026

From identity check to first payout.

A hands-on setup route for an AI image service selling prepaid generation credits from Hong Kong or Singapore.

01
HK bank account?

Yes, use a current account that matches the Stripe business and payout currency. Stripe pays out; you do not manually bank money into Stripe for each sale.

02
Passport or HKID?

HKID is the normal route for a Hong Kong individual. A government-issued alternative can be accepted for a business representative; Stripe may request more documents.

03
What code goes in the site?

Only a publishable key belongs in browser code. Secret keys and webhook signing secrets stay on your server.

Six gates before launch

Complete them in this order. The Dashboard is the source of truth for what Stripe has enabled for your specific account.

  1. 01

    Choose the account country

    Select the country where the legal business is registered and where the operating bank account is held. Do not choose a customer market to gain a preferred payment method.

    Stripe country availability ↗
  2. 02

    Activate and verify the operator

    For the individual route, use your exact legal personal and HKID details. For a registered business, prepare its legal name, registration number, address, owners, and representative. Both routes need a real website, accurate product description, pricing, refund rules, credit terms, and content policy.

    HK verification requirements ↗
  3. 03

    Add the payout bank account

    In Dashboard: Settings → Business → Bank accounts and currencies. Add a current account whose holder name and currency match the payout configuration. Start with HKD for a Hong Kong account or SGD for Singapore.

    Stripe bank-account steps ↗
  4. 04

    Create test and live keys

    Dashboard → Developers → API keys. Build in test mode first. The live keys appear only after activation and should be injected as server environment variables, never committed to a repository.

    See the key map ↓
  5. 05

    Activate payment methods

    Dashboard → Settings → Payment methods. Begin with cards, Apple Pay, and Google Pay. Add Alipay and WeChat Pay if your customer data supports them. PayNow is a Singapore-specific QR method.

    Compare methods ↓
  6. 06

    Register and verify webhooks

    Register an HTTPS endpoint and verify Stripe’s signature using the raw request body. Grant credits only after a verified, idempotently processed payment event.

    Webhook documentation ↗

What Stripe will ask for

Underwriting is account-specific. Treat the list below as preparation, not a guaranteed document checklist.

Identity

HKID is the cleanest path

A
HKID

Use the Hong Kong identity number when signing up as an individual or representative, as requested by the Dashboard.

Preferred
P
Passport / government ID

Stripe says another government-issued identification can be accepted for a representative of a Hong Kong business without an HKID.

Possible
BR
Business Registration Number

If you have a Hong Kong BRN but no HKID, Stripe’s guidance says to select “Sole Proprietorship” during activation.

Case-specific

Payout

Yes, a Hong Kong bank account works

Stripe
balance
automatic payout
HKD bank
current account
  • Use an account that matches the Stripe account’s legal business and payout currency.
  • Start with the locally denominated account: HKD for Hong Kong, SGD for Singapore.
  • Stripe says HK and SG merchants can add a USD bank account after activation; the account must be based in the relevant country.
  • Do not use a virtual, neobank, or TransferWise account for that USD payout feature unless Stripe confirms eligibility.
USD payout requirements ↗

There are three different secrets.

Only one is safe to expose. The exact prefixes are visible in Stripe’s Dashboard and may change; treat these as recognition hints.

Browser-safe
pk_test_... / pk_live_...

Publishable key

Use with Stripe.js or Elements in browser code. It can identify your account, but cannot create charges or issue refunds by itself.

Place in: frontend env
Server-only
sk_test_... / sk_live_...

Secret key

Use on your server to create Checkout Sessions, query payments, and manage refunds. Never send it to a browser, mobile app, log, or Git repository.

Place in: server env
Webhook-only
whsec_...

Signing secret

Create it under Developers → Webhooks for each endpoint. It verifies that the webhook came from Stripe. It is separate from API keys.

Place in: webhook handler env
.env.example
STRIPE_PUBLISHABLE_KEY=pk_test_replace_me
STRIPE_SECRET_KEY=sk_test_replace_me
STRIPE_WEBHOOK_SECRET=whsec_replace_me

Commit the example names, never real values. Use your hosting provider’s encrypted environment settings for live keys.

01Your servercreate Checkout Session
02Stripe Checkoutcustomer pays
03Webhookverify + grant credits

What users can choose

Availability is country-, currency-, and account-dependent. Turn methods on in Dashboard, then let Checkout dynamically show eligible methods.

MethodCustomer experienceFee / operational noteStart?
CCardCard number, wallet autofill, 3-D Secure when neededHK domestic: 3.4% + HK$2.35; international cards: 3.4% + US$0.30Yes
AApple PayFace ID / Touch ID wallet confirmationNormally follows the underlying card pricing; no separate wallet surcharge is shown on the standard HK/SG card rate pages.Yes
GGoogle PaySaved card and device authenticationNormally follows the underlying card pricing; availability depends on browser, device, domain registration, and account.Yes
AAlipayRedirect or app confirmation; eligible flows can present a QRMethod-specific pricing. Check the Stripe HK/SG payment-method fee table before enabling.Test
WWeChat PayRedirect or app confirmation; desktop flows may use a QRMethod-specific pricing. Useful if Chinese customers are a meaningful segment.Test
PPayNowCustomer scans a QR code with a participating Singapore bank or wallet appSingapore-only. Stripe says the QR is valid for one hour; refunds are asynchronous and method-specific.SG only
QR code answer

Cards do not have a bank-transfer QR code. PayNow does. Alipay and WeChat Pay can use redirect or QR-style flows depending on the checkout context. Do not build a static QR that marks an order paid; use Stripe Checkout and the verified webhook.

You do not “bank in” each payment.

Customer funds first appear in your Stripe balance. Stripe then sends payouts to the linked bank account on the schedule shown in Dashboard.

01

Customer pays

Stripe processes the payment and subtracts its processing fee, refunds, disputes, and other applicable adjustments.

02

Balance settles

Your Stripe balance becomes available according to the account’s settlement timing and payment method. It is not necessarily instant.

03

Stripe pays out

Stripe sends the available amount to the selected HKD, SGD, or eligible USD bank account. Payout timing and currency settings live in Dashboard.

Recommended first configuration

Hong Kong business: HKD current account → HKD default payout → add USD only after activation if you genuinely need USD settlement. Keep a cash buffer for refunds and disputes; do not spend the entire available balance on image-generation compute.

Prove the whole loop.

For your credit product: store the provider event ID, order ID, user ID, price, currency, and credit grant in an immutable ledger. A “success” browser redirect is not proof of payment.

Stripe sources used

Primary documentation checked 11 August 2026. Fees and eligibility can change by country and account.

  1. Stripe accountsImmediate test-environment access and separate live activation.
  2. Requirements for Hong Kong-based businessesHKID, government-issued ID, BRN/entity guidance.
  3. Add a bank account for payoutsCurrent account, matching name/currency, Dashboard steps.
  4. Receiving USD payouts for HK and SG usersActivation prerequisite, local-country USD bank account rules.
  5. API keysPublishable, secret, restricted, and webhook-secret distinction.
  6. WebhooksHTTPS endpoint and signature verification.
  7. Payment method supportCountry availability for Alipay, Apple Pay, Google Pay, PayNow, and WeChat Pay.
  8. PayNowQR flow, one-hour expiry, asynchronous refunds.
  9. Stripe HK pricing · Stripe SG pricingStandard card and local-method pricing notes.
  10. Hong Kong IRD business registrationStripe activation does not replace local registration obligations.