Migrating from Mint Payments
A practical guide for travel businesses migrating from Mint Payments (mPay) to Felloh. This covers concept mapping, code migration patterns, and a step-by-step migration plan so you can move with confidence.
Mint Payments and Felloh share some common concepts — both have bookings, payment links, and payment schedules. This makes migration more straightforward than moving from a general-purpose gateway. The key differences are in how these features work, the depth of travel-specific tooling, and the addition of AI agent integration via MCP.
Concept mapping
Understand how Mint Payments concepts translate to Felloh before writing any code.
Direct equivalents
These concepts map closely between the two platforms.
| Mint Payments | Felloh | Notes |
|---|---|---|
| Booking | Booking | Both platforms centre around bookings. Field names and structure differ — see the field mapping below. |
| Booking Component | Booking Component | Both support supplier components within a booking. |
| Payment Link | Payment Link | Both generate hosted payment page URLs. API structure differs. |
| Payment Schedule | Scheduled Payment | Both support future-dated card charges. Felloh scheduled payments use tokenised cards from prior transactions. |
| Customer | Customer | Mint embeds customer details in bookings. Felloh has a dedicated customer resource. |
| Refund | Refund | Mint processes refunds in one step. Felloh uses a two-stage process — refunds require separate authorisation. |
| Webhook | Webhook | Both support asynchronous event notifications. Event types and payload formats differ. |
Different concepts
| Mint Payments | Felloh | How it differs |
|---|---|---|
| Transaction Token + Purchase | Payment Link / Ecommerce / Scheduled Payment | Mint uses a two-step flow: create a transaction token, then submit a purchase. Felloh splits payment collection into three tools based on the scenario — see choosing a payment method. |
| Transaction | Transaction | Both represent completed payments. Felloh transactions are always linked to a booking. |
Card Token (tokenize) | Tokenised Card | In Mint, you explicitly tokenise a card via the API. In Felloh, cards are automatically tokenised when a customer pays — no separate tokenisation step. |
| Hosted Payment Page (HPP) | Ecommerce + Felloh SDK | Mint's HPP is a redirect-based hosted checkout. Felloh ecommerce sessions provide embedded payment forms via the SDK. |
| Embedded One Time Token | Ecommerce + Felloh SDK | Mint's OTT integration for branded checkout maps to Felloh's ecommerce sessions. |
| Company Token + Business Unit ID | Organisation | Mint uses two identifiers (company token and business unit ID). Felloh uses a single organisation ID. |
| Open Banking (consent-based) | Open banking (payment-level) | Mint's open banking is consent-based account access. Felloh offers open banking as a payment method on every payment link and ecommerce session — customers can pay by bank transfer alongside card payments. |
| Funds Transfers | Disbursements + Beneficiaries | Mint's funds transfers move money between accounts. Felloh disbursements pay travel suppliers from managed trust accounts. |
| Customer View Link | Payment Link | Mint generates a customer-facing booking view. Felloh payment links serve a similar purpose — the customer sees booking details and can complete payment. |
Felloh concepts with no Mint equivalent
These are features you gain by moving to Felloh.
| Felloh feature | What it does |
|---|---|
| MCP Server | Connect AI agents and editors to Felloh for conversational payment management. No equivalent in Mint. |
| Credit Notes | Track credits and adjustments against bookings. |
| Fraud Shield | Configurable fraud prevention with 3DS, card, customer, device, location, and velocity rules — included in every account. Configure via the Dashboard. |
| Trust accounts | Felloh manages ATOL/ABTA-compliant trust accounts natively. |
| Automatic reconciliation | Every payment — cards, open banking, and bank transfers — is automatically matched to its booking using 3-point verification. Eliminates manual spreadsheet reconciliation. |
| Automatic surcharging | Detects corporate and international cards at the point of payment and applies compliant surcharges in real time. Protects margins without manual fee calculations. |
Booking field mapping
Both platforms use bookings as a core concept. Here's how the key fields map.
| Mint Payments field | Felloh field | Notes |
|---|---|---|
bookingReference | booking_reference | Your unique reference for the booking |
grossAmount | gross_amount | Total booking value in minor units |
currency | currency | Mint uses GBP; Felloh uses GBX — see currency mapping |
customerEmail | email | Customer email address |
customerName | customer_name | Customer full name |
departureDate | departure_date | Trip start date |
returnDate | return_date | Trip end date |
companyToken | organisation | Merchant identifier |
businessUnitId | — | Not needed — Felloh uses a single organisation ID |
status | — | Felloh bookings don't have an explicit status field — use transaction data to determine payment state |
Choosing a payment method
In Mint, you create a transaction token then submit a purchase, redirect to the HPP, or use the embedded OTT. In Felloh, you choose based on the scenario:
| Scenario | Mint Payments | Felloh |
|---|---|---|
| Send customer a link to pay | Create Payment Link | create-payment-link |
| Redirect to hosted checkout | HPP redirect | create-payment-link (hosted by Felloh) |
| Embed payment in your app | Embedded OTT | create-ecommerce + Felloh SDK |
| Charge a saved card later | Payment Schedule with tokenised card | create-scheduled-payment |
| Charge a saved card now | Purchase with card token | create-scheduled-payment with today's date |
Code migration
Authentication
Mint uses a bearer API key with a company token in the request body. Felloh uses a public/private key pair to generate a bearer token.
Authentication
import axios from 'axios';
// Mint — API key as bearer token, company token in body
const mintClient = axios.create({
baseURL: 'https://api.mintpayments.com/v5',
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer your-mint-api-key',
},
});
const companyToken = 'your-company-token';
const businessUnitId = 'your-business-unit-id';
Felloh tokens are valid for a limited time. Cache and refresh them as needed. See the Authentication guide for full details.
Creating a customer
Mint doesn't have a standalone customer creation API — customer details are embedded in bookings. Felloh has a dedicated customer resource.
Create a customer
// Mint — customer details embedded in the booking
const booking = await mintClient.post('/bookings', {
companyToken,
businessUnitId,
bookingReference: 'TRIP-2026-001',
customerName: 'Sarah Jones',
customerEmail: 'sarah@example.com',
// ... booking details ...
});
Creating a booking
Both platforms have booking creation — the fields map closely.
Create a booking
const booking = await mintClient.post('/bookings', {
companyToken,
businessUnitId,
bookingReference: 'TRIP-2026-001',
grossAmount: 150000,
currency: 'GBP',
customerEmail: 'sarah@example.com',
customerName: 'Sarah Jones',
departureDate: '2026-08-15',
returnDate: '2026-08-22',
});
The main differences are: Felloh uses GBX instead of GBP for the currency code, field names use snake_case instead of camelCase, and Felloh uses a single organisation field instead of companyToken + businessUnitId.
Collecting a payment
Collect a payment
const paymentLink = await mintClient.post('/payment-links', {
companyToken,
businessUnitId,
bookingReference: 'TRIP-2026-001',
amount: 50000,
currency: 'GBP',
customerEmail: 'sarah@example.com',
description: 'Deposit for August trip',
});
// paymentLink contains the URL to send to the customer
Processing a refund
Process a refund
const refund = await mintClient.post('/payments/refund', {
companyToken,
transactionId: 'original-transaction-id',
amount: 20000, // £200.00 partial refund
});
// Refund is processed in one step
Mint processes refunds in a single step. Felloh adds an explicit authorisation step — this prevents accidental refunds and supports compliance workflows where a manager must approve refunds. If you want to auto-authorise, call both endpoints sequentially.
Scheduling a future payment
Both platforms support payment schedules. Felloh's scheduled payments use tokenised cards from prior transactions rather than requiring explicit card tokenisation.
Schedule a future payment
// Step 1: Tokenise the card
const cardToken = await mintClient.post('/payments/tokenize', {
companyToken,
// ... card details or reference ...
});
// Step 2: Create a payment schedule
const schedule = await mintClient.post('/payment-schedules', {
companyToken,
businessUnitId,
bookingReference: 'TRIP-2026-001',
amount: 100000,
currency: 'GBP',
cardToken: cardToken.data.token,
scheduledDate: '2026-07-16',
});
Currency mapping
Mint uses standard ISO 4217 currency codes. Felloh uses minor-unit currency codes. Both use minor units for amounts, so the numeric values are the same — only the code changes.
| Mint Payments | Felloh | Unit |
|---|---|---|
GBP | GBX | Pence |
USD | USX | Cents |
EUR | EUX | Euro cents |
Currency conversion helper
const MINT_TO_FELLOH_CURRENCY = {
GBP: 'GBX',
USD: 'USX',
EUR: 'EUX',
};
function convertCurrency(mintCurrency) {
const fellohCurrency = MINT_TO_FELLOH_CURRENCY[mintCurrency.toUpperCase()];
if (!fellohCurrency) {
throw new Error(`Unsupported currency: ${mintCurrency}`);
}
return fellohCurrency;
}
// Amount values stay the same — both use minor units
// Mint: { amount: 150000, currency: 'GBP' }
// Felloh: { amount: 150000, currency: 'GBX' }
Field naming conventions
Mint uses camelCase for field names. Felloh uses snake_case. Here's a quick reference for the most common fields.
| Mint Payments | Felloh |
|---|---|
bookingReference | booking_reference |
grossAmount | gross |
customerEmail | customer_email |
customerName | customer_name |
departureDate | departure_date |
returnDate | return_date |
companyToken | organisation |
businessUnitId | — (not needed) |
transactionId | id |
cardToken | token_id |
scheduledDate | execution_date |
What you can remove
Migrating from Mint to Felloh simplifies your integration in several areas.
| Mint pattern | Felloh replacement |
|---|---|
| Company token + business unit ID management | Single organisation ID |
Explicit card tokenisation (/payments/tokenize) | Felloh automatic card tokenisation on first payment |
| Transaction token + purchase two-step flow | Single payment link or ecommerce session creation |
| Settlement reconciliation (manual matching) | Felloh automatic reconciliation — every payment is matched to its booking via 3-point verification |
| Manual surcharge calculations | Felloh automatic surcharging — card type detected and surcharge applied in real time |
| Trust account management | Felloh managed trust accounts |
| Supplier payment processing | Felloh disbursements |
Migration plan
A step-by-step approach to moving from Mint Payments to Felloh.
Phase 1 — Set up and validate
- Create a Felloh account and generate sandbox API keys from the Sandbox Registration Form
- Set up authentication — implement token generation and caching
- Create a test booking and payment link to verify your integration works
- Connect the MCP server (optional) — useful for exploring the API interactively during migration
Phase 2 — Migrate data
- Audit your current Mint integration — identify all payment flows (payment links, HPP, direct API, payment schedules)
- Create customers in Felloh — Mint embeds customer data in bookings, so extract it from there or your booking system
- Create bookings for any active reservations — the booking model is similar, so this is largely a field mapping exercise
- Map your existing booking references to Felloh bookings using the
booking_referencefield
Phase 3 — Migrate payment flows
- Replace Mint payment links with Felloh payment links
- Replace HPP / OTT integration with Felloh ecommerce sessions and the Felloh SDK
- Replace payment schedules with Felloh scheduled payments
- Replace refund calls with Felloh's two-stage refund process
- Replace webhook handlers with Felloh webhook handlers
- Remove explicit card tokenisation — Felloh tokenises automatically
- Replace
companyToken+businessUnitIdwith a singleorganisationID
Phase 4 — Test in sandbox
- Run through every payment flow in the Felloh sandbox
- Test edge cases: declined payments, partial refunds, expired tokens
- Verify webhook delivery and handling
- Confirm customer-facing payment pages work correctly
Phase 5 — Go live
- Switch to production API keys
- Run Mint and Felloh in parallel for a transition period — new bookings go through Felloh, existing Mint payment schedules complete naturally
- Monitor the Felloh Dashboard for transaction status
- Decommission Mint integration
You don't need to migrate historical transaction data. Mint retains your historical records. Felloh starts fresh with new bookings.
Common migration questions
Can I run Mint and Felloh in parallel? Yes. Route new bookings to Felloh and let existing Mint payment schedules complete. There's no conflict between the two.
The booking model is similar — is migration easier?
Yes. Both platforms centre around bookings, so the conceptual shift is smaller than migrating from a general-purpose gateway. The main work is mapping field names (camelCase → snake_case) and switching currency codes (GBP → GBX).
Do I need to re-collect card details? Yes, for new payments. Mint card tokens are not transferable to Felloh. Customers will enter their card details on their first Felloh payment, and the card is automatically tokenised for future use.
What about PCI compliance? Felloh handles PCI compliance the same way — card details are collected via Felloh's hosted payment pages or SDK, never touching your servers.
Mint has open banking. Does Felloh? Yes. Felloh offers open banking as a payment method on every payment link and ecommerce session. Customers can choose to pay by card or bank transfer. The approach is simpler than Mint's consent-based model — it's just another payment option on the checkout page.
What about 3DS (Strong Customer Authentication)? Felloh handles 3DS automatically on payment links and ecommerce sessions. You can configure 3DS rules in Fraud Shield. No manual 3DS redirect handling required.
Can I use the Felloh MCP server during migration? Absolutely. Connect the MCP server to your AI editor and use it to explore the API, create test bookings, and debug your integration interactively. This is a feature Mint doesn't offer.
