Developers · Authentication

Consent is the API’s spine.

Two credential types. FI partner OAuth and merchant API keys, and one rule everywhere: you can only see what the customer granted, and every grant is revocable.

The FI partner flow (OIDC)

1 · Your IdP signs the customer inQoyla never holds the password, sign-in stays with the bank’s identity provider.OIDC
2 · The customer picks scopesBalances, spending analysis, plans, granular toggles, each off-switchable later.consent UI
3 · You exchange the codeStandard authorization-code + PKCE; tokens are short-lived and scope-bound.OAuth 2.1
4 · Every call leaves a recordToken use is itself recorded, customers can see who read what, when.audit trail

Token exchange

exchange · curl

curl https://auth.qoyla.ai/oauth/token \
  -d grant_type=authorization_code \
  -d code=$CODE -d code_verifier=$VERIFIER \
  -d client_id=$CLIENT_ID

# → { "access_token": "...", "expires_in": 900,
#     "scope": "money.read propose" }

Scopes

ScopeGrantsTypical holder
money.readSafe-to-spend, plans, spending categories.FI partner
proposeCreate proposals, never execution.FI partner
approveRecord a customer’s explicit approval.FI partner (in-app UI)
records.readFetch sealed records by reference.FI partner · auditor
offers.readMatched offers, intent signals, never raw transactions.Merchant
offers.writeCreate and update your own offers.Merchant

Need production credentials?

Sandbox keys are self-serve; production keys come with a signed partnership.