DEVELOPER PREVIEW

Fees as objects.
Status as events.

The API is being designed with early partners. This is a preview of how systems could ask whether a fee may move and subscribe to its progress.

Available to design partners: keys and events Concept preview: rules check
RULES CHECK

One question before money moves.

Can this fee be requested now, from whom, for how much, and to which destination? The answer comes from the transaction record.

01Check timingKnow which conditions still need to be met.
02Confirm destinationUse the verified account for that fee.
03Record the resultGive every connected system the same status.
Illustrative requestJSON
POST /v0/rules/check

{
  "file": "26-0418",
  "fee": "appraisal",
  "amount": 725.00
}

→ 200 OK
{
  "allowed": false,
  "blocked_by": [
    "intent_to_proceed.received"
  ],
  "destination": "lender_account",
  "rails": ["card", "ach"]
}
KEYS WITH LIMITS

Your systems, and your agents, on a mandate.

API keys are issued under a mandate your firm approves: what the key may do, and until when. The same limits apply whether the caller is your title software or your own AI agent.

Available to design partners
01ScopedA key reads its firm's files and does only what its mandate lists.
02StoppableRevoke the mandate or pause automation, and every key under it stops.
03Named on the recordEach event a key writes carries the key and its mandate.
Illustrative mandateJSON
{
  "kind": "api_access",
  "name": "Closing assistant (AI agent)",
  "scopes": ["fees:write", "deposits:import"],
  "proposed_by": "ops.lead@firm.example",
  "approved_by": "controller@firm.example",
  "expires_on": "2027-03-31",
  "status": "active"
}

Never allowed for a key:
  change account instructions
  verify a destination
  confirm a payment
  approve a mandate
EVENTS

Every change has a signal.

Add a webhook and FeeHarbor posts a signed event to your system when something changes on a file where your firm is a party. Each event names who acted: a person, a FeeHarbor agent, or an API key, plus the mandate behind anything automated. Events carry file numbers, amounts, and account labels, never account numbers.

Available to design partners
fee.declared

A fee enters the shared record.

fee.amount_changed

A fee's amount changes.

fee.destination_set

A fee is pointed at an account.

instructions.verified

The account a fee points at is verified.

instructions.failed

A verification callback fails. Don't send funds.

fee.confirmed

A firm confirms a payment's amount and account.

funds.received

Funds are matched to the file and fee.

fee.reconciled

The record and accounting agree.

fee.removed

A fee is taken off the file.

fee_check.completed

The TRID fee check runs on a Closing Disclosure.

Every request carries a FeeHarbor-Signature header: t=<unix time>,v1=<HMAC-SHA256 of "t.body">, keyed with your endpoint's secret. Each event is delivered at least once and retried for about a day and a half, so use the event id to ignore repeats.

INTEGRATION PARTNERS

Tell us what your system needs.

Help shape the connection to loan origination, title production, brokerage, or accounting software.

Talk integrations ↗