# Rex BaaS > Banking-as-a-Service API documentation for Rex partners - [Introduction](https://baas-api-docs.rexmfbank.com/introduction.md): Get started with the Rex Banking-as-a-Service API - [Authentication](https://baas-api-docs.rexmfbank.com/authentication.md): How to authenticate requests to the Rex BaaS API - [Errors](https://baas-api-docs.rexmfbank.com/errors.md): The shared response and error shape used by every endpoint - [Rate Limits](https://baas-api-docs.rexmfbank.com/rate-limits.md): Request throttling on the Rex BaaS API - [Webhooks Overview](https://baas-api-docs.rexmfbank.com/webhooks/overview.md): Get notified in real time instead of polling for transaction status - [Webhook Events](https://baas-api-docs.rexmfbank.com/webhooks/events.md): Every event Rex can send to your webhook, with a full payload example - [Verifying Webhook Signatures](https://baas-api-docs.rexmfbank.com/webhooks/signature-verification.md): Confirm a webhook request really came from Rex before acting on it - [Going Live Checklist](https://baas-api-docs.rexmfbank.com/guides/going-live-checklist.md): Everything required before your BaaS partner application can be approved - [Sandbox vs. Live](https://baas-api-docs.rexmfbank.com/guides/sandbox-vs-live.md): How test and production environments differ on the Rex BaaS API - [Register a partner account](https://baas-api-docs.rexmfbank.com/api-reference/authentication/register-a-partner-account.md): Creates your business's Rex BaaS partner account and sends a 6-digit OTP to the email you provide. Verify it with **Verify Registration OTP** before logging in β€” an unverified account cannot log in. - [Verify registration OTP](https://baas-api-docs.rexmfbank.com/api-reference/authentication/verify-registration-otp.md) - [Resend registration OTP](https://baas-api-docs.rexmfbank.com/api-reference/authentication/resend-registration-otp.md) - [Log in](https://baas-api-docs.rexmfbank.com/api-reference/authentication/log-in.md): Exchanges your partner email/password for a bearer token. See **[Authentication](/authentication)** for the full picture β€” in particular, how long this token lasts and what to do when it expires. - [Request a password reset code](https://baas-api-docs.rexmfbank.com/api-reference/authentication/request-a-password-reset-code.md): Always returns 200 whether or not the email exists β€” doesn't reveal which emails are registered. - [Resend the password reset code](https://baas-api-docs.rexmfbank.com/api-reference/authentication/resend-the-password-reset-code.md) - [Reset password with the emailed code](https://baas-api-docs.rexmfbank.com/api-reference/authentication/reset-password-with-the-emailed-code.md) - [List supported countries](https://baas-api-docs.rexmfbank.com/api-reference/authentication/list-supported-countries.md): Static reference list used to populate the country field during onboarding. No auth required. - [List your API keys](https://baas-api-docs.rexmfbank.com/api-reference/authentication/list-your-api-keys.md): Secrets are masked on every response except the moment of issuance above. - [Issue an API key](https://baas-api-docs.rexmfbank.com/api-reference/authentication/issue-an-api-key.md): > 🚧 **Not yet used for authentication.** See the callout in > **[Authentication](/authentication)** β€” every endpoint currently > authenticates with the bearer token from **Login**, not this key. > This endpoint and its key are reserved for a forthcoming > API-key auth mode; don't build against it a… - [Get your onboarding profile](https://baas-api-docs.rexmfbank.com/api-reference/onboarding/get-your-onboarding-profile.md): Returns everything at once β€” profile fields, your compliance representative, uploaded documents, and a `document_checklist` computed from your `business_type` (which document types are still outstanding). There's deliberately no separate endpoint for any of these pieces. - [Save business information](https://baas-api-docs.rexmfbank.com/api-reference/onboarding/save-business-information.md): Part of the one-time KYB flow. Fields lock once your application is **submitted** β€” see **Submit Application** β€” after which this returns `409 PROFILE_LOCKED`. - [Add your compliance representative](https://baas-api-docs.rexmfbank.com/api-reference/onboarding/add-your-compliance-representative.md): The individual Rex holds accountable for this account β€” typically a director or compliance officer. Runs an identity/KYC check synchronously; the response tells you immediately whether it passed. **BVN is immutable once set.** - [Upload compliance documents](https://baas-api-docs.rexmfbank.com/api-reference/onboarding/upload-compliance-documents.md): Set `business_type` (via **Save Business Information**) first β€” which document types are valid depends on it. See **[Going Live Checklist](/guides/going-live-checklist)** for the full type list per business type. - [Sign the partner agreement](https://baas-api-docs.rexmfbank.com/api-reference/onboarding/sign-the-partner-agreement.md) - [Submit your application for review](https://baas-api-docs.rexmfbank.com/api-reference/onboarding/submit-your-application-for-review.md): The final onboarding step. Requires, in order: a signed agreement, a representative, a `business_type`, an `rc_number` (if your business type requires one), and every required document uploaded. Locks business-info/representative/compliance from further edits once submitted. - [Switch environment](https://baas-api-docs.rexmfbank.com/api-reference/onboarding/switch-environment.md): Switches which environment your dashboard session and service calls target. See **[Sandbox vs. Live](/guides/sandbox-vs-live)**. You cannot switch to `live` until your application is approved (`onboarding_status: active`). - [Dashboard summary metrics](https://baas-api-docs.rexmfbank.com/api-reference/onboarding/dashboard-summary-metrics.md) - [Get your business balance](https://baas-api-docs.rexmfbank.com/api-reference/wallet/get-your-business-balance.md): Your own settlement account β€” the balance every virtual/merchant account transaction ultimately nets into or out of. Not a per-customer balance; see **Get Virtual Account Wallet Balance** for that. - [Fund your sandbox balance](https://baas-api-docs.rexmfbank.com/api-reference/wallet/fund-your-sandbox-balance.md): Sandbox only β€” tops your sandbox business balance up to the test threshold so you can exercise transfers without touching real money. - [List banks](https://baas-api-docs.rexmfbank.com/api-reference/virtual-accounts/list-banks.md): Returns the list of financial institutions and their NIP bank codes, for use as `beneficiaryBankCode` on **Transfer to another bank**. - [Create a virtual account](https://baas-api-docs.rexmfbank.com/api-reference/virtual-accounts/create-a-virtual-account.md): Issues a dedicated bank account number for one of your end users. - [List virtual accounts](https://baas-api-docs.rexmfbank.com/api-reference/virtual-accounts/list-virtual-accounts.md) - [Get a virtual account](https://baas-api-docs.rexmfbank.com/api-reference/virtual-accounts/get-a-virtual-account.md) - [Activate or deactivate a virtual account](https://baas-api-docs.rexmfbank.com/api-reference/virtual-accounts/activate-or-deactivate-a-virtual-account.md) - [Get a virtual account's balance](https://baas-api-docs.rexmfbank.com/api-reference/virtual-accounts/get-a-virtual-accounts-balance.md) - [Resolve an account name](https://baas-api-docs.rexmfbank.com/api-reference/virtual-accounts/resolve-an-account-name.md): Resolves any Rex-issued account (virtual account or your own business Master account). Resolving an account at another bank via `bankCode` is not yet supported. - [Transfer between Rex-issued accounts](https://baas-api-docs.rexmfbank.com/api-reference/virtual-accounts/transfer-between-rex-issued-accounts.md): Moves money between any two Rex-issued accounts β€” including across partners. If the beneficiary belongs to a different partner, that partner's webhook fires an `internal-transfer` event too. `reference` must be unique per transaction β€” reusing one returns `409 DUPLICATE_REFERENCE`, safe to retry wit… - [Transfer to another bank](https://baas-api-docs.rexmfbank.com/api-reference/virtual-accounts/transfer-to-another-bank.md): Sends funds out to an account at another financial institution over the NIP switch. - [List transactions](https://baas-api-docs.rexmfbank.com/api-reference/virtual-accounts/list-transactions.md) - [Get transaction status by reference](https://baas-api-docs.rexmfbank.com/api-reference/virtual-accounts/get-transaction-status-by-reference.md) - [Post a manual credit or debit](https://baas-api-docs.rexmfbank.com/api-reference/virtual-accounts/post-a-manual-credit-or-debit.md): Directly credits or debits a virtual account β€” e.g. to record an off-platform adjustment. Fires a `post-transaction` webhook event. - [Simulate an inward credit](https://baas-api-docs.rexmfbank.com/api-reference/virtual-accounts/simulate-an-inward-credit.md): > 🚧 **Testing tool for Rex's own staging environment β€” not > reachable in production regardless of your sandbox/live > environment choice.** It's gated on Rex's server environment > (`local`/`staging`), not on your partner `environment` field, so > it will return `403 NOT_AVAILABLE_IN_ENVIRONMENT`… - [Get your webhook configuration](https://baas-api-docs.rexmfbank.com/api-reference/webhooks/get-your-webhook-configuration.md) - [Configure your webhook](https://baas-api-docs.rexmfbank.com/api-reference/webhooks/configure-your-webhook.md): Sets (or rotates) the URL and signing secret Rex sends event notifications to. See **[Webhooks Overview](/webhooks/overview)** and **[Verifying Signatures](/webhooks/signature-verification)** before going live with this. - [Toggle transaction event notifications](https://baas-api-docs.rexmfbank.com/api-reference/webhooks/toggle-transaction-event-notifications.md): Controls whether `post-transaction`, `internal-transfer`, `interbank-transfer`, and `inbound-credit` events fire to your webhook. See **[Webhook Events](/webhooks/events)**. - [Toggle webhook-health alerts](https://baas-api-docs.rexmfbank.com/api-reference/webhooks/toggle-webhook-health-alerts.md) - [Change your password](https://baas-api-docs.rexmfbank.com/api-reference/partner-settings/change-your-password.md) - [Enable or disable two-factor authentication](https://baas-api-docs.rexmfbank.com/api-reference/partner-settings/enable-or-disable-two-factor-authentication.md) - [Update API configuration](https://baas-api-docs.rexmfbank.com/api-reference/partner-settings/update-api-configuration.md): `rate_limit` is stored but **the platform-wide 120 req/min limit described in [Rate Limits](/rate-limits) is what's actually enforced today** β€” treat any value you set here as forward-looking configuration, not a live override, until this is wired up. - [List team members](https://baas-api-docs.rexmfbank.com/api-reference/partner-settings/list-team-members.md) - [Add a team member](https://baas-api-docs.rexmfbank.com/api-reference/partner-settings/add-a-team-member.md): Requires a compliance representative to already be on file (see **Add Compliance Representative**). - [Update a team member](https://baas-api-docs.rexmfbank.com/api-reference/partner-settings/update-a-team-member.md) - [Remove a team member](https://baas-api-docs.rexmfbank.com/api-reference/partner-settings/remove-a-team-member.md) - [Open a dispute](https://baas-api-docs.rexmfbank.com/api-reference/partner-settings/open-a-dispute.md) - [List disputes](https://baas-api-docs.rexmfbank.com/api-reference/partner-settings/list-disputes.md) - [Upload a document or brand asset](https://baas-api-docs.rexmfbank.com/api-reference/partner-settings/upload-a-document-or-brand-asset.md): Compliance documents are gated by your `business_type`'s checklist (same as **Upload Compliance Documents**); brand assets like your logo are not. ## OpenAPI Specs - [openapi](/openapi.yaml)