Customer App & Growth

Your Apps on Every Platform: Android, iOS, Web and Console, and Keeping Versions Under Control

How established operators register their apps, manage versions and sign-in settings, and run release day so customers stay on versions that work

An established money transfer operator rarely has one app. It has an Android app, an iOS app, a web client and the console its own staff use, each released on its own timetable, with customers spread across several versions of each. Most of the time that is fine. On release day, or the day a store review is slow, it is where errors come from.

Keeping that estate under control is not an engineering nicety. Customers on a supported version see fewer errors and fewer surprises, and an operator that controls rollout decides when a change reaches customers rather than finding out afterwards.

This guide is for CTOs, product owners and the app teams who ship your customer apps. It uses RemitSo's Platform & Apps module as the worked example. RemitSo registers your applications, manages their versions, checks that only genuine apps connect and tells your app team what changes in each release. Your team still builds and publishes the apps, chooses when to roll out and supports customers through the change.

01 · THE ESTATE

Register each app on each platform

Start with an honest list of everything that talks to your backend. In RemitSo, Platform & Apps holds the applications registered for each platform: Android, iOS, Web and Console. Each application is marked active or not.

That active flag matters more than it looks. An old build you no longer support, a test app from a previous agency, a web client you retired last year: if it is still active, it is still part of your estate. Switching off what you no longer support is the first step in controlling what customers use.

The platform matters beyond the app list. In RemitSo, exchange rate rules can give a different rate to the customers of one platform (web, iOS or Android), limits can be set per route and per app, and payment channels can be configured by platform. Keep the app list and those settings in step.

Principle: if you cannot list every app that can reach your backend, you cannot say which ones your customers are using.

02 · VERSIONS

Manage application versions for compatibility and rollout

Each app has versions, and customers do not all update on the same day. Some update within hours; some keep an old version for months. Your backend has to work with every version you still support, and your team has to know which ones those are.

In RemitSo, application versions are managed in the console for compatibility and rollout. In practice that gives your team three decisions to make and write down for each app:

  • The current version: what a new customer downloads today.
  • The oldest supported version: the earliest build you still test against and will answer support tickets about.
  • The rollout plan: when a new version becomes the one you expect customers to be on, and what happens to the old one.

Store review times differ between platforms, so a version can be live on Android a day or more before it reaches iOS customers. Plan your rollout around the slower store, not the faster one.

Watch for: a supported-version list that only ever grows. Every old version you keep is another one your team must test on release day. Agree a rule for retiring versions and stick to it.

03 · GENUINE APPS

Make sure only your genuine apps can connect

A money transfer backend is a target. Fake or tampered copies of an app can be built to harvest credentials or probe the backend. In RemitSo, only genuine apps can connect: app integrity checks stand between the backend and anything that is not one of your published apps.

For customers, that is protection they never see. For your team, it means the traffic reaching your backend comes from apps you published.

The same thinking applies to sign-in. Sign-in, sign-up, verification codes and password resets are rate-limited in the apps and the console, and a customer who hits the limit is told "too many requests" in their own language. For more on how backends spot fake apps, see mobile app security.

04 · SIGN-IN

Choose your customer PIN length

Customers sign in quickly and safely: a one-time code, then a PIN, Face ID or fingerprint. The PIN length is your decision. In RemitSo each deployment chooses its customer PIN length, configurable from four to eight digits.

A longer PIN is harder to guess; a shorter one is quicker to type and easier to remember. Weigh that against your customers and your risk appetite. Decide it before launch where you can, and if you change it later, test what enrolled customers see and brief customer service first.

Two practical points before you change it:

  • Tell customer service first. They will hear about it before your app team does.
  • Remember the device list. Customers can see every signed-in device and remove a lost phone in one tap; its sessions, PIN and Face ID sign-in stop working. Point support scripts at that, not at a PIN reset.
05 · MAINTENANCE

Let apps ask whether the service is available

Planned work is where app estates show their gaps. If an app does not know maintenance is under way, the customer sees an error instead of an explanation.

In RemitSo, apps can ask whether the service is available. A maintenance window is booked ahead with a start, an expected finish and a customer message, and it names what it holds: new transfers, payments, wallet loads (wallets being an optional add-on, where your licence allows), payouts or scheduled work. It never takes the platform down, money already in flight carries on, and it holds until somebody lifts it.

For your app team, that means one job: make sure every supported version asks and shows the message properly. A version that does not is a version that should leave your supported list. See zero-downtime maintenance for the operational side.

06 · THE API

Build against the Client API documentation in the console

Your mobile apps and web client talk to the backend through the Client API. In RemitSo that API is documented inside the console, in the API Documentation module: a live reference served from the deployed route table, so it is kept in step with the API your environment actually runs.

That has a practical benefit for app teams working with an established platform. They do not have to ask anyone for a document that might be out of date; they read the reference for the environment they are building against. Releases are tested on your staging environment first, so the app team can check a new version there before it reaches customers.

For a broader checklist on judging an API, see evaluating a remittance API.

07 · RELEASE DAY

Run release day from the release note

RemitSo releases are numbered by date, every environment shows exactly which release it runs under Environment Overview, and each release note says what changed, whether it needs a maintenance window and what action is needed, including new permissions and alerts. Your app team should read it as their brief.

Release-day checklist for app teams
StepWhereDone when
Read the release noteRelease notesApp-facing changes, downtime and actions needed are listed for the team
Confirm the environment's releaseEnvironment OverviewStaging shows the release you are testing against
Check the Client API referenceAPI DocumentationAny changed routes are understood and handled in the app
Test each supported version on stagingStaging, your devicesCurrent and oldest supported versions complete a transfer end to end
Check maintenance handlingStaging, with a window bookedEach supported version shows the customer message, not an error
Update the version recordsPlatform & AppsNew versions registered; retired versions dealt with
Review active applicationsPlatform & AppsOnly apps you support are active
Brief customer serviceYour own channelsSupport knows what customers will see and which versions are supported

The release note also tells you whether a maintenance window is needed. Most releases no longer need customers stopped; when one does, book the window and let the apps' availability check carry the message.

08 · SCENARIO

Scenario: retiring an old Android version

The numbers below are illustrative, chosen to show the reasoning rather than to describe any real operator.

An established operator supports four Android versions and three iOS versions. Release day takes the app team most of a day because each version must be tested. Support tickets cluster on the oldest Android build, which handles the maintenance message poorly: customers see a generic error during planned work.

Step 1: decide the supported list

The product owner sets a rule: support the current version and the one before it, on each platform. That retires two Android versions and one iOS version.

Step 2: give customers time

The team publishes the current versions in both stores, waits for iOS review, and uses a broadcast to tell customers that older versions are being retired on a set date.

Step 3: update the records

On the date, the team updates the application versions in Platform & Apps to reflect the new rollout, and checks that only supported applications are active.

Step 4: the next release day

The next release day tests four versions instead of seven. Maintenance messages show properly on every supported version, and the tickets about the generic error stop.

Takeaway: fewer versions meant less testing for the team and fewer errors for customers. The decision was the operator's; the console kept the records in one place.

09 · REMITSO

Doing it with RemitSo

Platform & Apps, with the API reference and release notes around it, keeps your app estate under your control. See the admin features and the customer app features.

  • Applications per platform, Android, iOS, Web and Console, each active or not, so your team knows exactly which apps can reach the backend.
  • Application versions managed for compatibility and rollout, so your team decides when a version reaches customers and your customers stay on versions that work.
  • Only genuine apps connect, so your customers are protected from tampered copies and your team knows the traffic is yours.
  • PIN length from four to eight digits, chosen per deployment, so your team sets the balance between security and convenience for your customers.
  • Apps can ask whether the service is available, so during planned work your customers see your message, not an error.
  • The Client API documented in the console, kept in step with the API, so your app team builds against what your environment actually runs.
  • A release note for every release, saying what changed, the action needed and whether downtime is needed, so your team plans release day instead of reacting to it.

What your team still does: build and publish the apps, decide the supported versions, test on staging and support customers through each change.

To see the module against your own apps, book a demo.

FAQ

Frequently asked questions

Can we change the customer PIN length after launch?

Each RemitSo deployment chooses its customer PIN length, from four to eight digits. Set it before launch where you can; if you change it later, test the change in staging with enrolled customers and brief customer service first.

How many old app versions should we support?

There is no single answer, but fewer is better. Each supported version is another one to test on release day. Many teams support the current version and the one before it, with a published retirement date for older ones.

What do customers see during planned maintenance?

RemitSo apps can ask whether the service is available, and a maintenance window carries a customer message. Money already in flight carries on, and the window holds until somebody lifts it.

Where do our app developers find the API they build against?

In the API Documentation module inside the console: a live reference for the Client API used by the mobile apps and web client, served from the deployed route table.

Can a copied or modified version of our app connect to the backend?

No. Only genuine apps can connect; app integrity checks stop anything that is not one of your published apps.

Built by people who have helped MSBs for years.

The risk checks on every online transfer come from what they see every day.

  • The person paying isn't the customer
  • One bank account, several customers
  • A disposable email address
  • Sign-in from a high-risk location
  • The same person signing up twice
  • A name close to a sanctions list
Book a demo

See RemitSo running with your corridors.

  • 30 minutes with our team, on video
  • The real admin panel and customer apps
  • White label or source code, explained with pricing
  • Your compliance and launch questions answered
Loading the form…

Video