Sign-in
Every dashboard session needs a password and a second step: a passkey, an authenticator app or an emailed code. Passwords are hashed with Argon2id, session tokens are stored hashed, and a password change ends every session.
Security
Pay never holds your funds, and everything it does hold, from provider credentials to sessions, is protected on the assumption that someone will try to steal it.
Every dashboard session needs a password and a second step: a passkey, an authenticator app or an emailed code. Passwords are hashed with Argon2id, session tokens are stored hashed, and a password change ends every session.
Consumer secrets, passkeys and cached tokens are encrypted with a key ring and bound to the record they belong to, so a copied value fails to decrypt anywhere else. Keys rotate without breaking payments in flight.
Every workspace and project boundary is enforced by PostgreSQL row-level security, not just application code. The application connects as an ordinary role that cannot bypass it.
Six roles, from admin to viewer, decide who can charge, pay out, reconcile or manage keys. Permissions are checked again on the server for every request, and staff actions are written to an audit log.
Something else? Ask us.
Pay only makes the requests your team or your API keys ask for, with the credentials you configured. Noria has no account your money passes through.
Every webhook is signed with your endpoint's secret and a timestamp. Pay also refuses to deliver to private network addresses in production.
Email [email protected] with the details. We respond to every report.
Tell us what you are building and which providers you use. We set up your workspace and help you go live.