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.
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.
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.
Only a publishable key belongs in browser code. Secret keys and webhook signing secrets stay on your server.
01 / Account workflow
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.
- 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 ↗ - 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 ↗ - 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 ↗ - 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 ↓ - 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 ↓ - 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 ↗
02 / Verification & payout
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
Use the Hong Kong identity number when signing up as an individual or representative, as requested by the Dashboard.
Stripe says another government-issued identification can be accepted for a representative of a Hong Kong business without an HKID.
If you have a Hong Kong BRN but no HKID, Stripe’s guidance says to select “Sole Proprietorship” during activation.
Payout
Yes, a Hong Kong bank account works
balance
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.
03 / Website connection
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.
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 envsk_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 envwhsec_...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 envSTRIPE_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.
create Checkout Sessioncustomer paysverify + grant credits04 / Customer payment methods
What users can choose
Availability is country-, currency-, and account-dependent. Turn methods on in Dashboard, then let Checkout dynamically show eligible methods.
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.
05 / Getting your money
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.
Customer pays
Stripe processes the payment and subtracts its processing fee, refunds, disputes, and other applicable adjustments.
Balance settles
Your Stripe balance becomes available according to the account’s settlement timing and payment method. It is not necessarily instant.
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.
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.
06 / Test before launch
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.
Evidence ledger
Stripe sources used
Primary documentation checked 11 August 2026. Fees and eligibility can change by country and account.
- Stripe accountsImmediate test-environment access and separate live activation.
- Requirements for Hong Kong-based businessesHKID, government-issued ID, BRN/entity guidance.
- Add a bank account for payoutsCurrent account, matching name/currency, Dashboard steps.
- Receiving USD payouts for HK and SG usersActivation prerequisite, local-country USD bank account rules.
- API keysPublishable, secret, restricted, and webhook-secret distinction.
- WebhooksHTTPS endpoint and signature verification.
- Payment method supportCountry availability for Alipay, Apple Pay, Google Pay, PayNow, and WeChat Pay.
- PayNowQR flow, one-hour expiry, asynchronous refunds.
- Stripe HK pricing · Stripe SG pricingStandard card and local-method pricing notes.
- Hong Kong IRD business registrationStripe activation does not replace local registration obligations.