🏪 Merchant Initiated Transactions
What is a Merchant Initiated Transaction?
A Merchant Initiated Transaction (MIT) uses payment credentials previously authorized by a customer to process payments without their active participation at the time of charge. This enables business models where charges occur based on usage, events, or merchant-determined timing.
📘 Key Difference from Card on File
Unlike Card on File transactions where the customer actively participates in each purchase, MIT transactions are initiated by the merchant without the customer being present or actively involved.
Key Characteristics
- No Customer Participation: Charges are processed without the customer actively initiating payment
- Prior Authorization Required: Customer must have previously authorized their card for MIT use
- Merchant-Driven Timing: You control when charges occur based on your business logic
- Unscheduled Charges: Ideal for variable amounts and timing (usage-based, threshold triggers, etc.)
MIT Compliance & Requirements
Card networks require specific handling for Merchant Initiated Transactions to protect consumers and ensure proper transaction categorization.
Compliance Requirements
Critical Compliance Steps
- Obtain explicit consent for storing credentials and processing future MIT charges
- Clearly disclose how, when, and why their card will be charged
- Provide terms that explain MIT usage (e.g., usage-based billing terms)
- Maintain records of customer consent for audit purposes
- Notify customers before each transaction commences
Coinflow handles the technical compliance, but you must obtain and document customer consent.
Use Cases for MIT
Charge customers based on consumption (API calls, storage, bandwidth, etc.)
Automatically add funds when balance falls below threshold
Bill for services after completion (ride-sharing, delivery tips, etc.)
Charge when items ship or services are delivered
How It Works
Customer Authorizes Card
Customer completes an initial purchase or authorizes their card via a zero auth transaction and consents to future MIT charges on your platform.
Coinflow Stores MIT Credentials
The card details and MIT authorization reference are securely stored in Coinflow’s PCI-compliant vault.
Card on File vs. Subscriptions vs. Merchant Initiated Transactions
Understanding the differences between payment types helps ensure compliance and proper implementation:
💡 Need Fixed Recurring Payments?
If you need automated payments on a fixed schedule (monthly, weekly, etc.), check out our Subscriptions Overview documentation.
Implementation Guide
Implementing Merchant Initiated Transactions is a two-step process:
- Initial Authorization - Store the customer’s card with MIT authorization
- Subsequent Charges - Process MIT payments as needed
Step 1: Authorize Card for MIT Use
One approach is to perform a zero authorization on the card to validate and store the card for MIT use. This authorizes the card for $0.00, establishing the credentials without charging the customer.
Request Body:
Or use a previously tokenized card:
Save the Payment ID
After a successful Zero Authorization, save the paymentId from the response. You’ll use this as the originalPaymentId for subsequent MIT charges.
Alternative: Initial Purchase
You can also use a regular card payment as the original authorization. Any successful card transaction with CVV verification can be used as the originalPaymentId for MIT. This is useful when the customer is making an initial purchase and you want to enable future MIT charges.
Using a Saved Token:
Using a New Card:
Response:
Save the Payment ID
Just like with Zero Authorization, save the paymentId from the checkout response. You’ll use this as the originalPaymentId for subsequent MIT charges. The initial purchase amount also establishes the baseline for maximum MIT charge calculations (based on your maxMultiple setting).
Complete Example
Option 1: Zero Authorization Flow
Here’s a complete example showing Zero Authorization followed by an MIT charge:
Option 2: Initial Purchase Flow
Here’s a complete example showing an initial card purchase followed by an MIT charge:
Maximum MIT Amount
The maximum amount allowed for a MIT is determined by the maximum amount a customer has spent in a customer initiated transaction (CIT) where the customer provided the CVV.
However, default maximum amounts apply to customers without any transaction history but who have authorized their card via zero auth. Your Coinflow integration representative will configure this default for you.
Merchant Configuration Settings
Merchant Initiated Transactions include configurable settings that control how and when stored credentials can be used. These settings help manage security, fraud prevention, and compliance.
Configuration Required
MIT functionality must be enabled on your merchant account before you can process MIT payments. Contact your Coinflow integration representative to configure these settings.
Available Configuration Options
Your Coinflow integration team will configure the following MIT settings for your merchant account:
Velocity Controls:
maxCount- Maximum number of MIT payments allowed within a time periodperiod- Time window in seconds for the maxCount limit (e.g., 86400 for 24 hours)
For example, if I have a period of 90 seconds and a max count of 5, then I can only process 5 transactions for a given customer using a given originalPaymentId in 90 seconds. If I attempt more, then I will receive a 429 error.
Payment Limits:
maxMultiple- Maximum multiplier for MIT transaction amounts compared to the maximum historical payment amountmaxZeroAuthAmount- Default maximum amount for MIT when customer has no transaction historymaxAmountLookback- Time window to look back for maximum payment amount calculation
Examples
- If a customer has spent in CVV verified payments, 6.00, 40.00 and all of these payments fall in the maxAmountLookback time frame, then $40.00 will be used as the base maximum amount. This value will then be multiplied by the maxMultiple to determine the maximum amount that can be charged in a MIT.
- Let’s say a customer just signed up for your usage-billing based platform, and when they add a card you perform a zero authorization on that card where the user provides the CVV. Now you try to perform a MIT charging this user. The maximum amount they can be charged is the maxZeroAuthAmount multiplied by the maxMultiple.
Time-Based Restrictions:
expiration- Time window in seconds during which an originalPaymentId can be used for MIT
For example, if the expiration is 2 weeks, and the original payment (from originalPaymentId) is older than 2 weeks, then I can no longer use this as the originalPaymentId for a MIT. I must retrieve a newer CIT. Example flows could be a usage based billing platform where now I prompt the user to complete a payment manually where they enter in their CVV and then use that paymentId for subsequent MITs, or simply ask the customer to reauthorize their card with a zero authorization.
Example Configuration
This configuration means:
- ✅ MIT is enabled
- ✅ Maximum 5 MIT payments per 24 hours per original authorization
- ✅ MIT payments can be up to 3× the customer’s maximum historical payment
- ✅ Original authorizations can be used for 30 days
- ✅ Zero Authorization allows up to $20.00 × multiplier for MIT charges
Error Handling
Understanding and properly handling MIT errors is critical for a smooth implementation.
Common Error Codes
403 Forbidden - MIT Not Enabled
Error Message:
Cause: MIT functionality is not enabled on your merchant account.
Resolution:
- Contact your Coinflow integration representative to enable MIT
- Once enabled, configure the appropriate settings for your use case
400 Bad Request - Mobile Wallet Payments
Error Message:
Cause: You’re attempting to use a mobile wallet payment (Apple Pay, Google Pay) as the original authorization for MIT.
Resolution:
- Mobile wallet payments cannot be used as MIT references
- Use a regular card payment as the initial authorization
- For mobile wallet payments, customers must authenticate each time (to be rectified soon)
400 Bad Request - Invalid Original Payment
Error Message:
Cause: You’re attempting to use an MIT or Card on File payment as the original authorization.
Resolution:
- Only use the initial CVV-verified payment as the
originalPaymentId - Do not chain MIT transactions
- Always reference back to the original CVV-verified payment
429 Too Many Requests - Maximum Payments Reached
Error Message:
Cause: The customer has exceeded the maximum number of MIT payments allowed within the configured time period.
What This Means:
- Too many MIT charges have been processed against this authorization
- This is a security measure to prevent abuse
- Based on your merchant’s
maxCountandperiodsettings
Resolution Options:
-
Option A: Wait for Period Reset
- Wait for the current period to expire
- The counter resets after the configured period
-
Option B: New Authorization
- Have the customer re-authorize their card
- Process a new Zero Authorization or card payment with CVV
- Use this new payment ID for future MIT charges
410 Gone - Original Payment Expired
Error Message:
Cause: Too much time has passed since the original authorization. The reference has expired based on your merchant’s expiration setting.
Resolution Options:
- Prompt Customer Re-Authorization
- Have the customer perform a new Zero Authorization
- Or complete a new card payment with CVV
- Use this new payment ID for future MIT charges
Proactive Approach
Track when original authorizations are approaching expiration and prompt customers to re-authorize before it expires.
410 Gone - Payment Over Maximum Total
Error Message:
Cause: The MIT payment amount exceeds the calculated maximum based on the customer’s payment history.
Example:
- Maximum historical payment: $10.00
- Multiplier setting: 3
- Maximum allowed MIT: $30.00
- Your request: $35.00 ❌
What This Means:
- MIT charges are limited to prevent unexpectedly large charges
- The limit is based on the customer’s maximum payment in the lookback period
- If using Zero Authorization only, the limit is based on
maxZeroAuthAmount × maxMultiple
Resolution
- Request Customer Authorization
- For amounts significantly higher than historical payments
- Have the customer complete a transaction with active participation where they enter their CVV
Error Handling Quick Reference
Best Practice
For MIT implementations, maintain a system to track authorization expiration dates and proactively refresh them before they expire. This ensures uninterrupted billing for usage-based services.
Best Practices
Clearly Communicate MIT Terms
Provide clear, accessible terms explaining when and how the customer’s card will be charged. Include specifics about trigger conditions (usage thresholds, billing cycles, etc.) and estimated charge amounts.
Send Notifications Before Charges
For better customer experience and reduced disputes, send email or push notifications before processing MIT charges, especially for larger amounts or first-time charges.
Implement Idempotency
Use idempotent request patterns to prevent duplicate charges in case of network issues or retries. Track MIT attempts with unique reference IDs.
Monitor and Alert
Set up monitoring for MIT failures and velocity limit hits. Proactively reach out to customers whose authorizations are expiring or hitting limits.
Provide Clear Receipts
After each MIT charge, send a detailed receipt explaining what was charged and why. Include a way for customers to review their usage or billing history.
Frequently Asked Questions
What's the difference between a MIT and a Card on File Transaction?
Card on File transactions require the customer to actively participate and authorize each payment at the point of sale. MITs are initiated by the merchant without customer involvement, based on prior authorization.
Can I use MIT for subscription billing?
MIT is designed for unscheduled, variable charges. For fixed recurring payments, use our Subscription feature which is optimized for regular billing cycles with predictable amounts.
What happens if the customer's card expires?
If the stored card expires, MIT charges will fail. You’ll need to prompt the customer to update their payment method and complete a new authorization.
Are there additional fees for MIT?
No, MIT transactions are processed with the same fee structure as regular card transactions. There are no additional charges for using MIT functionality.
How do I increase the MIT limit for a customer?
The MIT limit is based on the customer’s maximum historical payment multiplied by the configured multiplier. To increase the limit, have the customer complete a regular card payment (with CVV) at a higher amount.

