FAQ

Find answers to common questions about GoPay MiniApp integration:



General FAQ

QuestionsAnswer
How to start onboarding MiniApp in GoPay
How do I register as a merchant?If you're not yet integrated with GoPay via Midtrans, please register through the official guide .
Where do I find my Merchant ID?You can find your Merchant ID on your Midtrans dashboard or by contacting your Account Manager. (docs)
How long does onboarding take?Onboarding typically takes around 5–7 working days.
Where will my mini app be shown in the GoPay app?You can reach out to the Midtrans sales team or GoPay business counterpart for the details
Can I onboard multiple mini apps under one Merchant ID?Yes, it's possible to register multiple mini apps under the same Merchant ID. Each mini app will have a unique GoPay_mini_app_id and PoP ID.
Do we have a sandbox or staging environment for testing?We don't at this moment, currently all testing is pointing at GoPay production. What we can do is update the redirectURL to point MiniApp staging or production environments.
What is the payment method required for MiniAppWe only support Bi-Snap payment method, which acts like a checkout redirection. MiniApp will redirect to GoPay Payment Review page and redirect back to the miniapp after transaction
What do I do if the final URL doesn't load?Make sure the domain is whitelisted and matches with the one submitted. Please also check if your Mini App ID is active and all dependencies (client ID, tokens, SDK) are properly integrated.
How can I check if my domain is whitelisted?If your mini app isn't loading or returns an unauthorized error, your mini-app domain may not be whitelisted yet by GoPay team. Please reach out to [email protected] to ensure it's been reviewed and whitelisted.
What should I do if I need to update my domain or URL after onboarding?You can submit the same onboarding form and select "Update existing Miniapp" onboarding form "Whitelist Domain"
Updating domains without whitelisting will result in connection failures.
Can I update my Mini App logo, name, or metadata after launch?You can submit the same onboarding form and select "Update existing Miniapp" onboarding form "MiniApp Icon"
How to integrate with the payment API?Please use the BI-SNAP Core API Redirection Deeplink
What’s the flow for payments?The user experience will be: FE(MiniApp) → BE → Get redirect URL→ Open payment (GoPay) → Redirect back(MiniApp).
What is the incremental work in the payment if I have integrated previously with Midtrans?Merchants should share the PoP ID in the header for non-BI SNAP API or body for BI SNAP API for payment API and should trigger the API through payment SDK
Can I use my existing SNAP Checkout Midtrans integration?Currently no, we're planning to support this payment method in miniapp and still in development.
Can I use my existing tokenization integration?No, at the moment, tokenized payments are not supported in the mini app payment integration
Are recurring payments supported?No, at the moment, recurring payments or subscriptions are not supported in the mini app payment integration.
Can I send GoPay Coins/emoney?Yes, via /v1/mini-apps/rewards. Currently, only GoPay Coins are available for disbursement.
Do I need a wallet balance?Yes, you need to top up the wallet balance before sending GoPay Coins. Please reach out to the Midtrans sales team or GoPay business counterpart to get the VA to top up.
Can I send reminders?Yes, you can send a reminder via /v1/mini-apps/reminder. But please discuss with your Midtrans sales team or GoPay business counterpart before using it.
Who do I contact for help?For any technical support, you can send out an email to [email protected] or reach out to your Midtrans sales team or GoPay business counterpart.


Seamless Login and Payment FAQ

QuestionsAnswer
Why i'm getting errors when calling getAuthCode?Make sure you're calling getAuthCode correctly and call getAuthCode only after deploying the mini app, not when running locally. The SDK works as a bridge between the mini app and GoPay. If you run locally, there’s no mini app container for the SDK to connect to, so getAuthCode won’t work. You may use the MiniApp Deeplink provided by GoPay to test this.
Why i must call getAuthCodeThe authCode can only be generated when the user opens the Mini App because it serves as real-time proof that the request is from an active, authenticated GoPay session. Since it’s tied to the user’s current login state and expires quickly, it’s not possible or secure to provide it in advance. If we were to provide it in advance, there would be no real validation of the user’s session.
How do I get an auth code?To retrieve the auth code, you might call getAuthCode() in SDK.
How long is it valid?The auth code is valid for 6 minutes.
What i must call getAuthToken?getAuthToken gives you token that will be used to call other GoPay BE APIs and user's account id. Make sure you get the credentials via Email to be used as the Authorization header.
What value needs to be inputted into the authorization header in the request?The authorization header should include either Bearer or Basic, depending on the API and credentials required for the specific request. More details are available in the backend API documentation.
Where to find the authorization header when calling getAuthTokenYou will receive the authCredentials via email.
How do I get access token?Please use the auth code in backend API /v1/mini-apps/authorizations/token.
Can I reuse the token?Yes, the token can be reused. Tokens do not expire and can be safely cached per user.
Why am I getting a 401 Unauthorized error?This usually means your auth token is missing, expired, or incorrect. Double-check if you are sending the token in the Authorization header and that it’s valid.
How payments work inside GoPay MiniApp?Payments in a GoPay MiniApp work through a one-time checkout flow. Your backend needs to call the BI-SNAP Core API to create a Payment Deeplink, then from the MiniApp you launch that deeplink using the launchPayment SDK. This will take the user to the GoPay payment page to complete the transaction, and once done, the user is automatically redirected back to your MiniApp. To confirm the result, you should always verify the payment status from your backend or via BI-SNAP notification.
My payment is stuck in "pending", what should I do?Check the Midtrans dashboard for transaction status. Make sure PoP ID is included in the payment call and that redirect/callback URLs are configured correctly.
What is a PoP ID?A Point of Purchase ID (PoP ID) is provided by GoPay for payment tracking. You can request this from your business or partnership contact at GoPay.
When will I receive my PoP ID?You will receive your PoP ID after tokenization is completed and the Partnership team generates it. Reach out to your GoPay contact if it hasn’t been shared yet.
What is the Payment E2E Flow?1.Integrate Payments on Sandbox
  • Log in to Midtrans and open Sandbox Dashboard
  • Request GoPay team to activate generation key- Generate Public and Private Key
  • Use Sandbox base URL:
    merchants.sbx.midtrans.com
  • Integrate Access token b2b API
  • Integrate payment host to host API
  • Test payment deeplink on web only
    Note: Sandbox only supports payment testing via web (not MiniApp)**
    2.Migrate to Production
  • Log in to Midtrans and open Production Dashboard
  • Request GoPay team to activate generation key
  • Generate Public and Private Key
  • Change base URL from:
    merchants.sbx.midtrans.com to merchants.midtrans.com
  • Add PoP ID on Payment Host to Host API
  • Use launchPayment SDK to open the payment deeplink
  • Test payment deeplink on MiniApp
    Note: In Production, payments will redirect to GoPay App and then back to the MiniApp
What happens if the user closes the app before completing payment?The transaction will remain in an incomplete state. You can monitor status on the midtrans dashboard.
How can I validate that a payment has been completed?Please use the /v1.0/debit/notify webhook from the GoPay backend. It confirms payment success and provides reference details.
How to configure redirection after payment has been completed?You dont need to configure redirection, it happens automatically after using Launch Payment
How do we test the payment process to the GoPay app?Currently, there’s no public GoPay Mini App staging environment. For testing purposes, we typically support merchants by funding a small amount to their account so they can test the flow in the produc
How do we test the redirection to the GoPay app?We’ll provide a production deeplink to open the Mini App in the GoPay app. To test redirection, merchants must implement the payment API, which redirects users to GoPay for payment. After a successful payment, it will automatically redirect back to the Mini App, but only if launch paymentused to open the payment deeplink.
What to fill inside channel-id during payments?It's a 5 digit numeric


Backend API FAQ

QuestionsAnswer
What is the difference between pre-launch and post-launch consents?Some features require user consent.
  • Pre-launch consent: Shown as a popup when the mini app is first opened; can be either mandatory or optional.
  • Post-launch consent: Shown as a popup only when the getConsent SDK is called; must always be optional.
Is there any limit request per second for the Push Notification API?There is no limit for sending the PN as of now
Can I personalize push notifications per user behavior?Yes, as long as you manage targeting and parameters from your backend. The API supports custom fields through template_parameters.


V2 Integration FAQ

QuestionsAnswer
What is the overall E2E flow of the onboarding process?[Merchant side to][GoPay side to]
  • QA to review and confirm the MiniApp Flow + Figma
  • Sales team to configure PoP ID
  • MiniApp tech support to generate MiniApp using submission form
  • MiniApp tech support to send MiniApp Integration Guide and AuthCredentials via Email
[Merchant side to]
  • Build your MiniApp based on the Integration Guide.
  • Once you've completed development, submit MiniApp Completed using the same
    onboarding form.
[GoPay side to]
  • QA team conducts UAT and provides final sign-off
  • After QA sign-off, the rollout team will deploy the MiniApp
  • Merchant will be notified once the MiniApp is live in GoPay
Where do i find the Frontend SDK for V2The GoPay Container V2 Frontend SDK is available Here


V1 Integration FAQ

QuestionsAnswer
What is the overall E2E flow of the onboarding process?[Merchant side to][GoPay side to]
  • Invite Merchant to GoPay MiniApp Portal
[Merchant side to][GoPay side to]
  • Approve workspace
[Merchant side to][GoPay side to]
  • QA to review and confirm the MiniApp Flow + Figma
  • Sales team to configure PoP ID
  • MiniApp tech support to generate MiniApp using submission form
  • MiniApp tech support to send Mini App Credentials and Integration Document via Email
[Merchant side to][GoPay side to]
  • QA team conducts UAT and provides final sign-off
  • After QA sign-off, Tech Support to Approve the Release
[Merchant side to][GoPay side to]
  • If you've selected "New Release" during the form submission, after QA sign-off, the rollout team will deploy the MiniApp
  • Merchant will be notified once the MiniApp is live in GoPay
Where do i find the Frontend SDK for V1The GoPay Container V1 Frontend SDK is available Here