# Choose an integration

Start from the customer outcome. Every path uses the same sandbox, API-key authentication, error model, and event delivery system.

- [Connect biller accounts](/docs/guides/link-account) — Let a user securely connect a biller account so bills can stay current. Start with: Link token + Elements. Open guide
- [Retrieve and sync bills](/docs/guides/retrieve-bills) — Fetch normalized bills and keep your product current as they change. Start with: Bills + account-link sync. Open guide
- [Import a bill from an unlinked account](/docs/guides/bill-imports) — Add one bill without a connection, then connect when supported so future bills sync automatically. Start with: Bill Imports API. Open guide
- [Schedule bill payments](/docs/guides/accept-payments) — Collect payment details and model scheduling for an eligible bill. Execution answers 501 PAYMENT_EXECUTION_NOT_AVAILABLE. Start with: Pay token + Elements. Open guide

Production requirements

## Required across connected-account outcomes

- [Display biller messages](/docs/guides/display-biller-messages) — Persist and display accepted messages from connected billers.
- [Handle signed webhooks](/docs/guides/webhooks) — Use events as notifications, then fetch and reconcile canonical resources.

> **Note — A secure integration has two planes**
> Your server keeps the `BILLERAPI_API_KEY` and creates short-lived tokens. Your browser or mobile UI receives only those short-lived tokens for hosted Elements flows. Never ship an API key in client code.
