Pepvote Support Center

Save Candidate Registration Pricing

PUT
/voting-events/{idOrCode}/pricing/candidate-registration

Replace the event's candidate registration pricing. Requires pay to register to be enabled and a linked payment business that supports the currency. Under per_registration, send exactly one price with no positionId. Under per_position, send one price per position. Rule violations return 422.

Authorization

bearerAuth
AuthorizationBearer <token>

A key in the form pepvote_api_ followed by 32 hexadecimal characters.

In: header

Header Parameters

User-Agentstringrequired

Name and version of the calling integration. Required on every request.

Path Parameters

idOrCodestringrequired

Voting event ID or code.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

pricingModeenum<string>required

per_registration charges one fee per candidate; per_position charges per position contested.

  • Values:per_registration|per_position
pricesarray<object>required

Prices to store. Replaces the existing set. Exactly one under per_registration.

  • Items: 1 to 200 items

Response Body

application/json

application/json

curl -X PUT "https://example.com/voting-events/string/pricing/candidate-registration" \  -H "User-Agent: my-app/1.0" \  -H "Content-Type: application/json" \  -d '{    "pricingMode": "per_registration",    "prices": [      {        "amount": 0,        "currency": "str"      }    ]  }'
{
  "data": {
    "pricingMode": "per_registration",
    "prices": [
      {
        "id": "string",
        "amount": 0,
        "currency": "string",
        "positionId": "string",
        "label": "string"
      }
    ]
  }
}
{
  "error": {
    "code": "bad_request",
    "message": "string",
    "details": {
      "field": "string",
      "parameter": "string",
      "limit": 0,
      "retryAfterSeconds": 0,
      "feature": "string",
      "plan": "string"
    }
  }
}
Was this helpful?

Last updated September 6, 2026