List payment providers
Requires billing:read. The payment gateways this environment can charge through — the gateway you sell your product through, not what UserKit charges you.
One entry per provider the product speaks of, connected or not: the screen is a list of what is possible. connected says a row exists; status says whether it works, and the two are different questions — a connection that exists and is unhealthy is not the same as no connection.
Every status that is not connected names a different repair. That is what it is for: collapsing them into one “broken” ends with a screen telling you to re-paste a credential that is perfect.
status | what it means | the repair |
|---|---|---|
pending | the keys are stored and the provider has not been asked | run the health check |
connected | the last check succeeded | none |
invalid_credentials | the gateway refused the keys | rotate them |
mode_mismatch | live-mode keys on a test environment, or the reverse | paste the other key, not a new one |
account_not_ready | the keys work and the account cannot take money: a sign-up never finished, payouts restricted, an account closed | in the gateway’s own dashboard — nothing about the keys will fix it |
status_detail carries the gateway’s own sentence, for a person to read. The status says which repair; the detail says why. Never parse it.
Neither secret is ever returned. The secret key is write-only by design, and webhook_secret_set is the one thing this answers about the webhook secret: whether an endpoint has been registered at the provider.
capabilities reports what the gateway can do beyond the minimum every gateway can do, so a screen stops offering an act that would be refused. It is absent when the server has no adapter loaded, because an empty object would read as a claim about the provider rather than about the deployment.
Authorizations
A staff session token, uk_st_…. Minted by sign-up, sign-in or the two-factor exchange.
Headers
The organization the caller is acting on — the org_… code that appears in the panel URL. It identifies; the membership JOIN is what authorizes, so a forged code reads nothing. Absent, the session's default organization answers.
Path Parameters
The environment's id.