API · Tolling · Transit · Parking · HOV

Need a wallet?

GoCarma plugs into any transportation system. Send us what you know — a timestamp, a location, a plate. We send back verified occupancy, payment status, eligibility, and applicable discounts. Real-time JSON. Typical integration ships in a sprint.

30 min
From sandbox key to first verified response
~50 ms
Median p50 response time
$0
New roadside hardware required
Cloud-hosted · real-time HTTPS · Bearer auth Sandbox + production SOC 2 certified U.S. data residency
Examples

Pick a scenario.

The same building blocks — verified identity, occupancy, payment status, eligibility — compose across every mode. Real-time JSON APIs for tolling, transit, parking, and HOV.

Verify occupancy in real time

This is the integration running in production today in Dallas–Fort Worth with TransCore and Cintra on the TEXpress network. Your gantry detects a vehicle; you POST the detection. We respond with the verified count of GoCarma users in the vehicle at that exact moment, the verification method, and the applicable discount.

Fast enough to apply the HOV discount in the same transaction that posts to the customer's toll statement.

  • Coordinated-proximity verification — Bluetooth + GPS, smartphone-to-smartphone
  • No cabin cameras. No thermal imaging. No roadside hardware change
  • Same capability serves lane access, toll discounts, and preferential parking eligibility
POST /api/occupancy
Request
{
  "vehicle_plate":  "TX-TY19M4",
  "location":       "I-35N TEXpress · Gantry 22",
  "timestamp":      "2026-05-01T16:32:11Z",
  "toll_rate":      180
}
Response · 200 OK
{
  "verified_occupants": 3
}

Resolve a partial plate. Settle in seconds.

When your roadside ALPR returns a low-confidence read, the standard remedy is expensive: two human reviewers re-validate the image, the transaction settles days later, the cost lands on the agency. We resolve the ambiguity in milliseconds by matching against verified smartphone transactions in the same place and time — and return the customer's payment status and any applicable discount in the same call.

  • Avoids the ~$1–2 cost per image-review event
  • Compresses settlement time from days to seconds
  • Captures revenue otherwise written off as leakage
POST /api/transactions/search
Request
{
  "timestamp":     "2026-05-01T07:01:22Z",
  "location":      "SR520 Bridge Westbound · Lane 02",
  "partial_plate": "956---"
}
Response · 200 OK
{
  "plate_match":         true,
  "plate_full":          "956ZDX",
  "confidence":          100,
  "payment_status":      "settled",
  "discount_applicable": "WSDOT_GP_off_peak_15pct"
}

Query payment status at the lot

Your gate camera detects a plate. You POST the detection. We tell you whether the vehicle has an active paid session and whether any discount applies — preferred-employer, HOV-arrival, transit-transfer, low-income — without your operator owning any of those verifications themselves.

  • One lookup replaces meter integrations + ticket-to-plate reconciliation
  • Discounts compose with whatever rules you write — corporate, civic, regional
  • Verified-once, reusable status across every operator in the program
POST /api/parking/status
Request
{
  "vehicle_plate":  "CA-7FB924",
  "lot_id":         "LA_METRO_NORTH_HOLLYWOOD",
  "timestamp":      "2026-05-01T08:14:05Z"
}
Response · 200 OK
{
  "paid":                true,
  "session_id":          "pk_8c4a1f7e",
  "valid_until":         "2026-05-01T18:00:00Z",
  "discount_applicable": "hov_25pc"
}

Pay a fare. Apply the right discount.

A rider taps on. Your fare gate queries us with the device or account identifier. We respond with the fare to charge, the applicable discount, and the verification trail — student, senior, veteran, low-income, employer-sponsored — composed from sources we already maintain.

  • Pay-as-you-go and capped programs use the same engine
  • Cross-agency transfers and parking-to-transit combos are first-class
  • Audit trail every response — defensible to riders, regulators, and FOIA
POST /api/transit/fare
Request
{
  "rider_id":   "gc_user_4f2b18ac",
  "route_id":   "LA_METRO_BUS_204",
  "stop_id":    "VERMONT_SUNSET",
  "timestamp":  "2026-05-01T07:42:55Z"
}
Response · 200 OK
{
  "base_fare":           1.75,
  "fare_charged":        0.35,
  "discount_applicable": "low_income_LIFE_80pct",
  "discount_basis":      "verified via LA Metro LIFE roster",
  "transfer_credit":     true
}
vs. the legacy stack

Built for cloud, not for a 1990s gantry.

Legacy back-office vendors were built around roadside hardware: data sits on the gantry, ships overnight by FTP, batches through reconciliation, lands days later in a customer statement. We were built the other way around — the smartphone is the source of truth, and your back-office talks to it in real time.

Legacy back-office

Roadside-anchored. Batch-paced.

  • FTP file drops and overnight batch jobs
  • Data lives on the gantry — stale by the time it lands
  • Multi-day reconciliation between detection, billing, and dispute
  • Proprietary wire formats. SOAP envelopes. XSDs to chase down
  • Every new program means new schemas, new contracts, new vendors
The Driving Wallet

Cloud-anchored. Real-time.

  • Cloud-hosted, on-demand — data moves only when you ask for it
  • Real-time availability — sub-50ms median, settled in the same transaction
  • Real-time JSON APIs across tolling, transit, parking, HOV — same building blocks, every mode
  • SOC 2 certified, U.S. data residency, top-tier uptime
  • Efficient by design — you only pay for the calls you make
Bonus

Custom real-time dashboards. Every API call lights up your agency dashboard the moment it lands — verified occupancies, plate boosts, discounts applied, revenue recovered. No separate BI build, no overnight ETL. Your operations team sees what your back-office sees, the moment your back-office sees it.

What we ingest

Every variable you can use.

The eligibility engine is only as smart as the data it can resolve against. We continuously ingest from authoritative sources so your pricing rules can reference identity, status, vehicle, environment, and context — without your team owning any of those integrations.

DMV records

State vehicle & driver databases

California, Louisiana, Texas, and expanding. License-plate-to-vehicle lookup, vehicle class, registration status, owner type — refreshed daily.

TVL files

Regional toll-tag validation lists

Every tag in your region with its account status (valid / invalid / suspended), tag number, plate binding, and operator. The same files your existing back-office uses.

Status records

Veteran · senior · disability

Verified entitlement records integrated through state DMV and federal data partners. The status is verified once and reusable across every program — no employee re-uploads paperwork.

Smartphone

GoCarma user activity

Geo-fenced trip data, coordinated-proximity passenger verification, mode classification, BLE tap-on/off — the core signal underneath every API response.

Open data

Traffic · air quality · events

Real-time regional traffic feeds, EPA air-quality readings, event-day surcharge windows, transit-disruption alerts — available as variables in your pricing rules.

Eligibility

Program-specific rosters

Employee rosters for corporate programs, low-income enrolment for equity programs, transit-pass holders for inter-agency benefits. Sync via webhook, SFTP, or scheduled batch.

Why it ships in a sprint

No webhooks. No SDK lock-in. No surprises.

30 min
Sandbox to first response
From issued API key to your first verified real response — typically in a single working session.
JSON
In and out
No proprietary wire format. No SOAP. No XSDs to chase down.
Pull-based
You call us
No webhooks to manage. No firewall exceptions to negotiate.
Idempotent
Reads are safe
Retry as aggressively as you want. We'll always return the same answer for the same detection.
Sandbox
From day one
Realistic synthetic data and the full surface area. Your engineers can integrate before procurement closes.
~50ms
Median p50
Real-time enough to land in the same transaction that posts to your back-office.

Could this slot into your back-office?