POST
/
germany
/
payroll
New Payroll
curl --request POST \
  --url https://dev.intermezzo.ai/germany/payroll \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "payroll_group": [
    {
      "employee_details": {
        "employee_id": "<string>",
        "year_of_birth": 1938,
        "is_mini_job": false,
        "mini_job_details": {
          "pension_exemption": false,
          "flat_rate_paid_by_employee": false
        },
        "agreed_work_hours_per_week": "0"
      },
      "tax_attributes": {
        "is_factor": false,
        "factor": 0.5005,
        "child_allowances": "0",
        "is_church_member": false,
        "tax_state": "Berlin"
      },
      "insurance_details": {
        "health_insurer_agency_code": "<string>",
        "private_insurance_monthly": "0",
        "care_insurance_children": 0,
        "is_midi_job": false
      },
      "pay_details": {
        "earnings": [
          {
            "earning_type": "<string>",
            "amount": 1,
            "earning_frequency": "Month",
            "is_lumpsum": false,
            "do_grossup": false
          }
        ],
        "benefits": [
          {
            "name": "<string>",
            "value": 1,
            "additional_payments": "0.00",
            "private_trip": "0.00"
          }
        ],
        "deductions": [
          {
            "amount": 1
          }
        ],
        "reimbursements": [
          {
            "name": "<string>",
            "amount": 1
          }
        ]
      }
    }
  ]
}
'
import requests

url = "https://dev.intermezzo.ai/germany/payroll"

payload = { "payroll_group": [
{
"employee_details": {
"employee_id": "<string>",
"year_of_birth": 1938,
"is_mini_job": False,
"mini_job_details": {
"pension_exemption": False,
"flat_rate_paid_by_employee": False
},
"agreed_work_hours_per_week": "0"
},
"tax_attributes": {
"is_factor": False,
"factor": 0.5005,
"child_allowances": "0",
"is_church_member": False,
"tax_state": "Berlin"
},
"insurance_details": {
"health_insurer_agency_code": "<string>",
"private_insurance_monthly": "0",
"care_insurance_children": 0,
"is_midi_job": False
},
"pay_details": {
"earnings": [
{
"earning_type": "<string>",
"amount": 1,
"earning_frequency": "Month",
"is_lumpsum": False,
"do_grossup": False
}
],
"benefits": [
{
"name": "<string>",
"value": 1,
"additional_payments": "0.00",
"private_trip": "0.00"
}
],
"deductions": [{ "amount": 1 }],
"reimbursements": [
{
"name": "<string>",
"amount": 1
}
]
}
}
] }
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({
payroll_group: [
{
employee_details: {
employee_id: '<string>',
year_of_birth: 1938,
is_mini_job: false,
mini_job_details: {pension_exemption: false, flat_rate_paid_by_employee: false},
agreed_work_hours_per_week: '0'
},
tax_attributes: {
is_factor: false,
factor: 0.5005,
child_allowances: '0',
is_church_member: false,
tax_state: 'Berlin'
},
insurance_details: {
health_insurer_agency_code: '<string>',
private_insurance_monthly: '0',
care_insurance_children: 0,
is_midi_job: false
},
pay_details: {
earnings: [
{
earning_type: '<string>',
amount: 1,
earning_frequency: 'Month',
is_lumpsum: false,
do_grossup: false
}
],
benefits: [
{name: '<string>', value: 1, additional_payments: '0.00', private_trip: '0.00'}
],
deductions: [{amount: 1}],
reimbursements: [{name: '<string>', amount: 1}]
}
}
]
})
};

fetch('https://dev.intermezzo.ai/germany/payroll', 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://dev.intermezzo.ai/germany/payroll",
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([
'payroll_group' => [
[
'employee_details' => [
'employee_id' => '<string>',
'year_of_birth' => 1938,
'is_mini_job' => false,
'mini_job_details' => [
'pension_exemption' => false,
'flat_rate_paid_by_employee' => false
],
'agreed_work_hours_per_week' => '0'
],
'tax_attributes' => [
'is_factor' => false,
'factor' => 0.5005,
'child_allowances' => '0',
'is_church_member' => false,
'tax_state' => 'Berlin'
],
'insurance_details' => [
'health_insurer_agency_code' => '<string>',
'private_insurance_monthly' => '0',
'care_insurance_children' => 0,
'is_midi_job' => false
],
'pay_details' => [
'earnings' => [
[
'earning_type' => '<string>',
'amount' => 1,
'earning_frequency' => 'Month',
'is_lumpsum' => false,
'do_grossup' => false
]
],
'benefits' => [
[
'name' => '<string>',
'value' => 1,
'additional_payments' => '0.00',
'private_trip' => '0.00'
]
],
'deductions' => [
[
'amount' => 1
]
],
'reimbursements' => [
[
'name' => '<string>',
'amount' => 1
]
]
]
]
]
]),
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://dev.intermezzo.ai/germany/payroll"

payload := strings.NewReader("{\n \"payroll_group\": [\n {\n \"employee_details\": {\n \"employee_id\": \"<string>\",\n \"year_of_birth\": 1938,\n \"is_mini_job\": false,\n \"mini_job_details\": {\n \"pension_exemption\": false,\n \"flat_rate_paid_by_employee\": false\n },\n \"agreed_work_hours_per_week\": \"0\"\n },\n \"tax_attributes\": {\n \"is_factor\": false,\n \"factor\": 0.5005,\n \"child_allowances\": \"0\",\n \"is_church_member\": false,\n \"tax_state\": \"Berlin\"\n },\n \"insurance_details\": {\n \"health_insurer_agency_code\": \"<string>\",\n \"private_insurance_monthly\": \"0\",\n \"care_insurance_children\": 0,\n \"is_midi_job\": false\n },\n \"pay_details\": {\n \"earnings\": [\n {\n \"earning_type\": \"<string>\",\n \"amount\": 1,\n \"earning_frequency\": \"Month\",\n \"is_lumpsum\": false,\n \"do_grossup\": false\n }\n ],\n \"benefits\": [\n {\n \"name\": \"<string>\",\n \"value\": 1,\n \"additional_payments\": \"0.00\",\n \"private_trip\": \"0.00\"\n }\n ],\n \"deductions\": [\n {\n \"amount\": 1\n }\n ],\n \"reimbursements\": [\n {\n \"name\": \"<string>\",\n \"amount\": 1\n }\n ]\n }\n }\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://dev.intermezzo.ai/germany/payroll")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"payroll_group\": [\n {\n \"employee_details\": {\n \"employee_id\": \"<string>\",\n \"year_of_birth\": 1938,\n \"is_mini_job\": false,\n \"mini_job_details\": {\n \"pension_exemption\": false,\n \"flat_rate_paid_by_employee\": false\n },\n \"agreed_work_hours_per_week\": \"0\"\n },\n \"tax_attributes\": {\n \"is_factor\": false,\n \"factor\": 0.5005,\n \"child_allowances\": \"0\",\n \"is_church_member\": false,\n \"tax_state\": \"Berlin\"\n },\n \"insurance_details\": {\n \"health_insurer_agency_code\": \"<string>\",\n \"private_insurance_monthly\": \"0\",\n \"care_insurance_children\": 0,\n \"is_midi_job\": false\n },\n \"pay_details\": {\n \"earnings\": [\n {\n \"earning_type\": \"<string>\",\n \"amount\": 1,\n \"earning_frequency\": \"Month\",\n \"is_lumpsum\": false,\n \"do_grossup\": false\n }\n ],\n \"benefits\": [\n {\n \"name\": \"<string>\",\n \"value\": 1,\n \"additional_payments\": \"0.00\",\n \"private_trip\": \"0.00\"\n }\n ],\n \"deductions\": [\n {\n \"amount\": 1\n }\n ],\n \"reimbursements\": [\n {\n \"name\": \"<string>\",\n \"amount\": 1\n }\n ]\n }\n }\n ]\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://dev.intermezzo.ai/germany/payroll")

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 \"payroll_group\": [\n {\n \"employee_details\": {\n \"employee_id\": \"<string>\",\n \"year_of_birth\": 1938,\n \"is_mini_job\": false,\n \"mini_job_details\": {\n \"pension_exemption\": false,\n \"flat_rate_paid_by_employee\": false\n },\n \"agreed_work_hours_per_week\": \"0\"\n },\n \"tax_attributes\": {\n \"is_factor\": false,\n \"factor\": 0.5005,\n \"child_allowances\": \"0\",\n \"is_church_member\": false,\n \"tax_state\": \"Berlin\"\n },\n \"insurance_details\": {\n \"health_insurer_agency_code\": \"<string>\",\n \"private_insurance_monthly\": \"0\",\n \"care_insurance_children\": 0,\n \"is_midi_job\": false\n },\n \"pay_details\": {\n \"earnings\": [\n {\n \"earning_type\": \"<string>\",\n \"amount\": 1,\n \"earning_frequency\": \"Month\",\n \"is_lumpsum\": false,\n \"do_grossup\": false\n }\n ],\n \"benefits\": [\n {\n \"name\": \"<string>\",\n \"value\": 1,\n \"additional_payments\": \"0.00\",\n \"private_trip\": \"0.00\"\n }\n ],\n \"deductions\": [\n {\n \"amount\": 1\n }\n ],\n \"reimbursements\": [\n {\n \"name\": \"<string>\",\n \"amount\": 1\n }\n ]\n }\n }\n ]\n}"

response = http.request(request)
puts response.read_body
{
  "payslips": [
    {
      "employee_id": "<string>",
      "current_pay_period": {
        "employee": {
          "totals": {
            "total_gross_wages": "0.00",
            "taxable_gross_wages": "0.00",
            "net_wages": "0.00",
            "total_deductions": "0.00",
            "total_reimbursements": "0.00",
            "net_pay": "0.00"
          },
          "taxes": {
            "income_tax_assessment_base": "0.00",
            "solidarity_tax_assessment_base": "0.00",
            "income_tax": "0.00",
            "church_tax": "0.00",
            "solidarity_tax": "0.00",
            "total_tax": "0.00"
          },
          "insurance": {
            "insurance_assessment_base": "0.00",
            "pension_assessment_base": "0.00",
            "health_insurance_additional_rate": "0.00",
            "pension_insurance": "0.00",
            "unemployment_insurance": "0.00",
            "health_insurance": "0.00",
            "care_insurance": "0.00",
            "total_insurance": "0.00"
          },
          "deductions": [
            {
              "name": "<string>",
              "amount": "0.00"
            }
          ],
          "reimbursements": [
            {
              "name": "<string>",
              "amount": "0.00"
            }
          ]
        },
        "employer": {
          "pension_contribution": "0.00",
          "health_insurance_contribution": "0.00",
          "care_insurance_contribution": "0.00",
          "unemployment_insurance_contribution": "0.00",
          "sick_pay_insurance_contribution": "0.00",
          "maternity_pay_insurance_contribution": "0.00",
          "insolvency_insurance_contribution": "0.00",
          "flat_rate_tax_mini_job": "0.00",
          "total_burden": "0.00"
        }
      },
      "payment_period": "Month",
      "execution_history": [
        {
          "flow": "<string>",
          "node": "<string>"
        }
      ]
    }
  ],
  "summary": {
    "employer": {
      "pension_contribution": "0.00",
      "health_insurance_contribution": "0.00",
      "care_insurance_contribution": "0.00",
      "unemployment_insurance_contribution": "0.00",
      "sick_pay_insurance_contribution": "0.00",
      "maternity_pay_insurance_contribution": "0.00",
      "insolvency_insurance_contribution": "0.00",
      "flat_rate_tax_mini_job": "0.00",
      "total_burden": "0.00"
    }
  }
}
{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}

Authorizations

Authorization
string
header
required

Get token from Auth0 and paste it here

Headers

X-Include-Execution-History
boolean
default:false

Body

application/json

Input parameters according to PAP2025

pay_cycle
enum<string>
required

Lohnzahlungszeitraum (LZZ)

Available options:
Year,
Month,
Week,
Day
payroll_group
PayrollRequestBase · object[]
required
pay_date
string<date>

Payment Date for this payroll

Response

Successful Response

payslips
Payslip · object[]
required
summary
Summary · object