Integration guide

Voting Integrations

Discover public campaigns and nominees or use approved organization routes without bypassing vote pricing and verification.

Use the campaign and nominee identifiers

POST /api/public/vote validates campaign_id, participant_id, phone_number and vote_count. The current public schema accepts an integer vote_count from 1 to 100; pricing and availability are checked by the payment service.

Keep payment pending until confirmed

The initialization response starts a payment. Preserve its reference and handle pending or failed states without inventing credited votes in your frontend.

Read public counts in context

GET /api/public/vote-counts/:campaignId exposes the public count contract. Vote quantities are not the same as transactions or unique supporters, and awards voting does not provide the formal election architecture of SEVA.