Skip to content

Instantly share code, notes, and snippets.

@nafassait
Last active January 22, 2018 20:17
Show Gist options
  • Save nafassait/beb7b1f94fbdd6d9418011a750662edd to your computer and use it in GitHub Desktop.
Save nafassait/beb7b1f94fbdd6d9418011a750662edd to your computer and use it in GitHub Desktop.
Downloads bulk pay-slips from ADP website
/*
This has been tested in Chrome Version 63.0.3239.132 (64-bit)
1. Log into ADP website using the URL: https://my.adp.com/static/redbox/login.html (Make sure you are NOT in Incognito mode)
2. Open Developer Tools console
3. Set numberoflastpaydates as required by default saying 400
4. Run the following code in the console:
*/
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://my.adp.com/v1_0/O/A/payStatements?adjustments=yes&numberoflastpaydates=400');
xhr.setRequestHeader("Access-Control-Allow-Origin", "*"); // CORS policy
xhr.onload = function() {
if (xhr.status === 200) {
var rawData = JSON.parse(xhr.responseText);
for (var index = rawData.payStatements.length - 1; index >= 0; --index) {
var entry = rawData.payStatements[index];
var url = "https://my.adp.com" + entry.statementImageUri.href.substring(3);
var a = document.createElement('a');
var trueIndex = (rawData.payStatements.length - index);
if (trueIndex < 10) {
trueIndex = "00" + trueIndex;
} else if (trueIndex < 100) {
trueIndex = "0" + trueIndex;
}
a.download = "payslip.no." + trueIndex + ".from." + entry.payDate + ".pdf";
a.href = url;
document.body.appendChild(a);
a.click();
delete a;
}
} else {
console.log('Request failed. Returned status of ' + xhr.status);
}
};
xhr.send();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment