Supergood | LawPay API

Supergood | LawPay API

Programmatically access payment requests, card/ACH transactions, trust-to-operating transfers, and settlement payouts from LawPay with a stable REST API. Supergood builds and operates production-grade, unofficial LawPay integrations so your team can automate billing and IOLTA-compliant workflows without heavy custom engineering.

Plain English: LawPay (https://www.lawpay.com) is a payments platform built for law firms. It lets firms accept credit cards and ACH online, request retainers, keep trust and operating funds strictly separated, and reconcile deposits—without running afoul of bar rules or IOLTA requirements.

For a tech company integrating with LawPay—especially if your customers live in iManage—this means you can generate secure payment links tied to client/matter numbers, auto-file receipts and transfer authorizations back into the correct iManage workspace, monitor settlements and ACH returns, and trigger compliant trust-to-operating transfers when invoices are approved. You can embed payment status widgets inside iManage, build retainer replenishment automations, and keep matter-centric financial records synchronized across your app, iManage, and accounting.

What is LawPay?

LawPay (https://www.lawpay.com) is a legal payments and billing solution from AffiniPay designed to meet bar association rules and trust accounting requirements. It powers online card and eCheck/ACH acceptance, payment pages/links, recurring schedules and payment plans, client-friendly financing (ClientCredit), and detailed reporting with separate trust and operating accounts.

Core product areas include:

  • Payment Acceptance (card, ACH, payment pages/links, QR codes)
  • Trust Accounting Compliance (IOLTA-safe deposits, separate ledgers, trust-to-operating transfers)
  • Client Experience (email/text requests, payment plans, BNPL/ClientCredit)
  • Reporting & Reconciliation (transaction details, fees, net payouts, dispute/return handling)
  • Integrations (practice management, accounting like QuickBooks, and document workflows)

Common data entities:

  • Clients/Contacts (name, email, firm identifiers)
  • Matters (client/matter number, descriptions, billing contacts)
  • Accounts (trust vs. operating, bank accounts, ledger balances)
  • Payment Requests (links with amount, due date, methods, matter tags)
  • Transactions (charges, refunds, ACH returns, fees, status lifecycle)
  • Trust Transfers (authorized movement from trust to operating for invoiced work)
  • Payouts/Settlements (bank deposits with gross, fees, net, transaction breakdown)
  • Payment Methods (stored cards, eCheck authorizations)
  • Refunds/Chargebacks (amounts, reasons, case tracking)
  • Users/Roles & Audit (permissions, who did what and when)

The LawPay Integration Challenge

Legal teams and finance ops rely on LawPay every day, but turning portal workflows into API-driven automations that respect trust accounting rules and matter-centric organization can be difficult:

  • Trust/IOLTA constraints: Transfers must be authorized and tied to specific invoices and matters with a clear audit trail
  • Matter alignment: Every payment needs accurate client/matter tagging for filing in iManage and downstream accounting
  • Asynchronous settlement: Card batches, ACH clearing, returns/NACHA codes, and disputes arrive on different timelines
  • Authentication realities: SSO/MFA and session lifecycles complicate headless access
  • Data reconciliation: Mapping transactions to payouts and GL accounts while separating fees and net amounts
  • Client experience options: Surcharging policies, ACH enablement, and ClientCredit/BNPL need consistent parameterization

How Supergood Creates LawPay APIs

Supergood reverse-engineers authenticated browser flows and network traffic to deliver a resilient REST layer for your LawPay tenant.

  • Handles username/password, SSO/OAuth, and MFA (SMS, email, TOTP) securely
  • Maintains session continuity with automated refresh and change detection
  • Normalizes clients, matters, payment requests, transactions, transfers, and payouts to consistent schemas
  • Enforces customer entitlements and role permissions for compliant access
  • Supports high-volume operations (bulk requests, reconciliation) with polling and optional webhooks for long-running workflows (e.g., ACH settlement, returns)

Use Cases

iManage-Centric Payments & Filing

  • Generate matter-tagged payment links and embed them in iManage workspaces or engagement letters
  • Automatically store paid receipts, ACH authorization PDFs, and transfer memos into the correct iManage folders
  • Sync payment status back to iManage profile fields (e.g., Retainer Balance, Last Payment Date)

Retainers, Invoices, and Trust Compliance

  • Request retainers against trust with designated matter numbers
  • Initiate compliant trust-to-operating transfers when invoices are approved, with itemized references
  • Preserve a complete authorization and audit trail per matter

Settlement & Reconciliation

  • Pull daily payouts and tie them to underlying transactions and fees
  • Reconcile by matter, client, and bank account; export to accounting (e.g., QuickBooks)
  • Detect ACH returns and disputes and route them to your case/ticketing systems

Client Payments and Reminders

  • Offer card/ACH/ClientCredit options via branded links
  • Schedule payment plans and send reminders; notify your app on success/failure
  • Trigger retainer replenishment when balances fall below thresholds

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": "u_lpay_6f21c9",
    "name": "Billing Coordinator",
    "entitlements": ["payment_requests", "transactions", "trust_transfers", "payouts"]
  }
}

POST /sessions/refresh: Refresh an existing token to keep sessions uninterrupted.

Payment Requests

POST /payment-requests: Create a secure payment link tied to a client/matter, optionally email the recipient, and specify allowed methods (card, ACH, ClientCredit).

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/payment-requests \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "clientId": "cli_834201",
    "matterNumber": "2025-ACME-0012",
    "accountType": "trust",
    "amount": { "currency": "USD", "value": 2500.00 },
    "description": "Initial retainer for ACME v. Roe",
    "dueDate": "2026-03-15T23:59:59Z",
    "paymentMethods": { "card": true, "ach": true, "clientCredit": true },
    "allowSurcharge": false,
    "sendEmail": true,
    "recipient": { "name": "Jane Client", "email": "[email protected]" },
    "returnUrl": "https://app.yourlegaltech.com/thank-you",
    "notifyUrl": "https://app.yourlegaltech.com/webhooks/lawpay",
    "metadata": {
      "externalInvoiceId": "inv_10045",
      "imanage": { "workspaceId": "WS-000912", "folderId": "FOL-RET-01" }
    }
  }'

Example response

{
  "paymentRequestId": "prq_9a3f41",
  "status": "open",
  "url": "https://pay.yourfirm.com/link/prq_9a3f41",
  "qrCodeUrl": "https://pay.yourfirm.com/qr/prq_9a3f41.png",
  "accountType": "trust",
  "createdAt": "2026-02-20T10:03:11Z"
}

PATCH /payment-requests/{paymentRequestId}: Update status (e.g., cancel), description, due date, or metadata.

Transactions

GET /transactions: List transactions with filters for status, account, method, client, matter, payouts, and date ranges.

Query parameters

  • status: authorized | captured | settled | failed | refunded | returned
  • method: card | ach | client_credit
  • accountType: trust | operating
  • clientId: string
  • matterNumber: string
  • payoutId: string
  • createdFrom, createdTo: ISO 8601 timestamps
  • page, pageSize: integers for pagination

Example response

{
  "items": [
    {
      "transactionId": "txn_b1e720",
      "type": "charge",
      "status": "settled",
      "method": "card",
      "card": { "brand": "Visa", "last4": "4242" },
      "amount": { "currency": "USD", "value": 2500.00 },
      "fees": { "processing": 72.50, "adjustments": 0.00 },
      "net": 2427.50,
      "accountType": "trust",
      "clientId": "cli_834201",
      "matterNumber": "2025-ACME-0012",
      "paymentRequestId": "prq_9a3f41",
      "payoutId": null,
      "createdAt": "2026-02-20T10:15:03Z",
      "settledAt": "2026-02-21T03:20:00Z"
    }
  ],
  "page": 1,
  "pageSize": 50,
  "total": 1
}

POST /refunds: Issue a full or partial refund for a settled transaction.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/refunds \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "transactionId": "txn_b1e720",
    "amount": { "currency": "USD", "value": 500.00 },
    "reason": "Overpayment on retainer",
    "metadata": { "imanage": { "workspaceId": "WS-000912", "folderId": "FOL-RECEIPTS" } }
  }'

Example response

{
  "refundId": "rfd_21b9aa",
  "status": "pending",
  "createdAt": "2026-02-22T09:01:12Z"
}

Trust Transfers

POST /trust-transfers: Initiate a compliant trust-to-operating transfer tied to an invoice and matter. Captures authorization metadata and memo lines for audit.

curl --request POST \
  --url https://api.supergood.ai/integrations/<integration_id>/trust-transfers \
  --header 'Authorization: Bearer <authToken>' \
  --header 'Content-Type: application/json' \
  --data '{
    "clientId": "cli_834201",
    "matterNumber": "2025-ACME-0012",
    "sourceTrustAccountId": "acct_trust_01",
    "destinationOperatingAccountId": "acct_oper_01",
    "amount": { "currency": "USD", "value": 1800.00 },
    "invoiceRef": "inv_10052",
    "memo": "Transfer to pay invoice inv_10052 for ACME matter",
    "authorization": {
      "by": { "userId": "u_lpay_6f21c9", "name": "Billing Coordinator" },
      "timestamp": "2026-02-22T14:22:00Z"
    },
    "attachments": [
      { "fileName": "invoice_10052.pdf", "uploadToken": "upl_7fa223" }
    ],
    "notifyUrl": "https://app.yourlegaltech.com/webhooks/lawpay",
    "metadata": { "imanage": { "workspaceId": "WS-000912", "folderId": "FOL-TRANSFERS" } }
  }'

Example response

{
  "transferId": "trf_cfa200",
  "status": "queued",
  "createdAt": "2026-02-22T14:22:05Z"
}

GET /trust-transfers/{transferId}: Retrieve status and generated documents (e.g., authorization memo) for filing.

Payouts

GET /payouts: List bank deposits/settlements with gross, fees, net, and associated transactions.

Query parameters

  • dateFrom, dateTo: ISO 8601 timestamps
  • status: pending | paid | failed
  • accountType: trust | operating
  • page, pageSize: integers for pagination

Example response

{
  "items": [
    {
      "payoutId": "pay_82e440",
      "status": "paid",
      "depositDate": "2026-02-21",
      "accountType": "operating",
      "gross": 1800.00,
      "fees": 52.20,
      "net": 1747.80,
      "bankAccountId": "ba_oper_123",
      "transactions": {
        "count": 1,
        "ids": ["txn_c1a483"]
      }
    }
  ],
  "page": 1,
  "pageSize": 50,
  "total": 1
}

Get full API Specs →


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 billing operations and reconciliation workloads while honoring entitlements and usage controls
  • Session management: Automatic reauth and cookie/session rotation with health checks
  • Data freshness: Near real-time retrieval of payment requests, transactions, transfers, and payouts; settlement/returns reflect network timelines
  • Security: Encrypted transport, scoped tokens, and audit logging; respects LawPay/firm role permissions and trust accounting constraints
  • Webhooks: Optional delivery for events (payment.succeeded, ach.returned, refund.processed, trust.transfer.completed, payout.paid)

Performance Characteristics

  • Latency: Sub-second responses for list/detail queries under normal load; settlement/return availability depends on card/ACH networks
  • Throughput: Designed for bulk payment link generation and high-volume reconciliation
  • Reliability: Retry logic, backoff, and idempotency keys minimize duplicates and support at-least-once processing
  • Adaptation: Continuous monitoring for UI/API changes with rapid adapter updates

Getting Started

  1. Schedule Integration Assessment

Book a 30-minute session to confirm your modules, licensing, and authentication model.

  1. Supergood Builds and Validates Your API

We deliver a hardened LawPay adapter tailored to your workflows and entitlements.

  1. Deploy with Monitoring

Go live with continuous monitoring and automatic adjustments as LawPay evolves.

Schedule Integration Call →


Frequently Asked Questions

Q: Which LawPay capabilities can this integration cover?

Supergood supports workflows commonly used for legal billing and trust accounting, including Payment Requests (links, email delivery), Transactions (card/ACH, refunds, returns), Trust Transfers (IOLTA-compliant movements), and Payouts/Reporting (deposits, fees, net amounts), subject to your licensing and entitlements. Scope is finalized during assessment.

Q: How are MFA and SSO handled for automation?

We support username/password + MFA (SMS, email, TOTP) and can operate behind SSO/OAuth where enabled. Sessions are refreshed automatically with secure challenge handling and monitoring for expiry.

Q: Do you support ACH returns and settlement webhooks?

Yes. We can deliver webhooks for settlement, ACH returns (with NACHA codes), disputes, refunds, and trust transfer completion—or you can poll endpoints with incremental filters.

Q: How do you preserve trust accounting compliance?

We separate trust and operating contexts, require explicit invoice/matter references for transfers, capture authorization details, and maintain immutable audit records. We also ensure request parameters align with allowed methods and firm policies.

Q: Can receipts and transfer documents be filed to iManage automatically?

Yes. Include iManage metadata (workspace/folder) when creating requests or transfers, and we will attach generated receipts/authorizations and post them to the specified iManage location with consistent filenames and profile fields.


iManage Work API - Programmatically integrate document workflows with iManage DMS


Ready to automate your LawPay workflows?

Supergood can have your LawPay integration live in days with no ongoing engineering maintenance.

Get Started →

Read more