ADP Mobile Solutions icon

ADP Mobile Solutions data API

ADP, INC. · Business

ADP Mobile Solutions is the employee self-service app from ADP, INC. (Automatic Data Processing), the New Jersey-based payroll and human-capital-management company behind RUN Powered by ADP, ADP Workforce Now and ADP Vantage HCM. After a worker signs in with their ADP account, the home screen is personalized to them and opens onto the everyday pay and time tasks: viewing pay statements and tax forms, checking paid-time-off balances per policy on a balance card, browsing assigned shifts on a schedule grid with a timesheet summary of the period's hours, clocking in and out, submitting time-off requests and following them through review, and setting up or changing direct deposit by photographing a paper check instead of typing in the bank routing number. Published for the United States, it serves the hourly and salaried employees of companies that run payroll, time and benefits on ADP — workers who want their pay, schedule and leave on their phone rather than at a desk or a shared kiosk — and it fills the same employee-facing role as the self-service apps of rival payroll and HR providers such as Paychex, Workday and UKG.

Per-policy paid-time-off balances, assigned shifts and pay-period hour totals make up the core of the worker record the app reads after sign-in. Balances come back in timeOffBalances, requested for a roleCode as of a balanceAsOfDate, so every policy's hours are pinned to a date. Shifts come back in timeSchedule for a window bounded by startDate and endDate, tied to a workAssignmentId and marked with the latestShift, while timePeriodCalculations holds the hours totalled for each period. Leave requests travel the other way, as events that move through TimeOffReview from submission to approval.

That record hangs off a profile envelope keyed by id and realmID, whose authScheme, Locale and tncAccepted terms flag decide which features switch on for the worker. On the banking side, the routingNumber captured from a photographed paper check — offered where bankRoutingServiceEnabled is set — records which bank the worker's direct deposit lands in.

Payroll, workforce and onboarding systems all need this per-worker record from ADP. Finance teams join each worker's id and realmID with timePeriodCalculations totals to reconcile scheduled hours against the payroll run before payday. Absence-management tools read timeOffBalances by roleCode and balanceAsOfDate to forecast shift coverage, then follow TimeOffReview events so approved leave lands in scheduling systems without being re-keyed. Onboarding flows check each captured routingNumber against bank routing directories to catch a mis-keyed deposit account before the first pay run. openData Studio turns this time, leave and direct-deposit record into callable open data for those integrations.

Screenshots

  • ADP Mobile Solutions screenshot 1
  • ADP Mobile Solutions screenshot 2
  • ADP Mobile Solutions screenshot 3
  • ADP Mobile Solutions screenshot 4
  • ADP Mobile Solutions screenshot 5
  • ADP Mobile Solutions screenshot 6
  • ADP Mobile Solutions screenshot 7
  • ADP Mobile Solutions screenshot 8

API surface

The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.

  • OAuth token issue (scoped access tokens)

    POST /v1/auth/token opendata

    Issues the scoped OAuth2 access tokens that the app attaches as Bearer credentials to its session, GraphQL and OCR calls; the time-and-attendance scope gates clock, balance and schedule data.

    Auth: OAuth2 application credentials (HTTP Basic). Issues scoped Bearer access tokens — e.g. the time-and-attendance scope required by the clock, balance and schedule features.

    • access_token
    • token_type
    • expires_in
    • scope
    • refresh_token
    POST /v1/auth/token HTTP/1.1
    Authorization: Basic <base64(appKey:appSecret)>
    Content-Type: application/x-www-form-urlencoded
    
    grant_type=password&username=jdoe&password=******&scope=time_attendance
    {
      "access_token": "eyJhbGciOiJSUzI1NiIs...",
      "token_type": "Bearer",
      "expires_in": 3600,
      "scope": "time_attendance"
    }
  • Server session + user profile

    POST /v1/session/login osint

    Creates the server session after sign-in and returns the worker's profile envelope — user id, realm, auth scheme, locale and terms-acceptance flag — that personalizes the home screen and feature gates.

    Auth: Form credential POST (username/password) with a client-app header; the resulting session upgrades to OAuth Bearer tokens for subsequent calls.

    • id
    • realmID
    • authScheme
    • tncAccepted
    • Locale
    • authToken
    • enableForgotPassword
    • enableChangePassword
    POST /v1/session/login HTTP/1.1
    Content-Type: application/x-www-form-urlencoded;charset=UTF-8
    X-Client-App: mobile
    
    username=jdoe&password=******
    {
      "user": {
        "id": "3fa9c1e2-7b5d-4c2a-9e01-8f2d6a41b0c7",
        "realmID": "GLOBL",
        "authScheme": "federated",
        "tncAccepted": true,
        "Locale": {"language": "en", "country": "US"},
        "enableForgotPassword": true,
        "enableChangePassword": true
      }
    }
  • Time-off balances (GraphQL)

    POST /v1/graphql opendata

    Reads the signed-in worker's paid-time-off balances as of a date, per role — the numbers behind the app's PTO balance card.

    Auth: OAuth2 Bearer access token with a time-and-attendance scope.

    • roleCode
    • balanceAsOfDate
    • timeOffBalances
    POST /v1/graphql HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Content-Type: application/json
    
    {"operationName":"GetTimeOffBalances","variables":{"roleCode":"employee","balanceAsOfDate":"2026-09-24"},"query":"query GetTimeOffBalances($roleCode: String!, $balanceAsOfDate: String!) { timeOffBalances { timeOffBalances(roleCode: $roleCode, balanceAsOfDate: $balanceAsOfDate) } }"}
    {
      "data": {
        "timeOffBalances": {
          "timeOffBalances": [
            {"policy": "Vacation", "balance": 62.5, "unit": "hours", "balanceAsOfDate": "2026-09-24"},
            {"policy": "Sick", "balance": 24.0, "unit": "hours", "balanceAsOfDate": "2026-09-24"}
          ]
        }
      }
    }
  • Work schedule & period totals (GraphQL)

    POST /v1/graphql opendata

    Pulls the worker's assigned shifts for a date range (GetTimeSchedule) and the per-period hour totals (GetTimePeriodCalculations) behind the schedule grid and timesheet summary screens.

    Auth: OAuth2 Bearer access token with a time-and-attendance scope.

    • roleCode
    • startDate
    • endDate
    • workAssignmentId
    • includeSegments
    • latestShift
    • timeSchedule
    • timePeriodCalculations
    POST /v1/graphql HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Content-Type: application/json
    
    {"operationName":"GetTimeSchedule","variables":{"startDate":"2026-09-21","endDate":"2026-09-27","workAssignmentId":"W-10432"},"query":"query GetTimeSchedule($startDate: String!, $endDate: String!, $workAssignmentId: String) { timeScheduleData: timeSchedule { timeSchedule(roleCode: \"employee\", startDate: $startDate, endDate: $endDate, workAssignmentId: $workAssignmentId, includeSegments: \"Manual\") } }"}
    {
      "data": {
        "timeScheduleData": {
          "timeSchedule": [
            {"date": "2026-09-24", "workAssignmentId": "W-10432", "segments": [{"start": "09:00", "end": "17:00", "kind": "Manual"}]}
          ]
        }
      }
    }
  • Submit time-off request (GraphQL mutation)

    POST /v1/graphql opendata

    Submits the worker's time-off request events for review and returns their post-submit state — the write side of the app's time-off flow.

    Auth: OAuth2 Bearer access token with a time-and-attendance scope.

    • myEvents
    • events
    • Event
    • TimeOffReview
    POST /v1/graphql HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Content-Type: application/json
    
    {"operationName":"PostTimeOffReview","variables":{"myEvents":[{"type":"vacationRequest","startDate":"2026-10-05","endDate":"2026-10-06","unit":"days"}]},"query":"mutation PostTimeOffReview($myEvents: [Event]!) { TimeOffReview(events: $myEvents) }"}
    {
      "data": {
        "TimeOffReview": {
          "events": [
            {"id": "EVT-88120", "type": "vacationRequest", "status": "pending", "startDate": "2026-10-05", "endDate": "2026-10-06"}
          ]
        }
      }
    }
  • Bank routing OCR (check photo)

    POST /v1/ocr/bank-routing openbanking

    Reads the bank routing number from a photographed paper check so workers can set up or change direct-deposit accounts without typing the numbers.

    Auth: OAuth2 Bearer access token from the mobile session.

    • routingNumber
    • bankRoutingServiceEnabled
    POST /v1/ocr/bank-routing HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Content-Type: multipart/form-data; boundary=----appform
    
    ------appform
    Content-Disposition: form-data; name="checkImage"; filename="check.jpg"
    Content-Type: image/jpeg
    
    <JPEG bytes>
    ------appform--
    {
      "routingNumber": "021000021",
      "confidence": 0.98
    }

Data categories

  • pay statements
  • time-off balances
  • work schedules
  • clock entries
  • time-off requests
  • user profile
  • bank routing data

Where teams use this data

  • Payroll reconciliation feeds

    Finance teams join each worker's session profile (id, realmID) with timePeriodCalculations totals pulled via the GraphQL gateway to reconcile scheduled hours against payroll runs before payday.

  • Absence management automation

    Workforce tools read timeOffBalances (roleCode, balanceAsOfDate) to forecast coverage, then track PostTimeOffReview events so approved leave lands in scheduling systems without re-keying.

  • Direct-deposit onboarding checks

    During bank setup, routingNumber values returned by the bank-routing OCR endpoint are validated against routing directories to catch mis-keyed deposit accounts before the first pay run.

Frequently asked questions

What data does the ADP Mobile Solutions interface expose?

The worker's own employment data: session and profile fields (id, realmID, locale), paid-time-off balances via GetTimeOffBalances, assigned shifts and period hour totals via GetTimeSchedule and GetTimePeriodCalculations, time-off request submission via PostTimeOffReview, and bank routing details read from check photos.

How does the app authenticate its requests?

Sign-in creates a server session through a form POST to /v1/session/login with a client-app header, and tokens are issued by the OAuth2 grant at /v1/auth/token. Time and attendance calls then send an OAuth2 Bearer token carrying a time-and-attendance scope.

Which endpoint carries time and attendance data?

The scoped GraphQL gateway at /v1/graphql. It serves balance, schedule and timecard queries such as GetTimeOffBalances and GetTimeSchedule, and accepts mutations such as PostTimeOffReview for time-off requests.

Does the app expose any banking data?

Yes — a narrow banking surface: the OCR endpoint /v1/ocr/bank-routing extracts the routingNumber from a photographed check so workers can configure direct deposit.

Apps similar to ADP Mobile Solutions

  • Workday — Workday is an enterprise HCM platform whose mobile app lets employees view pay, request time off and manage HR tasks, making it a leading ADP alternative for large organizations.
  • Paychex Flex — Paychex Flex is a payroll and HR platform with a mobile self-service app for pay stubs, time off and benefits, aimed at small and mid-sized businesses.
  • UKG — UKG (Ultimate Kronos Group) is a workforce-management suite known for AI-driven scheduling, time and attendance, and employee self-service for hourly teams.
  • Gusto — Gusto is a payroll, benefits and HR platform for small businesses with transparent per-employee pricing and a mobile-friendly employee self-service portal.
  • Paycom — Paycom is a single-database payroll and HR system whose Beti tool lets employees review and verify their own pay before it runs.
  • Paylocity — Paylocity is a mid-market payroll and HR platform that pairs pay and time-off self-service with peer-recognition and employee-engagement features.
  • Rippling — Rippling combines payroll and HR with IT device and app management in one system, automating employee onboarding across a company's tools.
  • MyWalmart — MyWalmart is Walmart's employee self-service app for viewing schedules and pay and clocking in, a functional analog for large hourly workforces.

Topics

  • ADP Mobile Solutions API
  • ADP mobile endpoints
  • pay statement API
  • time off balance API
  • ADP GraphQL gateway
  • employee self-service API
  • workforce data API
  • bank routing OCR

Need this app's data API integrated?

We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.

  • NDA + SOW on every engagement
  • Delivery in 3–7 days
  • Payment only after acceptance
  • Work scoped to authorized use

Get a quote