VoidhashDocs
DocumentationAPI reference
Dashboard
Get started
Introduction
Quickstart
Setup
Setup overview
Create a project
Products and perks
Paywall locations
CLI
Paywall components
Components
Develop a component
Editor panels
Component definition
Publishing
Installing and capabilities
SDKs
Swift
Kotlin
React Native
Web
Store setup
Connect the App Store
Connect Google Play
Connect Stripe
API libraries
Node.js
PHP
Rust
Go
Resources
MCP server
Meta ads
Migrate in observer mode
Delete a person's data

Forward Google Play notifications to your backend

Receive a copy of each Google Play real-time developer notification that Voidhash accepts.

Raw Google events forwarding URL is optional. When it is set, Voidhash sends each real-time developer notification it accepts from Google Play to your endpoint, exactly as Pub/Sub delivered it. Forwarding never changes how Voidhash processes a notification or how it answers Google.

Prepare an endpoint

Set up an endpoint on your backend that accepts JSON POST requests, for example https://example.com/google-raw-events. It must be a publicly reachable HTTPS URL. Voidhash rejects http URLs and addresses on private or internal networks, such as localhost or private IP ranges, when you save. It also refuses to connect if the host resolves to such an address at delivery time.

Enter the forwarding URL

In Voidhash, open the Google developer notifications tab of this payment provider. Paste the URL into Raw Google events forwarding URL and save. Clear the field to stop forwarding.

Send a test notification

In Google Play Console, open Monetize → Monetization setup and click Send Test Message under Real-time developer notifications. Voidhash forwards test notifications too, so your endpoint receives a copy.

Voidhash can only forward notifications it receives, so set up real-time developer notifications first.

What your endpoint receives

Each request is a POST whose body is the Pub/Sub push message that Voidhash received:

{
  "message": {
    "attributes": {},
    "data": "eyJ2ZXJzaW9uIjoiMS4wIiwicGFja2FnZU5hbWUiOiJjb20uZXhhbXBsZS5hcHAiLCJldmVudFRpbWVNaWxsaXMiOiIxNzkyOTI5NjAwMDAwIiwidGVzdE5vdGlmaWNhdGlvbiI6eyJ2ZXJzaW9uIjoiMS4wIn19",
    "messageId": "136969346945",
    "publishTime": "2026-10-25T12:00:00.000Z"
  },
  "subscription": "projects/example-project/subscriptions/voidhash-rtdn"
}

message.data is the base64-encoded notification JSON described in Google's RTDN reference. Pub/Sub can include more fields, which are forwarded unchanged.

HeaderValue
Content-Typeapplication/json
User-AgentVoidhash-Notification-Forwarder/1.0
X-Voidhash-Forwarded-Fromgoogle-play
X-Voidhash-Notification-IdThe Pub/Sub message ID, as in message.messageId

Pub/Sub's Authorization token is not forwarded, and Voidhash does not sign forwarded requests. Treat a notification as a signal that something changed, and confirm the purchase state with the Google Play Developer API before you grant access.

Which notifications are forwarded

Voidhash forwards a notification only when the push is authenticated and its data decodes as a notification for this provider's Google Play package name. Test notifications are forwarded too.

Delivery and retries

  • Voidhash forwards each notification once. When Google delivers the same notification again, for example as a retry, it is not forwarded again.
  • Respond with any 2xx status within 15 seconds.
  • For any other status, a redirect, a timeout, or a connection error, Voidhash retries after about 1 minute, 5 minutes, 30 minutes, 2 hours, and 6 hours, then gives up. Redirects are not followed.
  • A retry can repeat a request your server already handled, for example after a timeout. Deduplicate with X-Voidhash-Notification-Id.
  • Requests can arrive out of order. Use eventTimeMillis in the notification to order them.
  • Each attempt uses the URL saved at that moment. Clearing the URL stops pending retries.

On this page

Prepare an endpointEnter the forwarding URLSend a test notificationWhat your endpoint receivesWhich notifications are forwardedDelivery and retries