Supergood | Practice CS API
Programmatically access Practice CS client records, engagements, time & expense entries, WIP, invoices, and AR with a stable REST API. Supergood builds and operates production-grade, unofficial Practice CS integrations so your team can automate audit, GRC, and billing workflows without heavy custom engineering.
Plain English: Practice CS is practice management software for accounting and audit firms to manage clients, staff time, billing, projects/engagements, due dates, and accounts receivable. An unofficial API lets you pull client and engagement lists, time and expense entries, WIP and invoice details, AR balances, staff assignments, and due dates—and push new time entries, engagement setups, task due dates, and payments back into Practice CS.
For a tech company integrating with Practice CS, this means you can ingest firm-wide client and engagement metadata for compliance dashboards, sync due dates to your GRC calendar, capture fieldwork time from your app and post it directly to WIP, reconcile invoices and payments to your ERP, and drive audit evidence collection (who worked on what, when, and for how long). You can also automate recurring engagement creation, enforce approval workflows on time and billing, and keep downstream systems (GRC, analytics, ERP/accounting) aligned in real time.
What is Practice CS?
Practice CS (https://tax.thomsonreuters.com/us/en/cs-professional-suite/practice-cs) is part of Thomson Reuters CS Professional Suite, designed to centralize practice operations for accounting and audit firms. Teams use Practice CS to manage client relationships, plan and staff engagements, enter time and expenses, generate and finalize invoices, track WIP and AR, and monitor utilization, realization, and productivity across the firm.
Core product areas include:
- Client & Contact Management (clients, contacts, addresses, partner/manager roles)
- Engagement & Project Management (services, budgets, milestones, due dates, recurrence)
- Time & Expense (timesheets, activity/service codes, approvals, timers)
- Billing & AR (WIP, invoices, write-ups/downs, payments, collections, statements)
- Scheduling & Staffing (assignments, availability, utilization)
- Reporting & Dashboards (realization, productivity, aging, pipeline)
Common data entities:
- Firms, Offices, Users/Staff, Roles/Permissions
- Clients (entity type, IDs, contacts, partner/manager, billing groups)
- Engagements/Projects (service codes, fiscal period, due dates, budgets, recurrence)
- Time & Expense Entries (date, hours/amount, activity/service code, billable flag)
- WIP (unbilled time/expense, write-ups/downs)
- Invoices (line items, WIP applied, realization, status, balances)
- Payments & Credits (receipts, write-offs, allocations)
- Tasks/Milestones (checklists, due dates, completion status)
The Practice CS Integration Challenge
Accounting firms rely on Practice CS daily, but turning portal- and desktop-oriented workflows into API-driven automation presents challenges:
- Role-aware permissions: Partner/manager billing rights, staff visibility, and client-level controls must be respected
- Billing rigor: WIP, realization, write-ups/downs, and finalization steps require careful handling to avoid accounting inconsistencies
- Mixed hosting & authentication: Thomson Reuters sign-in, firm-hosted environments, and MFA/SSO complicate headless access
- Data dependency: Key objects span clients, engagements, time/WIP, and AR with complex interrelations and status gates
How Supergood Creates Practice CS APIs
Supergood reverse-engineers authenticated flows and network interactions to deliver a resilient API endpoint layer for your Practice CS environment.
- Handles username/password, SSO/OAuth, and MFA (SMS, email, TOTP) securely
- Maintains session continuity with automated refresh and change detection
- Normalizes responses so you can integrate once and rely on consistent schemas across modules
- Aligns with firm entitlements and role-based permissions to ensure compliant access
Use Cases
Client, Engagement, and Staff Data Sync
- Mirror clients, service/engagement records, and staff assignments into your GRC or audit platform
- Normalize partner/manager relationships, service codes, and fiscal periods for analytics
- Keep updates flowing in near real time for reporting and evidence trails
Compliance Calendar & Due Date Automation
- Pull engagement due dates and milestones to feed a central regulatory calendar
- Trigger reminders and SLA alerts; update completion status and notes back to Practice CS
- Align tax, audit, and advisory engagements to external compliance frameworks
Time & Expense Evidence for Audit and GRC
- Capture fieldwork time from your product and post as WIP with activity/service codes
- Enforce approval workflows and attestations for SOX/ISQM evidence
- Reconcile logged hours to budgets, milestones, and billed invoices
Billing & AR Reconciliation
- Pull invoices, realization, and AR balances to reconcile with ERP (e.g., QuickBooks, NetSuite, Xero)
- Post payments/credits and track collections stages
- Monitor write-ups/downs and margin health at the client and engagement level
Available Endpoints
Authentication
POST /sessions: Establish a session using credentials. Supergood manages MFA (SMS, email, TOTP) and SSO/OAuth when enabled. Returns a short-lived auth token maintained by the platform.
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/sessions \
--header 'Authorization: Basic <Base64 encoded token>' \
--header 'Content-Type: application/json' \
--data '{
"username": "[email protected]",
"password": "<password>",
"mfa": { "type": "totp", "code": "123456" }
}'
Example response
{
"authToken": "eyJhbGciOi...",
"expiresIn": 3600,
"user": {
"id": "stf_83f1a9",
"name": "Engagement Manager",
"entitlements": ["clients", "engagements", "time_billing", "accounts_receivable"]
}
}
POST /sessions/refresh: Refresh an existing token to keep sessions uninterrupted.
Clients
GET /clients: List clients with filters and summary details.
Query parameters
- officeId: string
- partnerId: string
- status: active | inactive | prospect
- entityType: individual | s_corp | c_corp | partnership | nonprofit | trust | other
- updatedFrom, updatedTo: ISO 8601 timestamps
- page, pageSize: integers for pagination
Example response
{
"items": [
{
"clientId": "cli_7b92d0",
"clientNumber": "102345",
"name": "Acme Manufacturing, Inc.",
"entityType": "s_corp",
"einOrSsn": "12-3456789",
"status": "active",
"industry": "Manufacturing",
"officeId": "off_denver",
"partnerId": "stf_p_1001",
"managerId": "stf_m_2104",
"primaryContact": {
"name": "Dana Lee",
"email": "[email protected]",
"phone": "+1-402-555-0142"
},
"billingGroupId": "bgrp_22a8f",
"address": {
"line1": "500 Industrial Way",
"city": "Omaha",
"region": "NE",
"postalCode": "68102",
"country": "US"
},
"fiscalYearEnd": "12-31",
"updatedAt": "2026-01-20T13:45:00Z"
}
],
"page": 1,
"pageSize": 50,
"total": 1
}
Engagements
POST /engagements: Create a client engagement with service codes, fiscal period, due dates, and staffing.
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/engagements \
--header 'Authorization: Bearer <authToken>' \
--header 'Content-Type: application/json' \
--data '{
"clientId": "cli_7b92d0",
"serviceCode": "AUDIT",
"title": "FY2025 Financial Statement Audit",
"fiscalYear": 2025,
"periodStart": "2025-01-01",
"periodEnd": "2025-12-31",
"dueDate": "2026-03-31",
"recurrence": { "type": "annual", "anchorDate": "03-31" },
"budgetHours": 820,
"feeArrangement": { "type": "fixed", "amount": 145000.00 },
"assignedStaff": [
{ "staffId": "stf_p_1001", "role": "partner" },
{ "staffId": "stf_m_2104", "role": "manager" },
{ "staffId": "stf_a_3309", "role": "senior" }
],
"complianceTags": ["SOX", "SEC"],
"notes": "Coordinate with internal controls team; PCAOB standards apply.",
"referenceId": "grc-eng-9241"
}'
Example response
{
"engagementId": "eng_59ac31",
"status": "open",
"wipTotal": 0.0,
"createdAt": "2026-01-21T10:03:11Z"
}
Time Entries
POST /time-entries: Create a time entry for staff against an engagement with service/activity coding and billable status.
curl --request POST \
--url https://api.supergood.ai/integrations/<integration_id>/time-entries \
--header 'Authorization: Bearer <authToken>' \
--header 'Content-Type: application/json' \
--data '{
"staffId": "stf_a_3309",
"engagementId": "eng_59ac31",
"date": "2026-01-20",
"hours": 7.5,
"activityCode": "AUDFWK",
"billable": true,
"hourlyRate": 185.00,
"location": "onsite",
"notes": "Inventory observation and walkthroughs.",
"approvalState": "submitted",
"externalRefs": [
{ "type": "jira", "value": "AUD-182" },
{ "type": "workpaper", "value": "WP-INV-05" }
]
}'
Example response
{
"timeEntryId": "tme_8a2190",
"wipAmount": 1387.50,
"billable": true,
"createdAt": "2026-01-21T11:20:44Z"
}
Invoices & AR
GET /ar/invoices: List invoices with realization, status, and balances for reconciliation.
Query parameters
- clientId: string
- status: draft | open | paid | void
- issuedFrom, issuedTo: ISO 8601 dates
- page, pageSize: integers for pagination
Example response
{
"items": [
{
"invoiceId": "inv_41fb72",
"invoiceNumber": "2026-00045",
"clientId": "cli_7b92d0",
"engagementIds": ["eng_59ac31"],
"invoiceDate": "2026-02-05",
"dueDate": "2026-03-07",
"terms": "Net30",
"currency": "USD",
"lineItems": [
{ "type": "time", "description": "Audit fieldwork", "quantity": 120, "unit": "hours", "unitPrice": 185.0, "amount": 22200.00 },
{ "type": "write_down", "description": "Budget alignment", "amount": -1200.00 }
],
"subtotal": 21000.00,
"tax": 0.00,
"total": 21000.00,
"balance": 21000.00,
"realizationPercent": 94.9,
"status": "open",
"updatedAt": "2026-02-05T16:22:10Z"
}
],
"page": 1,
"pageSize": 50,
"total": 1
}
Technical Specifications
- Authentication: Username/password with MFA (SMS, email, TOTP) and SSO/OAuth where enabled; supports service accounts or customer-managed credentials
- Response format: JSON with consistent resource schemas and pagination across modules
- Rate limits: Tuned for enterprise throughput while honoring firm entitlements and usage controls
- Session management: Automatic reauth and cookie/session rotation with health checks
- Data freshness: Near real-time retrieval of clients, engagements, time/WIP, invoices, and AR
- Security: Encrypted transport, scoped tokens, and audit logging; respects Practice CS role-based permissions
- Webhooks: Optional asynchronous delivery for long-running workflows (e.g., time approvals, billing finalization, due date changes)
Performance Characteristics
- Latency: Sub-second responses for list/detail queries under normal load
- Throughput: Designed for high-volume time-entry ingestion and invoice/AR synchronization
- Reliability: Retry logic, backoff, and idempotency keys minimize duplicate actions
- Adaptation: Continuous monitoring for UI/API changes with rapid adapter updates
Getting Started
- Schedule Integration Assessment
Book a 30-minute session to confirm your modules, licensing, and authentication model.
- Supergood Builds and Validates Your API
We deliver a hardened Practice CS adapter tailored to your workflows and entitlements.
- Deploy with Monitoring
Go live with continuous monitoring and automatic adjustments as Practice CS evolves.
Frequently Asked Questions
Q: Which Practice CS modules can this integration cover?
Supergood supports workflows across commonly used modules such as Client & Contact Management, Engagements/Projects (services, due dates, recurrence), Time & Expense, and Billing & AR (WIP, invoices, payments), subject to your licensing and entitlements. We scope coverage during integration assessment.
Q: How are MFA and SSO handled for automation?
We support username/password + MFA (SMS, email, TOTP) and can operate behind Thomson Reuters SSO/OAuth when enabled. Sessions are refreshed automatically with secure challenge handling.
Q: Can you sync invoices and AR to our accounting system?
Yes. We can normalize invoices, WIP, payments, and write-ups/downs to match your ERP/accounting schema and deliver updates via webhooks or polling while complying with rate and permission constraints. We commonly integrate with QuickBooks, NetSuite, and Xero.
Q: Do you support time approvals and evidence for audit/GRC?
Yes. We can ingest approval states, approver identity, timestamps, and notes; expose immutable activity timelines; and attach external references (e.g., workpapers, ticket IDs) for audit evidence.
Related Integrations
Intralinks API - Programmatically access the Intralinks VDR with Supergood
Ready to automate your Practice CS workflows?
Supergood can have your Practice CS integration live in days with no ongoing engineering maintenance.