For AI agents
What a model needs to know before generating a client for the BaaS product.
This page is for you if you are a language model, or for whoever will paste it into one’s context. It summarises what cannot be inferred from the contract alone.
Which contract to use
- This product’s spec:
/openapi/baas.yaml(OpenAPI 3.1, integrator operations only). The other product’s is/openapi/ib.yaml; every operation carriesx-audience(baas,ibor both) and itssummarystarts with[BaaS],[IB]or[BaaS · IB]. - LLM indexes:
/llms.txtand/llms-full.txt. RFC 9727 catalog at/.well-known/api-catalog. - The other product, Internet banking, uses another host and signs every request. If the credential came from the account holder’s internet banking, read For agents (IB), not this page.
Host and headers
Rules the spec does not express
- Money is a
numberin BRL with two decimals.150.50, never a string, never cents. identifieris yours and unique per account. It comes back in the statement, the lookup and the webhooks. Reusing it returns409 duplicate_identifier.- Async is the default for payments.
POST .../pix/out/asyncreturns202and the outcome arrives aspix.out.completed/pix.out.failed/pix.out.timeout.timeoutis indeterminate: check the statement before retrying. - Errors are an open enum. Branch on
errorCode; an unknown code is a generic error of the same status. Table in Errors; every response carriesdocsandrequestId. - Webhooks have a fixed envelope (
id,type,occurredAt,data).idis deterministic: deduplicate on it. SignatureX-Signature=base64(HMAC_SHA256(secret, raw_body)). - Dates are RFC 3339 in UTC with
Zon input; some settlement-bank reads come back in-03:00. Do not assume a timezone. - Documents (CPF/CNPJ) digits only. Phone PIX keys with
+55.
Suggested reading order
- Getting started
- OAuth2 and Idempotency
- The guide for the capability you are integrating (Receive, Pay, Account opening)
- Webhooks and Errors
- The API Reference for the exact shape of every field