Create a benefit election
curl --request POST \
--url https://api.plane.com/v1/benefit/elections \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"worker": "<string>",
"plan": "<string>",
"enrollment": "<string>",
"dependents": [
{}
],
"status": "<string>",
"starts": "<string>",
"ends": "<string>",
"metadata": {}
}
'import requests
url = "https://api.plane.com/v1/benefit/elections"
payload = {
"worker": "<string>",
"plan": "<string>",
"enrollment": "<string>",
"dependents": [{}],
"status": "<string>",
"starts": "<string>",
"ends": "<string>",
"metadata": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
worker: '<string>',
plan: '<string>',
enrollment: '<string>',
dependents: [{}],
status: '<string>',
starts: '<string>',
ends: '<string>',
metadata: {}
})
};
fetch('https://api.plane.com/v1/benefit/elections', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.plane.com/v1/benefit/elections",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'worker' => '<string>',
'plan' => '<string>',
'enrollment' => '<string>',
'dependents' => [
[
]
],
'status' => '<string>',
'starts' => '<string>',
'ends' => '<string>',
'metadata' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.plane.com/v1/benefit/elections"
payload := strings.NewReader("{\n \"worker\": \"<string>\",\n \"plan\": \"<string>\",\n \"enrollment\": \"<string>\",\n \"dependents\": [\n {}\n ],\n \"status\": \"<string>\",\n \"starts\": \"<string>\",\n \"ends\": \"<string>\",\n \"metadata\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.plane.com/v1/benefit/elections")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"worker\": \"<string>\",\n \"plan\": \"<string>\",\n \"enrollment\": \"<string>\",\n \"dependents\": [\n {}\n ],\n \"status\": \"<string>\",\n \"starts\": \"<string>\",\n \"ends\": \"<string>\",\n \"metadata\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.plane.com/v1/benefit/elections")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"worker\": \"<string>\",\n \"plan\": \"<string>\",\n \"enrollment\": \"<string>\",\n \"dependents\": [\n {}\n ],\n \"status\": \"<string>\",\n \"starts\": \"<string>\",\n \"ends\": \"<string>\",\n \"metadata\": {}\n}"
response = http.request(request)
puts response.read_body{
"worker": "wrkr_daniel",
"plan": "benpl_V6nP3qR9tY2m"
}
{
"id": "bele_W7oQ4rS0uZ3n",
"object": "benefit.election",
"worker": "wrkr_daniel",
"plan": "benpl_V6nP3qR9tY2m",
"coverage": "employee_only",
"status": "active",
"contribution": {},
"starts": null,
"ends": null,
"metadata": {},
"created": "2026-05-29T12:00:00Z",
"updated": "2026-05-29T12:00:00Z"
}
Elections
Create a benefit election
Enroll a worker in a benefit plan.
POST
/
v1
/
benefit
/
elections
Create a benefit election
curl --request POST \
--url https://api.plane.com/v1/benefit/elections \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"worker": "<string>",
"plan": "<string>",
"enrollment": "<string>",
"dependents": [
{}
],
"status": "<string>",
"starts": "<string>",
"ends": "<string>",
"metadata": {}
}
'import requests
url = "https://api.plane.com/v1/benefit/elections"
payload = {
"worker": "<string>",
"plan": "<string>",
"enrollment": "<string>",
"dependents": [{}],
"status": "<string>",
"starts": "<string>",
"ends": "<string>",
"metadata": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
worker: '<string>',
plan: '<string>',
enrollment: '<string>',
dependents: [{}],
status: '<string>',
starts: '<string>',
ends: '<string>',
metadata: {}
})
};
fetch('https://api.plane.com/v1/benefit/elections', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.plane.com/v1/benefit/elections",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'worker' => '<string>',
'plan' => '<string>',
'enrollment' => '<string>',
'dependents' => [
[
]
],
'status' => '<string>',
'starts' => '<string>',
'ends' => '<string>',
'metadata' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.plane.com/v1/benefit/elections"
payload := strings.NewReader("{\n \"worker\": \"<string>\",\n \"plan\": \"<string>\",\n \"enrollment\": \"<string>\",\n \"dependents\": [\n {}\n ],\n \"status\": \"<string>\",\n \"starts\": \"<string>\",\n \"ends\": \"<string>\",\n \"metadata\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.plane.com/v1/benefit/elections")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"worker\": \"<string>\",\n \"plan\": \"<string>\",\n \"enrollment\": \"<string>\",\n \"dependents\": [\n {}\n ],\n \"status\": \"<string>\",\n \"starts\": \"<string>\",\n \"ends\": \"<string>\",\n \"metadata\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.plane.com/v1/benefit/elections")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"worker\": \"<string>\",\n \"plan\": \"<string>\",\n \"enrollment\": \"<string>\",\n \"dependents\": [\n {}\n ],\n \"status\": \"<string>\",\n \"starts\": \"<string>\",\n \"ends\": \"<string>\",\n \"metadata\": {}\n}"
response = http.request(request)
puts response.read_body{
"worker": "wrkr_daniel",
"plan": "benpl_V6nP3qR9tY2m"
}
{
"id": "bele_W7oQ4rS0uZ3n",
"object": "benefit.election",
"worker": "wrkr_daniel",
"plan": "benpl_V6nP3qR9tY2m",
"coverage": "employee_only",
"status": "active",
"contribution": {},
"starts": null,
"ends": null,
"metadata": {},
"created": "2026-05-29T12:00:00Z",
"updated": "2026-05-29T12:00:00Z"
}
Parameters
string
required
ID of the worker to enroll.
string
ID of the enrollment run this election
belongs to. Omit for a standalone election.
array
IDs of the worker dependents this
election covers. They must belong to the electing worker. The coverage tier is
derived from this set.
string
Election status. One of
active, waived, or terminated. Defaults to
active.string
First day the coverage is in effect.
string
Last day the coverage is in effect.
object
Set of key-value pairs attached to the election.
Returns
Returns the created Benefit election object.{
"worker": "wrkr_daniel",
"plan": "benpl_V6nP3qR9tY2m"
}
{
"id": "bele_W7oQ4rS0uZ3n",
"object": "benefit.election",
"worker": "wrkr_daniel",
"plan": "benpl_V6nP3qR9tY2m",
"coverage": "employee_only",
"status": "active",
"contribution": {},
"starts": null,
"ends": null,
"metadata": {},
"created": "2026-05-29T12:00:00Z",
"updated": "2026-05-29T12:00:00Z"
}
Was this page helpful?
⌘I