2026

Tupay

Payment gateway

tupay.lepetittahitien.dev
In progressFintechPaymentsAPI

Accept payments online without paying on the months you don't sell.

XPF

Pacific franc end to end

3

channels: link, API, contactless

0

subscription, 0 setup fee

The problem

A craftsperson making a handful of sales a month currently pays almost as much as a large retailer to accept payments online: a setup fee to open, a monthly subscription owed even with zero transactions, a terminal to rent. Large international platforms simply don't cover the Pacific franc, and the few solutions available locally price like a captive market.

The approach

A gateway where merchants only pay when they get paid. Three ways to collect from a single interface: a payment link created in seconds and shared over messaging, an API to plug into an existing online store, and contactless collection straight from a phone. Amounts stay in XPF from end to end, with no conversion surfacing to the merchant or their customer.

Key decisions

01

No fixed cost, on principle

A monthly subscription mechanically excludes low volumes, which are the bulk of the local commercial fabric. Removing the fixed cost isn't a discount, it's what makes the product usable by its actual audience.

02

An abstraction layer over the banking provider

The payment partner is the riskiest dependency of any fintech. All business logic goes through a single interface, which makes swapping providers possible without rewriting the product.

03

Idempotency treated as a requirement, not an option

In a payment system, a double charge isn't just another bug, it's a permanent loss of trust. Every collection request is safely replayable by construction.

04

Immutable audit trail from day one

Traceability obligations for a payment player can't be retrofitted. History is append-only, enforced at the database level, including for the administrator.

Stack

Next.js 16SupabasePostgreSQL RLSStripeExpoZodVitest

What I learned

The hard part of a fintech isn't the code. The product was working well before the regulatory doors opened, and that asymmetry is what actually sets the pace of the project. I also learned to separate two questions that are easily conflated when looking for a banking partner: the currency you process, and the territory you operate from. A rejection on one says nothing about the other.