ReadyRemit Configuration

Configure environment, appearance, and behavior

Definition

export type ReadyRemitConfiguration = {
  environment: ReadyRemitEnvironment;
  appearance?: ReadyRemitAppearance | null;
  supportedAppearance?: ReadyRemitSupportedAppearance;
  defaultCountry?: ReadyRemitDefaultCountry | null;
  idleTimeoutInterval?: number | null;
  localization?: ReadyRemitLocalization;
  remittanceServiceProvider?: ReadyRemitRemittanceServiceProvider | null;
  sourceAccounts?: ReadyRemitSourceAccount[] | null;
  transferMethod?: ReadyRemitTransferMethod | null;
}

Properties

PropertyTypeDescription
environmentReadyRemitEnvironmentOperating environment (Production, Sandbox)
appearanceReadyRemitAppearance | nullOptional JSON theme configuration for colors, fonts, and content
supportedAppearanceReadyRemitSupportedAppearanceAppearance mode: Light, Dark, or Device (follows system)
defaultCountryReadyRemitDefaultCountry | nullOptional ISO 3166-1 alpha-3 default; null disables
idleTimeoutIntervalnumber | nullOptional inactivity timeout in seconds; null disables
localizationReadyRemitLocalizationUI language (en-US, es-MX)
remittanceServiceProviderReadyRemitRemittanceServiceProvider | nullPreferred provider or null for user choice
sourceAccountsReadyRemitSourceAccount[] | nullOptional pre-fetched source accounts
transferMethodReadyRemitTransferMethod | nullPreferred method or null for user choice

Defaults

PropertyDefault Value
appearancenull (SDK default theme)
supportedAppearanceDevice (follows system setting)
defaultCountrynull
idleTimeoutIntervalnull (disabled)
localizationen-US
remittanceServiceProvidernull (user choice)
sourceAccountsnull (no pre-fetched accounts)
transferMethodnull (user choice)

Examples

Minimal Configuration

The simplest way to start the SDK:

import { startSDK, ReadyRemitEnvironment } from 'react-native-ready-remit-sdk';

startSDK({
  configuration: {
    environment: ReadyRemitEnvironment.Sandbox,
  },
  fetchAccessTokenDetails: async () => ({
    accessToken: 'your-access-token',
    expiresIn: 3600,
    scope: 'readyremit:write',
    tokenType: 'Bearer',
  }),
  verifyFundsAndCreateTransfer: async () => ({ transferId: 'TXN123' }),
});

Full Configuration

Complete example with all optional properties:

import {
  startSDK,
  ReadyRemitEnvironment,
  ReadyRemitSupportedAppearance,
  ReadyRemitLocalization,
  ReadyRemitRemittanceServiceProvider,
  ReadyRemitTransferMethod,
  ReadyRemitDefaultCountry,
  type ReadyRemitAppearance,
  type ReadyRemitConfiguration,
} from 'react-native-ready-remit-sdk';

// Theme customization
const appearance: ReadyRemitAppearance = {
  foundations: {
    colorPrimary: { light: '#007AFF', dark: '#0A84FF' },
    colorBackground: { light: '#F4F5F6', dark: '#111111' },
    fontFamily: 'inter',
  },
  components: {
    button: {
      buttonRadius: 8,
      buttonTextCase: 'capitalize',
    },
    content: {
      contentHomepageHeadline: 'Send money internationally',
      contentHomepageDescription: 'Send funds to your recipients with convenience and flexibility.',
    },
  },
};

// Full configuration
const config: ReadyRemitConfiguration = {
  environment: ReadyRemitEnvironment.Sandbox,
  appearance: appearance,
  supportedAppearance: ReadyRemitSupportedAppearance.Device,
  defaultCountry: ReadyRemitDefaultCountry.MEXICO,
  idleTimeoutInterval: 300,
  localization: ReadyRemitLocalization.EN_US,
  remittanceServiceProvider: ReadyRemitRemittanceServiceProvider.VISA,
  sourceAccounts: [
    { alias: 'Main Card', balance: 1500, last4: '1234', sourceProviderId: 'provider-1' },
  ],
  transferMethod: ReadyRemitTransferMethod.PUSH_TO_CARD,
};

startSDK({
  configuration: config,
  fetchAccessTokenDetails: async () => ({
    accessToken: 'your-access-token',
    expiresIn: 3600,
    scope: 'readyremit:write',
    tokenType: 'Bearer',
  }),
  verifyFundsAndCreateTransfer: async (request) => ({ transferId: 'TXN123456789' }),
  onLoad: async () => console.log('SDK loaded'),
  onClose: async () => console.log('SDK closed'),
});