ProAbono
BUSINESS · COMMERCE & FINANCE
Customers, subscriptions, offers, usage, and invoices on their own key.
Connecting ProAbono in practice
ProAbono gives every account its own API host — requests go to https://api-{id}.proabono.com rather than a shared endpoint — so nothing is portable between tenants without reconfiguration. Authentication is HTTP Basic with the agent key as username and the API key as password, base64 of "agent_key:api_key", and there are three separate APIs (Live, Backoffice and Backoffice for Platform) to choose between.
Scopes that draw scrutiny
agent_key and api_key pairProAbono documents no scopes and warns that "your API keys carry many privileges, so be sure to keep them secret". Because they are sent as Basic auth, the pair is recoverable from any captured header.
Worth knowing
- The account id is part of the hostname, so an integration that hardcodes api.proabono.com never reaches anything and a tenant move means a config change.
- Pagination is HATEOAS-style — Page, SizePage, Count, TotalItems and a Links array with rel of prev or next — rather than a cursor or offset parameter, so a client has to follow links instead of computing them.
- Content-Type and Accept must both be application/json and HTTPS is required, so a lenient HTTP client that omits Accept can get a response it cannot parse.
- The billing API is split into Live and Backoffice surfaces, so an agent has to know which one an operation lives on before it can call it.
Checked against ProAbono API reference (2026-09-29), ProAbono documentation (2026-09-29)
What an agent can do
Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.
Often connected alongside
Put ProAbono behind one governed endpoint.
Same permissions, same audit trail, whatever else you connect next.