Merchant Interchange Plus Pricing
Note
The Merchant IC+ pricing model can only be applied to merchants based in the United States, processing USD.
Interchange Plus (IC+) is a pricing model for credit card processing, where merchants are billed for processing fees (interchange fees), rather than interchange fees being applied in real time. In addition to interchange fees, processors charge a markup, referred to by the “Plus.” Interchange and markup fees are calculated and billed to merchants at the end of each billing cycle.
IC+ provides the most transparent pricing for your merchants by breaking down the card network processing costs vs. the processor costs of each transaction. A number of data points factor into a given transaction's processing cost, which is what gets tracked and calculated. Rather than approximating processing costs and charging a standard fee across all transactions (as with our out-of-the-box blended rate pricing), Merchant IC+ pricing allows us to track interchange costs per transaction, in addition to our processing fees and your platform fees, and then to compile a billing statement for merchants at the end of each billing cycle.
Use this guide if your signed contract with WePay indicates that your platform has access to the Merchant IC+ feature.
An IC+ pricing model breaks down fees into the following three categories:- Interchange fees from issuing banks
- Fees & assessments charged from the card network*
- Processor Markup where Markup = X% + Y¢ (a percentage fee and a per transaction fee)
* Some monthly fees may be estimated by us, as those are reported at platform level.
Conversely, a Merchant IC+ pricing model breaks down fees into the following three categories:- Interchange fees from issuing banks
- Fees & assessments charged from the network*
- Platform Markup where Markup = X% + Y¢(a percentage fee and a per transaction fee)
pricing
API to set the fixed and variable amounts that your platform will charge per transaction. At the end of the billing cycle, your pricing will be added to the merchant's bill in addition to the interchange fees. For instance, your platform may want to charge a higher percentage rate for credit card transactions than for ACH/Echeck transactions, and may want to apply a $0.50 flat rate across both credit card and ACH/Echeck transactions. Setting a fee pricing like this will be outlined in this guide.Set Up
Before getting started, be sure to subscribe to the following Notifications:
billing_statements.created
billing_statements.charge_succeeded
**billing_statements.charge_failed
**adjustments.created
recoveries.completed
accounts.created
*recoveries.created
*recoveries.failed
*
* Subscribing to these Notification event topics is recommended, but not mandatory for a functional Merchant IC+ integration.
** These Notification Event Topics are currently Limited Availability. Reach out to us if you need access.
The billing statement Notification will give you the Account and the amount details of fees owed, but it does not reflect the actual money movement related to Merchant IC+ to and from an Account. Adjustment and Recovery Notifications will reflect money movement to and from an Account in association with Merchant IC+. To help differentiate a Merchant IC+ related Recovery or Adjustment Notification from other types of Recoveries and Adjustments, you can look at thereason
JSON block in Notifications. To find out more about what getting notified looks like, see the section below on Consume Billing Statements.
Define Merchant IC+ Pricing
This section outlines how to set the markup fees on each transaction.
Your markup fees should be inclusive of our processing fees, which will be debited from your platform Account. For any markup that you define, you'll receive that amount minus our fees. If you choose to have a lower markup than the fees we charge, your Account will be debited to cover the difference.
Use thepricing
parameter on the POST /accounts
request with the merchant's currency. For merchants using an alternate method of payments such as eCheck, you can define the pricing using the argument payment_bank
. Find the supported pricing options that you'd like to implement and specifically examine Merchant IC+ pricing APIs here.Supported pricing feature | API |
---|---|
US merchants | pricing.currencies.USD |
Merchant IC+ fees | pricing.currencies.USD.credit_card.interchange_plus |
ACH fees | pricing.currencies.USD.payment_bank |
Recurring fees | pricing.currencies.USD.recurring_fee |
Other fees | pricing.currencies.USD.other_fees |
Supported credit card fees | API |
---|---|
Flat transaction fee | ...transaction.fixed_fee_markup_amount |
Percentage transaction fee | ...transaction.variable_fee_markup_bps |
Flat authorization fee | ...auth.fixed_fee_markup_amount |
Refund fee | ...refund_fee_for_transaction_markup |
Dispute fee | ...chargeback_amount |
Supported ACH fees | API |
---|---|
Fixed transaction fee | ...standard.fixed_fee_amount |
Percentage transaction fee | ...standard.variable_fee_bps |
Maximum transaction fee | ...standard.max_fee_amount |
Minimum transaction fee | ...standard.min_fee_amount |
Refund fee | ...standard.refund_fee_for_standard |
Other supported fees | API |
---|---|
Billing failure fee | ...other_fees.debit_failure_fee |
The listed features in a json request body would look something like this:
{
"pricing": {
"currencies": {
"USD": {
"credit_card": {
"type": "interchange_plus",
"interchange_plus": {
"transaction": {
"fixed_fee_markup_amount": 20,
"variable_fee_markup_bps": 295
},
"auth": {
"fixed_fee_markup_amount": 20
},
"refund_fee_for_transaction_markup": true,
"chargeback_amount": 1500
}
},
"payment_bank": {
"type": "standard",
"standard": {
"fixed_fee_amount": 10,
"variable_fee_bps": 195,
"max_fee_amount": 1000,
"min_fee_amount": 200,
"refund_fee_for_standard": true
}
},
"recurring_fee": {
"period": "monthly",
"amount": 1500
}
}
}
}
}
Note
200
.Important:
POST /accounts/{id}
request with the correct pricing parameters. Pricing is applied at the end of a billing cycle using the current values for a given merchant, so errors that are corrected within the same billing cycle will not impact merchants.Process Diagram
Disclose Merchant IC+ Pricing
Pricing disclosures have two components that merchants must be informed of and agree to: markup rate and passthrough rates.You must currently provide pricing disclosures to all merchants, even those with access to the WePay Merchant Center. That said, the merchant's current pricing can be viewed in the WePay Merchant Center.
Onboarding Disclosure Requirements
Present merchants with a fee disclosure document as part of onboarding. This step is a legal requirement which must be acknowledged and accepted by merchants on Merchant IC+ pricing.Pricing Type | Custom Merchant Center | WePay Merchant Center |
---|---|---|
Markup Rates | You must build the disclosure and collect agreements from merchants with regard to your own markup rates. | You must build the disclosure and collect agreements from merchants with regard to your own markup rates. |
Passthrough Rates | You must build the disclosure and collect agreements from merchants with regard to passthrough rates. WePay will inform you of the current rates. | A disclosure will be presented to merchants before they are granted access to the WePay Merchant Center. |
- Ensure all your markup rates and fees are defined in the “Platform Fees” section of the “Merchant IC+ Fee Disclosure Template."
- If applicable, include a section on "Interchange Pass-Through" with the rates provided to you by us. The WePay Merchant Center covers this requirement for those merchants who have access to it.
- Get merchant acceptance to this pricing document.
- Upload this document via API prior to setting the fees for the merchant.
- The API response will provide the following:
- Document ID
- Document type (Fee Disclosure)
- Timestamp (Create time for doc upload)
Re-pricing Disclosure Requirements
Re-pricing an existing merchant, or making changes or updates to your platform fees, requires that you present merchants with a new fee disclosure document.Pricing Type | Custom Merchant Center | WePay Merchant Center |
---|---|---|
Markup Rates | You must build the disclosure and collect agreements from merchants with regard to any changes in your own markup rates. | You must build the disclosure and collect agreements from merchants with regard to any changes in your own markup rates. |
Passthrough Rates | You must build the disclosure and collect agreements from merchants with regard to any changes in passthrough rates. We will inform you of any changes. | The WePay Merchant Center will not notify merchants of any changes. You must disclose any changes which we inform you of. |
- Inform Merchant of Effective Date, a required notice period as minimum time as required by pricing policy or on Merchants' acceptance of new pricing; whichever is earlier.
- Ensure all your fees are defined in the “Platform Fees” section of the “Merchant IC+ Fee Disclosure Template.”
- Include the "Interchange Pass-Through" section with any updates provided by us.
- Display this new pricing document.
- Get merchant acceptance to this new document. Note: Acceptance must be collected before any changes to pricing.
- Update Merchant Account Object via APIs only if the merchant has accepted the changes
- Send a
POST /accounts/{id}
request with updatedPricing
parameter - Provide proof by uploading the pdf of new pricing document
- Send a
- Provide Merchant Acceptance via API to us. The API response will provide the following:
- Document ID
- Document type (Fee Disclosure)
- Timestamp (Create time for doc upload)
Onboarding and Re-Pricing Requirements:
- Provide a fee disclosure to all merchants the first time they are onboarding to the Merchant IC+ pricing model
- Fee disclosure must include all fees that your platform will charge, including non-IC fees (like ACH fees)
- Fee disclosures must accurately reflect all the platform fees listed below in “Platform Fee” and include all the interchange and assessment fees in the “Pass through Fee” section
- Provide, collect acceptance of, and upload a new fee disclosure every time any platform fee is updated
- Provide this resource to merchants so that they can track updates to interchange and assessment fees independently
- Notify merchants of updates to interchange and assessment fees (your WePay relationship executive will provide quarterly updates to you)
- Any deviations from the below template require approval from us
Note
Example Debit Failure Fee order of events with $25.00 fee:
Event | May | June |
---|---|---|
Billing statement is ready | Merchant Fees For April: $250 | Merchant Fees For May: $250 |
Merchant is billed for fees | Merchant does not have sufficient fees and billing fails | Merchant is billed fees for May + Debit Failure Fee for April ($250 + $25) |
Fallback billing | Wepay will recover $250 fee the next day from merchant's gross payout amount | |
Debit Failure Fee Applied | WePay will add Debit Failure Fees e.g. $25 for the month of May |
Recommended Implementation
Markup Fees
The merchant can scroll down on the above page to find passthrough fees
Fee Disclosure Template
document.addEventListener("DOMContentLoaded", function () {
var elems = document.querySelectorAll(".collapsible");
var instances = M.Collapsible.init(elems);
});
<body>
<ul class="collapsible">
<li class="active">
<div class="collapsible-header"><i class="material-icons">attach_money</i>Platform Fees</div>
<div class="collapsible-body #eceff1 blue-grey lighten-4">
<table class="striped z-depth-2">
<thead>
<tr>
<th colspan="3">
<h5>Credit Card Transaction Fees: Charged on every transaction as set forth below</h5>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>Transaction markup<br>(variable)</td>
<td>X.XX%</td>
<td>{{platform}} mark up fee charged for every captured transaction as % of transaction amount.</td>
</tr>
<tr>
<td>Transaction markup<br>(fixed)</td>
<td>$X.XX</td>
<td>{{platform}} mark up fee charged for every captured transaction as fixed fee per transaction count.
</td>
</tr>
<tr>
<td>Authorization Fee</td>
<td>$X.XX</td>
<td>{{platform}} mark up fee charged for every Authorization as fixed fee per auth count. This includes
all states of auth i.e. reverse, failed, success.</td>
</tr>
<tr>
<td>Refund markup<sup>1</sup><br>(fixed)</td>
<td>$X.XX</td>
<td>{{platform}} mark up fee charged for every refund transaction as fixed fee per refund count.</td>
</tr>
<thead>
<tr>
<th colspan="3">
<h5>Per Incidence Fees: Charged every time your account incurs one of the below items</h5>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>Chargeback Fee</td>
<td>$X.XX</td>
<td>Charged when a cardholder of card-issuing bank formally protests a charge.</td>
</tr>
<tr>
<td>Debit Failure Fee<sup>2</sup></td>
<td>$X.XX</td>
<td>Charged when we are unable to debit our fees from your account. We typically debit all fees for a
month 6 days after the end of the month.</td>
</tr>
</tbody>
<thead>
<tr>
<th colspan="3">
<h5>Monthly Fee</h5>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>Monthly Service Fee<sup>3</sup></td>
<td>$X.XX</td>
<td>{{platform}} fee charged every month.</td>
</tr>
</tbody>
<thead>
<tr>
<th colspan="3">
<h5>eCheck Transaction Fees<sup>4</sup></h5>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>eCheck<br>(variable fee)</td>
<td>X.XX%</td>
<td>{{platform}} fee charged for every eCheck transaction as % of transaction amount.</td>
</tr>
<tr>
<td>eCheck<br>(fixed fee)</td>
<td>$X.XX</td>
<td>{{platform}} fee charged for every eCheck transaction as fixed fee per transaction count.</td>
</tr>
<tr>
<td>eCheck Fee<br>(minimum)</td>
<td>$X.XX</td>
<td>Minimum fee for eCheck (variable fee + fixed fee) irrespective of transaction amount per eCheck
transaction.</td>
</tr>
<tr>
<td>eCheck Fee<br>(maximum)</td>
<td>$X.XX</td>
<td>Maximum fee for eCheck (variable fee + fixed fee) irrespective of transaction amount per eCheck
transaction.</td>
</tr>
<tr>
<td>Refund eCheck Fee<sup>1</sup><br>(fixed)</td>
<td>$X.XX</td>
<td>{{platform}} fee charged for every eCheck refund transaction as fixed fee per refund count.</td>
</tr>
</tbody>
</table>
</div>
</li>
</ul>
<div class="row">
<span class="col s10 offset-s1">1. Refund markup fees are charged for every credit transaction related to cards and
refund eCheck fees are charged for every eCheck credit transaction. We do not return our fees on the original
transaction, and some Payment Brands do not return interchange and fees on the original transaction. Therefore,
when you refund a payment, it might cost you more than what you received for the original transaction.</span>
</div>
<div class="row">
<span class="col s10 offset-s1">2. Debit Failure fee is charged when WePay cannot debit your merchant linked bank
account via ACH debit including but not limited to insufficient funds or incorrect account information,
others.</span>
</div>
<div class="row">
<span class="col s10 offset-s1">3. Monthly Recurring Fee will be debited for the first time in the month your
account has been set up. This fee will be debited regardless of whether you are processing transactions through
your account until you close it.</span>
</div>
<div class="row">
<span class="col s10 offset-s1">4. eCheck Fees are charged if you’re enabled for ACH method of payment for
processing.</span>
</div>
<ul class="collapsible">
<li class="active">
<div class="collapsible-header"><i class="material-icons">attach_money</i>Interchange Pass-Through</div>
<div class="collapsible-body #eceff1 blue-grey lighten-4">
<table class="striped z-depth-2">
<thead>
<tr>
<th colspan="3">
<h5>TRANSACTION PROCESSING FEES</h5>
</th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="3">
<h6><b>Payment Brand Interchange and Wholesale Discount:</b></h6><br>MasterCard, Visa and Discover
assess Interchange and an Assessment Fee & Network Fee for each Transaction. American Express assesses a
Wholesale Discount Rate and Network Fee for each transaction. These rates and fees will be passed
through at cost.
</td>
</tr>
<tr>
<td>Interchange and Wholesale Discount Rates</td>
<td></td>
<td>As set by each Payment Brand</td>
</tr>
<tr>
<td>
<div class="row">
<div>
<div class="card-panel #eceff1 blue-grey lighten-4">
<span>
<table>
<thead>
<tr>
<th colspan="3">Payment Brand Assessments</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="2">MasterCard</td>
<td>Credit transactions less than $1000 and all Debit transactions.</td>
<td>0.130%</td>
</tr>
<tr>
<td>Credit transactions greater than $1000</td>
<td>0.014%</td>
</tr>
<tr>
<td rowspan="2">Visa</td>
<td>Debit Transactions</td>
<td>0.130%</td>
</tr>
<tr>
<td>Credit Transactions</td>
<td>0.140%</td>
</tr>
<tr>
<td colspan="2">American Express OptBlue Network Fee</td>
<td>0.150%</td>
</tr>
<tr>
<td colspan="2">Discover / JCB</td>
<td>0.130%</td>
</tr>
</tbody>
</table>
</span>
</div>
</div>
</div>
</td>
<td></td>
<td>
<div class="row">
<div>
<div class="card-panel #eceff1 blue-grey lighten-4">
<span>
<table>
<thead>
<tr>
<th>Payment Brand Network Fees</th>
<th>Credit</th>
<th>Debit</th>
</tr>
</thead>
<tbody>
<tr>
<td>MasterCard Network Access & Fees Brand Usage Fee (NABU) (Charged per Authorization &
per Refund)</td>
<td>$0.0195</td>
<td>$0.0195</td>
</tr>
<tr>
<td>Visa Domestic Sales Auth (APF) (Charged per Authorization per Refund)</td>
<td>$0.0195</td>
<td>$0.0155</td>
</tr>
<tr>
<td>Visa Intl Sales Auth (APF) (Charged per Authorization & per Refund)</td>
<td>$0.0395</td>
<td>$0.0355</td>
</tr>
<tr>
<td>Discover / JCB Data Usage</td>
<td>$0.0195</td>
<td>$0.0195</td>
</tr>
</tbody>
</table>
</span>
</div>
</div>
</div>
</td>
</tr>
<tr>
<td colspan="3">
<div class="row">
<div>
<div class="card-panel #eceff1 blue-grey lighten-5">
<span>
<table>
<thead>
<tr>
<th colspan="4">Payment Brand Fees</th>
</tr>
</thead>
<tbody>
<tr>
<td>MC File Transmission Fee Per Transaction*</td>
<td>$0.0014</td>
<td>VI Financial Transaction Fee</td>
<td>$0.0018</td>
</tr>
<tr>
<td>MC Reporting & Infrastructure</td>
<td>$0.0003</td>
<td>VI Reporting & Data Transfer</td>
<td>$0.0002</td>
</tr>
</tbody>
</table>
</span>
</div>
</div>
</div>
</td>
</tr>
<tr>
<td colspan="3">*MasterCard assesses a file transmission fee based on the number of bytes of data
contained in a transmitted file. Because the file size may vary from transaction to transaction, the
parties acknowledge that it is not possible to accurately translate the byte-based fee into a
consistently accurate transaction-based fee. In light of the foregoing, the parties have agreed that the
Merchant shall pay a fee in the amount stated above for each transaction submitted under this Agreement.
Such fee shall be deemed to be the file transmission fee imposed by MasterCard on each transaction for
all purposes of this Agreement, and we may change the amount of such fee in accordance with the terms of
this Agreement in the event MasterCard changes the amount or calculation of its file transmission fee.
</td>
</tr>
</tbody>
<thead>
<tr>
<th colspan="3">
<h5>ONE TIME AND PERIODIC FEES</h5>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="row">
<div>
<div class="card-panel #eceff1 blue-grey lighten-4">
<span>
<table>
<thead>
<tr>
<th colspan="2">Monthly Fees</th>
</tr>
</thead>
<tbody>
<tr>
<td>Visa Fixed Acquirer Network Fee<sup>1</sup></td>
<td>Varies</td>
</tr>
</tbody>
</table>
</span>
</div>
</div>
</div>
</td>
<td></td>
<td>
<div class="row">
<div>
<div class="card-panel #eceff1 blue-grey lighten-4">
<span>
<table>
<thead>
<tr>
<th colspan="2">Annual Fees</th>
</tr>
</thead>
<tbody>
<td>MC Merchant Location Fee<sup>2</sup></td>
<td>$1.25</td>
</tbody>
</table>
</span>
</div>
</div>
</div>
</td>
</tr>
<tr>
<td colspan="3">
1. Visa Fixed Acquirer Network Fee is a monthly fee assessed by Visa based on Merchant Category Code
(MCC), dollar volume, number of merchant locations, number of Tax IDs, and whether the physical Visa
card is present or not present at the time of the transaction. This fee can vary monthly.<br><br>
2. MasterCard Merchant Location Fee of $1.25 will be applicable for each month with $200.00 or more in
MasterCard volume. This fee will be assessed quarterly based on the previous 3 months activity.
</td>
</tr>
</tbody>
</table>
<table class="z-depth-2">
<thead>
<tr>
<th colspan="3">
<h5>PAYMENT BRAND FEES — PER INCIDENCE</h5>
</th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="3">
<h6>These fees are billed by MasterCard, Visa, American Express, and Discover and passed through your
account</h6>
</td>
</tr>
<tr>
<td>MC Acquiring License Fee</td>
<td>0.004%</td>
<td>Charged on MasterCard Gross Sales volume.</td>
</tr>
<tr>
<td>MC Digital Enablement / Card Not Present Fee</td>
<td>0.010%</td>
<td>Charged on MasterCard Card Not Present Gross Sales volume.</td>
</tr>
<tr>
<td>AX OptBlue Card Not Present Fee</td>
<td>0.30%</td>
<td>Charged on American Express Card Not Present Gross Sales volume.</td>
</tr>
<tr>
<td>Discover / JCB Network Authorization Fee</td>
<td>$0.0025</td>
<td>Charged by Discover on all authorizations for card transactions that are settled through the Discover
Network.</td>
</tr>
<tr>
<td>MC Auth Access Fee AVS Card Present</td>
<td>$0.01</td>
<td rowspan="2">Charged by MasterCard when a merchant uses the Address Verification Service to validate a
cardholder address.</td>
</tr>
<tr>
<td>MC Auth Access Fee AVS Card Not Present</td>
<td>$0.01</td>
</tr>
<tr>
<td>MC Processing Integrity Fee: Pre Authorization</td>
<td>$0.045</td>
<td rowspan="3">Charged when a card is authorized but not deposited and the authorization is not reversed
in a timely manner.<br>*the minimum fee amount for a Final authorization is $0.04.</td>
</tr>
<tr>
<td>MC Processing Integrity Fee: Final Authorization*</td>
<td>0.25%</td>
</tr>
<tr>
<td>Visa Misuse of Authorization Fee</td>
<td>$0.093</td>
</tr>
<tr>
<td>Visa Zero Floor Limit Fee</td>
<td>$0.20</td>
<td>Charged when a transaction is deposited but never authorized.</td>
</tr>
<tr>
<td>Visa Transaction Integrity Fee</td>
<td>$0.10</td>
<td>Charged on Visa transactions that do not meet the qualification standards for US Custom Payment
Service (CPS) categories.</td>
</tr>
<tr>
<td>MC Ineligible Chargeback Blocking Fee</td>
<td>$3.00</td>
<td>Charged when a fraud related Chargeback is blocked by MasterCard.</td>
</tr>
<tr>
<td>MC Cross Border Assessment Fee</td>
<td>0.60%</td>
<td rowspan="4">Applies to non-U.S. bank issued cards in which the transaction is settled in USD.</td>
</tr>
<tr>
<td>Visa International Service Assessment Fee</td>
<td>1.00%</td>
</tr>
<tr>
<td>American Express OptBlue International Fee</td>
<td>0.40%</td>
</tr>
<tr>
<td>Discover / JCB International Service Fee</td>
<td>0.80%</td>
</tr>
<tr>
<td>MC International Support Fee</td>
<td>0.85%</td>
<td rowspan="3">Additional fee charged by MasterCard, Visa and Discover on non-U.S. bank issued cards.
</td>
</tr>
<tr>
<td>Visa Interregional Acquiring Fee</td>
<td>0.45%</td>
</tr>
<tr>
<td>Discover / JCB International Processing Fee</td>
<td>0.50%</td>
</tr>
</tbody>
<thead>
<tr>
<th colspan="3">
<h5>Payment Brand Charges and Termination Fees</h5>
</th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="3">Part of the fees that we charge you for processing your transactions consist of fees we
pay to the Payments Brands.<br><br>
These charges, called “Payment Brand Charges,” include but are not limited to, interchange rates,
assessments, file transmission fees, access fees, and international and cross border fees. Therefore, in
addition to the rates set forth below, you will also be charged Payment Brand Charges. Payment Brand
interchange rates can be accessed online by visiting <a
href="https://merchantservices.chase.com/support/managing-your-account/interchange-and-assessment-understanding">https://merchantservices.chase.com/support/managing-your-account/interchange-and-assessment-understanding</a>
and clicking on “View all of the Latest Payment Network Updates,” then “Current Brand Pricing -
US”.<br><br>
Please note that we may, from time to time, elect not to charge you for certain existing, new or
increased Payment Brand Charges. If we elect not to charge you, we still reserve the right to begin
charging you for existing, new or increased Payment Brand Charges at any time in the future, upon notice
to you. No such Payment Brand Charges will be imposed retroactively.<br><br>
<h5>Amount Due Upon Termination</h5><br><br>
We do not charge a fee for closing your merchant account.<br><br>
NOTICE REQUIRED BY AMERICAN EXPRESS:<br>
American Express requires that we inform you that (i) American Express charges Chase a wholesale
discount rate and not interchange and (ii) American Express operates a non-interchange based network.
</tr>
</tbody>
</table>
</div>
</li>
</ul>
<form>
<div class="row">
<label class="col s7">
<input type="checkbox" class="filled-in" checked="checked" />
<span>I have reviewed the above fees associated with processing transactions, and by continuing agree to this
pricing.</span>
</label>
</div>
<div class="row">
<form>
<div class="input-field col s3">
<input id="password" type="password">
<label for="password">Set Password</label>
</div>
</form>
<button class="btn-large waves-effect waves-light" type="submit" name="action">Submit
<i class="material-icons right">send</i>
</button>
</div>
</form>
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
</body>
Important
Implement Refund Policy
Implement the below refund policy:
- IC+ fees for credit card payments will only be credited back to the merchant if they are credited back by the network
- Payers will receive a full refund, but the merchant will need to cover fees if the network does not credit them back
- This varies by network; some do refund their fees while others do not
- IC+ fees are not applicable to ACH/eCheck payments, so the entire fee charged will not be credited back to the merchant
- Platform markup fees will not be refunded to the merchant
- Merchants pay the platform markup fees at the end of the billing cycle, discussed here
- Similarly, our fees debited from the platform do not get credited back to the platform
- If a platform charges merchants a fee for refunds, this fee must be disclosed to merchants
- Refund fees will be applied regardless of the refund amount (full vs. partial)
- IC+ fees for credit card payments will be charged to the merchant if they are charged by the network
The following examples will help conceptualize how this policy plays out in real terms with different variables at play.
Example 1
- Payment method: credit card
- Refund amount: $100.00 (full)
- IC+ credit: yes
- Platform refund fee: none
Description | Payment (payer to merchant) | Refund (merchant to payer) | Refund Notes |
---|---|---|---|
Gross | $100.00 | $100.00 | |
Merchant's Net | $98.00 | $100.00 | Gross refund is debited from merchant and fees are credited as applicable |
IC+ Fees | $1.50 | $1.50 | Credited to merchant: ✓ |
Total Markup Fee | $0.50 | $0.50 | Credited to merchant: ✘ |
Refund Fee | Not Applicable |
Example 2
- Payment method: credit card
- Refund amount: $100.00 (full)
- IC+ credit: no
- Platform refund fee: $0.10
Description | Payment (payer to merchant) | Refund (merchant to payer) | Refund Notes |
---|---|---|---|
Gross | $100.00 | $100.00 | |
Merchant's Net | $98.00 (after billing has been applied) | $100.00 | Gross refund is debited from the merchant and fees are credited as applicable. |
IC+ Fees | $1.50 | $1.50 | Credited to merchant: ✘ |
Total Markup Fee | $0.50 | $0.50 | Credited to merchant: ✘ |
Refund Fee | A $0.10 debit is applied to the merchant's next billing statement. | ||
Example 3
- Payment method: credit card
- Refund amount: $40.00 (partial)
- IC+ credit: no
- Platform refund fee: $0.10
Description | Payment (payer to merchant) | Refund (merchant to payer) | Refund Notes |
---|---|---|---|
Gross | $100.00 | $40.00 | |
Merchant's Net | $98.00 (after billing has been applied) | $40.00 | Gross refund is debited from the merchant and fees are credited as applicable. |
IC+ Fees | $1.50 | $1.50 | Credited to merchant: ✘ |
Total Markup Fee | $0.50 | $0.50 | Credited to merchant: ✘ |
Refund Fee | A $0.10 debit is applied to the merchant's next billing statement. | ||
Example 4
- Payment method: bank account
- Refund amount: $100.00 (full)
- IC+ credit: N/A
- Platform refund fee: $0.10
Description | Payment (payer to merchant) | Refund (merchant to payer) | Refund Notes |
---|---|---|---|
Gross | $100.00 | $100.00 | |
Merchant's Net | $98.00 (after billing has been applied) | $100.00 | Gross refund is debited from the merchant and fees are credited as applicable. |
IC+ Fees | N/A | N/A | Credited to merchant: N/A |
Total Markup Fee | $2.00 | $2.00 | Credited to merchant: ✘ |
Refund Fee | A $0.10 debit is applied to the merchant's next billing statement. | ||
Upload Fee Disclosures
Use the Document Upload JS with theaccount_id
param and "type": "fee_disclosure"
. The JS response will provide the document ID.Next, send a POST /accounts/{id}
request with the document ID in the documents
array. The API response will contain the ID, type, and create time, and will look like this:{
"name": "Foo Bar Shop",
"description": "The Foo Bar Shop on 5th ave.",
"documents": [
{
"id": "{id}",
"type": "fee_disclosure",
"create_time": 987389472347,
"resource": "documents",
"path": "/documents/{id}"
}
]
}
Once a document ID has been added to an account, it cannot be removed. Any subsequent requests with fee disclosure document IDs will append the array, and the most recently added fee disclosure document will be considered the current fee disclosure for that merchant.
Consume Billing Statements
First, we will create a Billing Statement on the 5th of the month following each billing cycle (defined as a calendar month), and will send a Notification when it is ready. A Billing Statement will describe the amount in fees owed by the merchant by providing aggregate information about the merchant's fees over the billing cycle. The aggregate information will be present in the payload block of thebilling_statements.created
Notification.Note
Be sure to account for any Delayed Capture payments, especially if the authorization occurs at the end of one month and the capture occurs at the beginning of the next month. When this happens, fees for authorization and capture will be applied separately.
A Billing Statement Notification will look like this:
{
"id": "ccdbd4f6-a409-42b8-abdb-3451ff40501e",
"resource": "notifications",
"path": "/notifications/ccdbd4f6-a409-42b8-abdb-3451ff40501e",
"owner": {
"id": "121212",
"resource": "applications",
"path": null
},
"topic": "billing_statements.created",
"event_time": 1568922341,
"payload": {
"resource": "billing_statements",
"id": "c4a1abf1-34ac-40e8-bdba-5649f0665421",
"path": "/billing_statements/c4a1abf1-34ac-40e8-bdba-5649f0665421",
"owner": {
"resource": "accounts",
"id": "c4a1abf1-34ac-40e8-bdba-5649f0643043",
"path": "/accounts/c4a1abf1-34ac-40e8-bdba-5649f0643043"
},
"create_time": 1510080177,
"amount": 2300000,
"currency": "USD",
"month": 1,
"year": 2019,
"api_version": "3.0"
}
}
amount
in the Adjustment. Next, fetch the billing statement fee summary and transaction summary by sending
GET /billing_statements/{id}/fees_summary
& GET /billing_statements/{id}/transactions_summary
requests respectively. Use the response data in combination with the billing statement data to compile the billing statement for the merchant. A
GET /billing_statements/{id}/fees_summary
response might look something like this:{
"previous":"/billing_statements/{id}/fees_summary?page=aaabc123def456",
"next":"/billing_statements/{id}/fees_summary?page=cccde123fgh456",
"results":[
{
"fee_type":"VISA",
"fee_category":" VISA BUSINESS TIER 3 - STANDARD",
"currency":"USD",
"total_amount":56594,
"item_count":1,
"variable_fee_bps":295,
"fixed_fee_amount":20,
"fixed_fee_markup_amount":0,
"variable_fee_markup_bps":15,
"total_interchange_fee":1690,
"total_markup":8489,
"total_fees":10179,
"api_version":"3.0"
},
{
"fee_type":"ECHECK",
"fee_category":"eCheck fees",
"currency":"USD",
"total_amount":20290,
"item_count":6,
"variable_fee_bps":null,
"fixed_fee_amount":null,
"fixed_fee_markup_amount":0,
"variable_fee_markup_bps":15,
"total_markup":5417,
"total_fees":5417,
"total_interchange_fee":null,
"api_version":"3.0"
},
{
"fee_type":"CHARGEBACK",
"fee_category":"Chargeback fees",
"currency":"USD",
"total_amount":20290,
"item_count":4,
"variable_fee_bps":0,
"fixed_fee_amount":1500,
"fixed_fee_markup_amount":null,
"variable_fee_markup_bps":null,
"total_markup":null,
"total_fees":6000,
"total_interchange_fee":null,
"api_version":"3.0"
},
{
"fee_type":"OTHER",
"fee_category":"MC ACQUIRING FEE",
"currency":"USD",
"total_amount":8807781,
"item_count":49,
"variable_fee_bps":4,
"fixed_fee_amount":0,
"fixed_fee_markup_amount":null,
"variable_fee_markup_bps":null,
"total_markup":null,
"total_fees":352,
"total_interchange_fee":352,
"api_version":"3.0"
},
{
"fee_type":"RECURRING FEES",
"fee_category":"Monthly",
"currency":"USD",
"total_amount":null,
"item_count":null,
"variable_fee_bps":null,
"fixed_fee_amount":null,
"fixed_fee_markup_amount":2500,
"variable_fee_markup_bps":null,
"total_markup":2500,
"total_fees":2500,
"total_interchange_fee":null,
"api_version":"3.0"
},
{
"fee_type":"VISA",
"fee_category":"Auth Fees",
"currency":"USD",
"total_amount":null,
"item_count":100,
"variable_fee_bps":null,
"fixed_fee_amount":null,
"fixed_fee_markup_amount":30,
"variable_fee_markup_bps":null,
"total_markup":30,
"total_fees":30,
"total_interchange_fee":null,
"api_version":"3.0"
},
{
"fee_type":"MASTERCARD",
"fee_category":"Auth Fees",
"currency":"USD",
"total_amount":null,
"item_count":50,
"variable_fee_bps":null,
"fixed_fee_amount":null,
"fixed_fee_markup_amount":30,
"variable_fee_markup_bps":null,
"total_markup":1500,
"total_fees":1500,
"total_interchange_fee":null,
"api_version":"3.0"
}
],
"api_version":"3.0"
}
Note
fee_category
value:- Financial Adjustment - This describes money movement (either credited to or debited from).
- Reporting Adjustment - This describes an error in money movement reporting (where the money movement itself was correct), and a subsequent Adjustment to correct reporting.
Reporting Adjustments are expected to be rare.
GET /billing_statements/{id}/transactions_summary
response for a merchant who only received payments on the 1st of the month might look something like this:{
"previous":"/billing_statements/{id}/transactions_summary?page=aaabc123def456",
"next":"/billing_statements/{id}/transactions_summary?page=cccde123fgh456",
"results":[
{
"year":2019,
"month":9,
"day":1,
"total_amount":511246,
"currency":"USD",
"item_count":94,
"summaries":[
{
"fee_type":"AMEX",
"currency":"USD",
"total_amount":23658,
"item_count":5
},
{
"fee_type":"DISCOVER",
"currency":"USD",
"total_amount":30934,
"item_count":7
},
{
"fee_type":"MASTERCARD",
"currency":"USD",
"total_amount":54187,
"item_count":9
},
{
"fee_type":"VISA",
"currency":"USD",
"total_amount":402467,
"item_count":73
}
],
"api_version":"3.0"
}
],
"api_version":"3.0"
}
Once a Billing Statement is made available, your platform must compile a statement for merchants and deliver it before we begin processing the charge for fees.
Compile the merchant's statement using data from the Billing Statement, fees summary, and transactions summary. The statement must be compiled and sent to merchants within 24 hours of us sending thebilling_statements.created
Notification. When your platform sends the statement, include a notice that their Payout Method will be debited for the billing statement amount
. When planning this process, provide merchants with sufficient time to review the statement you send them and reach out with any questions or concerns before we debit their Payout Method.We will debit the merchant's Payout Method 24 hours after the Billing Statement is available.
In our systems, the debit will be an API Recovery. The merchant will be able to view the debit as a single line item on their bank statement. If the Recovery succeeds, then abilling_statements.charge_succeeded
Notification will fire.If the Recovery fails, then a billing_statements.charge_failed
Notification will fire. Additionally, we will debit for fees from the merchant's gross settlement the following day and apply a $25.00 debit failure fee.Process Diagram
Bill Merchants
To bill merchants, we will initiate a Recovery from the merchant's active Payout Method for fees owed (theamount
value in the Billing Statement). This will occur 24 hours after the Billing Statement was created (so the 6th of the month). If the recovery for fees fails, we will make an Adjustment to the merchant's Account balance to collect the fees owed. Take note that these Recoveries and Adjustments fall outside of the merchant's normal transactions which are included in Billing Statements and reconciliation.It is recommended to disclose this process to merchants before they begin processing, and again once each Billing Statement is made available.
First, listen for arecoveries.created
API Notification, and notify the merchant that a debit from their active Payout Method is currently being processed. Please note that currently, there is no specific reason code to distinguish between a recovery debit vs. processing fees (i.e. Merchant IC+ monthly fees) debit. To identify Merchant IC+ debits from the merchant's Payout Method, match the amount value from the recoveries.created
Notification to the amount value from the billing_statements.created
Notification. Next, listen for either the
billing_statements.succeeded
or the billing_statements.failed
API Notification. Recoveries take 2-3 days to complete, which will typically be on the 8th of the month following the Billing Statement in question. If billing succeeded, a receipt or confirmation of successfully paid processing fees should be provided to the merchant. If billing failed, then we will make an Adjustment to the Account for the amount owed. Notify the merchant that billing failed, and include information from the
failure_reason
structure explaining why. Let the merchant know that the amount owed will be debited from their current Account balance. If their balance is $0, then future payments will cover the amount owed. After a recovery failure, listen for the
adjustments.created
Notification. Specifically note the reason
JSON block containing the details identifying the Adjustment as a payment for Merchant IC+ fees. Once an Adjustment is
completed
, a receipt or confirmation of successfully paid processing fees should be provided to the merchant.Process Diagram
Reconcile Data
Many merchants will want a line-by-line breakdown of their fees which can be fetched by sendingGET /billing_statements/{id}/transactions_summary
and GET /billing_statements/{id}/fees_summary
requests. The API response to GET /billing_statements/{id}/transactions_summary
contains an array of Transaction Summaries and will look something like this:{
"previous": "/billing_statements/{id}/transactions_summary?page=aaabc123def456",
"next": "/billing_statements/{id}/transactions_summary?page=cccde123fgh456",
"results": [{
"day": 1,
"month": 1,
"year": 2019,
"total_amount": 672424,
"currency": "USD",
"item_count": 100,
"summaries": [{
"fee_type": "VISA",
"currency": "USD",
"total_amount": 652134,
"item_count": 9
},
{
"fee_type": "ECHECK",
"currency": "USD",
"total_amount": 20290,
"item_count": 6
},
{...},
{...}
],
"api_version": "3.0"
},
{"day": 2, ...},
{"day": 3, ...}
]}
pricing
API), and authorization fees (also set by your platform in the pricing
API). The
GET /billing_statements/{id}/fees_summary
response contains an array of Fees Summaries and will look something like this:{
"previous": "/billing_statements/{id}/fees_summary?page=aaabc123def456",
"next": "/billing_statements/{id}/fees_summary?page=cccde123fgh456",
"results": [{
"fee_type": "VISA",
"fee_category": " VISA BUSINESS TIER 3 - STANDARD",
"currency": "USD",
"total_amount": 56594,
"item_count": 1,
"variable_fee_bps": 295,
"fixed_fee_amount": 20,
"variable_fee_markup_bps": 15,
"fixed_fee_markup_amount": 0,
"total_interchange_fee": 1690,
"total_markup": 8489,
"total_fees": 10179,
"api_version": "3.0"
}, {
"fee_type": "VISA",
"fee_category": "VISA BUSINESS TIER 4 - STANDARD",
"currency": "USD",
"total_amount": 652134,
"item_count": 9,
"variable_fee_bps": 295,
"fixed_fee_amount": 25,
"variable_fee_markup_bps": 15,
"fixed_fee_markup_amount": 0,
"total_interchange_fee": 19463,
"total_markup": 97820,
"total_fees": 117823,
"api_version": "3.0"
}, {
"fee_type": "VISA",
"fee_category": "Auth Fees",
"currency": "USD",
"total_amount": 202903,
"item_count": 4,
"variable_fee_bps": 265,
"fixed_fee_amount": 10,
"variable_fee_markup_bps": 15,
"fixed_fee_markup_amount": 0,
"total_interchange_fee": 5417,
"total_markup": 30435,
"total_fees": 35852,
"api_version": "3.0"
}, {
"fee_type": "ECHECK",
"fee_category": "ECHECK FEES",
"currency": "USD",
"total_amount": 20290,
"item_count": 6,
"variable_fee_bps": null,
"fixed_fee_amount": null,
"variable_fee_markup_bps": 15,
"fixed_fee_markup_amount": 0,
"total_interchange_fee": null,
"total_markup": 5417,
"total_fees": 5417,
"api_version": "3.0"
}, {
"fee_type": "CHARGEBACK",
"fee_category": "CHARGEBACK FEES",
"currency": "USD",
"total_amount": null,
"item_count": 4,
"variable_fee_bps": 0,
"fixed_fee_amount": 1500,
"variable_fee_markup_bps": null,
"fixed_fee_markup_amount": null,
"total_interchange_fee": null,
"total_markup": null,
"total_fees": 6000,
"api_version": "3.0"
}, {
"fee_type": "OTHER",
"fee_category": "MC ACQUIRING FEE",
"currency": "USD",
"total_amount": 8807781,
"item_count": 49,
"variable_fee_bps": 0.4,
"fixed_fee_amount": 0,
"variable_fee_markup_bps": null,
"fixed_fee_markup_amount": null,
"total_interchange_fee": 352,
"total_markup": null,
"total_fees": 352,
"api_version": "3.0"
}, {
"fee_type": "RECURRING FEES",
"fee_category": "Monthly",
"currency":"USD",
"total_amount": null,
"item_count": null,
"variable_fee_bps": null,
"fixed_fee_amount": null,
"fixed_fee_markup_amount":2500,
"variable_fee_markup_bps":null,
"total_markup": 2500,
"total_fees": 2500,
"total_interchange_fee": null,
"api_version": "3.0"
},
{...}
],
"api_version": "3.0"
}
Additionally, you can get a list of specific transactions (Payments, Adjustments, Recoveries, Disputes, etc.) included in the merchant's processing for a given billing cycle. To do so, send a GET request for each resource with the
start_time
parameter matching the beginning of the billing cycle:curl -X GET -G \
--url 'https://stage-api.wepay.com/adjustments?create_time_start=1546329600'
-H 'Accept: application/json'\
-H 'App-Id: {your_app_id}'\
-H 'App-Token: {your_app_token}'\
-H 'Api-Version: 3.0' \
create_time_start
will be the unix timestamp for the 1st of a given month at 0:00:00 UTC.Process Diagram
Test Merchant IC+
For testing Merchant IC+, we've created the following magic header values for theWePay-Magic-Behavior
header key:Endpoint | Header Value |
---|---|
GET /billing_statements/{id} | get_billing_statements_id |
GET /billing_statements?account_id=account-id | get_billing_statements |
GET /billing_statements/{id}/transactions_summary | get_billing_statements_id_transactions_summary |
GET /billing_statements/{id}/fees_summary | get_billing_statements_id_fees_summary |
Migrate Merchants To Blended Pricing
A merchant who is currently on Merchant IC+ pricing can move back to standard blended rate pricing. To do so, the following must be completed:
- An updated pricing disclosure must be accepted by the merchant
- Any fields nested in the
pricing
structure on the Account resource which have non-null values must be set tonull
with aPOST /accounts/{id}
request.
fee_amount
value is not provided with any POST /payments requests for that merchant, then your platform will not collect fees. Likewise, if a fee_amount
value is provided with any POST /payments request before the merchant is on blended pricing, the request will fail with a 500 HTTP response.