Sandbox
Help

Integrate SDK

Revolut ID Web SDK is available for integration as the @revolut/revolut-id NPM package with full TypeScript support or as simple CDN script. Choose your preferred installation method:

NPM package

npm install @revolut/revolut-id
yarn add @revolut/revolut-id
pnpm add @revolut/revolut-id
bun add @revolut/revolut-id

or CDN script

<!-- Sandbox -->
<script src="https://sandbox-sso.revolut.com/static/js/revolut-id-sdk.js"></script>

<!-- Production -->
<script src="https://sso.revolut.com/static/js/revolut-id-sdk.js"></script>

Integration

HTML container

Specify on your HTML page container for mounting Revolut ID button

<div id="revolut-id-button-container"></div>

Initialisation and mounting

Initialisation configuration and processing auth callback depends on selected display mode popup or redirect.

Authentication opens in a popup window, user stays on the original page.

import { RevolutIdLoader } from '@revolut/revolut-id'

const revolutId = await RevolutIdLoader({ mode: 'production' }) // mode is optional, defaults to 'production'; use 'sandbox' for testing

const { mountButton } = revolutId.initialise({
  clientId: 'your-client-id',
  redirectUri: 'https://your-app.com/callback',
  scope: ['profile'], // 'openid' scope is included by default
  displayMode: 'popup',
  onAuthSuccess: ({ code, codeVerifier }) => {
    // Send to backend for token exchange
    console.log('Success:', { code, codeVerifier })
  },
})

const container = document.getElementById('revolut-id-button-container')

const buttonClient = mountButton(container, {
  kind: 'sign_up',
  size: 'large',
  variant: 'light-outlined',
  radius: 'round',
})

If you're using the CDN script, window.revolut.revolutId will be available globally and you can use it directly without importing RevolutIdLoader.

Unmounting

Unmount button if needed.

buttonClient.unmount()

API reference

The Revolut ID Web SDK provides the RevolutId interface, which is returned by RevolutIdLoader (NPM installation) or available in the global window scope via window.revolut.revolutId (CDN script).

export interface ButtonClient {
  mount: (container: HTMLElement, params?: ButtonStyle) => ButtonClient
  unmount: () => void
}

export interface RevolutId {
  initialise: (config: Config) => {
    mountButton: (container: HTMLElement, params?: ButtonStyle) => ButtonClient
  }

  processRedirectParams: () => SuccessResult | ErrorResult | null
}

Config - initialisation parameters (required)

ParameterTypeDescriptionRequired
clientIdstringYour Revolut application client IDYes
redirectUristringURI to redirect to after authenticationYes
scopeOpenIdScope[]Array of requested OpenID scopes (openid included by default)Yes
displayModepopup | redirectAuthentication display modeNo (defaults to redirect)
modeproduction | sandboxEnvironment modeNo (defaults to 'production')
uiColorSchemelight | dark | systemUI theme preferenceNo
uiBackgroundblue | deep-blue | green | orange | teal | purple | holo | minimalAuthentication page backgroundNo
countryCodesstring[]Array of allowed country codesNo
localestringLanguage/locale codeNo
onAuthSuccess(result: SuccessResult) => voidSuccess callback functionYes (popup mode only)
onAuthFailure(result: ErrorResult) => voidError callback functionNo (popup mode only)

For complete configuration documentation and advanced options, see Config API reference.

ButtonStyle - button styling parameters (optional)

ParameterTypeDescriptionDefaultRequired
kindcontinue | sign_in | sign_up | verify | iconButton text and purposesign_inNo
sizelarge | smallButton sizelargeNo
variantdark | light | light-outlinedVisual styledarkNo
radiusnone | default | roundCorner roundingdefaultNo

For complete button styling documentation and usage examples, see ButtonStyle API reference.

Environment setup

The environment you use must match your client environment configuration.

  • Use production mode with your production client ID for live applications
  • Use sandbox mode with your sandbox client ID for development and testing

See environment configuration for more details.

Next steps

Learn how to exchange code for user ID token - code exchange.

Rate this page