RevenueDot documentation
RevenueDot is an open-source backend for in-app purchases and subscriptions on the App Store, Google Play, Amazon, Stripe and the web. Start for free on RevenueDot Cloud. These docs cover getting started, installing the RevenueDot SDK, setting up the App Store and Google Play, the API, and moving from RevenueCat.
Getting started
What RevenueDot is, a 5-minute quickstart and the three ways to connect an app.
Concepts
Projects, apps, products, entitlements, offerings, customers, events and sandbox.
SDK guides
Install the RevenueDot SDK for your platform, or keep the RevenueCat SDK and change one line.
Guides
App Store, Google Play, Amazon Appstore and Stripe setup, webhooks, integrations and data exports, testing, billing and production.
- App Store
- Google Play
- Amazon Appstore
- Stripe
- Import products
- Webhooks
- Integrations
- Ads
- Trusted Entitlements
- Test Store
- Sandbox testing
- Self-hosting
- Upgrades
- Backups
- Going to production
- Enterprise
- Single sign-on
- SCIM
- Data location
- Audit retention and exports
- Account settings
- Alerts
- Attribution
- Auth
- Benchmarks
- Charts
- Cloud billing
- Connect ai assistants
- Custom domains
- Customer Center
- Customer lists
- Experiments
- Funnels
- Galaxy store
- Growth insights
- High availability
- Move projects
- Offline entitlements
- Paddle
- Payment recovery
- Paywalls
- Product editor
- Project settings
- Purchase links
- Redemption links
- Refund Control
- Retention offers
- Revenuedot ai
- Roku
- SLA
- Stripe connect
- Support
- Targeting and experiments
- Team
- Web billing
- Web discounts
- Win-back campaigns
- Win-back offers
Migrate from RevenueCat
The importer, a side-by-side run, SDK changes, the cutover checklist and what differs.
API reference
SDK endpoints, REST API v1 and v2, extensions, errors and webhook events, from the OpenAPI document.
Error reference
One page per Apple StoreKit 2 error, Google Play Billing response code and purchases SDK error code: what it means, the cause, the fix and the vendor source.
- Play: BILLING_UNAVAILABLE
- Play: DEVELOPER_ERROR
- Play: ERROR
- Play: FEATURE_NOT_SUPPORTED
- Play: ITEM_ALREADY_OWNED
- Play: ITEM_NOT_OWNED
- Play: ITEM_UNAVAILABLE
- Play: NETWORK_ERROR
- Play: SERVICE_DISCONNECTED
- Play: SERVICE_TIMEOUT
- Play: SERVICE_UNAVAILABLE
- Play: USER_CANCELED
- SDK: configurationError
- SDK: invalidCredentialsError
- SDK: invalidReceiptError
- SDK: networkError
- SDK: offlineConnectionError
- SDK: paymentPendingError
- SDK: productAlreadyPurchasedError
- SDK: productNotAvailableForPurchaseError
- SDK: purchaseCancelledError
- SDK: purchaseInvalidError
- SDK: purchaseNotAllowedError
- SDK: receiptAlreadyInUseError
- SDK: signatureVerificationFailed
- SDK: storeProblemError
- SDK: unknownError
- StoreKit: invalidPresentationContext
- StoreKit: networkError
- StoreKit: notAvailableInStorefront
- StoreKit: notEntitled
- StoreKit: systemError
- StoreKit: unknown
- StoreKit: unsupported
- StoreKit: userCancelled
- StoreKit: ineligibleForOffer
- StoreKit: invalidOfferIdentifier
- StoreKit: invalidOfferPrice
- StoreKit: invalidOfferSignature
- StoreKit: invalidQuantity
- StoreKit: missingOfferParameters
- StoreKit: paymentMethodBindingConfigurationRequired
- StoreKit: productUnavailable
- StoreKit: purchaseNotAllowed
- StoreKit: duplicateRequest
- StoreKit: RefundRequestError.failed
- StoreKit: invalidCertificateChain
- StoreKit: invalidDeviceVerification
- StoreKit: invalidEncoding
- StoreKit: invalidSignature
- StoreKit: missingRequiredProperties
- StoreKit: revokedCertificate
Store notification reference
One page per App Store Server Notifications v2 type and subtype and per Google Play real-time developer notification: what triggers it, what your server should do and how RevenueDot handles it.
- Apple: CONSUMPTION_REQUEST
- Apple: DID_CHANGE_RENEWAL_PREF
- Apple: DID_CHANGE_RENEWAL_STATUS
- Apple: AUTO_RENEW_DISABLED
- Apple: DID_FAIL_TO_RENEW
- Apple: DID_RENEW
- Apple: DID_RENEW / BILLING_RECOVERY
- Apple: EXPIRED
- Apple: EXPIRED / BILLING_RETRY
- Apple: EXPIRED / VOLUNTARY
- Apple: GRACE_PERIOD_EXPIRED
- Apple: OFFER_REDEEMED
- Apple: ONE_TIME_CHARGE
- Apple: PRICE_INCREASE
- Apple: REFUND
- Apple: REFUND_DECLINED
- Apple: REFUND_REVERSED
- Apple: RENEWAL_EXTENDED
- Apple: RENEWAL_EXTENSION
- Apple: REVOKE
- Apple: SUBSCRIBED
- Apple: TEST
- Google: ONE_TIME_PRODUCT_CANCELED
- Google: ONE_TIME_PRODUCT_PURCHASED
- Google: SUBSCRIPTION_CANCELED
- Google: SUBSCRIPTION_DEFERRED
- Google: SUBSCRIPTION_EXPIRED
- Google: SUBSCRIPTION_IN_GRACE_PERIOD
- Google: SUBSCRIPTION_ON_HOLD
- Google: SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED
- Google: SUBSCRIPTION_PAUSED
- Google: SUBSCRIPTION_PENDING_PURCHASE_CANCELED
- Google: SUBSCRIPTION_PURCHASED
- Google: SUBSCRIPTION_RECOVERED
- Google: SUBSCRIPTION_RENEWED
- Google: SUBSCRIPTION_RESTARTED
- Google: SUBSCRIPTION_REVOKED
- Google: VOIDED_PURCHASE
Webhook event reference
One page per RevenueDot webhook event type: when it is sent, what your server should do, a handler you can run and the rule that produces it.
- Webhook: BILLING_ISSUE
- Webhook: CANCELLATION
- Webhook: EXPERIMENT_ENROLLMENT
- Webhook: EXPIRATION
- Webhook: INITIAL_PURCHASE
- Webhook: INVOICE_ISSUANCE
- Webhook: NON_RENEWING_PURCHASE
- Webhook: PRICE_INCREASE_CONSENT_APPROVED
- Webhook: PRICE_INCREASE_CONSENT_REQUIRED
- Webhook: PRODUCT_CHANGE
- Webhook: PURCHASE_REDEEMED
- Webhook: REFUND_REVERSED
- Webhook: RENEWAL
- Webhook: SUBSCRIBER_ALIAS
- Webhook: SUBSCRIPTION_EXTENDED
- Webhook: SUBSCRIPTION_PAUSED
- Webhook: TEMPORARY_ENTITLEMENT_GRANT
- Webhook: TEST
- Webhook: TRANSFER
- Webhook: UNCANCELLATION
- Webhook: VIRTUAL_CURRENCY_TRANSACTION
Help center
Answers to the questions people search: FAQ, troubleshooting and known issues.
Every page is Markdown in the revenuedot/docs repository. Add .md to any docs URL for the Markdown, or read llms.txt and llms-full.txt for AI assistants.