Get Company Onboarding Link
Retrieve a link to Zeal’s web-based company onboarding flow.
curl --request GET \
--url https://api.zeal.com/companies/onboard \
--header 'Authorization: <api-key>'import requests
url = "https://api.zeal.com/companies/onboard"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.zeal.com/companies/onboard', 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.zeal.com/companies/onboard",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.zeal.com/companies/onboard"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.zeal.com/companies/onboard")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zeal.com/companies/onboard")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": "https://payroll.your-domain.com/employeronboard/10983755744920193854758300657020834"
}{
"success": false,
"errors": [
{
"message": "No Zeal Partner with this partner ID exists.",
"code": 7
}
]
}Authorizations
Query Parameters
PartnerID of the Zeal Partner
The Base URL is the URL Zeal will redirect the employer to after completion of the company onboarding flow. You may include a custom Base URL in this field. Otherwise, by default, Zeal will use the Base URL found in the admin dashboard.
Provide your own ID, string, etc. to include in the webhook payload. Zeal will include this in the webhook we send you after the company onboards.
The company ID can be optionally passed to generate a link that will take your company to the current step, and not the first step, of the onboarding process.
Mark your company as "all" (employees and contractors) or "contractor_only" to limit company's scope to 1099 contractors.
all, contractor_only If true, Zeal will skip migrating payroll information from the company's old payroll provider. Note: please confirm with the company that migration is not necessary. Failure to migrate old records may impact tax reporting and filing.
The Zeal product type for the onboarding link. Only used when companyID is not provided; defaults to the partner's configured product type, or payroll.
payroll, onboarding_only curl --request GET \
--url https://api.zeal.com/companies/onboard \
--header 'Authorization: <api-key>'import requests
url = "https://api.zeal.com/companies/onboard"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.zeal.com/companies/onboard', 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.zeal.com/companies/onboard",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.zeal.com/companies/onboard"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.zeal.com/companies/onboard")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zeal.com/companies/onboard")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": "https://payroll.your-domain.com/employeronboard/10983755744920193854758300657020834"
}{
"success": false,
"errors": [
{
"message": "No Zeal Partner with this partner ID exists.",
"code": 7
}
]
}