Billing

Qonversion

Connect Qonversion so subscriptions, one-time purchases, renewals, and refunds attach to the creator who drove the install. Work in Tap App Link first, then click through the Qonversion dashboard with the values you copied.

Vendor reference: Qonversion webhook docs · Dashboard: https://dash.qonversion.io

1. Copy the URL from Tap App Link

  1. Open your app, then Revenue Tracking.
  2. Switch the workspace to the environment you are connecting (Sandbox or Production). Each environment has its own URL and secret.
  3. Select Qonversion and generate a signing secret.
  4. Copy the webhook URL and the Authorization value shown next to it.

2. Identify in your app

After trackInstall(), call setAppUserId() with Qonversion.identify(userId) / custom_user_id. The id on the webhook has to be the same string.

  1. Call Qonversion.identify with a stable user id you control. That becomes custom_user_id on webhooks.
  2. Pass that same string to setAppUserId. If you skip identify, custom_user_id is empty and matching falls back to Qonversion's own user_id.
  3. Call setAppUserId immediately after trackInstall, before the first purchase.
await TapAppLink.trackInstall();
await Qonversion.getSharedInstance().identify(myUserId);
await TapAppLink.setAppUserId(myUserId);

3. Qonversion dashboard

  1. Open Integrations, then Webhooks in the Qonversion dashboard.
  2. Qonversion uses one form with a main URL, a Sandbox Webhook URL, and a single Header Authorization-Token.
  3. For sandbox: paste the Tap App Link sandbox webhook URL into Sandbox Webhook URL, and the sandbox signing secret into Header Authorization-Token (raw secret, no Bearer). Qonversion prefixes Basic. Save and verify a sandbox purchase.
  4. An empty Sandbox Webhook URL means sandbox events fail to deliver.
  5. When you go live: paste the Tap App Link production webhook URL into the main URL field, and the production signing secret into Header Authorization-Token. Save again. Qonversion's single token means you switch the token when you switch environments.
  6. Enable the event types in the list below. Leave Qonversion's default event names.
  7. Save. Qonversion sends a request to the URL and activates the integration when it receives 2xx.

Paste the signing secret into Header Authorization-Token. Use the raw secret, without Bearer. Qonversion sends it as Authorization: Basic {token}, using the token as you pasted it.

4. Events to keep enabled

Leave these event types on. Extra events are ignored. Unknown names return 2xx so the provider does not retry forever.

5. Discount codes (optional)

Map discount.billingOfferId to a Qonversion offering id and present that offering after a match or code redeem.

Full product guide: Discount codes.

6. Verify in sandbox

  1. Switch Tap App Link to Sandbox and open the Live Attribution Debugger.
  2. Start a link session, scan the QR, then launch the test build with the sandbox SDK key.
  3. Confirm the timeline reaches install matched and billing customer linked. If you retry, call resetForTesting() in debug builds first.
  4. Trigger a sandbox purchase and confirm a paid event on the timeline.

Other providers

RevenueCat · Superwall · Adapty · Billing overview

Questions: support@tapapplink.com.