Direct Express® Mobile icon

Direct Express Data API: Benefit Deposits, Transactions & Transfers

Fifth Third Bank · Banking 4.6 ★

Direct Express® Mobile is Fifth Third Bank's Android app for U.S. federal-benefit recipients who receive Social Security, SSI, Veterans Affairs compensation and other Treasury payments on a Direct Express Debit Mastercard. This version serves cards beginning with 533248; a separate app serves older 511563 cards. Cardholders register with their card details and last four Social Security digits, then sign in with a user ID and password, with an optional SMS code and local passcode or biometric unlock. The home screen shows the latest federal deposit and any pending credit alongside card status and lock controls. Users can review purchases and ATM withdrawals, download CSV or PDF history, view spending by category and find surcharge-free ATMs. It also supports transfers to a linked bank account, deposit and spending alerts, paperless statement preferences, card replacement with standard or expedited delivery, and contact-address updates. The app serves unbanked and underbanked benefit recipients in the United States and has a 4.64 Google Play rating from 196,032 ratings.

Federal benefit credits pair lastDepositedAmount and lastDepositedDate with pendingDepositedAmount and pendingDepositCount, so a posted payment can be distinguished from money still pending. The same card summary links those amounts to cardId, cardStatus and cardIsLocked. With cardholder authorization, benefits counselors can reconcile posted and pending credits against expected payment dates, while support workflows can distinguish a deposit question from a locked or replacement card.

Activity records carry transactionId, transactionType, transactionDate, amount and pending; CSV and PDF exports add fileName and rowCount for reconciliation. Spending summaries identify the selected period and its totalAmount, with a categoryId, amount and percent for each category. ATM records combine lat, lng and distanceMeters with surchargeFree and network, helping social-service teams identify nearby cash access without an out-of-network surcharge.

Card-to-bank records connect a destination described by routingNumber, accountType and masked accountNumberLast4 to a transferId, status and confirmationTimeStamp. Alert history and preferences distinguish deposits, low balances, highDollarPurchase, foreignTransaction and invalidPIN; document preferences add eDeliveryEnabled and paperStmt. These fields support authorized budgeting, payment reconciliation and cardholder-support integrations. openData Studio turns these deposit, activity, cash-access and card-management data shapes into callable open data for those authorized integrations.

Screenshots

  • Direct Express® Mobile screenshot 1
  • Direct Express® Mobile screenshot 2
  • Direct Express® Mobile screenshot 3
  • Direct Express® Mobile screenshot 4
  • Direct Express® Mobile screenshot 5
  • Direct Express® Mobile screenshot 6
  • Direct Express® Mobile screenshot 7
  • Direct Express® Mobile screenshot 8

API surface

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

  • Sign-in session

    POST /v1/cardholder-sessions osint

    Opens a cardholder session using a user ID, password and RSA device profile; returns sessionToken and refreshToken for later card and profile requests.

    Auth: Unauthenticated. The body contains userId, password and an RSA Adaptive Authentication device profile. The issued session token authenticates subsequent cardholder requests.

    • userId
    • password
    • deviceProfile
    • sessionToken
    • refreshToken
    • maskedUserId
    • multiCard
    POST /v1/cardholder-sessions HTTP/1.1
    Content-Type: application/json
    
    {
      "userId": "example_cardholder",
      "password": "<example-password>",
      "deviceProfile": "<example-device-profile>"
    }
    {
      "sessionToken": "<example-session-token>",
      "refreshToken": "<example-refresh-token>",
      "userId": "example_cardholder",
      "maskedUserId": "exa***der",
      "multiCard": true
    }
  • Cardholder person info

    GET /v1/benefit-cards/overview openbanking

    Loads the home card summary with its nickname, last four digits, lock flag, last federal deposit and pending deposits. Card states include DEBIT, IN_TRANSIT, PENDING_PIN_RESET, INACTIVE and CLOSED.

    Auth: Bearer session token issued during cardholder sign-in.

    • cardId
    • cardNickname
    • last4CardDigit
    • cardStatus
    • cardIsLocked
    • lastDepositedAmount
    • lastDepositedDate
    • pendingDepositedAmount
    • pendingDepositCount
    GET /v1/benefit-cards/overview HTTP/1.1
    Authorization: Bearer <example-session-token>
    Accept: application/json
    {
      "cardId": "card_example_01",
      "cardNickname": "Benefits card",
      "last4CardDigit": "0000",
      "cardStatus": "DEBIT",
      "cardIsLocked": false,
      "lastDepositedAmount": 943.0,
      "lastDepositedDate": "2026-10-08",
      "pendingDepositedAmount": 0.0,
      "pendingDepositCount": 0
    }
  • Search transactions

    POST /v1/benefit-cards/activity/query openbanking

    Pages card activity by date range and transactionType, including purchases, fees, deposits and customer-service adjustments.

    Auth: Bearer session token issued during cardholder sign-in.

    • cardId
    • transactionType
    • fromDate
    • toDate
    • transactionId
    • transactionDate
    • amount
    • description
    • pending
    • totalCount
    POST /v1/benefit-cards/activity/query HTTP/1.1
    Authorization: Bearer <example-session-token>
    Content-Type: application/json
    
    {
      "cardId": "card_example_01",
      "transactionType": "purchases",
      "fromDate": "2026-09-01",
      "toDate": "2026-10-23",
      "page": 0,
      "pageSize": 25
    }
    {
      "items": [
        {
          "transactionId": "transaction_example_01",
          "transactionType": "purchases",
          "transactionDate": "2026-10-12",
          "amount": -28.41,
          "description": "EXAMPLE GROCERY STORE",
          "pending": false
        }
      ],
      "page": 0,
      "totalCount": 41
    }
  • Export transactions

    POST /v1/benefit-cards/activity/files openfinance

    Prepares a CSV or PDF download of the cardholder transaction history for the selected dates.

    Auth: Bearer session token issued during cardholder sign-in.

    • cardId
    • format
    • fromDate
    • toDate
    • downloadUrl
    • fileName
    • rowCount
    POST /v1/benefit-cards/activity/files HTTP/1.1
    Authorization: Bearer <example-session-token>
    Content-Type: application/json
    
    {
      "cardId": "card_example_01",
      "format": "csv",
      "fromDate": "2026-01-01",
      "toDate": "2026-10-23"
    }
    {
      "downloadUrl": "/v1/benefit-cards/activity/files/export_example_01.csv",
      "format": "csv",
      "fileName": "example-card-transactions.csv",
      "rowCount": 186
    }
  • Spending by category

    GET /v1/benefit-cards/spending/groups openfinance

    Returns the spending analyzer breakdown for a selected period, including category totals and each category percentage.

    Auth: Bearer session token issued during cardholder sign-in.

    • cardId
    • period
    • totalAmount
    • categories
    • categoryId
    • label
    • amount
    • percent
    GET /v1/benefit-cards/spending/groups?cardId=card_example_01&period=2026-09 HTTP/1.1
    Authorization: Bearer <example-session-token>
    Accept: application/json
    {
      "period": "2026-09",
      "totalAmount": 412.18,
      "categories": [
        {
          "categoryId": "grocery",
          "label": "Groceries",
          "amount": 186.4,
          "percent": 45.2
        },
        {
          "categoryId": "atm",
          "label": "ATM withdrawals",
          "amount": 80.0,
          "percent": 19.4
        }
      ]
    }
  • Nearby ATMs

    GET /v1/cash-access/nearby opendata

    Finds nearby cash machines and distinguishes surcharge-free, in-network Allpoint locations from out-of-network machines that may add a surcharge.

    Auth: Bearer session token issued during cardholder sign-in.

    • lat
    • lng
    • surchargeFree
    • atmId
    • name
    • distanceMeters
    • network
    GET /v1/cash-access/nearby?lat=38.9072&lng=-77.0369&surchargeFree=true HTTP/1.1
    Authorization: Bearer <example-session-token>
    Accept: application/json
    {
      "atms": [
        {
          "atmId": "atm_example_01",
          "name": "Example cash location",
          "lat": 38.9091,
          "lng": -77.043,
          "distanceMeters": 640,
          "surchargeFree": true,
          "network": "Allpoint"
        }
      ]
    }
  • Initiate card-to-bank transfer

    POST /v1/benefit-cards/bank-payouts openbanking

    Starts an ACH transfer of remaining card funds to a linked checking or savings account and returns the transfer confirmation.

    Auth: Bearer session token issued during cardholder sign-in.

    • cardId
    • amount
    • routingNumber
    • accountNumber
    • accountType
    • transferId
    • status
    • confirmationTimeStamp
    POST /v1/benefit-cards/bank-payouts HTTP/1.1
    Authorization: Bearer <example-session-token>
    Content-Type: application/json
    
    {
      "cardId": "card_example_01",
      "amount": 200.0,
      "routingNumber": "<example-routing-number>",
      "accountNumber": "<example-account-number>",
      "accountType": "checking"
    }
    {
      "transferId": "transfer_example_01",
      "amount": 200.0,
      "status": "PENDING",
      "confirmationTimeStamp": "2026-10-23T15:12:04Z"
    }
  • Update linked bank account

    PUT /v1/benefit-cards/payout-destination openbanking

    Creates or replaces the linked ACH destination used by card-to-bank transfers, including routing number, account number and checking or savings account type.

    Auth: Bearer session token issued during cardholder sign-in.

    • bankName
    • routingNumber
    • accountNumber
    • accountType
    • accountNumberLast4
    • verified
    PUT /v1/benefit-cards/payout-destination HTTP/1.1
    Authorization: Bearer <example-session-token>
    Content-Type: application/json
    
    {
      "bankName": "Example Bank",
      "routingNumber": "<example-routing-number>",
      "accountNumber": "<example-account-number>",
      "accountType": "checking"
    }
    {
      "bankName": "Example Bank",
      "routingNumber": "<example-routing-number>",
      "accountNumberLast4": "0000",
      "accountType": "checking",
      "verified": true
    }
  • Alert history

    GET /v1/cardholder-notices opendata

    Pages the in-app alert history for deposits, low balances, high-dollar purchases, foreign transactions and invalid PIN attempts.

    Auth: Bearer session token issued during cardholder sign-in.

    • alertId
    • alertType
    • message
    • amount
    • createdAt
    GET /v1/cardholder-notices?page=0&pageSize=20 HTTP/1.1
    Authorization: Bearer <example-session-token>
    Accept: application/json
    {
      "items": [
        {
          "alertId": "alert_example_01",
          "alertType": "deposit",
          "message": "Federal benefit deposit posted",
          "amount": 943.0,
          "createdAt": "2026-10-08T08:04:11Z"
        }
      ]
    }
  • Update alert preferences

    PUT /v1/cardholder-notices/preferences opendata

    Saves deposit, low-balance, high-dollar purchase, foreign-transaction and invalid-PIN alert preferences, including amount thresholds.

    Auth: Bearer session token issued during cardholder sign-in.

    • depositAlert
    • lowBalanceAlert
    • lowBalanceAmount
    • highDollarPurchase
    • highDollarAmount
    • foreignTransaction
    • invalidPIN
    PUT /v1/cardholder-notices/preferences HTTP/1.1
    Authorization: Bearer <example-session-token>
    Content-Type: application/json
    
    {
      "depositAlert": true,
      "lowBalanceAlert": true,
      "lowBalanceAmount": 50.0,
      "highDollarPurchase": true,
      "highDollarAmount": 200.0,
      "foreignTransaction": true,
      "invalidPIN": true
    }
    {
      "depositAlert": true,
      "lowBalanceAlert": true,
      "lowBalanceAmount": 50.0,
      "highDollarPurchase": true,
      "highDollarAmount": 200.0,
      "foreignTransaction": true,
      "invalidPIN": true
    }
  • E-delivery statement settings

    GET /v1/benefit-cards/delivery-options openfinance

    Reads electronic-delivery enrollment, paper-statement preference, associated monthly fee and delivery email for the statement settings screen.

    Auth: Bearer session token issued during cardholder sign-in.

    • eDeliveryEnabled
    • paperStmt
    • monthlyFee
    • emailAddress
    GET /v1/benefit-cards/delivery-options HTTP/1.1
    Authorization: Bearer <example-session-token>
    Accept: application/json
    {
      "eDeliveryEnabled": true,
      "paperStmt": false,
      "monthlyFee": 0.0,
      "emailAddress": "<example-email>"
    }
  • Update paper-statement preference

    PUT /v1/benefit-cards/statement-preferences openfinance

    Enables or disables mailed monthly statements and records the corresponding electronic-delivery preference.

    Auth: Bearer session token issued during cardholder sign-in.

    • paperStmt
    • eDeliveryEnabled
    • status
    PUT /v1/benefit-cards/statement-preferences HTTP/1.1
    Authorization: Bearer <example-session-token>
    Content-Type: application/json
    
    {
      "paperStmt": false,
      "eDeliveryEnabled": true
    }
    {
      "paperStmt": false,
      "eDeliveryEnabled": true,
      "status": "UPDATED"
    }
  • Replace card

    POST /v1/benefit-cards/replacement-orders openbanking

    Orders a replacement debit card using standard or expedited delivery and returns its in-transit status, shipping window and UPS tracking reference.

    Auth: Bearer session token issued during cardholder sign-in. The body also reconfirms last4SSN, cvv and expDate.

    • cardId
    • cardNumberLast4
    • last4SSN
    • cvv
    • expDate
    • expedite
    • mailingAddress
    • replacementId
    • cardStatus
    • minStandardShippingDays
    • maxStandardShippingDays
    • upsTrackingNumber
    POST /v1/benefit-cards/replacement-orders HTTP/1.1
    Authorization: Bearer <example-session-token>
    Content-Type: application/json
    
    {
      "cardId": "card_example_01",
      "cardNumberLast4": "0000",
      "last4SSN": "<example-ssn-last-four>",
      "cvv": "<example-cvv>",
      "expDate": "08/27",
      "expedite": false,
      "mailingAddress": {
        "line1": "100 Example Ave",
        "city": "Washington",
        "state": "DC",
        "postalCode": "20001"
      }
    }
    {
      "replacementId": "replacement_example_01",
      "cardStatus": "IN_TRANSIT",
      "expedite": false,
      "minStandardShippingDays": 7,
      "maxStandardShippingDays": 10,
      "upsTrackingNumber": "<example-ups-tracking-number>"
    }
  • Validate mailing address

    POST /v1/postal-addresses/check opendata

    Checks a mailing address using USPS normalization before saving it and flags an invalid address for the address-confirmation prompt.

    Auth: Bearer session token issued during cardholder sign-in. The same address check also supports periodic address-confirmation prompts.

    • line1
    • city
    • state
    • postalCode
    • valid
    • normalized
    • badAddress
    POST /v1/postal-addresses/check HTTP/1.1
    Authorization: Bearer <example-session-token>
    Content-Type: application/json
    
    {
      "line1": "100 Example Ave",
      "city": "Washington",
      "state": "DC",
      "postalCode": "20001"
    }
    {
      "valid": true,
      "normalized": {
        "line1": "100 EXAMPLE AVE",
        "city": "WASHINGTON",
        "state": "DC",
        "postalCode": "20001"
      },
      "badAddress": false
    }
  • Contact information

    GET /v1/cardholder-profile/contact osint

    Reads the email address, mobile number, mailing address and contact-information opt-in used by profile and address-edit screens.

    Auth: Bearer session token issued during cardholder sign-in.

    • emailAddress
    • mobileNumber
    • mailingAddress
    • optInContactInfo
    GET /v1/cardholder-profile/contact HTTP/1.1
    Authorization: Bearer <example-session-token>
    Accept: application/json
    {
      "emailAddress": "<example-email>",
      "mobileNumber": "+1-202-555-0100",
      "mailingAddress": {
        "line1": "100 Example Ave",
        "city": "Washington",
        "state": "DC",
        "postalCode": "20001"
      },
      "optInContactInfo": true
    }

Data categories

  • balances
  • federal-deposits
  • transactions
  • atm-locations
  • ach-transfers
  • alerts
  • statements
  • card-status

Where teams use this data

  • SSA deposit reconciliation

    Benefits counselors pull lastDepositedAmount, lastDepositedDate and pendingDepositedAmount from person/info each payment day and match them to the SSA / VA award calendar so a missed credit is flagged before the recipient calls.

  • Elder-fraud lock and spend alerts

    A family or adult-protective-services workflow watches cardIsLocked, highDollarPurchase, foreignTransaction and invalidPIN on the alerts feed and can freeze the plastic when a high-dollar or overseas swipe lands on an SSI card.

  • Surcharge-free ATM routing

    Social-service agencies map atmsNearUser results that carry surchargeFree=true (Allpoint / in-network) so unbanked recipients withdraw cash without the out-of-network surcharge the locator copy warns about.

  • Card-to-bank leftover sweep

    A budgeting bot reads the linked routingNumber / accountNumberLast4 / accountType, then records transferId and confirmationTimeStamp from initiate so leftover federal funds land in a checking account instead of sitting on the prepaid card.

Frequently asked questions

What Direct Express card data supports benefits-payment checks?

The examples cover posted and pending federal deposits, card status and lock state, transaction history, CSV/PDF exports, category spending, nearby ATMs, ACH destinations and transfers, alerts, statement settings, replacement-card delivery and contact details. With cardholder authorization, a benefits-support workflow can compare lastDepositedAmount and lastDepositedDate with pendingDepositedAmount and pendingDepositCount against expected payment dates. Alert records add alertType, amount and createdAt; preferences include lowBalanceAmount, highDollarAmount, foreignTransaction and invalidPIN. These fields support payment checks and notifications while keeping pending credits distinct from posted funds.

How does cardholder authentication work?

Registration uses card details and the last four Social Security digits. Sign-in combines a user ID and password with an RSA Adaptive Authentication device profile and may require an SMS one-time code. Subsequent requests use the issued session token; the illustrative examples show it as a Bearer token. A device passcode or biometric check can unlock the app locally. Authentication examples contain placeholders, not usable credentials.

Which fields support ATM routing and card-to-bank reconciliation?

ATM records include lat, lng, distanceMeters, network and surchargeFree to identify nearby in-network locations. ACH destination records contain routingNumber, accountType and accountNumberLast4; transfer confirmations add transferId, amount, status and confirmationTimeStamp. Access to financial or identifying records requires cardholder authorization.

Is this an official public U.S. Treasury or Fifth Third developer API?

No. The paths and request/response values on this page are synthetic illustrations of the app data, not official developer endpoints or an unauthenticated Treasury service. Financial and contact records are cardholder-specific. openData Studio presents their field names and shapes for integration planning without publishing the private service addresses.

Apps similar to Direct Express® Mobile

  • Netspend — Netspend sells reloadable prepaid debit cards and a no-credit-check debit account that accept Social Security and other federal government benefits by direct deposit.
  • GO2bank — GO2bank is Green Dot Bank's mobile bank account; monthly fees are waived with a payroll or government-benefits direct deposit, and those benefits can arrive up to four days early.
  • Walmart MoneyCard — Walmart MoneyCard is a reloadable debit card with savings and optional overdraft protection that advertises government benefits up to four days early with eligible direct deposit.
  • ACE Elite — The ACE Elite Visa Prepaid Debit Card, loaded at ACE Cash Express stores, accepts direct deposit of payroll, government benefits, or a tax refund.
  • PayPal — PayPal Direct Deposit can send a paycheck or government payment automatically into a PayPal balance, which the PayPal Debit Mastercard can spend wherever Mastercard is accepted.
  • Serve — Serve offers Visa debit and prepaid cards with no credit check and no minimum balance, plus free early direct deposit when an employer submits payroll before payday.

Topics

  • Direct Express API
  • SSA prepaid debit
  • lastDepositedAmount
  • federal benefits card
  • surchargeFree ATM
  • ACH card-to-bank transfer
  • Direct Express Mastercard
  • cardIsLocked
  • eDeliveryEnabled
  • benefit card transaction history

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