getPayStub
curl --request GET \
--url https://sandbox.rollfi.xyz/reports/getPayStub \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"method": "getPayStub",
"payPeriodId": "F240E800-B95E-41E0-A5D3-0C84E22FFA82",
"userId": "18C949DF-7D8C-4752-B7BE-8C2364BE55C5"
}
'import requests
url = "https://sandbox.rollfi.xyz/reports/getPayStub"
payload = {
"method": "getPayStub",
"payPeriodId": "F240E800-B95E-41E0-A5D3-0C84E22FFA82",
"userId": "18C949DF-7D8C-4752-B7BE-8C2364BE55C5"
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.get(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
method: 'getPayStub',
payPeriodId: 'F240E800-B95E-41E0-A5D3-0C84E22FFA82',
userId: '18C949DF-7D8C-4752-B7BE-8C2364BE55C5'
})
};
fetch('https://sandbox.rollfi.xyz/reports/getPayStub', 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://sandbox.rollfi.xyz/reports/getPayStub",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_POSTFIELDS => json_encode([
'method' => 'getPayStub',
'payPeriodId' => 'F240E800-B95E-41E0-A5D3-0C84E22FFA82',
'userId' => '18C949DF-7D8C-4752-B7BE-8C2364BE55C5'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"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://sandbox.rollfi.xyz/reports/getPayStub"
payload := strings.NewReader("{\n \"method\": \"getPayStub\",\n \"payPeriodId\": \"F240E800-B95E-41E0-A5D3-0C84E22FFA82\",\n \"userId\": \"18C949DF-7D8C-4752-B7BE-8C2364BE55C5\"\n}")
req, _ := http.NewRequest("GET", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
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.get("https://sandbox.rollfi.xyz/reports/getPayStub")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"method\": \"getPayStub\",\n \"payPeriodId\": \"F240E800-B95E-41E0-A5D3-0C84E22FFA82\",\n \"userId\": \"18C949DF-7D8C-4752-B7BE-8C2364BE55C5\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.rollfi.xyz/reports/getPayStub")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"method\": \"getPayStub\",\n \"payPeriodId\": \"F240E800-B95E-41E0-A5D3-0C84E22FFA82\",\n \"userId\": \"18C949DF-7D8C-4752-B7BE-8C2364BE55C5\"\n}"
response = http.request(request)
puts response.read_body{
"payrollLineItem": [
{
"payPeriodId": "F240E800-B95E-41E0-A5D3-0C84E22FFA82",
"payPeriod": {
"payPeriod": "10/01/2025 - 10/31/2025",
"payDate": "2025-11-03"
},
"baseTotal": 3953.49,
"grossTotal": 4099.77,
"netTotal": 3725.61,
"ytdBaseTotal": 7953.49,
"ytdGrossTotal": 8332.33,
"ytdNetTotal": 7581.98,
"taxDetails": [
{
"TaxName": "Federal Withholding Tax",
"TaxAmount": 0,
"TaxAmountYTD": 0
},
{
"TaxName": "Medicare",
"TaxAmount": 58.5,
"TaxAmountYTD": 119.87
},
{
"TaxName": "Social Security",
"TaxAmount": 250.16,
"TaxAmountYTD": 512.58
},
{
"TaxName": "Cares Fund EE",
"TaxAmount": 23.66,
"TaxAmountYTD": 48.21
},
{
"TaxName": "WA - State paid family medical leave EE",
"TaxAmount": 26.84,
"TaxAmountYTD": 54.69
}
],
"deductions": [
{
"vertexDeductionIdentifier": {
"deductionDescription": "125Adoption Assistance Reg"
},
"amount": 25,
"amountYtd": 25
}
],
"additionalCompensations": [
{
"payrollLineItemAdditionalCompensation_VertexCompensationIdentifier": {
"compensationDescription": "3rd Party LTD 125 plan"
},
"amount": 20,
"amountYtd": 20
}
],
"overTimes": [
{
"overTimeType": {
"overTimeType": "Comp off OT"
},
"amount": 116.28,
"numberOfHours": 5,
"multiplier": 1,
"overtimeYTD": 348.84
}
],
"reimbursements": [
{
"reimbursementType": "Gym",
"amount": 10,
"reimbursementYTD": 10
}
],
"timeOffs": []
}
]
}{
"error": {
"code": 400,
"message": "Invalid userId"
}
}Reports
getPayStub
The getPayStub API retrieves detailed pay stub information for a specific employee and pay period.
What it does:
- Retrieves a comprehensive pay stub for an employee across a single pay period
- Includes gross pay, net pay, state & federal taxes, and deductions based on the employees details
GET
/
reports
/
getPayStub
getPayStub
curl --request GET \
--url https://sandbox.rollfi.xyz/reports/getPayStub \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"method": "getPayStub",
"payPeriodId": "F240E800-B95E-41E0-A5D3-0C84E22FFA82",
"userId": "18C949DF-7D8C-4752-B7BE-8C2364BE55C5"
}
'import requests
url = "https://sandbox.rollfi.xyz/reports/getPayStub"
payload = {
"method": "getPayStub",
"payPeriodId": "F240E800-B95E-41E0-A5D3-0C84E22FFA82",
"userId": "18C949DF-7D8C-4752-B7BE-8C2364BE55C5"
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.get(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
method: 'getPayStub',
payPeriodId: 'F240E800-B95E-41E0-A5D3-0C84E22FFA82',
userId: '18C949DF-7D8C-4752-B7BE-8C2364BE55C5'
})
};
fetch('https://sandbox.rollfi.xyz/reports/getPayStub', 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://sandbox.rollfi.xyz/reports/getPayStub",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_POSTFIELDS => json_encode([
'method' => 'getPayStub',
'payPeriodId' => 'F240E800-B95E-41E0-A5D3-0C84E22FFA82',
'userId' => '18C949DF-7D8C-4752-B7BE-8C2364BE55C5'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"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://sandbox.rollfi.xyz/reports/getPayStub"
payload := strings.NewReader("{\n \"method\": \"getPayStub\",\n \"payPeriodId\": \"F240E800-B95E-41E0-A5D3-0C84E22FFA82\",\n \"userId\": \"18C949DF-7D8C-4752-B7BE-8C2364BE55C5\"\n}")
req, _ := http.NewRequest("GET", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
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.get("https://sandbox.rollfi.xyz/reports/getPayStub")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"method\": \"getPayStub\",\n \"payPeriodId\": \"F240E800-B95E-41E0-A5D3-0C84E22FFA82\",\n \"userId\": \"18C949DF-7D8C-4752-B7BE-8C2364BE55C5\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.rollfi.xyz/reports/getPayStub")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"method\": \"getPayStub\",\n \"payPeriodId\": \"F240E800-B95E-41E0-A5D3-0C84E22FFA82\",\n \"userId\": \"18C949DF-7D8C-4752-B7BE-8C2364BE55C5\"\n}"
response = http.request(request)
puts response.read_body{
"payrollLineItem": [
{
"payPeriodId": "F240E800-B95E-41E0-A5D3-0C84E22FFA82",
"payPeriod": {
"payPeriod": "10/01/2025 - 10/31/2025",
"payDate": "2025-11-03"
},
"baseTotal": 3953.49,
"grossTotal": 4099.77,
"netTotal": 3725.61,
"ytdBaseTotal": 7953.49,
"ytdGrossTotal": 8332.33,
"ytdNetTotal": 7581.98,
"taxDetails": [
{
"TaxName": "Federal Withholding Tax",
"TaxAmount": 0,
"TaxAmountYTD": 0
},
{
"TaxName": "Medicare",
"TaxAmount": 58.5,
"TaxAmountYTD": 119.87
},
{
"TaxName": "Social Security",
"TaxAmount": 250.16,
"TaxAmountYTD": 512.58
},
{
"TaxName": "Cares Fund EE",
"TaxAmount": 23.66,
"TaxAmountYTD": 48.21
},
{
"TaxName": "WA - State paid family medical leave EE",
"TaxAmount": 26.84,
"TaxAmountYTD": 54.69
}
],
"deductions": [
{
"vertexDeductionIdentifier": {
"deductionDescription": "125Adoption Assistance Reg"
},
"amount": 25,
"amountYtd": 25
}
],
"additionalCompensations": [
{
"payrollLineItemAdditionalCompensation_VertexCompensationIdentifier": {
"compensationDescription": "3rd Party LTD 125 plan"
},
"amount": 20,
"amountYtd": 20
}
],
"overTimes": [
{
"overTimeType": {
"overTimeType": "Comp off OT"
},
"amount": 116.28,
"numberOfHours": 5,
"multiplier": 1,
"overtimeYTD": 348.84
}
],
"reimbursements": [
{
"reimbursementType": "Gym",
"amount": 10,
"reimbursementYTD": 10
}
],
"timeOffs": []
}
]
}{
"error": {
"code": 400,
"message": "Invalid userId"
}
}Authorizations
Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.
Response
Show child attributes
Show child attributes
⌘I
