VOTE INTEGRATION

Connect a secure vote postback

Configure, implement and verify a secure reward callback for every listing.

01

Configure a listing callback

Open User Control Panel → Edit Account (administrators: Admin → Manage Members → Edit Member). Under Callback, save a direct public HTTPS Callback URL. A missing token is generated on activation; an empty URL disables callbacks.

Generate token also works without a URL. Generate and Rotate save only the token; save URL and other account changes separately. Use Show / hide and Copy token to configure your receiver. Tokens are generated by the server and cannot be entered manually.

Normal saves and URL changes preserve the token. To replace it, confirm and press Rotate token; update your receiver immediately because the old token stops working. Existing HTTP URLs remain inactive until changed to HTTPS. Redirects and non-public target addresses are rejected.

02

Send a stable player identifier

Use id in your vote link. postback and incentive remain compatible aliases. The first non-empty value in the order id, postback, incentive is forwarded as userid. URL-encode player IDs and custom values.

Recommended vote link
https://private-server.ws/index.php?a=in&u=TOPLIST_USERNAME&id=VOTER_ID

Optional custom value: add &callback=campaign-spring. It is forwarded unchanged as custom.

03

Validate and reward once

Callbacks use HTTPS POST. The listing token is sent as secret exclusively in the POST body; non-secret fields are also included in the query string for compatibility. Validate the POST secret with hash_equals and reward only voted=1.

secretPrivate server-generated listing token; POST only.
voted1 for a new vote, 0 for a duplicate.
resetUnix timestamp of the next daily vote reset, using the site timezone and offset.
useridOriginal player ID from the vote link, up to 255 bytes.
useripPlayer IP; not the callback sender IP.
customOptional unchanged custom value, up to 255 bytes.

Deduplicate rewards atomically by listing, player and reset timestamp. Return HTTP 200 for successful requests, including duplicates. Delivery failures do not stop the vote and are not automatically retried. Do not log tokens or request bodies; no outgoing IP allowlist is provided.