From connection to bill data in four steps
One API to link a user's billers, pull their bills, stream events into your app, and store payment methods. Bill-payment execution remains unavailable and returns 501 PAYMENT_EXECUTION_NOT_AVAILABLE.
Connect a biller
Users open your drop-in Connect flow, search for their biller, and authenticate. We handle credentials, OAuth, or API keys depending on the biller, walk users through MFA when required, and let them pick which accounts to link. Credentials are encrypted in Vault — your servers never see them.
Retrieve bills automatically
For most billers we run headless browser automation against the biller portal on a schedule. For partnered billers we call their APIs directly. Either way we pull statements, line items, due dates, and balances, normalize them into one schema, and write them to the bill store.
Stream events to your app
Bill and link changes publish signed webhooks such as bill.created, bill.updated, and link.expired. Subscribe to the event types you care about per client; we filter at the source, retry on failure, and sign each delivery so you can verify origin.
Store payment methods
Collect and tokenize payment methods with hosted Elements. Bill-payment execution is not available in sandbox or production; initiation returns 501 PAYMENT_EXECUTION_NOT_AVAILABLE and does not schedule or move money.