PayMitto Configuration

Definition

export type PayMittoConfiguration = {
  environment: PayMittoEnvironment;
  appearance?: PayMittoAppearance | null;
  supportedAppearance?: PayMittoSupportedAppearance;
  defaultCountry?: PayMittoDefaultCountry | null;
  idleTimeoutInterval?: number | null;
  localization?: PayMittoLocalization;
  remittanceServiceProvider?: PayMittoRemittanceServiceProvider | null;
  sourceAccounts?: PayMittoSourceAccount[] | null;
  transferMethod?: PayMittoTransferMethod | null;
}

Properties

PropertyTypeDescription
environmentPayMittoEnvironmentOperating environment (Production, Sandbox)
appearancePayMittoAppearance | nullOptional JSON theme configuration for colors, fonts, and content
supportedAppearancePayMittoSupportedAppearanceAppearance mode: Light, Dark, or Device (follows system)
defaultCountryPayMittoDefaultCountry | nullOptional ISO 3166-1 alpha-3 default; null disables
idleTimeoutIntervalnumber | nullOptional inactivity timeout in seconds; null disables
localizationPayMittoLocalizationUI language (en-US, es-MX)
remittanceServiceProviderPayMittoRemittanceServiceProvider | nullPreferred provider or null for user choice
sourceAccountsPayMittoSourceAccount[] | nullOptional pre-fetched source accounts
transferMethodPayMittoTransferMethod | 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, PayMittoEnvironment } from 'react-native-paymitto-sdk';

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

Full Configuration

Complete example with all optional properties:

import {
  startSDK,
  PayMittoEnvironment,
  PayMittoSupportedAppearance,
  PayMittoLocalization,
  PayMittoRemittanceServiceProvider,
  PayMittoTransferMethod,
  PayMittoDefaultCountry,
  type PayMittoAppearance,
  type PayMittoConfiguration,
} from 'react-native-paymitto-sdk';

// Theme customization
const appearance: PayMittoAppearance = {
  foundations: {
    colorPrimary: { light: '#4451F6', dark: '#7B86FF' },
    colorBackground: { light: '#F8F6F3', dark: '#121110' },
    fontFamily: 'sf pro',
  },
  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: PayMittoConfiguration = {
  environment: PayMittoEnvironment.Sandbox,
  appearance: appearance,
  supportedAppearance: PayMittoSupportedAppearance.Device,
  defaultCountry: PayMittoDefaultCountry.MEXICO,
  idleTimeoutInterval: 300,
  localization: PayMittoLocalization.EN_US,
  remittanceServiceProvider: PayMittoRemittanceServiceProvider.VISA,
  sourceAccounts: [
    { alias: 'Main Card', balance: 1500, last4: '1234', sourceProviderId: 'provider-1' },
  ],
  transferMethod: PayMittoTransferMethod.PUSH_TO_CARD,
};

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