AI 4UAnalyze my business
Back to Case Studies
FintechRemittance

EnvioPlata

US-to-Latin America Money Transfers

A cross-border transfer experience designed to make destination routes, quote details, recipient information, fees, and transfer status easier to understand.

Route
Selection
Fee
Breakdown
Quote
Review
Status
Tracking

Proof boundary: This record documents the transfer flow and integration architecture. Live route availability, pricing, quote freshness, transaction volume, and production status have not been independently audited.

Payment + Transfer Rails
Orchestrated handoff

How It Works

1

Enter Amount

Current quote details with a separate fee breakdown

2

Add Recipient

Country-specific bank fields with validation

3

Confirm Payment

Device wallet or card through the configured payment processor

4

Track Transfer

The transfer instruction moves to the configured payout rail

Configured Destination Records

The product record includes destination-specific bank fields handled dynamically by the validation layer. This is implementation scope, not a claim of current live availability.

MX
Mexico
CO
Colombia
BR
Brazil
GT
Guatemala
PE
Peru
AR
Argentina
CL
Chile
EC
Ecuador
DO
Dom. Rep.
HN
Honduras
SV
El Salvador
NI
Nicaragua
CR
Costa Rica
PA
Panama
UY
Uruguay
PY
Paraguay

Technical Architecture

Mobile Client

Transfer Experience

Amount, destination, recipient, payment confirmation, and status views.

Backend

Transfer Orchestrator

Routes, validation, payment events, quote contracts, and transfer state.

External Rails

Payment and Transfer APIs

Configured interfaces for payment confirmation, quotes, recipients, and payouts.

Payment Orchestration

  • Device wallet support
  • Hosted card collection
  • Webhook-driven flow
  • Transfer metadata

Transfer Orchestration

  • Quote retrieval
  • Recipient creation
  • Transfer execution
  • Status tracking

Illustrative Fee Presentation

The values below demonstrate the review hierarchy only. They are not a live quote or current pricing commitment.

Example Transfer Review

Send Amount$100.00
EnvioPlata FeeShown separately
Transfer-Rail FeeQuoted separately
Total ChargedCalculated before confirmation
Recipient GetsBased on current quote

Why This Presentation?

Separate Service Fee
The product fee is visible as its own line item
Quote Visibility
Exchange information and transfer-rail costs are shown together
Full Transparency
All fees shown upfront before payment

Technical Stack

iOS App
  • Swift 5.9
  • SwiftUI
  • Device Wallet
  • Form Validation
Backend
  • Node.js
  • Express
  • Zod Validation
  • Webhooks
Payments
  • Payment Processor
  • Hosted Card Form
  • Payment Intent
  • Webhook Events
Transfers
  • Transfer Rail
  • Quote Contract
  • Recipient Contract
  • Transfer Contract

Implementation Challenges

Country-Specific Bank Fields

Problem:

Each country requires different bank details (CLABE for Mexico, NIT for Colombia, etc.)

Solution:

Dynamic form generation based on country selection with Zod validation schemas per country

Nested vs Flat Data Transform

Problem:

The mobile client sends flat keys (address.city), while the transfer rail expects nested objects ({address: {city}})

Solution:

transformBankDetails() function converts formats and auto-injects legalType

Payment → Transfer Flow

Problem:

The workflow must wait for confirmed payment before creating a transfer instruction

Solution:

Webhook-driven architecture: payment_intent.succeeded triggers transfer creation

Quote Refresh

Problem:

Exchange rates change frequently, so users need a refreshed quote while entering an amount

Solution:

0.5s debounced rate fetching with loading states and cached quotes

Building a fintech product?

We design payment integrations, transfer workflows, and financial applications around confirmation, transparency, and reliable state changes.