curl --request POST \
--url https://api.app.lastaccountingcompany.com/portal/payroll/employees/tax-card/fetch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"employee_id": "<string>",
"contract_id": "<string>",
"payment_date": "<string>",
"customer_id": "<string>"
}
'import requests
url = "https://api.app.lastaccountingcompany.com/portal/payroll/employees/tax-card/fetch"
payload = {
"employee_id": "<string>",
"contract_id": "<string>",
"payment_date": "<string>",
"customer_id": "<string>"
}
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({
employee_id: '<string>',
contract_id: '<string>',
payment_date: '<string>',
customer_id: '<string>'
})
};
fetch('https://api.app.lastaccountingcompany.com/portal/payroll/employees/tax-card/fetch', 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.app.lastaccountingcompany.com/portal/payroll/employees/tax-card/fetch",
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([
'employee_id' => '<string>',
'contract_id' => '<string>',
'payment_date' => '<string>',
'customer_id' => '<string>'
]),
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.app.lastaccountingcompany.com/portal/payroll/employees/tax-card/fetch"
payload := strings.NewReader("{\n \"employee_id\": \"<string>\",\n \"contract_id\": \"<string>\",\n \"payment_date\": \"<string>\",\n \"customer_id\": \"<string>\"\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.app.lastaccountingcompany.com/portal/payroll/employees/tax-card/fetch")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"employee_id\": \"<string>\",\n \"contract_id\": \"<string>\",\n \"payment_date\": \"<string>\",\n \"customer_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.app.lastaccountingcompany.com/portal/payroll/employees/tax-card/fetch")
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 \"employee_id\": \"<string>\",\n \"contract_id\": \"<string>\",\n \"payment_date\": \"<string>\",\n \"customer_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"tax_card": {
"customer_id": "<string>",
"employee_id": "<string>",
"contract_id": "<string>",
"payment_date": "<string>",
"outcome": "applied",
"changed": true,
"includes_stock_options_and_grants": true,
"nonresident_progressive_tax_claim": true,
"voided_draft_run_ids": [
"<string>"
],
"fetch_id": "<string>",
"environment": "test",
"authority_base_basis_points": 123,
"authority_additional_basis_points": 123,
"annual_income_ceiling_cents": 123,
"valid_from": "<string>",
"employee_requested_minimum_basis_points": 123,
"applied_base_basis_points": 123,
"applied_additional_basis_points": 123,
"note": "<string>"
},
"workspace": {
"known_people": [
{
"party_id": "<string>",
"resource": {
"uri": "<string>",
"revision": "<string>"
},
"name": "<string>",
"email": "<string>",
"saved_account_last4": "<string>",
"linked_employee_id": "<string>"
}
],
"run": {
"payment_blocked_reason": "superseded_run",
"bank_paid_date": "2023-12-25",
"payment_date_reported": true,
"payment_instructions": {
"salary_total_cents": 1,
"salary_lines": [
{
"employee_id": "<string>",
"payee_name": "<string>",
"amount_cents": 2,
"status": "ready",
"iban": "<string>"
}
]
},
"payment_reconciliation": {
"lines": [
{
"review_revision": "<string>",
"bank_transaction_id": "<string>",
"bank_booking_date": "2023-12-25",
"bank_description": "<string>",
"bank_counterparty_name": "<string>",
"bank_reference": "<string>",
"state": "confirmed"
}
]
}
}
}
}{
"error": "<string>",
"detail": "<string>"
}{
"error": "<string>",
"detail": "<string>"
}{
"error": "<string>",
"detail": "<string>"
}Fetch an employee's wage tax card from Vero
NOT available to API keys — requires an interactive admin or existing approver session. Fetches the wage tax card for one actual or future payday, applies normalized authority facts through the audited payroll primitive, and returns the refreshed workspace for the payday’s month. The server selects the Vero environment and reads the employee identity from tenant-scoped payroll state; neither can be supplied in this request.
curl --request POST \
--url https://api.app.lastaccountingcompany.com/portal/payroll/employees/tax-card/fetch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"employee_id": "<string>",
"contract_id": "<string>",
"payment_date": "<string>",
"customer_id": "<string>"
}
'import requests
url = "https://api.app.lastaccountingcompany.com/portal/payroll/employees/tax-card/fetch"
payload = {
"employee_id": "<string>",
"contract_id": "<string>",
"payment_date": "<string>",
"customer_id": "<string>"
}
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({
employee_id: '<string>',
contract_id: '<string>',
payment_date: '<string>',
customer_id: '<string>'
})
};
fetch('https://api.app.lastaccountingcompany.com/portal/payroll/employees/tax-card/fetch', 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.app.lastaccountingcompany.com/portal/payroll/employees/tax-card/fetch",
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([
'employee_id' => '<string>',
'contract_id' => '<string>',
'payment_date' => '<string>',
'customer_id' => '<string>'
]),
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.app.lastaccountingcompany.com/portal/payroll/employees/tax-card/fetch"
payload := strings.NewReader("{\n \"employee_id\": \"<string>\",\n \"contract_id\": \"<string>\",\n \"payment_date\": \"<string>\",\n \"customer_id\": \"<string>\"\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.app.lastaccountingcompany.com/portal/payroll/employees/tax-card/fetch")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"employee_id\": \"<string>\",\n \"contract_id\": \"<string>\",\n \"payment_date\": \"<string>\",\n \"customer_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.app.lastaccountingcompany.com/portal/payroll/employees/tax-card/fetch")
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 \"employee_id\": \"<string>\",\n \"contract_id\": \"<string>\",\n \"payment_date\": \"<string>\",\n \"customer_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"tax_card": {
"customer_id": "<string>",
"employee_id": "<string>",
"contract_id": "<string>",
"payment_date": "<string>",
"outcome": "applied",
"changed": true,
"includes_stock_options_and_grants": true,
"nonresident_progressive_tax_claim": true,
"voided_draft_run_ids": [
"<string>"
],
"fetch_id": "<string>",
"environment": "test",
"authority_base_basis_points": 123,
"authority_additional_basis_points": 123,
"annual_income_ceiling_cents": 123,
"valid_from": "<string>",
"employee_requested_minimum_basis_points": 123,
"applied_base_basis_points": 123,
"applied_additional_basis_points": 123,
"note": "<string>"
},
"workspace": {
"known_people": [
{
"party_id": "<string>",
"resource": {
"uri": "<string>",
"revision": "<string>"
},
"name": "<string>",
"email": "<string>",
"saved_account_last4": "<string>",
"linked_employee_id": "<string>"
}
],
"run": {
"payment_blocked_reason": "superseded_run",
"bank_paid_date": "2023-12-25",
"payment_date_reported": true,
"payment_instructions": {
"salary_total_cents": 1,
"salary_lines": [
{
"employee_id": "<string>",
"payee_name": "<string>",
"amount_cents": 2,
"status": "ready",
"iban": "<string>"
}
]
},
"payment_reconciliation": {
"lines": [
{
"review_revision": "<string>",
"bank_transaction_id": "<string>",
"bank_booking_date": "2023-12-25",
"bank_description": "<string>",
"bank_counterparty_name": "<string>",
"bank_reference": "<string>",
"state": "confirmed"
}
]
}
}
}
}{
"error": "<string>",
"detail": "<string>"
}{
"error": "<string>",
"detail": "<string>"
}{
"error": "<string>",
"detail": "<string>"
}Authorizations
Firebase ID token from an interactive portal session. Required for interactive operations (payroll, company settings, API-key management) and invoice decisions allowed by the member's review permissions.
Body
Response
Authority outcome and payroll workspace for the payday's month.
Show child attributes
Show child attributes
The payroll workspace for a period: employees, employer settings, and runs. Amounts are integer cents; rates are basis points. Interior shapes beyond the documented payment evidence fields vary and are returned as-is.
Show child attributes
Show child attributes