Update an employer's configuration. All fields are optional — only provided fields are updated.
Body
Required
-
Email address of the primary contact at the employer
-
Full name of the primary contact at the employer
-
Role of the primary contact at the employer
Values are
CompanyDirector,Finance,HR, orPayrollManager. -
Default employee contribution percentage
Minimum value is
0, maximum value is100. -
Default employer contribution percentage
Minimum value is
0, maximum value is100. -
Basis on which pension contributions are calculated
Values are
QualifyingEarnings,TotalPay, orBasicPay. -
Whether the employer allows salary sacrifice arrangements
-
How often the employer runs payroll
Values are
Weekly,Fortnightly,FourWeekly, orMonthly.
PATCH
/employers/{employerId}
curl \
--request PATCH 'https://partner-api.getpenfold.com/v1/employers/{employerId}' \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data '{"defaultEmployeeContributionsPercent":6,"defaultEmployerContributionsPercent":4}'
Request examples
Update contribution rates
{
"defaultEmployeeContributionsPercent": 6,
"defaultEmployerContributionsPercent": 4
}
{
"primaryContactName": "John Doe",
"primaryContactRole": "Finance",
"primaryContactEmail": "new.contact@acme.com"
}
Response examples (200)
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Acme Ltd",
"externalReference": "PEN12345678",
"companyNumber": "12345678",
"status": "Active",
"defaultEmployeeContributionsPercent": 5,
"defaultEmployerContributionsPercent": 3,
"contributionBasis": "QualifyingEarnings",
"allowsSalarySacrifice": false,
"paymentMethod": "BankTransfer",
"createdAt": "2025-03-01T10:00:00Z"
}
Response examples (400)
{
"error": "validation failed",
"validationErrors": [
{
"field": "companyNumber",
"message": "companyNumber is required"
},
{
"field": "primaryContactEmail",
"message": "must be a valid email address"
}
]
}
Response examples (401)
{
"error": "unauthorized"
}
Response examples (404)
{
"error": "not found"
}
Response examples (500)
{
"error": "internal server error"
}