What could you do if every biller had an API?

One REST endpoint returns normalized bills, balances, and due dates as structured JSON — across 2,400+ billers, no scraping to maintain.

SOC 2 Type II99.98% uptime2,400+ billers
# Retrieve bills for a linked account
curl https://api.billerapi.com/v1/bills \
  -H "Authorization: Bearer bak_test_4f2c..."
200 OKGET /v1/bills · 214ms
{
  "id": "bill_8Kd2Xq",
  "biller": "Eversource Energy",
  "category": "electric",
  "amount_due": 142.19,
  "currency": "usd",
  "due_date": "2026-07-21",
  "status": "unpaid",
  "account_last4": "8842"
}
$ npm install billerapi
NodeReactCLI
5-minute quickstart
The platform

The full bill lifecycle in one API

Discover, link, retrieve, and pay — four capabilities on one normalized schema, so you build the integration once and it works for every biller.

01

Biller discovery

Search 2,400+ supported billers by name, category, or region — utilities, telecom, insurance, lenders, and subscriptions.

GET /v1/billers?query=eversource
02

Account linking

Drop-in Connect flow handles credentials, MFA, and captchas invisibly. You get a durable link token, never the password.

POST /v1/link_tokens
03

Bill retrieval

Normalized bills with amounts, due dates, statements, and line items — the same schema whether it came from an API or a scrape.

GET /v1/bills
04

Bill payment

Initiate payments against a linked account and track them to settlement, with PCI-scoped handling isolated from your systems.

POST /v1/payments
Integration

Wire up bills in an afternoon

Four steps from key to first webhook. The Connect flow does the messy part; you handle typed events.

  1. 1

    Create a link token

    Call POST /v1/link_tokens server-side with the biller and your customer reference.

    /v1/link_tokens
  2. 2

    Launch Connect

    Hand the token to the drop-in Connect UI. Credentials, MFA, and captchas are handled for you.

  3. 3

    Exchange the token

    Swap the public token for a durable account_link_id you store against the customer.

    account_link_id
  4. 4

    Receive bill.created webhooks

    Bills arrive as signed, typed events as soon as they're available — no polling loop to run.

    bill.created
POST/your-webhook-endpoint
{
  "type": "bill.created",
  "id": "evt_1PQm7z",
  "created": 1783041920,
  "data": {
    "bill_id": "bill_8Kd2Xq",
    "account_link_id": "aln_Qb3R",
    "amount_due": 142.19,
    "due_date": "2026-07-21"
  }
}
~4 min
Median time to first API call
99.98%
Retrieval uptime, trailing 90 days
Fewer billing support tickets
We replaced three scraping vendors with one API. What used to be a fragile pipeline is now four typed webhooks we barely think about.
HEHead of Engineering · Consumer bill-pay platform

Design partner · reference available under NDA

Use cases

Built into products like yours

01

Bill pay apps

Show every bill in one place and let users pay without leaving your app.

02

Subscription management

Detect recurring charges and surface price changes before renewal.

03

Personal finance (PFM)

Enrich transactions with real due dates and statement-level detail.

Developer experience

Built for engineers

Typed SDKs

First-class Node, React, and CLI packages with full TypeScript types generated from the API spec.

Event-driven webhooks

Signed, retried, idempotent events. Verify with one line, replay from the dashboard.

Versioned API

Date-pinned versions and a public changelog. Upgrades are opt-in, never a surprise.

Ready to deliver automated bill experiences?