curl --request POST \
--url https://api.cadanapay.com/v1/persons \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"firstName": "John",
"lastName": "Doe",
"email": "<string>",
"type": "CONTRACTOR",
"address": {
"countryCode": "US",
"line1": "Street 1",
"line2": "Apt 1",
"city": "Gotham",
"postalCode": "10001",
"state": "NY"
},
"compInfo": {
"type": "net",
"frequency": "monthly",
"employmentModel": "eor"
},
"phoneNumber": {
"countryCode": "1",
"number": "2345678901"
},
"metadata": {
"customField1": "value1",
"customField2": "value2"
},
"businessName": "Wayne Enterprise",
"contractorType": "INDIVIDUAL",
"jobInfo": {
"startDate": "2023-01-01",
"employeeNumber": "1",
"title": "Software Engineer",
"department": "Product",
"customFields": [
{
"id": "8ef9a712-cdae-4110-b1ea-9ba95abbee6e",
"name": "Tshirt Size",
"value": "M"
}
],
"entityId": "37ad8c1e-0187-4e10-8c54-395e3385b4d2"
}
}
'import requests
url = "https://api.cadanapay.com/v1/persons"
payload = {
"firstName": "John",
"lastName": "Doe",
"email": "<string>",
"type": "CONTRACTOR",
"address": {
"countryCode": "US",
"line1": "Street 1",
"line2": "Apt 1",
"city": "Gotham",
"postalCode": "10001",
"state": "NY"
},
"compInfo": {
"type": "net",
"frequency": "monthly",
"employmentModel": "eor"
},
"phoneNumber": {
"countryCode": "1",
"number": "2345678901"
},
"metadata": {
"customField1": "value1",
"customField2": "value2"
},
"businessName": "Wayne Enterprise",
"contractorType": "INDIVIDUAL",
"jobInfo": {
"startDate": "2023-01-01",
"employeeNumber": "1",
"title": "Software Engineer",
"department": "Product",
"customFields": [
{
"id": "8ef9a712-cdae-4110-b1ea-9ba95abbee6e",
"name": "Tshirt Size",
"value": "M"
}
],
"entityId": "37ad8c1e-0187-4e10-8c54-395e3385b4d2"
}
}
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({
firstName: 'John',
lastName: 'Doe',
email: '<string>',
type: 'CONTRACTOR',
address: {
countryCode: 'US',
line1: 'Street 1',
line2: 'Apt 1',
city: 'Gotham',
postalCode: '10001',
state: 'NY'
},
compInfo: {type: 'net', frequency: 'monthly', employmentModel: 'eor'},
phoneNumber: {countryCode: '1', number: '2345678901'},
metadata: {customField1: 'value1', customField2: 'value2'},
businessName: 'Wayne Enterprise',
contractorType: 'INDIVIDUAL',
jobInfo: {
startDate: '2023-01-01',
employeeNumber: '1',
title: 'Software Engineer',
department: 'Product',
customFields: [{id: '8ef9a712-cdae-4110-b1ea-9ba95abbee6e', name: 'Tshirt Size', value: 'M'}],
entityId: '37ad8c1e-0187-4e10-8c54-395e3385b4d2'
}
})
};
fetch('https://api.cadanapay.com/v1/persons', 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.cadanapay.com/v1/persons",
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([
'firstName' => 'John',
'lastName' => 'Doe',
'email' => '<string>',
'type' => 'CONTRACTOR',
'address' => [
'countryCode' => 'US',
'line1' => 'Street 1',
'line2' => 'Apt 1',
'city' => 'Gotham',
'postalCode' => '10001',
'state' => 'NY'
],
'compInfo' => [
'type' => 'net',
'frequency' => 'monthly',
'employmentModel' => 'eor'
],
'phoneNumber' => [
'countryCode' => '1',
'number' => '2345678901'
],
'metadata' => [
'customField1' => 'value1',
'customField2' => 'value2'
],
'businessName' => 'Wayne Enterprise',
'contractorType' => 'INDIVIDUAL',
'jobInfo' => [
'startDate' => '2023-01-01',
'employeeNumber' => '1',
'title' => 'Software Engineer',
'department' => 'Product',
'customFields' => [
[
'id' => '8ef9a712-cdae-4110-b1ea-9ba95abbee6e',
'name' => 'Tshirt Size',
'value' => 'M'
]
],
'entityId' => '37ad8c1e-0187-4e10-8c54-395e3385b4d2'
]
]),
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.cadanapay.com/v1/persons"
payload := strings.NewReader("{\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"email\": \"<string>\",\n \"type\": \"CONTRACTOR\",\n \"address\": {\n \"countryCode\": \"US\",\n \"line1\": \"Street 1\",\n \"line2\": \"Apt 1\",\n \"city\": \"Gotham\",\n \"postalCode\": \"10001\",\n \"state\": \"NY\"\n },\n \"compInfo\": {\n \"type\": \"net\",\n \"frequency\": \"monthly\",\n \"employmentModel\": \"eor\"\n },\n \"phoneNumber\": {\n \"countryCode\": \"1\",\n \"number\": \"2345678901\"\n },\n \"metadata\": {\n \"customField1\": \"value1\",\n \"customField2\": \"value2\"\n },\n \"businessName\": \"Wayne Enterprise\",\n \"contractorType\": \"INDIVIDUAL\",\n \"jobInfo\": {\n \"startDate\": \"2023-01-01\",\n \"employeeNumber\": \"1\",\n \"title\": \"Software Engineer\",\n \"department\": \"Product\",\n \"customFields\": [\n {\n \"id\": \"8ef9a712-cdae-4110-b1ea-9ba95abbee6e\",\n \"name\": \"Tshirt Size\",\n \"value\": \"M\"\n }\n ],\n \"entityId\": \"37ad8c1e-0187-4e10-8c54-395e3385b4d2\"\n }\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.cadanapay.com/v1/persons")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"email\": \"<string>\",\n \"type\": \"CONTRACTOR\",\n \"address\": {\n \"countryCode\": \"US\",\n \"line1\": \"Street 1\",\n \"line2\": \"Apt 1\",\n \"city\": \"Gotham\",\n \"postalCode\": \"10001\",\n \"state\": \"NY\"\n },\n \"compInfo\": {\n \"type\": \"net\",\n \"frequency\": \"monthly\",\n \"employmentModel\": \"eor\"\n },\n \"phoneNumber\": {\n \"countryCode\": \"1\",\n \"number\": \"2345678901\"\n },\n \"metadata\": {\n \"customField1\": \"value1\",\n \"customField2\": \"value2\"\n },\n \"businessName\": \"Wayne Enterprise\",\n \"contractorType\": \"INDIVIDUAL\",\n \"jobInfo\": {\n \"startDate\": \"2023-01-01\",\n \"employeeNumber\": \"1\",\n \"title\": \"Software Engineer\",\n \"department\": \"Product\",\n \"customFields\": [\n {\n \"id\": \"8ef9a712-cdae-4110-b1ea-9ba95abbee6e\",\n \"name\": \"Tshirt Size\",\n \"value\": \"M\"\n }\n ],\n \"entityId\": \"37ad8c1e-0187-4e10-8c54-395e3385b4d2\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cadanapay.com/v1/persons")
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 \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"email\": \"<string>\",\n \"type\": \"CONTRACTOR\",\n \"address\": {\n \"countryCode\": \"US\",\n \"line1\": \"Street 1\",\n \"line2\": \"Apt 1\",\n \"city\": \"Gotham\",\n \"postalCode\": \"10001\",\n \"state\": \"NY\"\n },\n \"compInfo\": {\n \"type\": \"net\",\n \"frequency\": \"monthly\",\n \"employmentModel\": \"eor\"\n },\n \"phoneNumber\": {\n \"countryCode\": \"1\",\n \"number\": \"2345678901\"\n },\n \"metadata\": {\n \"customField1\": \"value1\",\n \"customField2\": \"value2\"\n },\n \"businessName\": \"Wayne Enterprise\",\n \"contractorType\": \"INDIVIDUAL\",\n \"jobInfo\": {\n \"startDate\": \"2023-01-01\",\n \"employeeNumber\": \"1\",\n \"title\": \"Software Engineer\",\n \"department\": \"Product\",\n \"customFields\": [\n {\n \"id\": \"8ef9a712-cdae-4110-b1ea-9ba95abbee6e\",\n \"name\": \"Tshirt Size\",\n \"value\": \"M\"\n }\n ],\n \"entityId\": \"37ad8c1e-0187-4e10-8c54-395e3385b4d2\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "8ef9a712-cdae-4110-b1ea-9ba95abbee6e"
}{
"code": "invalid_request_body",
"message": "The request body provided is not valid",
"params": {
"field": "Value is invalid."
}
}{
"code": "internal_error",
"message": "An unexpected error occurred. Please try again later."
}Create
Create a new employee/contractor
curl --request POST \
--url https://api.cadanapay.com/v1/persons \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"firstName": "John",
"lastName": "Doe",
"email": "<string>",
"type": "CONTRACTOR",
"address": {
"countryCode": "US",
"line1": "Street 1",
"line2": "Apt 1",
"city": "Gotham",
"postalCode": "10001",
"state": "NY"
},
"compInfo": {
"type": "net",
"frequency": "monthly",
"employmentModel": "eor"
},
"phoneNumber": {
"countryCode": "1",
"number": "2345678901"
},
"metadata": {
"customField1": "value1",
"customField2": "value2"
},
"businessName": "Wayne Enterprise",
"contractorType": "INDIVIDUAL",
"jobInfo": {
"startDate": "2023-01-01",
"employeeNumber": "1",
"title": "Software Engineer",
"department": "Product",
"customFields": [
{
"id": "8ef9a712-cdae-4110-b1ea-9ba95abbee6e",
"name": "Tshirt Size",
"value": "M"
}
],
"entityId": "37ad8c1e-0187-4e10-8c54-395e3385b4d2"
}
}
'import requests
url = "https://api.cadanapay.com/v1/persons"
payload = {
"firstName": "John",
"lastName": "Doe",
"email": "<string>",
"type": "CONTRACTOR",
"address": {
"countryCode": "US",
"line1": "Street 1",
"line2": "Apt 1",
"city": "Gotham",
"postalCode": "10001",
"state": "NY"
},
"compInfo": {
"type": "net",
"frequency": "monthly",
"employmentModel": "eor"
},
"phoneNumber": {
"countryCode": "1",
"number": "2345678901"
},
"metadata": {
"customField1": "value1",
"customField2": "value2"
},
"businessName": "Wayne Enterprise",
"contractorType": "INDIVIDUAL",
"jobInfo": {
"startDate": "2023-01-01",
"employeeNumber": "1",
"title": "Software Engineer",
"department": "Product",
"customFields": [
{
"id": "8ef9a712-cdae-4110-b1ea-9ba95abbee6e",
"name": "Tshirt Size",
"value": "M"
}
],
"entityId": "37ad8c1e-0187-4e10-8c54-395e3385b4d2"
}
}
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({
firstName: 'John',
lastName: 'Doe',
email: '<string>',
type: 'CONTRACTOR',
address: {
countryCode: 'US',
line1: 'Street 1',
line2: 'Apt 1',
city: 'Gotham',
postalCode: '10001',
state: 'NY'
},
compInfo: {type: 'net', frequency: 'monthly', employmentModel: 'eor'},
phoneNumber: {countryCode: '1', number: '2345678901'},
metadata: {customField1: 'value1', customField2: 'value2'},
businessName: 'Wayne Enterprise',
contractorType: 'INDIVIDUAL',
jobInfo: {
startDate: '2023-01-01',
employeeNumber: '1',
title: 'Software Engineer',
department: 'Product',
customFields: [{id: '8ef9a712-cdae-4110-b1ea-9ba95abbee6e', name: 'Tshirt Size', value: 'M'}],
entityId: '37ad8c1e-0187-4e10-8c54-395e3385b4d2'
}
})
};
fetch('https://api.cadanapay.com/v1/persons', 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.cadanapay.com/v1/persons",
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([
'firstName' => 'John',
'lastName' => 'Doe',
'email' => '<string>',
'type' => 'CONTRACTOR',
'address' => [
'countryCode' => 'US',
'line1' => 'Street 1',
'line2' => 'Apt 1',
'city' => 'Gotham',
'postalCode' => '10001',
'state' => 'NY'
],
'compInfo' => [
'type' => 'net',
'frequency' => 'monthly',
'employmentModel' => 'eor'
],
'phoneNumber' => [
'countryCode' => '1',
'number' => '2345678901'
],
'metadata' => [
'customField1' => 'value1',
'customField2' => 'value2'
],
'businessName' => 'Wayne Enterprise',
'contractorType' => 'INDIVIDUAL',
'jobInfo' => [
'startDate' => '2023-01-01',
'employeeNumber' => '1',
'title' => 'Software Engineer',
'department' => 'Product',
'customFields' => [
[
'id' => '8ef9a712-cdae-4110-b1ea-9ba95abbee6e',
'name' => 'Tshirt Size',
'value' => 'M'
]
],
'entityId' => '37ad8c1e-0187-4e10-8c54-395e3385b4d2'
]
]),
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.cadanapay.com/v1/persons"
payload := strings.NewReader("{\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"email\": \"<string>\",\n \"type\": \"CONTRACTOR\",\n \"address\": {\n \"countryCode\": \"US\",\n \"line1\": \"Street 1\",\n \"line2\": \"Apt 1\",\n \"city\": \"Gotham\",\n \"postalCode\": \"10001\",\n \"state\": \"NY\"\n },\n \"compInfo\": {\n \"type\": \"net\",\n \"frequency\": \"monthly\",\n \"employmentModel\": \"eor\"\n },\n \"phoneNumber\": {\n \"countryCode\": \"1\",\n \"number\": \"2345678901\"\n },\n \"metadata\": {\n \"customField1\": \"value1\",\n \"customField2\": \"value2\"\n },\n \"businessName\": \"Wayne Enterprise\",\n \"contractorType\": \"INDIVIDUAL\",\n \"jobInfo\": {\n \"startDate\": \"2023-01-01\",\n \"employeeNumber\": \"1\",\n \"title\": \"Software Engineer\",\n \"department\": \"Product\",\n \"customFields\": [\n {\n \"id\": \"8ef9a712-cdae-4110-b1ea-9ba95abbee6e\",\n \"name\": \"Tshirt Size\",\n \"value\": \"M\"\n }\n ],\n \"entityId\": \"37ad8c1e-0187-4e10-8c54-395e3385b4d2\"\n }\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.cadanapay.com/v1/persons")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"email\": \"<string>\",\n \"type\": \"CONTRACTOR\",\n \"address\": {\n \"countryCode\": \"US\",\n \"line1\": \"Street 1\",\n \"line2\": \"Apt 1\",\n \"city\": \"Gotham\",\n \"postalCode\": \"10001\",\n \"state\": \"NY\"\n },\n \"compInfo\": {\n \"type\": \"net\",\n \"frequency\": \"monthly\",\n \"employmentModel\": \"eor\"\n },\n \"phoneNumber\": {\n \"countryCode\": \"1\",\n \"number\": \"2345678901\"\n },\n \"metadata\": {\n \"customField1\": \"value1\",\n \"customField2\": \"value2\"\n },\n \"businessName\": \"Wayne Enterprise\",\n \"contractorType\": \"INDIVIDUAL\",\n \"jobInfo\": {\n \"startDate\": \"2023-01-01\",\n \"employeeNumber\": \"1\",\n \"title\": \"Software Engineer\",\n \"department\": \"Product\",\n \"customFields\": [\n {\n \"id\": \"8ef9a712-cdae-4110-b1ea-9ba95abbee6e\",\n \"name\": \"Tshirt Size\",\n \"value\": \"M\"\n }\n ],\n \"entityId\": \"37ad8c1e-0187-4e10-8c54-395e3385b4d2\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cadanapay.com/v1/persons")
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 \"firstName\": \"John\",\n \"lastName\": \"Doe\",\n \"email\": \"<string>\",\n \"type\": \"CONTRACTOR\",\n \"address\": {\n \"countryCode\": \"US\",\n \"line1\": \"Street 1\",\n \"line2\": \"Apt 1\",\n \"city\": \"Gotham\",\n \"postalCode\": \"10001\",\n \"state\": \"NY\"\n },\n \"compInfo\": {\n \"type\": \"net\",\n \"frequency\": \"monthly\",\n \"employmentModel\": \"eor\"\n },\n \"phoneNumber\": {\n \"countryCode\": \"1\",\n \"number\": \"2345678901\"\n },\n \"metadata\": {\n \"customField1\": \"value1\",\n \"customField2\": \"value2\"\n },\n \"businessName\": \"Wayne Enterprise\",\n \"contractorType\": \"INDIVIDUAL\",\n \"jobInfo\": {\n \"startDate\": \"2023-01-01\",\n \"employeeNumber\": \"1\",\n \"title\": \"Software Engineer\",\n \"department\": \"Product\",\n \"customFields\": [\n {\n \"id\": \"8ef9a712-cdae-4110-b1ea-9ba95abbee6e\",\n \"name\": \"Tshirt Size\",\n \"value\": \"M\"\n }\n ],\n \"entityId\": \"37ad8c1e-0187-4e10-8c54-395e3385b4d2\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "8ef9a712-cdae-4110-b1ea-9ba95abbee6e"
}{
"code": "invalid_request_body",
"message": "The request body provided is not valid",
"params": {
"field": "Value is invalid."
}
}{
"code": "internal_error",
"message": "An unexpected error occurred. Please try again later."
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Required when using a Platform API token. The tenant key identifying which business to operate on.
Body
Create person request payload
Person's first name
"John"
Person's last name
"Doe"
Person's email
Type of the person, we allow contractors and employees
EMPLOYEE, CONTRACTOR "CONTRACTOR"
Address
Show child attributes
Show child attributes
Person's compensation information, how much will they get paid, currency and frequency
Show child attributes
Show child attributes
Person's phone number
Show child attributes
Show child attributes
Optional metadata you can store as key-value pairs
{
"customField1": "value1",
"customField2": "value2"
}Business name, required if contractor type is business
"Wayne Enterprise"
Type of the contractor, only required if person is a contractor type, we allow individual and business type contractors
INDIVIDUAL, BUSINESS "INDIVIDUAL"
Person's job information, start date, job title, and employee number
Show child attributes
Show child attributes
Response
create person response
"8ef9a712-cdae-4110-b1ea-9ba95abbee6e"