Tyler Technologies & Legacy Software Integration

Integrate DyerPay with Tyler Technologies, nCourt, Incode, and other legacy government software using our API with dot notation and array indexing to flatten complex nested JSON structures.

Common Government Software Vendors

Tyler Technologies

  • • Munis ERP
  • • iasWorld (Property Tax)
  • • Eden (Court Management)
  • • Incode (Court/Financial)

Court Systems

  • • nCourt (Hellman & Associates)
  • • CourtView Justice
  • • Benchmark Court Systems
  • • Odyssey by Tyler

Financial/ERP Systems

  • • EDEN Utility Billing
  • • Harris Local Government
  • • CentralSquare (Superion)
  • • Legacy AS400/Mainframe

The Challenge: These systems typically have complex nested JSON API responses or require complex data extraction. DyerPay's dot notation and array indexing flattens this data automatically—no middleware or ETL required.

Understanding Dot Notation & Array Indexing

Most government software APIs return deeply nested JSON. DyerPay flattens this automatically using dot notation and array indexing in your field mappings.

Example: Tyler iasWorld API Response

{
  "parcel": {
    "id": "R12345-001",
    "owner": {
      "names": [
        {
          "first": "John",
          "last": "Smith"
        }
      ],
      "addresses": [
        {
          "street": "123 Main St",
          "city": "Springfield",
          "state": "IL",
          "zip": "62701"
        }
      ]
    },
    "assessment": {
      "currentYear": {
        "taxBill": {
          "amount": 2345.67,
          "dueDate": "2024-12-31",
          "installments": [
            {
              "number": 1,
              "amount": 586.42,
              "due": "2024-03-31"
            }, ...
          ]
        }
      }
    }
  }
}

DyerPay Field Alias Configuration

{
  "account_number": 
    "parcel.id",
  
  "first_name": 
    "parcel.owner.names[0].first",
  
  "last_name": 
    "parcel.owner.names[0].last",
  
  "address": 
    "parcel.owner.addresses[0].street",
  
  "city": 
    "parcel.owner.addresses[0].city",
  
  "state": 
    "parcel.owner.addresses[0].state",
  
  "zip": 
    "parcel.owner.addresses[0].zip",
  
  "remaining_cents": 
    "parcel.assessment.currentYear.taxBill.amount",
  
  "due_date": 
    "parcel.assessment.currentYear.taxBill.dueDate"
}

How It Works

Dot Notation

Access nested objects using dot notation:

parcel.owner.names

Array Indexing

Access array elements with [0] (zero-based):

names[0].first

Combined Paths

Mix dots and arrays for complex paths:

parcel.owner.names[0].first

Multiple Levels

Traverse deep structures easily:

assessment.currentYear.taxBill.amount

Tyler Technologies API Integration

Integration Workflow

1

Configure Field Mappings in DyerPay

Map Tyler's nested JSON fields to DyerPay using dot notation and array indexing

2

Call Tyler API from Your Integration Script

Use scheduled job (cron/task scheduler) to fetch data from Tyler API

3

Forward Raw Tyler JSON to DyerPay

Send Tyler's nested JSON directly to DyerPay—no transformation needed!

4

DyerPay Automatically Flattens Data

Field mappings extract values from nested paths automatically

Example Integration Script (Python)

import requests
from datetime import datetime

# Step 1: Fetch data from Tyler API
tyler_api_url = "https://tyler-api.example.gov/parcels/current"
tyler_response = requests.get(tyler_api_url, headers={
    "Authorization": f"Bearer {TYLER_API_KEY}"
})

tyler_parcels = tyler_response.json()

# Step 2: Forward to DyerPay (no transformation needed!)
dyerpay_url = f"https://api.dyerpay.com/v1/reports/{REPORT_ID}/balances/import"
dyerpay_response = requests.post(
    dyerpay_url,
    auth=(DYERPAY_API_KEY, ''),
    json={
        "balances": tyler_parcels['data']  # Send Tyler's nested JSON as-is
    }
)

# Step 3: Check results
if dyerpay_response.status_code == 200:
    result = dyerpay_response.json()
    print(f"Imported {result['imported']} parcels successfully")
else:
    print(f"Error: {dyerpay_response.text}")

Key Point: DyerPay's field mappings handle the flattening. You don't need to write transformation code!

nCourt & Other Court Systems

Example: nCourt Case API Response

Raw nCourt JSON

{
  "case": {
    "caseNumber": "2024-TR-001234",
    "defendant": {
      "fullName": {
        "first": "John",
        "middle": "A",
        "last": "Smith"
      }
    },
    "charges": [
      {
        "chargeCode": "SPEED",
        "description": "Speeding",
        "fineSchedule": {
          "baseFine": 175.00,
          "courtCosts": 50.00,
          "total": 225.00
        },
        "courtDate": "2024-04-15"
      }
    ]
  }
}

DyerPay Field Mappings

{
  "account_number": 
    "case.caseNumber",
  
  "first_name": 
    "case.defendant.fullName.first",
  
  "last_name": 
    "case.defendant.fullName.last",
  
  "description": 
    "case.charges[0].description",
  
  "remaining_cents": 
    "case.charges[0].fineSchedule.total",
  
  "due_date": 
    "case.charges[0].courtDate"
}

No API? Use CSV Export

If your legacy system doesn't have an API, you can still integrate using CSV exports:

Option 1: Manual CSV Upload

  1. 1. Export data from legacy system to CSV
  2. 2. Upload to DyerPay dashboard
  3. 3. DyerPay maps columns automatically
Good for: Weekly/monthly updates, small data volumes

Option 2: Automated CSV Integration

  1. 1. Schedule CSV export from legacy system
  2. 2. Script uploads CSV to DyerPay API
  3. 3. Runs nightly via cron/task scheduler
Good for: Daily updates, larger data volumes

Common Integration Patterns

Nightly Batch Import

Most common: Scheduled script runs at midnight, fetches updated data from legacy system, imports to DyerPay.

cron: 0 0 * * * /scripts/sync-to-dyerpay.sh

Real-Time Webhook Integration

Advanced: Legacy system triggers webhook when new record created. Webhook handler forwards to DyerPay immediately.

Legacy System → Webhook → Your Script → DyerPay API

Bi-Directional Sync

Full integration: Import balances to DyerPay, export payments back to legacy system for reconciliation.

Import balances (nightly) + Export payments (hourly)

Enterprise Security & Compliance

DyerPay meets the highest security and compliance standards for government payment processing:

Compliance Certifications

  • PCI DSS Compliant: Payment Card Industry Data Security Standard certified for secure card processing
  • SOC 2 Compliant: Service Organization Control audited for security, availability, and confidentiality

Comprehensive Insurance Coverage

  • Business Liability Insurance: Full coverage for business operations
  • Cyber Security Insurance: Protection against data breaches and cyber incidents
  • E&O Insurance: Errors and Omissions coverage for professional services

Your legacy system integration is secure. All payment data is protected by industry-leading security standards and comprehensive insurance coverage.

Best Practices

✓ Recommended

  • • Test field mappings with sample data first
  • • Start with small batch (10-50 records)
  • • Log API responses for troubleshooting
  • • Use array index [0] for first element
  • • Set up error notifications in your script
  • • Document your field mapping configuration
  • • Schedule imports during low-traffic hours

✗ Avoid

  • • Don't write custom JSON transformation code
  • • Don't hardcode array indexes beyond [0]
  • • Don't assume array order is consistent
  • • Don't skip validation on Tyler/nCourt responses
  • • Don't import without testing mappings
  • • Don't forget to handle API rate limits
  • • Don't ignore DyerPay import error responses

Need Help with Your Integration?

Our team has experience integrating with Tyler Technologies, nCourt, and dozens of other government software vendors. We can help you:

  • • Analyze your legacy system's API or export format
  • • Configure field mappings for complex nested JSON
  • • Write and test integration scripts
  • • Set up automated scheduling and error handling
  • • Implement bi-directional sync for payment reconciliation

Ready to Integrate Your Legacy System?

Connect Tyler Technologies, nCourt, or any legacy government software to DyerPay with our flexible API.

DyerPay

Municipal payments made simple.

Agency Portal

About

DyerPay provides simple, transparent payment processing for municipal agencies. No subscriptions, no contracts, no lock-in.

Pricing

  • Card Transactions: $2.00 + processing fees
  • ACH Payments: $1.00
  • No monthly fees

Contact

Get in Touch

© 2026 DyerPay. All rights reserved.