VotePipe

HytaleCharts Integration

Learn how to receive and verify webhooks from HytaleCharts for vote notifications.

Webhook URL

Configure your webhook URL in the HytaleCharts dashboard:

https://hooks.votepipe.com/{org_slug}/hytalecharts

Example: https://hooks.votepipe.com/your-org/hytalecharts

Webhook Verification

HytaleCharts uses HMAC-SHA256 signatures to verify webhook authenticity. Every webhook request includes headers you can use to verify the request came from HytaleCharts.

Request Headers

HeaderDescription
X-HytaleCharts-EventEvent type (vote)
X-HytaleCharts-SignatureHMAC-SHA256 signature in format sha256={hex}
X-HytaleCharts-TimestampUnix timestamp when the webhook was sent
Content-Typeapplication/json

Signature Format

sha256={hmac_hex}

The signature is computed by concatenating the timestamp and JSON body with a period, then computing HMAC-SHA256 with your secret.

Webhook Events

HytaleCharts sends webhooks for vote events:

vote

Sent when a user votes for your server

Vote Payload Format

HytaleCharts sends vote data in the following format:

json
{ "event": "vote", "voter": { "username": "mrkayjaydee", "discord_id": "370940770225618954", "last_vote_at": "2026-01-05T07:06:52+00:00", "discord_username": "mrkayjaydee", "total_votes_for_server": 35 }, "server_id": 31, "timestamp": "2026-01-06T07:50:59+00:00", "server_name": "Mythlane", "server_slug": "mythlane", "server_stats": { "total_votes": 104, "weighted_votes": 103 } }

The voter name is extracted from voter.username.

Payload Fields

Root Fields

FieldTypeDescription
eventstringEvent type: vote
server_idintegerYour server's unique database ID
server_namestringYour server's display name
server_slugstringURL-friendly identifier for your server
timestampstringISO 8601 timestamp when the event occurred

Voter Object (Vote Events)

FieldTypeDescription
usernamestringHytaleCharts username
discord_idstringUser's Discord ID (use for in-game rewards)
discord_usernamestringUser's Discord username
total_votes_for_serverintegerTotal votes this user has cast for your server
last_vote_atstringISO 8601 timestamp of the previous vote

Server Stats Object

FieldTypeDescription
total_votesintegerTotal vote count for your server
weighted_votesnumberWeighted vote score

Setup Instructions

Step 1: Create Provider in VotePipe

  1. Go to Add Provider and select HytaleCharts
  2. Copy the generated webhook URL (it will look like: https://hooks.votepipe.com/your-org/hytalecharts)
  3. Keep this page open - you'll need to paste the webhook secret in the next step

Step 2: Configure Webhook in HytaleCharts

  1. Log in to your HytaleCharts.com account
  2. Navigate to Server SettingsWebhooks
  3. Paste your VotePipe webhook URL in the Vote Webhook URL field
  4. Copy your Webhook Secret from HytaleCharts (click "Show" to reveal it)
  5. Save the webhook secret (you'll need it for the next step)

Step 3: Complete Provider Setup in VotePipe

  1. Go back to the VotePipe provider creation page
  2. Paste the Webhook Secret from HytaleCharts into the Auth Value field
  3. Click Create Provider
  4. Click Test in HytaleCharts to verify the connection

Important

HytaleCharts generates the webhook secret. Copy it from your HytaleCharts dashboard (Server Settings → Webhooks → Webhook Secret) and paste it into the Auth Value field in VotePipe when creating the provider.

Troubleshooting

Webhook not receiving votes

  • Verify the webhook URL is correct in HytaleCharts settings
  • Make sure you're using the Vote Webhook URL field (not Discord Webhook)
  • Ensure your provider is enabled in VotePipe
  • Click the Test button in HytaleCharts to send a test webhook

Authentication errors (401)

  • Make sure you copied the Webhook Secret from HytaleCharts (not generated by VotePipe)
  • Click "Show" to reveal the secret and copy the full value
  • Check there are no extra spaces before or after the secret
  • The secret should be pasted in the Auth Value field in your VotePipe provider

Signature mismatch

  • The signature is computed as: sha256=HMAC({timestamp}.{json_body}, secret)
  • Ensure your server's clock is synchronized (signature includes timestamp validation)
  • Check the webhook logs in HytaleCharts to see the actual request/response

Still having issues? Check our general troubleshooting guide.

API Management

You can manage providers programmatically using the API: