The QuickBooks Payroll API provides resources for managing pensions. The information below describes how to use the resources to manage the pension information associated with both an employer and an employee.
For details on each resource, see the the GraphQL Reference.
Scope: qb.payroll.benefits
Request
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | query EmployerPensionsQuery { payrollEmployerInfo { pensions { edges { node { id name category { description key value } statutoryType { description key value } subCategory { description key value } alternateIds { id nameSpace } } } pageInfo { hasPreviousPage hasNextPage startCursor endCursor } } } } |
Input
1 2 3 4 | { "first": 10, "after": "-1" } |
Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 | { "data": { "payrollEmployerInfo": { "pensions": { "edges": [ { "node": { "id": "01020000-0378-0000-9900-002DCC2BC985", "name": "YourPensionName Traditional 401(k)", "category": { "description": "RETIREMENT_PLANS_3P", "key": "RETIREMENT_PLANS_3P", "value": "RETIREMENT_PLANS_3P" }, "statutoryType": { "description": "TDED_CUS_ERP401K3PPT", "key": "TDED_CUS_ERP401K3PPT", "value": "TDED_CUS_ERP401K3PPT" }, "subCategory": { "description": "401(k)", "key": "401(k)", "value": "401(k)" }, "alternateIds": [ { "id": "djQuMTo5MTMwMzU5NDA4NTE3ODk2OjdjMjBlZWZjOWI:3000709", "nameSpace": "Intuit.ems.v4" } ] } }, { "node": { "id": "01020000-0378-0000-B700-002D2A0DD452", "name": "401k non gdl", "category": { "description": "RETIREMENT_PLANS", "key": "RETIREMENT_PLANS", "value": "RETIREMENT_PLANS" }, "statutoryType": { "description": "TDED_CUS_ERP401KPT", "key": "TDED_CUS_ERP401KPT", "value": "TDED_CUS_ERP401KPT" }, "subCategory": { "description": "401(k)", "key": "401(k)", "value": "401(k)" }, "alternateIds": [ { "id": "djQuMTo5MTMwMzU5NDA4NTE3ODk2OjdjMjBlZWZjOWI:3003474", "nameSpace": "Intuit.ems.v4" } ] } }, { "node": { "id": "01020000-0378-0000-D400-002DA910D453", "name": "test401", "category": { "description": "RETIREMENT_PLANS", "key": "RETIREMENT_PLANS", "value": "RETIREMENT_PLANS" }, "statutoryType": { "description": "TDED_CUS_ERP401KPT", "key": "TDED_CUS_ERP401KPT", "value": "TDED_CUS_ERP401KPT" }, "subCategory": { "description": "401(k)", "key": "401(k)", "value": "401(k)" }, "alternateIds": [ { "id": "djQuMTo5MTMwMzU5NDA4NTE3ODk2OjdjMjBlZWZjOWI:3003475", "nameSpace": "Intuit.ems.v4" } ] } }, { { "node": { "id": "01020000-0378-0000-0600-002D3DC4C9B7", "name": "YourPensionName Traditional 401(k)", "category": { "description": "RETIREMENT_PLANS_3P", "key": "RETIREMENT_PLANS_3P", "value": "RETIREMENT_PLANS_3P" }, "statutoryType": { "description": "TDED_CUS_ERP401KC3PUPT", "key": "TDED_CUS_ERP401KC3PUPT", "value": "TDED_CUS_ERP401KC3PUPT" }, "subCategory": { "description": "401(k) Catch-up", "key": "401(k) Catch-up", "value": "401(k) Catch-up" }, "alternateIds": [ { "id": "djQuMTo5MTMwMzU5NDA4NTE3ODk2OjdjMjBlZWZjOWI:3000759", "nameSpace": "Intuit.ems.v4" } ] } }, { "node": { "id": "01020000-0378-0000-A900-002DAA58C986", "name": "YourPensionName Roth 401(k)", "category": { "description": "RETIREMENT_PLANS_3P", "key": "RETIREMENT_PLANS_3P", "value": "RETIREMENT_PLANS_3P" }, "statutoryType": { "description": "TDED_CUS_ERPROTH401K3PTA", "key": "TDED_CUS_ERPROTH401K3PTA", "value": "TDED_CUS_ERPROTH401K3PTA" }, "subCategory": { "description": "After-tax Roth 401(k)", "key": "After-tax Roth 401(k)", "value": "After-tax Roth 401(k)" }, "alternateIds": [ { "id": "djQuMTo5MTMwMzU5NDA4NTE3ODk2OjdjMjBlZWZjOWI:3000710", "nameSpace": "Intuit.ems.v4" } ] } }, { "node": { "id": "01020000-0378-0000-9500-002E4195605F", "name": "YourPensionName Roth 401(k) Catchup", "category": { "description": "RETIREMENT_PLANS", "key": "RETIREMENT_PLANS", "value": "RETIREMENT_PLANS" }, "statutoryType": { "description": "TDED_CUS_ERPROTH401KCUPT", "key": "TDED_CUS_ERPROTH401KCUPT", "value": "TDED_CUS_ERPROTH401KCUPT" }, "subCategory": { "description": "After-tax Roth 401(k) Catch-up", "key": "After-tax Roth 401(k) Catch-up", "value": "After-tax Roth 401(k) Catch-up" }, "alternateIds": [ { "id": "djQuMTo5MTMwMzU5NDA4NTE3ODk2OjdjMjBlZWZjOWI:3039327", "nameSpace": "Intuit.ems.v4" } ] } } } ], "pageInfo": { "hasPreviousPage": false, "hasNextPage": false, "startCursor": null, "endCursor": null } } } } } |
Scope: qb.payroll.benefits
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | mutation createEmployerPension($input: Payroll_CreatePensionPolicyInput!) { payrollCreatePensionPolicy(input: $input) { ... on Payroll_CreatePensionPolicySuccess { policy { id name category { key description value } subCategory { key description value } statutoryType { key description value } } } ... on Payroll_DeductionError { employeeId message type } } } |
Traditional 401K
1 2 3 4 5 6 7 | { "input": { "name": "YourPensionName Traditional 401(k)", "statutoryType": "TDED_CUS_ERP401KPT" } } |
Traditional 401K Catchup
1 2 3 4 5 6 7 | { "input": { "name": "YourPensionName Traditional 401(k)", "statutoryType": "TDED_CUS_ERP401KCUPT" } } |
Roth 401K
1 2 3 4 5 6 7 | { "input": { "name": "YourPensionName Roth 401(k)", "statutoryType": "TDED_CUS_ERP401KPT" } } |
Roth 401K Catchup
1 2 3 4 5 6 7 | { "input": { "name": "YourPensionName Roth 401(k)”, "statutoryType": "TDED_CUS_ERPROTH401KCUPT" } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | Success: { "data": { "payrollCreatePensionPolicy": { "policy": { "id": "01020000-0378-0000-F400-0030541F8CBA", "name": "YourPensionName Traditional 401(k)", "category": { "key": "RETIREMENT_PLANS", "description": "RETIREMENT_PLANS", "value": "RETIREMENT_PLANS" }, "subCategory": { "key": "401(k)", "description": "401(k)", "value": "401(k)" }, "statutoryType": { "key": "TDED_CUS_ERP401KPT", "description": "TDED_CUS_ERP401KPT", "value": "TDED_CUS_ERP401KPT" } } } } } |
1 2 3 4 5 6 | Error: { "data": { } } |
Scope: qb.payroll.benefits
Request
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | mutation updateEmployerPension($input: Payroll_UpdatePensionPolicyInput!) { payrollUpdatePensionPolicy(input: $input) { ... on Payroll_UpdatePensionPolicySuccess { policy { id name category { key description value } subCategory { key description value } statutoryType { key description value } } } ... on Payroll_DeductionError { employeeId message type } } } |
Input variable
1 2 3 4 5 6 | { "input": { "name": "YourPensionName Roth 401(k) Catchup New", "id": "01020000-0378-0000-6D00-002EDC0843FB" } } |
Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | Success: { "data": { "payrollUpdatePensionPolicy": { "policy": { "id": "01020000-0378-0000-6D00-002EDC0843FB", "name": "YourPensionName Roth 401(k) Catchup New", "category": { "key": "RETIREMENT_PLANS", "description": "RETIREMENT_PLANS", "value": "RETIREMENT_PLANS" }, "subCategory": { "key": "After-tax Roth 401(k) Catch-up", "description": "After-tax Roth 401(k) Catch-up", "value": "After-tax Roth 401(k) Catch-up" }, "statutoryType": { "key": "TDED_CUS_ERPROTH401KCUPT", "description": "TDED_CUS_ERPROTH401KCUPT", "value": "TDED_CUS_ERPROTH401KCUPT" } } } } } |
1 2 3 4 5 6 | Error { "data": { } } |
Scope: qb.payroll.benefits
Request
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | query EmployeePensionQuery($filter: WorkerManagement_EmployeeConnectionFilter) { workerManagementEmployees(filter: $filter) { edges { node { id firstName lastName alternateIds { id nameSpace } employmentStatus { active detailedStatus } payrollEmployeeDetails { workLocation { addressComponents { streetAddressLine1 city state country } } pensions { id active alternateIds { id nameSpace } employeeContribution { amount { value type } capping { amount { value type } frequency } frequency } employerContribution { amount { type value } capping { amount { type value } frequency } frequency } employeeExternalContribution { amount { value currency } } deductionPolicy { id name statutoryType { key description value } subCategory { key value description } } } } } } } } |
Input variables
Note: If you have four elements and specify “after 0”, you will get records 2-4.
1 2 3 4 5 6 7 8 9 10 11 | { "first": 10, "after": "-1", "filter": { "employmentStatus": { "active": { "eq": true } } } } |
Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | "data": { "workerManagementEmployees": { "edges": [ { "node": { "id": "4", "firstName": "catchup", "lastName": "last", "alternateIds": [ { "id": "djQuMTo5MTMwMzU5NDA4NTE3ODk2OjlkNjk5ZTk2MDg:0020715c1128f234ec4d12bc7a9db2db916b86", "nameSpace": "Intuit.sbseg.v4" } ], "employmentStatus": { "active": true, "detailedStatus": "ACTIVE" }, "payrollEmployeeDetails": { "workLocation": { "id": "01020000-0338-0000-0400-035E633F8497", "alternateIds": null, "addressComponents": { "streetAddressLine1": "2700 Coast Ave", "city": "Mountain View", "state": "CA", "country": null } }, "pensions": [ { "id": "01020000-0370-0009-B000-505DDC3C5985", "active": true, "alternateIds": [ { "id": "djQuMTo5MTMwMzU5NDA4NTE3ODk2OjFhYTY2Njk4ZjQ:851937", "nameSpace": "Intuit.ems.v4" } ], "employeeContribution": { "amount": { "value": "0", "type": "PERCENT" }, "capping": { "amount": { "value": "23000", "type": "FIXED" }, "frequency": "BY_CALENDAR_YEAR" }, "frequency": "PER_PAYSLIP" }, "employerContribution": { "amount": { "type": "PERCENT", "value": "0" }, "capping": { "amount": { "type": "FIXED", "value": "13200" }, "frequency": "BY_CALENDAR_YEAR" }, "frequency": "PER_PAYSLIP" }, "deductionPolicy": { "id": "01020000-0378-0000-9900-002DCC2BC985", "name": "YourPensionName Traditional 401(k)", "statutoryType": { "key": "TDED_CUS_ERP401K3PPT", "description": "TDED_CUS_ERP401K3PPT", "value": "TDED_CUS_ERP401K3PPT" }, "subCategory": { "key": "401(k)", "value": "401(k)", "description": "401(k)" } } }, { "id": "01020000-0370-0009-D300-505D4C3E5986", "active": true, "alternateIds": [ { "id": "djQuMTo5MTMwMzU5NDA4NTE3ODk2OjFhYTY2Njk4ZjQ:851938", "nameSpace": "Intuit.ems.v4" } ], "employeeContribution": { "amount": { "value": "0", "type": "PERCENT" }, "capping": { "amount": { "value": "23000", "type": "FIXED" }, "frequency": "BY_CALENDAR_YEAR" }, "frequency": "PER_PAYSLIP" }, "employerContribution": { "amount": { "type": "PERCENT", "value": "0" }, "capping": { "amount": { "type": "FIXED", "value": "66000" }, "frequency": "BY_CALENDAR_YEAR" }, "frequency": "PER_PAYSLIP" }, "deductionPolicy": { "id": "01020000-0378-0000-A900-002DAA58C986", "name": "YourPensionName Roth 401(k)", "statutoryType": { "key": "TDED_CUS_ERPROTH401K3PTA", "description": "TDED_CUS_ERPROTH401K3PTA", "value": "TDED_CUS_ERPROTH401K3PTA" }, "subCategory": { "key": "After-tax Roth 401(k)", "value": "After-tax Roth 401(k)", "description": "After-tax Roth 401(k)" } } } ] } } } ] } |
Scope: qb.payroll.benefits
Request
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | mutation createEmployeePension($input: Payroll_CreateEmployeePensionInput!) { payrollCreateEmployeePension(input: $input) { ... on Payroll_CreateEmployeePensionSuccess { deduction { id active employeeContribution { amount { value type } capping { frequency amount { type value } } frequency } employerContribution { frequency capping { amount { value type } frequency } amount { type value } } employeeExternalContribution { amount { value currency } } alternateIds { id nameSpace } } } } } |
Input variables
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | { "input": { "employeeId": "5", "employeeDeductionDetails": { "existingDeductionPolicyId": "01020000-0378-0000-6D00-002EDC0843FB", "contribution": { "employerContributionInput": { "amount": { "type": "FIXED", "value": "10" }, "frequency": "PER_PAYSLIP", "capping": { "amount": { "type": "FIXED", "value": "100" } } }, "employeeContributionInput": { "amount": { "type": "FIXED", "value": "20" }, "frequency": "PER_PAYSLIP", "capping": { "amount": { "type": "FIXED", "value": "200" } } }, "employeeExternalContributionInput": { "amount": { "value" : 2000 } } } } } } } |
Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | Success: { "data": { "payrollCreateEmployeePension": { "deduction": { "id": "01020000-0370-000B-9200-A46947DFB7FB", "active": true, "employeeContribution": { "amount": { "value": "20", "type": "FIXED" }, "capping": { "frequency": "BY_CALENDAR_YEAR", "amount": { "type": "FIXED", "value": "30500" } }, "frequency": "PER_PAYSLIP" }, "employerContribution": { "frequency": "PER_PAYSLIP", "capping": { "amount": { "value": "100", "type": "FIXED" }, "frequency": "BY_CALENDAR_YEAR" }, "amount": { "type": "FIXED", "value": "10" } }, "alternateIds": [ { "id": "djQuMTo5MTMwMzU2Nzk4NjgxMDE2OjFhYTY2Njk4ZjQ:932433", "nameSpace": "Intuit.sbseg.v4" } ] } } } |
1 2 3 4 5 6 | Error: { "data": { } } |
Scope: qb.payroll.benefits
Request
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | mutation createEmployeePension($input: Payroll_CreateEmployeePensionInput!) { payrollCreateEmployeePension(input: $input) { ... on Payroll_CreateEmployeePensionSuccess { deduction { id active employeeContribution { amount { value type } capping { frequency amount { type value } } frequency } employerContribution { frequency capping { amount { value type } frequency } amount { type value } } employeeExternalContribution { amount { value currency } } alternateIds { id nameSpace } } } } } |
Input variables
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | { "input": { "employeeId": "5", "employeeDeductionDetails": { "existingDeductionPolicyId": "01020000-0378-0000-6D00-002EDC0843FB", "contribution": { "employerContributionInput": { "amount": { "type": "FIXED", "value": "10" }, "frequency": "PER_PAYSLIP", "capping": { "amount": { "type": "FIXED", "value": "100" } } }, "employeeContributionInput": { "amount": { "type": "FIXED", "value": "20" }, "frequency": "PER_PAYSLIP", "capping": { "amount": { "type": "FIXED", "value": "200" } } }, "employeeExternalContributionInput": { "amount": { "value" : 2000 } } } } } } } |
Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | Success: { "data": { "payrollCreateEmployeePension": { "deduction": { "id": "01020000-0370-000B-9200-A46947DFB7FB", "active": true, "employeeContribution": { "amount": { "value": "20", "type": "FIXED" }, "capping": { "frequency": "BY_CALENDAR_YEAR", "amount": { "type": "FIXED", "value": "30500" } }, "frequency": "PER_PAYSLIP" }, "employerContribution": { "frequency": "PER_PAYSLIP", "capping": { "amount": { "value": "100", "type": "FIXED" }, "frequency": "BY_CALENDAR_YEAR" }, "amount": { "type": "FIXED", "value": "10" } }, "alternateIds": [ { "id": "djQuMTo5MTMwMzU2Nzk4NjgxMDE2OjFhYTY2Njk4ZjQ:932433", "nameSpace": "Intuit.sbseg.v4" } ] } } } |
1 2 3 4 5 6 | Error: { "data": { } } |
Scope: qb.payroll.benefits
Request
1 2 3 4 5 6 7 | mutation DeleteEmployeePension($input: Payroll_DeleteEmployeePensionInput!) { payrollDeleteEmployeePension(input: $input) { ... on Payroll_DeleteEmployeePensionSuccess { id } } } |
Input variables
1 2 3 4 5 6 | { "input":{ "employeeId": "01020000-0340-0000-A200-0155368C4534", "employeeDeductionId": "0102031A-0370-94F6-2E00-FB0EC78B305D" } } |
Response
1 2 3 4 5 6 7 | { "data": { "payrollDeleteEmployeePension": { "id": "0102031A-0370-94F6-2E00-FB0EC78B305D" } } } |