Introduction
Fee Navigator API offers a suite of technology components to automate merchant statement analysis and comparison.
This documentation aims to provide all the information you need to work with our API.
Authenticating requests
To authenticate requests, include a Authorization
header with the value "{apiKey}"
.
All authenticated endpoints are marked with a requires authentication
badge in the documentation below.
You can retrieve your token by visiting your dashboard and clicking Generate API token.
1. Admin
1.1 Fee Library - GET
requires authentication
Returns the current fee library.
These are custom fees in your account, set up based on rate, per transaction, or as an individual fee.
Example request:
curl --request GET \
--get "https://developer.feenavigator.com/api/v1/get-fee-library" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://developer.feenavigator.com/api/v1/get-fee-library"
);
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/get-fee-library';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
[
{
"id": 4,
"name": "Statement Fee"
},
{
"id": 6,
"name": "Monthly Fee"
}
]
Example response (400):
{
"error": [
],
"code": 400 {
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
1.2 Pricing Regimens - GET
requires authentication
Returns the pricing regimens.
These are pricing structures defined in your plan, which may include one or more of the following: Interchange Plus, Interchange Plus with Pass-Through AMEX, Flat, Cash Discount, Surcharge, Tier.
Example request:
curl --request GET \
--get "https://developer.feenavigator.com/api/v1/get-pricing-regimens" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://developer.feenavigator.com/api/v1/get-pricing-regimens"
);
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/get-pricing-regimens';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
[
{
"id": 66,
"name": "Sample Flat",
"type": "Flat"
},
{
"id": 67,
"name": "Sample IC Plus",
"type": "IC Plus"
}
]
Example response (400):
{
"error": [
],
"code": 400 {
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
1.3 Pricing Regimen (id) - GET
requires authentication
Returns a specific pricing regimen identified by its id.
This returns all the details (definition) of the selected pricing regimen.
Example request:
curl --request GET \
--get "https://developer.feenavigator.com/api/v1/get-pricing-regimens/1755002352774017576" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://developer.feenavigator.com/api/v1/get-pricing-regimens/1755002352774017576"
);
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/get-pricing-regimens/1755002352774017576';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"name": "Sample Flat",
"type": "Flat",
"minMargin": 50,
"minMarginLevels": [
{
"minLevel": 0,
"minMargin": 50
}
],
"minMarginPeriod": "Monthly",
"targetMargin": 500,
"targetPercent": null,
"targetType": "fixed",
"targetMarginPeriod": "Monthly",
"datapoints": {
"Visa Debit nrTransactions": 0.23,
"Visa Auth nrTransactions": 2,
"Mastercard Credit amount": 3
},
"serviceFees": [
{
"idServiceFee": 22,
"networkType": [
"Credit",
"Debit"
],
"rate": 0.0001,
"per_tx": 0,
"fixedAmount": 0
},
{
"idServiceFee": 4,
"networkType": [],
"rate": 0,
"perTx": 0,
"fixedAmount": 10
},
{
"idServiceFee": 8,
"networkType": [
"Credit"
],
"rate": 0,
"perTx": 0.02,
"fixedAmount": 3
}
],
"tiers": [
{
"name": "Qualified",
"network": [
"Visa",
"Mastercard",
"Discover",
"American Express"
],
"network_type": [
"Credit"
],
"volumePercentage": 0.75,
"rate": 0.0169,
"perTx": 0.2
},
{
"name": "MidQual",
"network": [
"Visa",
"Mastercard",
"Discover",
"American Express"
],
"network_type": [
"Credit"
],
"volumePercentage": 0.1,
"rate": 0.028,
"perTx": 0.2
},
{
"name": "NonQual",
"network": [
"Visa",
"Mastercard",
"Discover",
"American Express"
],
"network_type": [
"Credit"
],
"volumePercentage": 0.15,
"rate": 0.033,
"perTx": 0.2
},
{
"name": "Debit",
"network": [
"Visa",
"Mastercard",
"Discover",
"American Express"
],
"networkType": [
"Debit"
],
"volumePercentage": 1,
"rate": 0.0169,
"perTx": 0.2
}
]
}
Example response (400):
{
"errors": "Pricing regimen not found",
"code": 400
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
1.4 Cost Schedules - GET
requires authentication
Returns a list of the available cost/commission schedules.
Example request:
curl --request GET \
--get "https://developer.feenavigator.com/api/v1/get-cost-schedules" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://developer.feenavigator.com/api/v1/get-cost-schedules"
);
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/get-cost-schedules';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
[
{
"id": 113,
"name": "Sample Schedule A"
},
{
"id": 145,
"name": "AT Sample Schedule A"
}
]
Example response (400):
{
"error": [
],
"code": 400 {
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
1.5 Cost Schedule (id) - GET
requires authentication
Returns the details of a specific cost/commission schedule.
This will include buy and sell rates for each revenue source, as well as revenue shares.
Example request:
curl --request GET \
--get "https://developer.feenavigator.com/api/v1/get-cost-schedules/1755002352774017576" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://developer.feenavigator.com/api/v1/get-cost-schedules/1755002352774017576"
);
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/get-cost-schedules/1755002352774017576';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"name": "Sample Schedule A",
"datapoints": {
"Visa Debit nrTransactions": {
"buyRate": 0.0001,
"buyRevShare": 80,
"sellRate": 0.0001,
"sellRevShare": 40
}
},
"serviceFees": [
{
"idServiceFee": 4,
"buyRate": 1,
"buyRevShare": 100,
"sellRate": 1,
"sellRevShare": 100
}
]
}
Example response (400):
{
"errors": "Commission not found",
"code": 400
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
1.6 Proposal Templates - GET
requires authentication
Returns a list with the available proposal templates.
Example request:
curl --request GET \
--get "https://developer.feenavigator.com/api/v1/get-proposal-templates" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://developer.feenavigator.com/api/v1/get-proposal-templates"
);
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/get-proposal-templates';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
[
{
"id": 34,
"name": "FN_Sample_EXCEL_Proposal.xlsx"
},
{
"id": 85,
"name": "Sample_Excel_Second_Proposal.xlsx"
}
]
Example response (400):
{
"error": [
],
"code": 400 {
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
1.7 Proposal Template (id) - GET
requires authentication
Returns the proposal template identified by the specific id
Example request:
curl --request GET \
--get "https://developer.feenavigator.com/api/v1/get-proposal-templates/1755002352774017576" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://developer.feenavigator.com/api/v1/get-proposal-templates/1755002352774017576"
);
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/get-proposal-templates/1755002352774017576';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (400):
{
"errors": "Proposal template not found",
"code": 400
}
Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
1.8 Usable Tokens - GET
requires authentication
Returns the available data point tokens, including the ones extracted and calculated from the statement, as well as the ones generated by the proposal.
The tokens may be used in Excel and Word templates, and they will be replaced at runtime with their actual values.
Tokens may be used to create calculations in Excel, and they also may be formatted for display as desired.
Example request:
curl --request GET \
--get "https://developer.feenavigator.com/api/v1/get-usable-tokens" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://developer.feenavigator.com/api/v1/get-usable-tokens"
);
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/get-usable-tokens';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
[
{
"term": "VisaAuthorizations",
"definition": "Number of authorizations for Visa"
},
{
"id": "VisaPerAuthCurrent",
"name": "Per authorization cost for Visa (Current)"
}
]
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
1.9 Plans - GET
requires authentication
Returns a list of the available proposal plans.
A proposal plan includes (1) pricing regimen, (1) cost schedule, and (1) Excel/Word template file that will format the generated data.
Example request:
curl --request GET \
--get "https://developer.feenavigator.com/api/v1/get-plans" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://developer.feenavigator.com/api/v1/get-plans"
);
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/get-plans';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
[
{
"id": 102,
"name": "Sample IC Plus Fixed",
"isDefault": 0
},
{
"id": 103,
"name": "Sample IC Plus Dynamic",
"isDefault": 1
}
]
Example response (400):
{
"error": [
],
"code": 400 {
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
1.10 Plan (id) - GET
requires authentication
Returns the details of a specific proposal plan.
Example request:
curl --request GET \
--get "https://developer.feenavigator.com/api/v1/get-plans/175" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://developer.feenavigator.com/api/v1/get-plans/175"
);
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/get-plans/175';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"name": "Name",
"pricingRegimen": {
"68": "pricing regimen name"
},
"commission": {
"113": "commission name"
},
"template": {
"36": "template.docx"
},
"onboardUrl": "https://www.your-onboarding-url.com",
"targetMcc": "5399",
"supportsICOptimization": 1,
"dynamicPricing": 0,
"isDefault": 0,
"showResiduals": 1,
"maxDiscRate": 0.0399,
"maxTransactionFee": 0.49,
"distributionOrder": "rateThenTxFee",
"hideWordExport": 0
}
Example response (400):
{
"errors": "Proposal template not found",
"code": 400
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
1.11 Assignments - GET
requires authentication
Returns the users that are part of the team and their roles.
Example request:
curl --request GET \
--get "https://developer.feenavigator.com/api/v1/get-assignments" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://developer.feenavigator.com/api/v1/get-assignments"
);
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/get-assignments';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
[
{
"id": 1,
"name": "Example User",
"role": "manager"
},
{
"id": 2,
"name": "Example User two",
"role": "member"
}
]
Example response (400):
{
"error": [
],
"code": 400 {
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
1.12 Assignment (id) - GET
requires authentication
Returns the proposal plans assigned to the specified user, including the default plan.
Example request:
curl --request GET \
--get "https://developer.feenavigator.com/api/v1/get-assignments/1755002352774017576" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://developer.feenavigator.com/api/v1/get-assignments/1755002352774017576"
);
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/get-assignments/1755002352774017576';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"name": "A7 User",
"role": "owner",
"idDefaultPlan": 105,
"assignedPlans": {
"102": "Sample IC Plus Fixed",
"103": "Sample IC Plus Dynamic"
}
}
Example response (400):
{
"errors": "Proposal template not found",
"code": 400
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
2. Proposal
2.1 Submit Statement - POST
requires authentication
Upload a PDF statement (native or scanned) and get an id as a result. You will use this id to perform functions on this statement.
Example request:
curl --request POST \
"https://developer.feenavigator.com/api/v1/statements/upload" \
--header "Authorization: {apiKey}" \
--header "Content-Type: multipart/form-data" \
--header "Accept: application/json" \
--form "merchantId=95b7a4b5-da9a-43bf-bd4a-b6d158d9e6f6"\
--form "merchantData[merchantName]=Acme Inc."\
--form "merchantData[industry]=5712"\
--form "merchantData[firstName]=John"\
--form "merchantData[lastName]=Smith"\
--form "merchantData[phone]=quis"\
--form "merchantData[email]=john@smith.com"\
--form "merchantData[zip]=23456"\
--form "withDatapoints=0"\
--form "pdf=@/var/www/public/demo_statement.pdf"
const url = new URL(
"https://developer.feenavigator.com/api/v1/statements/upload"
);
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "multipart/form-data",
"Accept": "application/json",
};
const body = new FormData();
body.append('merchantId', '95b7a4b5-da9a-43bf-bd4a-b6d158d9e6f6');
body.append('merchantData[merchantName]', 'Acme Inc.');
body.append('merchantData[industry]', '5712');
body.append('merchantData[firstName]', 'John');
body.append('merchantData[lastName]', 'Smith');
body.append('merchantData[phone]', 'quis');
body.append('merchantData[email]', 'john@smith.com');
body.append('merchantData[zip]', '23456');
body.append('withDatapoints', '0');
body.append('pdf', document.querySelector('input[name="pdf"]').files[0]);
fetch(url, {
method: "POST",
headers,
body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/statements/upload';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'multipart/form-data',
'Accept' => 'application/json',
],
'multipart' => [
[
'name' => 'merchantId',
'contents' => '95b7a4b5-da9a-43bf-bd4a-b6d158d9e6f6'
],
[
'name' => 'merchantData[merchantName]',
'contents' => 'Acme Inc.'
],
[
'name' => 'merchantData[industry]',
'contents' => '5712'
],
[
'name' => 'merchantData[firstName]',
'contents' => 'John'
],
[
'name' => 'merchantData[lastName]',
'contents' => 'Smith'
],
[
'name' => 'merchantData[phone]',
'contents' => 'quis'
],
[
'name' => 'merchantData[email]',
'contents' => 'john@smith.com'
],
[
'name' => 'merchantData[zip]',
'contents' => '23456'
],
[
'name' => 'withDatapoints',
'contents' => '0'
],
[
'name' => 'pdf',
'contents' => fopen('/var/www/public/demo_statement.pdf', 'r')
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"id": 1755002352774017576
}
Example response (404):
{
"errors": [
"Not Found -- The specified resource could not be found"
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
2.2 Delete Statement (id) - DEL
requires authentication
Deletes a statement and all extracted or processed information, including any associated analyses.
Example request:
curl --request DELETE \
"https://developer.feenavigator.com/api/v1/statements/delete/1755002352774017576" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://developer.feenavigator.com/api/v1/statements/delete/1755002352774017576"
);
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/statements/delete/1755002352774017576';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
[]
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
2.3 Submit Quote - POST
requires authentication
When no statement is available, you may generate a proposal using generated data.
Submit a quote by entering just a few data points.
Example request:
curl --request POST \
"https://developer.feenavigator.com/api/v1/submit-quote" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"debitVsCredit\": 50,
\"cpVsCnp\": 80,
\"volume\": 100000,
\"averageTransaction\": 45,
\"fees\": 2500,
\"idPlan\": \"100\",
\"merchantId\": \"95b7a4b5-da9a-43bf-bd4a-b6d158d9e6f6\",
\"merchantData[merchantName]\": \"Acme Inc\",
\"merchantData[industry]\": \"5712\",
\"merchantData[firstName]\": \"John\",
\"merchantData[lastName]\": \"Smith\",
\"merchantData[phone]\": \"23456785\",
\"merchantData[email]\": \"john@smith.com\",
\"merchantData[zip]\": \"52343\",
\"withDatapoints\": 0
}"
const url = new URL(
"https://developer.feenavigator.com/api/v1/submit-quote"
);
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"debitVsCredit": 50,
"cpVsCnp": 80,
"volume": 100000,
"averageTransaction": 45,
"fees": 2500,
"idPlan": "100",
"merchantId": "95b7a4b5-da9a-43bf-bd4a-b6d158d9e6f6",
"merchantData[merchantName]": "Acme Inc",
"merchantData[industry]": "5712",
"merchantData[firstName]": "John",
"merchantData[lastName]": "Smith",
"merchantData[phone]": "23456785",
"merchantData[email]": "john@smith.com",
"merchantData[zip]": "52343",
"withDatapoints": 0
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/submit-quote';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'debitVsCredit' => 50,
'cpVsCnp' => 80,
'volume' => 100000.0,
'averageTransaction' => 45.0,
'fees' => 2500.0,
'idPlan' => '100',
'merchantId' => '95b7a4b5-da9a-43bf-bd4a-b6d158d9e6f6',
'merchantData[merchantName]' => 'Acme Inc',
'merchantData[industry]' => '5712',
'merchantData[firstName]' => 'John',
'merchantData[lastName]' => 'Smith',
'merchantData[phone]' => '23456785',
'merchantData[email]' => 'john@smith.com',
'merchantData[zip]' => '52343',
'withDatapoints' => 0,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"idStatement": "qK6J3byd",
"idCase": 676,
"status": "processed",
"lastProposalIdPlan": 125,
"datapoints": {
"merchant": {
"id": "95b7a4b5-da9a-43bf-bd4a-b6d158d9e6f6",
"company_id": 37955,
"merchant_name": "Company Name",
"first_name": "John",
"last_name": "Smith",
"email": "john.smith@john-smith.com",
"mobile": null,
"zip": "12345",
"industry": 5713,
"crm_stage_id": null,
"created_at": "2023-02-06T19:46:02.000000Z",
"updated_at": "2023-02-06T19:46:02.000000Z"
},
"MerchantProposalLink": "https://periscope-ui.pro.feenavigator.com/#/merchant-proposal/d7cef5a4-003d-4f4d-920a-b2cc997acf04",
"AnalysisEditLink": "https://www.feenavigator.com/compass/#/upload/case/676",
"Pricing Type": "IC Plus",
"Merchant Name": "Company Name",
"Statement Period Start": "2023-02-01",
"Statement Period End": "2023-02-28",
"Visa Credit amount": 20000,
"Visa Credit discRate": 0.0146,
"Visa Credit nrTransactions": 444,
"Visa Credit discRateProposed": 0.0146,
"Visa Credit transactionFeeProposed": 0,
"Visa Debit amount": 20000,
"Visa Debit discRate": 0.0146,
"Visa Debit nrTransactions": 444,
"Visa Debit discRateProposed": 0.0146,
"Visa Debit transactionFeeProposed": 0,
"Mastercard Credit amount": 15000,
"Mastercard Credit discRate": 0.0146,
"Mastercard Credit nrTransactions": 333,
"Mastercard Credit discRateProposed": 0.0146,
"Mastercard Credit transactionFeeProposed": 0,
"Mastercard Debit amount": 15000,
"Mastercard Debit discRate": 0.0146,
"Mastercard Debit nrTransactions": 333,
"Mastercard Debit discRateProposed": 0.0146,
"Mastercard Debit transactionFeeProposed": 0,
"Discover Credit amount": 10000,
"Discover Credit discRate": 0.0146,
"Discover Credit nrTransactions": 222,
"Discover Credit discRateProposed": 0.0146,
"Discover Credit transactionFeeProposed": 0,
"Discover Debit amount": 10000,
"Discover Debit discRate": 0.0146,
"Discover Debit nrTransactions": 222,
"Discover Debit discRateProposed": 0.0146,
"Discover Debit transactionFeeProposed": 0,
"American Express amount": 10000,
"American Express discRate": 0.0146,
"American Express nrTransactions": 222,
"American Express discRateProposed": 0.0146,
"American Express transactionFeeProposed": 0,
"Interchange & downgrades": 1858.82,
"Dues & Assessments": 160,
"Total Volume": 100000,
"Total Fees": 3500,
"Industry": "5713",
"Processing Fees": 1481.18,
"Pass-Through Fees": 2018.82,
"Other fees": 21,
"Total Calculated Fees": 3500,
"Monthly Fees": 3500,
"1-Year Fees": 42000,
"3-Year Fees": 126000,
"Effective Rate": 0.035,
"Avoidable Fees": null,
"Potential Savings": 2.13,
"Statement Period": "Feb 2023",
"Total nrTransactions": 2222.22,
"Average Ticket": 45,
"Processing Fees Proposed": 1481,
"Interchange & downgrades Proposed": 1858.82,
"PCI compliance Proposed": null,
"Non-PCI compliance Proposed": null,
"Monthly Proposed": null,
"Chargeback Proposed": null,
"Other fees Proposed": 21,
"Total Fees Proposed": 3499.82,
"Effective Rate Proposed": 0.035,
"Monthly Savings": 0.18,
"3 Year Savings": 6.4,
"Pass-Through Fees Proposed": 2018.82,
"Percent Processing Fees": 0.0148,
"Percent Processing Fees Proposed": 0.0148,
"Percent Pass-Through Fees": 0.0202,
"Percent Pass-Through Fees Proposed": 0.0202,
"Calculated Total Volume": 100000,
"Dues & Assessments Proposed": 160,
"Margin Proposed Company": 1158.22,
"Company Residual Proposed": 579.11,
"Agent Residual Proposed": 579.11,
"Potential Margin Company": 1160.14,
"Potential Margin Agent": 1160.14,
"Processor Cost Proposed": 301.78,
"Margin Proposed Agent": 1158.22,
"Pass-through Fees To Substract": 0,
"IsQuickQuote": 1
}
}
Example response (200):
{
"message": "The given data was invalid.",
"errors": {
"merchantData.merchantName": [
"The merchant data.merchant name field is required."
],
"merchantData.industry": [
"The merchant data.industry field is required."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
2.4 Delete Quote (id) - DEL
requires authentication
Deletes a specified quote, and all the data associated with it.
Example request:
curl --request DELETE \
"https://developer.feenavigator.com/api/v1/submit-quote/1755002352774017576" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://developer.feenavigator.com/api/v1/submit-quote/1755002352774017576"
);
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "DELETE",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/submit-quote/1755002352774017576';
$response = $client->delete(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
[]
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
2.5 Get Statement (id) - GET
requires authentication
Returns the uploaded statement with the specified id.
Example request:
curl --request GET \
--get "https://developer.feenavigator.com/api/v1/statement/download/pdf/1755002352774017576" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://developer.feenavigator.com/api/v1/statement/download/pdf/1755002352774017576"
);
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/statement/download/pdf/1755002352774017576';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
2.6 Get Extracted Text (id) - GET
requires authentication
Returns the textual representation after performing optical-character-recognition (OCR) on the PDF statement.
Depending on the quality of the document itself, this may not match 100% the PDF content.
Example request:
curl --request GET \
--get "https://developer.feenavigator.com/api/v1/statements/get-extracted-text/1755002352774017576" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://developer.feenavigator.com/api/v1/statements/get-extracted-text/1755002352774017576"
);
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/statements/get-extracted-text/1755002352774017576';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"extractedText": ".... extracted text as a string ..."
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
2.7 Get Data Points (id)- GET
requires authentication
Returns the extracted and processed elements from the statement and proposal.
Example request:
curl --request GET \
--get "https://developer.feenavigator.com/api/v1/statements/get-datapoints/1755002352774017576" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://developer.feenavigator.com/api/v1/statements/get-datapoints/1755002352774017576"
);
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/statements/get-datapoints/1755002352774017576';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"EBT discRate": null,
"Pricing Type": "IC Plus",
"Merchant Name": "GRILLE",
"Merchant Address": null,
"Merchant Number": "496",
"Statement Period Start": "05/01/18",
"Statement Period End": "05/31/18",
"Third Party Transactions": null,
"Visa Credit amount": 22517.51,
"Visa Credit discRate": 0.0015,
"Visa Credit nrTransactions": 436,
"Visa Credit transactionFee": null,
"Visa Credit discRateProposed": 0.0027,
"Visa Credit transactionFeeProposed": 0,
"Visa Debit amount": 25568.33,
"Visa Debit discRate": 0.0015,
"Visa Debit nrTransactions": 553,
"Visa Debit transactionFee": null,
"Visa Debit discRateProposed": 0.0027,
"Visa Debit transactionFeeProposed": 0,
"Visa Auth nrTransactions": 1031,
"Visa Auth transactionFee": 0.05,
"Visa Auth transactionFeeProposed": 0,
"Mastercard Credit amount": 15250.57,
"Mastercard Credit discRate": 0.0015,
"Mastercard Credit nrTransactions": 316,
"Mastercard Credit transactionFee": null,
"Mastercard Credit discRateProposed": 0.0027,
"Mastercard Credit transactionFeeProposed": 0,
"Mastercard Debit amount": 5275.82,
"Mastercard Debit discRate": 0.0015,
"Mastercard Debit nrTransactions": 103,
"Mastercard Debit transactionFee": null,
"Mastercard Debit discRateProposed": 0.0027,
"Mastercard Debit transactionFeeProposed": 0,
"Mastercard Auth nrTransactions": 435,
"Mastercard Auth transactionFee": 0.05,
"Mastercard Auth transactionFeeProposed": 0,
"Discover Credit amount": 3609.83,
"Discover Credit discRate": 0.0015,
"Discover Credit nrTransactions": 64,
"Discover Credit transactionFee": null,
"Discover Credit discRateProposed": 0.0027,
"Discover Credit transactionFeeProposed": 0,
"Discover Debit amount": 152.31,
"Discover Debit discRate": 0.0015,
"Discover Debit nrTransactions": null,
"Discover Debit transactionFee": null,
"Discover Debit discRateProposed": 0.0027,
"Discover Debit transactionFeeProposed": null,
"Discover Auth nrTransactions": 64,
"Discover Auth transactionFee": 0.05,
"Discover Auth transactionFeeProposed": 0,
"American Express amount": 13237.43,
"American Express discRate": 0.0025,
"American Express nrTransactions": 238,
"American Express transactionFee": null,
"American Express discRateProposed": 0.0027,
"American Express transactionFeeProposed": 0,
"American Express Auth nrTransactions": 242,
"American Express Auth transactionFee": 0.05,
"American Express Auth transactionFeeProposed": 0,
"PIN Debit amount": null,
"PIN Debit discRate": null,
"PIN Debit nrTransactions": null,
"PIN Debit transactionFee": null,
"PIN Debit discRateProposed": null,
"PIN Debit transactionFeeProposed": null,
"EBT amount": null,
"EBT nrTransactions": null,
"EBT transactionFee": null,
"EBT transactionFeeProposed": null,
"Fleet Cards / Other amount": null,
"Fleet Cards / Other discRate": null,
"Fleet Cards / Other nrTransactions": null,
"Fleet Cards / Other transactionFee": null,
"Fleet Cards / Other discRateProposed": null,
"Fleet Cards / Other transactionFeeProposed": null,
"Interchange & downgrades": 1606.9,
"Dues & Assessments": 153.86,
"PIN debit interchange": null,
"AVS nrTransactions": null,
"AVS transactionFee": null,
"PCI compliance": null,
"Non-PCI compliance": null,
"Batch nrTransactions": 24,
"Batch transactionFee": 0.05,
"Monthly": 13.5,
"Chargeback": null,
"Surcharging": null,
"Total Volume": 85611.8,
"Total Fees": 2013.2,
"Industry": "5399",
"Representative First Name": null,
"Representative Last Name": null,
"Representative Phone": null,
"Representative Email": null,
"Card brands / other": null,
"Processing Fees": 252.44,
"Pass-Through Fees": 1760.76,
"Other fees": 7.48,
"Calculated Other Fees": null,
"Total Calculated Fees": 2013.2,
"Monthly Fees": 2013.2,
"1-Year Fees": 24158.4,
"3-Year Fees": 72475.2,
"Effective Rate": 0.0235,
"Avoidable Fees": null,
"Potential Savings": 820.71,
"Statement Period": "May 2018",
"Total nrTransactions": 1710,
"Average Ticket": 50.07,
"Processing Fees Proposed": 239.84,
"Interchange & downgrades Proposed": 1577.23,
"Interchange optimization Proposed": -26.12,
"PIN debit interchange Proposed": null,
"AVS transactionFee Proposed": null,
"PCI compliance Proposed": null,
"Non-PCI compliance Proposed": null,
"Batch transactionFee Proposed": 0.05,
"Monthly Proposed": null,
"Chargeback Proposed": null,
"Other fees Proposed": 7.48,
"Total Fees Proposed": 1944.81,
"Effective Rate Proposed": 0.0227,
"Monthly Savings": 68.39,
"3 Year Savings": 2462.14,
"Pass-Through Fees Proposed": 1704.97,
"Percent Processing Fees": 0.0029,
"Percent Processing Fees Proposed": 0.0028,
"Percent Pass-Through Fees": 0.0206,
"Percent Pass-Through Fees Proposed": 0.0199,
"Calculated Other Fees Proposed": null,
"Percent Other Fees": null,
"Percent Other Fees Proposed": null,
"Calculated Total Volume": 85611.8,
"Card brands / other Proposed": null,
"Dues & Assessments Proposed": 153.86,
"Surcharging Proposed": null,
"Tiers Proposed": null,
"Custom Service Proposed": null,
"Other Processing Fees": null,
"Margin Proposed Company": 161.99,
"Company Residual Proposed": 81,
"Agent Residual Proposed": 81,
"Potential Margin Company": 218.97,
"Potential Margin Agent": 218.97,
"Processor Cost Proposed": 69.16,
"Margin Proposed Agent": 161.99,
"Pass-through Fees To Substract": 0,
"Interchange": [
{
"term": "MC-WORLDCARD RESTAURANT",
"normalized": "Restaurant - World",
"network": "Mastercard",
"amount": 1320.32,
"countTx": 44,
"rate": 0.0173,
"perTx": 0.1,
"fee": 27.24,
"standardRate": 0.0173,
"standardPerTx": 0.1,
"standardFee": 27.241536,
"padding": 0
},
{
"term": "MC-COM T & E I(US) FLEET",
"normalized": "Commercial T&E Large Market",
"network": "Mastercard",
"amount": 1199.97,
"countTx": 32,
"rate": 0.0275,
"perTx": 0,
"fee": 33,
"standardRate": 0.0265,
"standardPerTx": 0.1,
"standardFee": 34.999205,
"padding": 0
},
{
"term": "MC-CORP T & E I(US) BUS",
"normalized": "Commercial T&E Large Market",
"network": "Mastercard",
"amount": 1352.58,
"countTx": 29,
"rate": 0.025,
"perTx": 0,
"fee": 33.82,
"standardRate": 0.0265,
"standardPerTx": 0.1,
"standardFee": 38.74337,
"padding": 0
},
{
"term": "MC-CORP PURCHASING INTL PUR",
"normalized": "T&E Large Ticket - World High Value",
"network": "Mastercard",
"amount": 40,
"countTx": 1,
"rate": 0.0285,
"perTx": 0,
"fee": 1.14,
"standardRate": 0.02,
"standardPerTx": 0,
"standardFee": 0.8,
"padding": 0.34
},
{
"term": "MC-CORP T & E I(US) CORP",
"normalized": "Commercial T&E Large Market",
"network": "Mastercard",
"amount": 1237.1,
"countTx": 27,
"rate": 0.0275,
"perTx": 0,
"fee": 34.02,
"standardRate": 0.0265,
"standardPerTx": 0.1,
"standardFee": 35.48315,
"padding": 0
},
{
"term": "MC-CORP BUSINESS INTL FLT",
"normalized": "T&E Large Ticket - World High Value",
"network": "Mastercard",
"amount": 153.13,
"countTx": 3,
"rate": 0.0285,
"perTx": 0,
"fee": 4.36,
"standardRate": 0.02,
"standardPerTx": 0,
"standardFee": 3.0626,
"padding": 1.2974
},
{
"term": "MC-WORLD ELITE RESTAURANT",
"normalized": "Restaurant - World Elite",
"network": "Mastercard",
"amount": 1460.21,
"countTx": 44,
"rate": 0.022,
"perTx": 0.1,
"fee": 36.52,
"standardRate": 0.022,
"standardPerTx": 0.1,
"standardFee": 36.52462,
"padding": 0
},
{
"term": "MC-WORLD ELITE - OTHER",
"normalized": "Merit I - World Elite ",
"network": "Mastercard",
"amount": 1855.57,
"countTx": 19,
"rate": 0.0275,
"perTx": 0.1,
"fee": 52.93,
"standardRate": 0.025,
"standardPerTx": 0.1,
"standardFee": 48.28925,
"padding": 4.64075
},
{
"term": "MC-BUS LEVEL 2 T&E I",
"normalized": "Commercial T&E Business Level 2",
"network": "Mastercard",
"amount": 71,
"countTx": 4,
"rate": 0.0266,
"perTx": 0,
"fee": 1.89,
"standardRate": 0.025,
"standardPerTx": 0.1,
"standardFee": 2.175,
"padding": 0
},
{
"term": "MC-SMALL TICKET (DB)",
"normalized": "Small Ticket Debit/Prepaid - Non-Regulated Consumer Debit",
"network": "Mastercard",
"amount": 55.24,
"countTx": 6,
"rate": 0.0155,
"perTx": 0.04,
"fee": 1.1,
"standardRate": 0.0155,
"standardPerTx": 0.04,
"standardFee": 1.09622,
"padding": 0
},
{
"term": "MC-RESTAURANT (DB)",
"normalized": null,
"network": null,
"amount": 308.38,
"countTx": 12,
"rate": 0.0119,
"perTx": 0.1,
"fee": 4.87,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "MC-INT SPR PREM ELECTRONIC(US)",
"normalized": null,
"network": null,
"amount": 25.14,
"countTx": 1,
"rate": 0.0283,
"perTx": 0,
"fee": 0.71,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "MC-COM T & E I(US) PURCH",
"normalized": null,
"network": null,
"amount": 449.72,
"countTx": 7,
"rate": 0.0275,
"perTx": 0,
"fee": 12.37,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "MC-BUS LEVEL 3 T&E I",
"normalized": null,
"network": null,
"amount": 122.06,
"countTx": 2,
"rate": 0.0271,
"perTx": 0,
"fee": 3.31,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "MC-BUS LEVEL 4 T&E I",
"normalized": "Commercial T&E Business Level 4",
"network": "Mastercard",
"amount": 30.78,
"countTx": 1,
"rate": 0.0281,
"perTx": 0,
"fee": 0.86,
"standardRate": 0.0265,
"standardPerTx": 0.1,
"standardFee": 0.91567,
"padding": 0
},
{
"term": "MC-REG INCENT FRF ADJ POS (DB)",
"normalized": "Regulated Purchases POS Debit with Fraud Adjustment - Debit Rate | Universal Regulated Debit Fraud Adj",
"network": "Mastercard",
"amount": 3268.01,
"countTx": 60,
"rate": 0.0005,
"perTx": 0.22,
"fee": 14.83,
"standardRate": 0.0005,
"standardPerTx": 0.22,
"standardFee": 14.834005,
"padding": 0
},
{
"term": "MC-REGULATED FRD ADJ COMM (DB)",
"normalized": "Regulated Purchases POS Debit with Fraud Adjustment - Debit Rate | Universal Regulated Debit Fraud Adj",
"network": "Mastercard",
"amount": 103,
"countTx": 1,
"rate": 0.0005,
"perTx": 0.22,
"fee": 0.27,
"standardRate": 0.0005,
"standardPerTx": 0.22,
"standardFee": 0.2715,
"padding": 0
},
{
"term": "MC-PREM CON ELEC ACQUSISSCAN",
"normalized": null,
"network": null,
"amount": 197.24,
"countTx": 3,
"rate": 0.027,
"perTx": 0,
"fee": 5.33,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "MC-ENHANCED MERIT III BASE",
"normalized": "Merit III Base - Enhanced (=Card Present)",
"network": "Mastercard",
"amount": 1280.19,
"countTx": 32,
"rate": 0.0173,
"perTx": 0.1,
"fee": 25.35,
"standardRate": 0.0173,
"standardPerTx": 0.1,
"standardFee": 25.347287,
"padding": 0
},
{
"term": "MC-PREM CON ELEC ACQUSISSLAC",
"normalized": null,
"network": null,
"amount": 30.1,
"countTx": 2,
"rate": 0.027,
"perTx": 0,
"fee": 0.81,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "MC-HIGH VAL RESTAURANT",
"normalized": "Restaurant - World High Value",
"network": "Mastercard",
"amount": 84.32,
"countTx": 2,
"rate": 0.022,
"perTx": 0.1,
"fee": 2.06,
"standardRate": 0.022,
"standardPerTx": 0.1,
"standardFee": 2.05504,
"padding": 0
},
{
"term": "MC-DOMESTIC MERIT III (DB)",
"normalized": "Merit III Base (Card Present) - Non-Regulated Consumer Debit",
"network": "Mastercard",
"amount": 1541.19,
"countTx": 24,
"rate": 0.0105,
"perTx": 0.15,
"fee": 19.78,
"standardRate": 0.0105,
"standardPerTx": 0.15,
"standardFee": 19.782495,
"padding": 0
},
{
"term": "MC-FOREIGN ELECTRONIC PLUS",
"normalized": null,
"network": null,
"amount": 73.05,
"countTx": 4,
"rate": 0.0195,
"perTx": 0,
"fee": 1.42,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "MC-DOMESTIC MERIT III",
"normalized": "Merit III Base - Core (=Card Present) | Consumer Credit",
"network": "Mastercard",
"amount": 1882.57,
"countTx": 38,
"rate": 0.0158,
"perTx": 0.1,
"fee": 33.54,
"standardRate": 0.0158,
"standardPerTx": 0.1,
"standardFee": 33.544606,
"padding": 0
},
{
"term": "MC-WORLDCARD - OTHER",
"normalized": "Merit III Base - World (=Card Present)",
"network": "Mastercard",
"amount": 2385.52,
"countTx": 21,
"rate": 0.023,
"perTx": 0.1,
"fee": 56.97,
"standardRate": 0.0177,
"standardPerTx": 0.1,
"standardFee": 44.323704,
"padding": 12.646296
},
{
"term": "VISA",
"normalized": null,
"network": null,
"amount": -25,
"countTx": 1,
"rate": 0,
"perTx": 0,
"fee": 0,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "VI-US REGULATED (DB)",
"normalized": "CPS/Supermarket, Debit - Regulated (CP)",
"network": "Visa",
"amount": 17032.88,
"countTx": 326,
"rate": 0.0005,
"perTx": 0.22,
"fee": 80.24,
"standardRate": 0.0005,
"standardPerTx": 0.22,
"standardFee": 80.23644,
"padding": 0
},
{
"term": "VI-CPS SMALL TICKET (PP)",
"normalized": "CPS/Small Ticket, Prepaid - Exempt (CP)",
"network": "Visa",
"amount": 55.46,
"countTx": 6,
"rate": 0.016,
"perTx": 0.05,
"fee": 1.19,
"standardRate": 0.016,
"standardPerTx": 0.05,
"standardFee": 1.18736,
"padding": 0
},
{
"term": "VI-BUSINESS CARD CP (DB)",
"normalized": "Business Debit Card Present CP - Exempt",
"network": "Visa",
"amount": 57.72,
"countTx": 2,
"rate": 0.017,
"perTx": 0.1,
"fee": 1.18,
"standardRate": 0.017,
"standardPerTx": 0.1,
"standardFee": 1.18124,
"padding": 0
},
{
"term": "VI-US REGULATED COMM (DB)",
"normalized": "Interregional Regulated Debit - All Commercial Products",
"network": "Visa",
"amount": 510.5,
"countTx": 8,
"rate": 0.0005,
"perTx": 0.22,
"fee": 2.02,
"standardRate": 0.0005,
"standardPerTx": 0.22,
"standardFee": 2.01525,
"padding": 0
},
{
"term": "VI-US CPS/SMALL TCKT REG (DB)",
"normalized": "CPS/Small Ticket, Debit - Regulated (CP)",
"network": "Visa",
"amount": 498.36,
"countTx": 53,
"rate": 0.0005,
"perTx": 0.22,
"fee": 11.91,
"standardRate": 0.0005,
"standardPerTx": 0.22,
"standardFee": 11.90918,
"padding": 0
},
{
"term": "VI-CPS/SMALL TICKET",
"normalized": "Small Ticket - All Other",
"network": "Visa",
"amount": 264.38,
"countTx": 25,
"rate": 0.0165,
"perTx": 0.04,
"fee": 5.36,
"standardRate": 0.019,
"standardPerTx": 0,
"standardFee": 5.02322,
"padding": 0.33678
},
{
"term": "VI-CPS/REWARDS 2",
"normalized": null,
"network": null,
"amount": 1780.83,
"countTx": 24,
"rate": 0.0195,
"perTx": 0.1,
"fee": 37.13,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "VI-CPS/RESTAURANT CREDIT",
"normalized": null,
"network": null,
"amount": 1304.7,
"countTx": 27,
"rate": 0.0154,
"perTx": 0.1,
"fee": 22.79,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "VI-INTREG BUS/CORP/PURCH (US)",
"normalized": "T&E Large Ticket - World High Value",
"network": "Mastercard",
"amount": 334.68,
"countTx": 10,
"rate": 0.0245,
"perTx": 0,
"fee": 8.2,
"standardRate": 0.02,
"standardPerTx": 0,
"standardFee": 6.6936,
"padding": 1.5064
},
{
"term": "VI-ELECTRONIC (US ACQ)",
"normalized": "Electronic Program - All Commerical Products",
"network": "Visa",
"amount": 248.93,
"countTx": 10,
"rate": 0.0155,
"perTx": 0,
"fee": 3.86,
"standardRate": 0.02,
"standardPerTx": 0,
"standardFee": 4.9786,
"padding": 0
},
{
"term": "VI-INTREG CHIP ISS (US)",
"normalized": "Issuer Chip Card - All Commerical Products",
"network": "Visa",
"amount": 114.82,
"countTx": 4,
"rate": 0.0165,
"perTx": 0,
"fee": 1.89,
"standardRate": 0.02,
"standardPerTx": 0,
"standardFee": 2.2964,
"padding": 0
},
{
"term": "VI-EIRF NON CPS ALL OTHER",
"normalized": null,
"network": null,
"amount": 181,
"countTx": 1,
"rate": 0.023,
"perTx": 0.1,
"fee": 4.26,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "VI-SIGNATURE CARD ELECTRONIC",
"normalized": null,
"network": null,
"amount": 5682.82,
"countTx": 101,
"rate": 0.023,
"perTx": 0.1,
"fee": 140.81,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "VI-INTER PREM CAN ISS US ACQ",
"normalized": null,
"network": null,
"amount": 111.49,
"countTx": 3,
"rate": 0.0225,
"perTx": 0,
"fee": 2.51,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "VI-BUSINESS CARD TR1 ELEC T&E",
"normalized": null,
"network": null,
"amount": 246.88,
"countTx": 4,
"rate": 0.024,
"perTx": 0.1,
"fee": 6.33,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "VI-SIGNATURE PREFERRED CRP ELC",
"normalized": null,
"network": null,
"amount": 8346.52,
"countTx": 158,
"rate": 0.024,
"perTx": 0.1,
"fee": 216.12,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "VI-SIGNATURE PREFERRED CRP STD",
"normalized": null,
"network": null,
"amount": 86.63,
"countTx": 1,
"rate": 0.0295,
"perTx": 0.1,
"fee": 2.66,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "VI-SUPER PREMIUM LAC ISS US AC",
"normalized": "Issuer Chip Card - Infinite",
"network": "Visa",
"amount": 86.2,
"countTx": 4,
"rate": 0.0242,
"perTx": 0,
"fee": 2.09,
"standardRate": 0.0197,
"standardPerTx": 0,
"standardFee": 1.69814,
"padding": 0.39186
},
{
"term": "VI-BUSINESS CARD TR2 ELEC T&E",
"normalized": "Commercial/Corporate/Purchasing Level II",
"network": "Visa",
"amount": 36,
"countTx": 1,
"rate": 0.0275,
"perTx": 0.15,
"fee": 1.14,
"standardRate": 0.025,
"standardPerTx": 0.1,
"standardFee": 1,
"padding": 0.14
},
{
"term": "VI-BUSINESS CARD TR3 ELEC T&E",
"normalized": null,
"network": null,
"amount": 281.19,
"countTx": 5,
"rate": 0.0285,
"perTx": 0.2,
"fee": 9.01,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "VI-CPS SMALL TICKET (DB)",
"normalized": "CPS/Small Ticket, Debit - Exempt (CP)",
"network": "Visa",
"amount": 248.33,
"countTx": 22,
"rate": 0.0155,
"perTx": 0.04,
"fee": 4.73,
"standardRate": 0.0155,
"standardPerTx": 0.04,
"standardFee": 4.729115,
"padding": 0
},
{
"term": "VI-CPS/RESTAURANT (DB)",
"normalized": "CPS/Restaurant, Debit - Exempt (CP)",
"network": "Visa",
"amount": 6826.5,
"countTx": 123,
"rate": 0.0119,
"perTx": 0.1,
"fee": 93.54,
"standardRate": 0.0119,
"standardPerTx": 0.1,
"standardFee": 93.53535,
"padding": 0
},
{
"term": "VI-CORPORATE TRAVEL SVC",
"normalized": "Commercial/Corporate/Purchasing Travel Service",
"network": "Visa",
"amount": 1881.49,
"countTx": 28,
"rate": 0.0265,
"perTx": 0.1,
"fee": 52.66,
"standardRate": 0.0265,
"standardPerTx": 0.1,
"standardFee": 52.659485,
"padding": 0
},
{
"term": "VI-PURCHASING TRAVEL SVC",
"normalized": "Commercial/Corporate/Purchasing Travel Service",
"network": "Visa",
"amount": 830.56,
"countTx": 12,
"rate": 0.0265,
"perTx": 0.1,
"fee": 23.21,
"standardRate": 0.0265,
"standardPerTx": 0.1,
"standardFee": 23.20984,
"padding": 0
},
{
"term": "VI-US HNW CONSUMER ELECT",
"normalized": null,
"network": null,
"amount": 159.79,
"countTx": 7,
"rate": 0.024,
"perTx": 0.1,
"fee": 4.54,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "VI-BUSINESS CARD TR4 ELEC",
"normalized": null,
"network": null,
"amount": 563.6,
"countTx": 11,
"rate": 0.0295,
"perTx": 0.2,
"fee": 18.83,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "VI-CPS/RESTAURANT (PP)",
"normalized": "CPS/Restaurant, Prepaid - Exempt (CP)",
"network": "Visa",
"amount": 338.58,
"countTx": 13,
"rate": 0.0115,
"perTx": 0.15,
"fee": 5.84,
"standardRate": 0.0115,
"standardPerTx": 0.15,
"standardFee": 5.84367,
"padding": 0
},
{
"term": "DSCVR INTL CONSUMER CREDIT",
"normalized": "PSL US International Commercial",
"network": "Discover",
"amount": 58,
"countTx": 2,
"rate": 0.0215,
"perTx": 0,
"fee": 1.25,
"standardRate": 0.024,
"standardPerTx": 0.1,
"standardFee": 1.592,
"padding": 0
},
{
"term": "DSCVR PSL REST DB",
"normalized": "PSL Restaurants - Premium Plus",
"network": "Discover",
"amount": 152.31,
"countTx": 1,
"rate": 0.011,
"perTx": 0.16,
"fee": 1.84,
"standardRate": 0.024,
"standardPerTx": 0.1,
"standardFee": 3.75544,
"padding": 0
},
{
"term": "DSCVR COMML ELECT OTHER",
"normalized": "PSL Commercial Electronic",
"network": "Discover",
"amount": 978.02,
"countTx": 17,
"rate": 0.023,
"perTx": 0.1,
"fee": 24.19,
"standardRate": 0.0235,
"standardPerTx": 0.1,
"standardFee": 24.68347,
"padding": 0
},
{
"term": "DSCVR PSL REST PR",
"normalized": "PSL Restaurants - Rewards",
"network": "Discover",
"amount": 894.54,
"countTx": 10,
"rate": 0.022,
"perTx": 0.1,
"fee": 20.68,
"standardRate": 0.0195,
"standardPerTx": 0.1,
"standardFee": 18.44353,
"padding": 2.23647
},
{
"term": "DSCVR PSL REST RW",
"normalized": "PSL Restaurants - Core",
"network": "Discover",
"amount": 1666.27,
"countTx": 32,
"rate": 0.019,
"perTx": 0.1,
"fee": 34.86,
"standardRate": 0.0156,
"standardPerTx": 0.1,
"standardFee": 29.193812,
"padding": 5.666188
},
{
"term": "DSCVR PSL EXP SVC RW",
"normalized": "PSL Express Services - Core",
"network": "Discover",
"amount": 13,
"countTx": 2,
"rate": 0.0195,
"perTx": 0,
"fee": 0.25,
"standardRate": 0.0195,
"standardPerTx": 0,
"standardFee": 0.2535,
"padding": 0
},
{
"term": "AXP RESTAURANT BASE T1",
"normalized": "Restaurant Tier 1",
"network": "AMEX",
"amount": 987.3,
"countTx": 55,
"rate": 0.0185,
"perTx": 0.1,
"fee": 23.77,
"standardRate": 0.0185,
"standardPerTx": 0.1,
"standardFee": 23.76505,
"padding": 0
},
{
"term": "AXP RESTAURANT NONUS T1",
"normalized": "Restaurant Non-U.S. Tier 1",
"network": "AMEX",
"amount": 93.8,
"countTx": 4,
"rate": 0.0225,
"perTx": 0.1,
"fee": 2.51,
"standardRate": 0.0225,
"standardPerTx": 0.1,
"standardFee": 2.5105,
"padding": 0
},
{
"term": "AXP RESTAURANT BASE T2",
"normalized": "Restaurant Tier 2",
"network": "AMEX",
"amount": 9111.85,
"countTx": 166,
"rate": 0.0245,
"perTx": 0.1,
"fee": 239.84,
"standardRate": 0.025,
"standardPerTx": 0.1,
"standardFee": 244.39625,
"padding": 0
},
{
"term": "AXP RESTAURANT NONSWIPE T2",
"normalized": "Restaurant Non-Swipe Tier 2",
"network": "AMEX",
"amount": 41.2,
"countTx": 1,
"rate": 0.0275,
"perTx": 0.1,
"fee": 1.23,
"standardRate": 0.028,
"standardPerTx": 0.1,
"standardFee": 1.2536,
"padding": 0
},
{
"term": "AXP RESTAURANT NONUS T2",
"normalized": "Restaurant Non-U.S. Tier 2",
"network": "AMEX",
"amount": 131.43,
"countTx": 3,
"rate": 0.0285,
"perTx": 0.1,
"fee": 4.05,
"standardRate": 0.025,
"standardPerTx": 0.1,
"standardFee": 3.58575,
"padding": 0.46425
},
{
"term": "AXP RESTAURANT BASE T3",
"normalized": "Restaurant Tier 3",
"network": "AMEX",
"amount": 2871.85,
"countTx": 9,
"rate": 0.0275,
"perTx": 0.1,
"fee": 79.88,
"standardRate": 0.0285,
"standardPerTx": 0.1,
"standardFee": 82.747725,
"padding": 0
}
],
"Total Interchange padding": 29.666393999999997,
"Interchange optimization": {
"totalSavings": 189.54499,
"items": [
{
"term": "MC-CORP DATA RATE I (US) BUS",
"normalized": "Data Rate I Level 1 Business Core | Commercial Data Rate I Business Level 1",
"network": "Mastercard",
"amount": 15303.97,
"rate": 0.0265,
"countTx": 48,
"perTx": 0.1,
"fee": 410.36,
"padding": 0,
"paddingPercentage": 0,
"standardCost": 410.35521,
"standardRate": 0.0265,
"standardPerTx": 0.1,
"availableOptimizations": [
{
"level": 2,
"optimizedCategory": "Data Rate II Level 1 Business Core | Commercial Data Rate II L1",
"optimizedRate": 0.019,
"optimizedPerTx": 0.1,
"optimizedCost": 295.57543,
"savings": 114.77978
}
],
"maxOptimizedCategory": "Data Rate II Level 1 Business Core | Commercial Data Rate II L1",
"maxOptimizedRate": 0.019,
"maxOptimizedPerTx": 0.1,
"maxOptimizedCost": 295.57543,
"maxOptimizedSavings": 114.77978
},
{
"term": "VI-PURCHASING CARD CNP",
"normalized": "Commercial/Corporate/Purchasing Card Not Present",
"network": "Visa",
"amount": 5297.85,
"rate": 0.027,
"countTx": 11,
"perTx": 0.1,
"fee": 144.14,
"padding": 0,
"paddingPercentage": 0,
"standardCost": 144.14195,
"standardRate": 0.027,
"standardPerTx": 0.1,
"availableOptimizations": [
{
"level": 2,
"optimizedCategory": "Commercial/Corporate/Purchasing Level II",
"optimizedRate": 0.025,
"optimizedPerTx": 0.1,
"optimizedCost": 133.54625,
"savings": 10.5957
},
{
"level": 3,
"optimizedCategory": "Commercial/Corporate/Purchasing Level III",
"optimizedRate": 0.019,
"optimizedPerTx": 0.1,
"optimizedCost": 101.75915,
"savings": 42.3828
}
],
"maxOptimizedCategory": "Commercial/Corporate/Purchasing Level III",
"maxOptimizedRate": 0.019,
"maxOptimizedPerTx": 0.1,
"maxOptimizedCost": 101.75915,
"maxOptimizedSavings": 42.3828
},
{
"term": "MC-WORLD ELITE MERIT I",
"normalized": "Merit I - World Elite ",
"network": "Mastercard",
"amount": 1671.82,
"rate": 0.026,
"countTx": 7,
"perTx": 0.1,
"fee": 44.17,
"padding": 0,
"paddingPercentage": 0,
"standardCost": 44.16732,
"standardRate": 0.026,
"standardPerTx": 0.1,
"availableOptimizations": [
{
"level": 3,
"optimizedCategory": "MC World Elite Merit 1 (3D Secure)",
"optimizedRate": 0.022,
"optimizedPerTx": 0.1,
"optimizedCost": 37.48004,
"savings": 6.68728
}
],
"maxOptimizedCategory": "MC World Elite Merit 1 (3D Secure)",
"maxOptimizedRate": 0.022,
"maxOptimizedPerTx": 0.1,
"maxOptimizedCost": 37.48004,
"maxOptimizedSavings": 6.68728
},
{
"term": "VI-EIRF NON CPS ALL OTHER (PP)",
"normalized": "Electronic Interchange Reimbursement Fee (EIRF) - Exempt",
"network": "Visa",
"amount": 1825,
"rate": 0.018,
"countTx": 5,
"perTx": 0.2,
"fee": 33.85,
"padding": 0,
"paddingPercentage": 0,
"standardCost": 33.85,
"standardRate": 0.018,
"standardPerTx": 0.2,
"availableOptimizations": [
{
"level": 2,
"optimizedCategory": "CPS/Card Not Present, Prepaid - Exempt (CNP)",
"optimizedRate": 0.0175,
"optimizedPerTx": 0.2,
"optimizedCost": 32.9375,
"savings": 0.9125
}
],
"maxOptimizedCategory": "CPS/Card Not Present, Prepaid - Exempt (CNP)",
"maxOptimizedRate": 0.0175,
"maxOptimizedPerTx": 0.2,
"maxOptimizedCost": 32.9375,
"maxOptimizedSavings": 0.9125
},
{
"term": "MC-COM DATA RATE I FLT NFUEL",
"normalized": "Data Rate I - Large Market Credit | Commercial Data Rate I Large Market",
"network": "Mastercard",
"amount": 1118.8,
"rate": 0.027,
"countTx": 8,
"perTx": 0.1,
"fee": 31.01,
"padding": 0,
"paddingPercentage": 0,
"standardCost": 31.0076,
"standardRate": 0.027,
"standardPerTx": 0.1,
"availableOptimizations": [
{
"level": 2,
"optimizedCategory": "Data Rate II - Large Market Credit | Commercial Data Rate II Large Market",
"optimizedRate": 0.025,
"optimizedPerTx": 0.1,
"optimizedCost": 28.77,
"savings": 2.2376
},
{
"level": 3,
"optimizedCategory": "Data Rate III - Large Market Credit | Commercial Data Rate III Large Market",
"optimizedRate": 0.019,
"optimizedPerTx": 0.1,
"optimizedCost": 22.0572,
"savings": 8.9504
}
],
"maxOptimizedCategory": "Data Rate III - Large Market Credit | Commercial Data Rate III Large Market",
"maxOptimizedRate": 0.019,
"maxOptimizedPerTx": 0.1,
"maxOptimizedCost": 22.0572,
"maxOptimizedSavings": 8.9504
},
{
"term": "MC-DOMESTIC MERIT I (DB)",
"normalized": "Merit I - Debit Rate | Non-Regulated Consumer Debit",
"network": "Mastercard",
"amount": 1067.32,
"rate": 0.0165,
"countTx": 9,
"perTx": 0.15,
"fee": 18.96,
"padding": 0,
"paddingPercentage": 0,
"standardCost": 18.96078,
"standardRate": 0.0165,
"standardPerTx": 0.15,
"availableOptimizations": [
{
"level": 3,
"optimizedCategory": "MC Merit 1 Debit (3D Secure)",
"optimizedRate": 0.011,
"optimizedPerTx": 0.15,
"optimizedCost": 13.09052,
"savings": 5.87026
}
],
"maxOptimizedCategory": "MC Merit 1 Debit (3D Secure)",
"maxOptimizedRate": 0.011,
"maxOptimizedPerTx": 0.15,
"maxOptimizedCost": 13.09052,
"maxOptimizedSavings": 5.87026
},
{
"term": "MC-BUS LEVEL 2 DATA RATE I",
"normalized": "Data Rate I Level 2 Business World | Commercial Data Rate I Business Level 2",
"network": "Mastercard",
"amount": 550,
"rate": 0.028,
"countTx": 1,
"perTx": 0.1,
"fee": 15.5,
"padding": 0,
"paddingPercentage": 0,
"standardCost": 15.5,
"standardRate": 0.028,
"standardPerTx": 0.1,
"availableOptimizations": [
{
"level": 2,
"optimizedCategory": "Data Rate II Level 2 Business World | Commercial Data Rate II L2",
"optimizedRate": 0.0205,
"optimizedPerTx": 0.1,
"optimizedCost": 11.375,
"savings": 4.125
}
],
"maxOptimizedCategory": "Data Rate II Level 2 Business World | Commercial Data Rate II L2",
"maxOptimizedRate": 0.0205,
"maxOptimizedPerTx": 0.1,
"maxOptimizedCost": 11.375,
"maxOptimizedSavings": 4.125
},
{
"term": "VI-EIRF NON CPS ALL OTHER (DB)",
"normalized": "Electronic Interchange Reimbursement Fee (EIRF), Debit - Exempt",
"network": "Visa",
"amount": 558.22,
"rate": 0.0175,
"countTx": 5,
"perTx": 0.2,
"fee": 10.77,
"padding": 0,
"paddingPercentage": 0,
"standardCost": 10.76885,
"standardRate": 0.0175,
"standardPerTx": 0.2,
"availableOptimizations": [
{
"level": 2,
"optimizedCategory": "CPS/Card Not Present, Debit - Exempt (CNP)",
"optimizedRate": 0.0165,
"optimizedPerTx": 0.15,
"optimizedCost": 9.96063,
"savings": 0.80822
}
],
"maxOptimizedCategory": "CPS/Card Not Present, Debit - Exempt (CNP)",
"maxOptimizedRate": 0.0165,
"maxOptimizedPerTx": 0.15,
"maxOptimizedCost": 9.96063,
"maxOptimizedSavings": 0.80822
},
{
"term": "VI-US BUS TR4 PRD 1",
"normalized": "Business Product 1 - Tier 4",
"network": "Visa",
"amount": 254.5,
"rate": 0.0295,
"countTx": 2,
"perTx": 0.1,
"fee": 7.71,
"padding": 0,
"paddingPercentage": 0,
"standardCost": 7.70775,
"standardRate": 0.0295,
"standardPerTx": 0.1,
"availableOptimizations": [
{
"level": 2,
"optimizedCategory": "Business Level II - Tier 4",
"optimizedRate": 0.022,
"optimizedPerTx": 0.1,
"optimizedCost": 5.799,
"savings": 1.90875
}
],
"maxOptimizedCategory": "Business Level II - Tier 4",
"maxOptimizedRate": 0.022,
"maxOptimizedPerTx": 0.1,
"maxOptimizedCost": 5.799,
"maxOptimizedSavings": 1.90875
},
{
"term": "VI-NON QUAL BUS CR",
"normalized": "Business Non-Qualified - Tier 1",
"network": "Visa",
"amount": 200,
"rate": 0.0315,
"countTx": 1,
"perTx": 0.2,
"fee": 6.5,
"padding": 0,
"paddingPercentage": 0,
"standardCost": 6.5,
"standardRate": 0.0315,
"standardPerTx": 0.2,
"availableOptimizations": [
{
"level": 2,
"optimizedCategory": "Business Level II - Tier 1",
"optimizedRate": 0.019,
"optimizedPerTx": 0.1,
"optimizedCost": 3.9,
"savings": 2.6
}
],
"maxOptimizedCategory": "Business Level II - Tier 1",
"maxOptimizedRate": 0.019,
"maxOptimizedPerTx": 0.1,
"maxOptimizedCost": 3.9,
"maxOptimizedSavings": 2.6
},
{
"term": "MC-ENHANCED MERIT I",
"normalized": "Merit I - Enhanced ",
"network": "Mastercard",
"amount": 130,
"rate": 0.021,
"countTx": 1,
"perTx": 0.1,
"fee": 2.83,
"padding": 0,
"paddingPercentage": 0,
"standardCost": 2.83,
"standardRate": 0.021,
"standardPerTx": 0.1,
"availableOptimizations": [
{
"level": 3,
"optimizedCategory": "MC Enhanced Value Merit 1 (3D Secure)",
"optimizedRate": 0.017,
"optimizedPerTx": 0.1,
"optimizedCost": 2.31,
"savings": 0.52
}
],
"maxOptimizedCategory": "MC Enhanced Value Merit 1 (3D Secure)",
"maxOptimizedRate": 0.017,
"maxOptimizedPerTx": 0.1,
"maxOptimizedCost": 2.31,
"maxOptimizedSavings": 0.52
}
]
},
"Card Brands Dues and Assessments": [
{
"term": "MASTERCARD ASSESSMENT FEE",
"normalized": "Assessment %",
"network": "Mastercard",
"amount": 20526.39,
"countTx": 1,
"rate": 0.0013,
"perTx": 0,
"fee": 26.68,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "MC LICENSE VOLUME FEE",
"normalized": "MC Acquirer License Fee",
"network": "Mastercard",
"amount": 20526.39,
"countTx": 1,
"rate": 6.1e-5,
"perTx": 0,
"fee": 1.25,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "MC NETWORK ACCESS AUTH FEE",
"normalized": "Assessment PI (NABU Fee)",
"network": "Mastercard",
"amount": 0,
"countTx": 416,
"rate": 0,
"perTx": 0.0195,
"fee": 8.11,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "VISA ASSESSMENT FEE CR",
"normalized": "Assessments %",
"network": "Visa",
"amount": 22542.51,
"countTx": 1,
"rate": 0.0013,
"perTx": 0,
"fee": 29.31,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "VISA ASSESSMENT FEE DB",
"normalized": "Visa Debit Assessments",
"network": "Visa",
"amount": 25568.33,
"countTx": 1,
"rate": 0.0013,
"perTx": 0,
"fee": 33.24,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "ACQUIRER PROCESSOR FEE CREDIT",
"normalized": null,
"network": null,
"amount": 0,
"countTx": 448,
"rate": 0,
"perTx": 0.0195,
"fee": 8.74,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "ACQUIRER PROCESSOR FEE DB/PP",
"normalized": null,
"network": null,
"amount": 0,
"countTx": 573,
"rate": 0,
"perTx": 0.0155,
"fee": 8.88,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "DISCOVER ASSESSMENT FEE",
"normalized": "Assessment %",
"network": "Discover",
"amount": 3762.14,
"countTx": 1,
"rate": 0.0013,
"perTx": 0,
"fee": 4.89,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "DISCOVER DATA USAGE FEE",
"normalized": "Assessment PI (Network Authorization Fee)† ",
"network": "Discover",
"amount": 0,
"countTx": 64,
"rate": 0,
"perTx": 0.0195,
"fee": 1.25,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "NETWORK AUTHORIZATION FEE",
"normalized": null,
"network": null,
"amount": 0,
"countTx": 64,
"rate": 0,
"perTx": 0.0025,
"fee": 0.16,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "AMEX NETWORK FEE",
"normalized": "Amex Network Fees",
"network": "AMEX",
"amount": 13237.43,
"countTx": 1,
"rate": 0.0015,
"perTx": 0,
"fee": 19.86,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "VI BASE II SYSTEM FILE FEE",
"normalized": "Clearing Access",
"network": "Visa",
"amount": 0,
"countTx": 990,
"rate": 0,
"perTx": 0.0018,
"fee": 1.78,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "VI BASE II CR VOUCHER FEE CR",
"normalized": null,
"network": null,
"amount": 0,
"countTx": 1,
"rate": 0,
"perTx": 0.0195,
"fee": 0.02,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "VISA INTL SERVICE FEE - BASE",
"normalized": null,
"network": null,
"amount": 797.21,
"countTx": 28,
"rate": 0,
"perTx": 0,
"fee": 6.38,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "US CROSS BORDER FEE",
"normalized": null,
"network": null,
"amount": 518.66,
"countTx": 14,
"rate": 0,
"perTx": 0,
"fee": 3.11,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "VI TRANSACTION INTEGRITY FEE",
"normalized": "Visa Transaction Integrity Fee (TIF)",
"network": "Visa",
"amount": 0,
"countTx": 2,
"rate": 0,
"perTx": 0.1,
"fee": 0.2,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
}
],
"Total Card Brands Dues and Assessments padding": 0,
"Processor-Specific Fees": [
{
"term": "MASTERCARD SALES DISCOUNT",
"category": "Processing fee",
"network": "Processor",
"amount": 15250.57,
"rate": 0.0015,
"countTx": 1,
"perTx": 0,
"fee": 22.88
},
{
"term": "MASTERCARD DEBIT SALES DISC",
"category": "Processing fee",
"network": "Processor",
"amount": 5275.82,
"rate": 0.0015,
"countTx": 1,
"perTx": 0,
"fee": 7.91
},
{
"term": "MASTERCARD AUTH FEE",
"category": "Processing fee",
"network": "Processor",
"amount": 0,
"rate": 0,
"countTx": 435,
"perTx": 0.05,
"fee": 21.75
},
{
"term": "VISA DEBIT SALES DISCOUNT",
"category": "Processing fee",
"network": "Processor",
"amount": 25568.33,
"rate": 0.0015,
"countTx": 1,
"perTx": 0,
"fee": 38.35
},
{
"term": "VISA SALES DISCOUNT",
"category": "Processing fee",
"network": "Processor",
"amount": 22542.51,
"rate": 0.0015,
"countTx": 1,
"perTx": 0,
"fee": 33.81
},
{
"term": "VISA AUTH FEE",
"category": "Processing fee",
"network": "Processor",
"amount": 0,
"rate": 0,
"countTx": 1031,
"perTx": 0.05,
"fee": 51.55
},
{
"term": "DISCOVER SALES DISCOUNT",
"category": "Processing fee",
"network": "Processor",
"amount": 3609.83,
"rate": 0.0015,
"countTx": 1,
"perTx": 0,
"fee": 5.41
},
{
"term": "DISCOVER DEBIT SALES DISCOUNT",
"category": "Processing fee",
"network": "Processor",
"amount": 152.31,
"rate": 0.0015,
"countTx": 1,
"perTx": 0,
"fee": 0.23
},
{
"term": "DISCOVER AUTH FEE",
"category": "Processing fee",
"network": "Processor",
"amount": 0,
"rate": 0,
"countTx": 64,
"perTx": 0.05,
"fee": 3.2
},
{
"term": "AMEX AUTH FEE",
"category": "Processing fee",
"network": "Processor",
"amount": 0,
"rate": 0,
"countTx": 242,
"perTx": 0.05,
"fee": 12.1
},
{
"term": "AMEX SALES DISCOUNT",
"category": "Processing fee",
"network": "Processor",
"amount": 13237.43,
"rate": 0.0025,
"countTx": 1,
"perTx": 0,
"fee": 33.09
},
{
"term": "BATCH SETTLEMENT FEE",
"category": "Batch",
"network": "Processor",
"amount": 0,
"rate": 0,
"countTx": 24,
"perTx": 0.05,
"fee": 1.2
},
{
"term": "REGULATORY PRODUCT FEE",
"category": "Service",
"network": "Processor",
"amount": 0,
"rate": 0,
"countTx": 1,
"perTx": 0,
"fee": 3.5
},
{
"term": "MONTHLY STATEMENT FEE",
"category": "Service",
"network": "Processor",
"amount": 0,
"rate": 0,
"countTx": 1,
"perTx": 0,
"fee": 10
}
],
"Unknown Fees": [
{
"term": "MASTERCARD KILOBYTE TRANS FEE",
"normalized": null,
"network": null,
"amount": 0,
"rate": 0,
"countTx": 213,
"perTx": 0.035,
"fee": 7.46
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
2.8 Get FeeNav Excel (id) - GET
requires authentication
Returns the completed analysis in the Fee Navigator standard Excel .xlsx format. It will include multiple tabs, based on the options selected.
Example request:
curl --request GET \
--get "https://developer.feenavigator.com/api/v1/analysis/download/excel/"xK1v5bvy"?analysis=1&summary=0&padding=1&optimization=1" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://developer.feenavigator.com/api/v1/analysis/download/excel/"xK1v5bvy""
);
const params = {
"analysis": "1",
"summary": "0",
"padding": "1",
"optimization": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/analysis/download/excel/"xK1v5bvy"';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'analysis' => '1',
'summary' => '0',
'padding' => '1',
'optimization' => '1',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (404):
{
"errors": [
"Statement not found"
]
}
Example response (500):
{
"errors": [
"Internal Server Error -- We had a problem with our server. Try again later."
]
}
Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
2.9 Get Proposal PDF (id) - GET
requires authentication
Returns the completed proposal in PDF format. That is, once generated in Word/Excel, it will be converted to PDF and returned.
Example request:
curl --request GET \
--get "https://developer.feenavigator.com/api/v1/get-proposal-pdf/1755002352774017576" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://developer.feenavigator.com/api/v1/get-proposal-pdf/1755002352774017576"
);
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/get-proposal-pdf/1755002352774017576';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (404):
{
"errors": [
"Statement not found"
]
}
Example response (500):
{
"errors": [
"Internal Server Error -- We had a problem with our server. Try again later."
]
}
Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
2.10 Get Proposal - GET
requires authentication
Returns the completed proposal in its source template format - either Word or Excel.
Example request:
curl --request GET \
--get "https://developer.feenavigator.com/api/v1/get-proposal/1755002352774017576" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://developer.feenavigator.com/api/v1/get-proposal/1755002352774017576"
);
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/get-proposal/1755002352774017576';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (404):
{
"errors": [
"Statement not found"
]
}
Example response (500):
{
"errors": [
"Internal Server Error -- We had a problem with our server. Try again later."
]
}
Example response (500):
Show headers
cache-control: no-cache, private
content-type: application/json
{
"message": "Server Error"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
2.11 Update Proposal (id) - POST
requires authentication
ID | Name | Description |
---|---|---|
95 | Visa Credit discRateProposed | Discount Rate for Visa Credit (Proposed) |
96 | Visa Credit transactionFeeProposed | Per transaction cost for Visa Credit (Proposed) |
97 | Visa Debit discRateProposed | Discount Rate for Visa Debit (Proposed) |
98 | Visa Debit transactionFeeProposed | Per transaction cost for Visa Debit (Proposed) |
99 | Visa Auth transactionFeeProposed | Per authorization cost for Visa (Proposed) |
100 | Mastercard Credit discRateProposed | Discount Rate for Mastercard Credit (Proposed) |
101 | Mastercard Credit transactionFeeProposed | Per transaction cost for Mastercard Credit (Proposed) |
102 | Mastercard Debit discRateProposed | Discount Rate for Mastercard Debit (Proposed) |
103 | Mastercard Debit transactionFeeProposed | Per transaction cost for Mastercard Debit (Proposed) |
104 | Mastercard Auth transactionFeeProposed | Per authorization cost for Mastercard (Proposed) |
105 | Discover Credit discRateProposed | Discount Rate for Discover Credit (Proposed) |
106 | Discover Credit transactionFeeProposed | Per transaction cost for Discover Credit (Proposed) |
107 | Discover Debit discRateProposed | Discount Rate for Discover Debit (Proposed) |
108 | Discover Debit transactionFeeProposed | Per transaction cost for Discover Debit (Proposed) |
109 | Discover Auth transactionFeeProposed | Per authorization cost for Discover (Proposed) |
110 | American Express discRateProposed | Discount Rate for AMEX Credit (Proposed) |
111 | American Express transactionFeeProposed | Per transaction cost for AMEX Credit (Proposed) |
112 | American Express Auth transactionFeeProposed | Per authorization cost for AMEX (Proposed) |
113 | PIN Debit discRateProposed | Discount Rate for PIN Debit (Proposed) |
114 | PIN Debit transactionFeeProposed | Discount Rate for Discover Debit (Proposed) |
115 | EBT transactionFeeProposed | Discount Rate for EBT (Proposed) |
116 | Fleet Cards / Other discRateProposed | |
117 | Fleet Cards / Other transactionFeeProposed | |
122 | Interchange & downgrades Proposed | Interchange & Amex Program (Proposed) |
123 | Interchange optimization Proposed | "Interchange optimization, if available" |
125 | AVS transactionFee Proposed | Cost Per AVS transaction (Proposed) |
126 | PCI compliance Proposed | PCI Compliance Fee (Proposed) |
127 | Non-PCI compliance Proposed | PCI Non-Complince Fee (Proposed) |
128 | Batch transactionFee Proposed | Per batch transaction cost (Proposed) |
129 | Monthly Proposed | Service/Custom fees (Proposed) |
151 | Other fees Proposed | |
155 | Dues & Assessments Proposed | Dues & Assessments (Proposed) |
162 | Chargeback Proposed | Chargeback (Proposed) |
166 | Surcharging Proposed | Surcharging (Proposed) |
169 | Total Volume Proposed | Volume amount for all card types (Proposed) |
Update proposed data points for a statement's proposal.
If the plan is changed after setting the datapoints, all the custom datapoints entered will be overwritten.
Example request:
curl --request POST \
"https://developer.feenavigator.com/api/v1/update-proposal/x236td5" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"dataPoints\": \"{\\\"95\\\":\\\"0.01990\\\",\\\"162\\\":\\\"30\\\"}\"
}"
const url = new URL(
"https://developer.feenavigator.com/api/v1/update-proposal/x236td5"
);
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"dataPoints": "{\"95\":\"0.01990\",\"162\":\"30\"}"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/update-proposal/x236td5';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'dataPoints' => '{"95":"0.01990","162":"30"}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"status": "success",
"affectedDataPoints": [
{
"id": 78,
"name": "Potential Savings",
"type": "number",
"decimals": 2,
"isCorrect": null,
"value": -21569.14,
"prettyValue": null
},
{
"id": 121,
"name": "Processing Fees Proposed",
"type": "number",
"decimals": 2,
"isCorrect": null,
"value": 2233.82,
"prettyValue": null
},
{
"id": 130,
"name": "Total Fees Proposed",
"type": "number",
"decimals": 2,
"isCorrect": null,
"value": 2884.62,
"prettyValue": null
},
{
"id": 131,
"name": "Effective Rate Proposed",
"type": "percentage",
"decimals": 2,
"isCorrect": null,
"value": 0.0844,
"prettyValue": null
},
{
"id": 132,
"name": "Monthly Savings",
"type": "number",
"decimals": 2,
"isCorrect": null,
"value": -1797.43,
"prettyValue": null
},
{
"id": 133,
"name": "3 Year Savings",
"type": "number",
"decimals": 2,
"isCorrect": null,
"value": -64707.42,
"prettyValue": null
},
{
"id": 134,
"name": "Pass-Through Fees Proposed",
"type": "number",
"decimals": 2,
"isCorrect": null,
"value": 650.8,
"prettyValue": null
},
{
"id": 136,
"name": "Percent Processing Fees Proposed",
"type": "percentage",
"decimals": 2,
"isCorrect": null,
"value": 0.0654,
"prettyValue": null
},
{
"id": 138,
"name": "Percent Pass-Through Fees Proposed",
"type": "percentage",
"decimals": 2,
"isCorrect": null,
"value": 0.019,
"prettyValue": null
},
{
"id": 80,
"name": "Markup",
"type": "number",
"decimals": 2,
"isCorrect": null,
"value": 0.07,
"prettyValue": null
},
{
"id": 142,
"name": "Margin Proposed Company",
"type": "number",
"decimals": 2,
"isCorrect": null,
"value": 1123.3,
"prettyValue": null
},
{
"id": 146,
"name": "Company Residual Proposed",
"type": "number",
"decimals": 2,
"isCorrect": null,
"value": 561.65,
"prettyValue": null
},
{
"id": 147,
"name": "Agent Residual Proposed",
"type": "number",
"decimals": 2,
"isCorrect": null,
"value": 561.65,
"prettyValue": null
},
{
"id": 150,
"name": "Processor Cost Proposed",
"type": "number",
"decimals": 2,
"isCorrect": null,
"value": 464.14,
"prettyValue": null
},
{
"id": 152,
"name": "Margin Proposed Agent",
"type": "number",
"decimals": 2,
"isCorrect": null,
"value": 1123.3,
"prettyValue": null
}
]
}
Example response (404):
{
"errors": [
"Statement not found."
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
2.12 New Proposal - GET
requires authentication
Generates a new Proposal for existing analysed statement based on the specified plan.
Example request:
curl --request GET \
--get "https://developer.feenavigator.com/api/v1/new-proposal/xYz23Pq?idPlan=123" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://developer.feenavigator.com/api/v1/new-proposal/xYz23Pq"
);
const params = {
"idPlan": "123",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/new-proposal/xYz23Pq';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'idPlan' => '123',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"idStatement": "ccYrRdByO",
"idCase": "_NNN_",
"idMerchant": "_UUID_",
"MerchantProposalLink": "https://periscope-ui.pro.feenavigator.com/#/merchant-proposal/_UUID_",
"AnalysisEditLink": "https://feenavigator.com/compass/#/upload/case/_NNNNN_",
"datapoints": {
"merchant": {
"id": "_UUID_",
"company_id": 1234,
"merchant_name": "SOME MERCHANT NAME",
"first_name": "John",
"last_name": "Smith",
"email": null,
"mobile": null,
"zip": "90670-5133",
"industry": 5713,
"crm_stage_id": null,
"created_at": "2023-01-17T07:27:22.000000Z",
"updated_at": "2023-01-17T07:27:22.000000Z"
},
"MerchantProposalLink": "https://periscope-ui.pro.feenavigator.com/#/merchant-proposal/_UUID_",
"AnalysisEditLink": "https://feenavigator.com/compass/#/upload/case/_NNNNN_",
"EBT discRate": null,
"Pricing Type": "IC Plus",
"Merchant Name": "SOME MERCHANT NAME",
"Merchant Address": "1234 BEST AVE\r\nSANTA FE SPGS CA 90670-1234",
"Merchant Number": "56220000005223",
"Statement Period Start": "10/01/22",
"Statement Period End": "10/31/22",
"Third Party Transactions": null,
"Visa Credit amount": 430446.3,
"Visa Credit discRate": 0.0055,
"Visa Credit nrTransactions": 88,
"Visa Credit transactionFee": null,
"Visa Credit discRateProposed": 0.0121,
"Visa Credit transactionFeeProposed": 0.18,
"Visa Debit amount": null,
"Visa Debit discRate": null,
"Visa Debit nrTransactions": null,
"Visa Debit transactionFee": null,
"Visa Debit discRateProposed": null,
"Visa Debit transactionFeeProposed": null,
"Visa Auth nrTransactions": null,
"Visa Auth transactionFee": null,
"Visa Auth transactionFeeProposed": null,
"Mastercard Credit amount": 39225.75,
"Mastercard Credit discRate": 0.0055,
"Mastercard Credit nrTransactions": 18,
"Mastercard Credit transactionFee": null,
"Mastercard Credit discRateProposed": 0.0121,
"Mastercard Credit transactionFeeProposed": 0.18,
"Mastercard Debit amount": null,
"Mastercard Debit discRate": null,
"Mastercard Debit nrTransactions": null,
"Mastercard Debit transactionFee": null,
"Mastercard Debit discRateProposed": null,
"Mastercard Debit transactionFeeProposed": null,
"Mastercard Auth nrTransactions": null,
"Mastercard Auth transactionFee": null,
"Mastercard Auth transactionFeeProposed": null,
"Discover Credit amount": 2171.6,
"Discover Credit discRate": 0.0055,
"Discover Credit nrTransactions": 1,
"Discover Credit transactionFee": null,
"Discover Credit discRateProposed": 0.0121,
"Discover Credit transactionFeeProposed": 0.18,
"Discover Debit amount": null,
"Discover Debit discRate": null,
"Discover Debit nrTransactions": null,
"Discover Debit transactionFee": null,
"Discover Debit discRateProposed": null,
"Discover Debit transactionFeeProposed": null,
"Discover Auth nrTransactions": null,
"Discover Auth transactionFee": null,
"Discover Auth transactionFeeProposed": null,
"American Express amount": 47138.3,
"American Express discRate": 0.0055,
"American Express nrTransactions": 16,
"American Express transactionFee": null,
"American Express discRateProposed": 0.0121,
"American Express transactionFeeProposed": 0.18,
"American Express Auth nrTransactions": null,
"American Express Auth transactionFee": null,
"American Express Auth transactionFeeProposed": null,
"PIN Debit amount": null,
"PIN Debit discRate": null,
"PIN Debit nrTransactions": null,
"PIN Debit transactionFee": null,
"PIN Debit discRateProposed": null,
"PIN Debit transactionFeeProposed": null,
"EBT amount": null,
"EBT nrTransactions": null,
"EBT transactionFee": null,
"EBT transactionFeeProposed": null,
"Fleet Cards / Other amount": null,
"Fleet Cards / Other discRate": null,
"Fleet Cards / Other nrTransactions": null,
"Fleet Cards / Other transactionFee": null,
"Fleet Cards / Other discRateProposed": null,
"Fleet Cards / Other transactionFeeProposed": null,
"Interchange & downgrades": 12407,
"Dues & Assessments": 747.84,
"PIN debit interchange": null,
"AVS nrTransactions": null,
"AVS transactionFee": null,
"PCI compliance": 3,
"Non-PCI compliance": null,
"Batch nrTransactions": 21,
"Batch transactionFee": 0.25,
"Monthly": 153.44,
"Chargeback": null,
"Surcharging": null,
"Total Volume": 518981.95,
"Total Fees": 16737.1,
"Industry": "5713",
"Representative First Name": null,
"Representative Last Name": null,
"Representative Phone": null,
"Representative Email": null,
"Card brands / other": null,
"Processing Fees": 3582.26,
"Pass-Through Fees": 13154.84,
"Other fees": 566.17,
"Calculated Other Fees": null,
"Total Calculated Fees": 16737.1,
"Monthly Fees": 16737.1,
"1-Year Fees": 200845.2,
"3-Year Fees": 602535.6,
"Effective Rate": 0.0322,
"Avoidable Fees": null,
"Potential Savings": 7598.12,
"Statement Period": "Oct 2022",
"Total nrTransactions": 123,
"Average Ticket": 4219.37,
"Processing Fees Proposed": 6873.24,
"Interchange & downgrades Proposed": 12406.99,
"Interchange optimization Proposed": -3924.15,
"PIN debit interchange Proposed": null,
"AVS transactionFee Proposed": null,
"PCI compliance Proposed": null,
"Non-PCI compliance Proposed": null,
"Batch transactionFee Proposed": 0.25,
"Monthly Proposed": null,
"Chargeback Proposed": null,
"Other fees Proposed": 566.17,
"Total Fees Proposed": 16103.92,
"Effective Rate Proposed": 0.031,
"Monthly Savings": 633.18,
"3 Year Savings": 22794.37,
"Pass-Through Fees Proposed": 9230.68,
"Percent Processing Fees": 0.0069,
"Percent Processing Fees Proposed": 0.0132,
"Percent Pass-Through Fees": 0.0253,
"Percent Pass-Through Fees Proposed": 0.0178,
"Calculated Other Fees Proposed": null,
"Percent Other Fees": null,
"Percent Other Fees Proposed": null,
"Calculated Total Volume": 518981.95,
"Card brands / other Proposed": null,
"Dues & Assessments Proposed": 747.84,
"Surcharging Proposed": null,
"Tiers Proposed": null,
"Custom Service Proposed": null,
"Other Processing Fees": null,
"Margin Proposed Company": 4999.81,
"Company Residual Proposed": 2499.91,
"Agent Residual Proposed": 2499.91,
"Potential Margin Company": 6166.42,
"Potential Margin Agent": 6166.42,
"Processor Cost Proposed": 1302.01,
"Margin Proposed Agent": 4999.81,
"Pass-through Fees To Substract": 0,
"Interchange": [
{
"term": "VS Non-Qual Purchasing Credit",
"normalized": null,
"network": null,
"amount": 5299.95,
"countTx": 1,
"rate": 0.0295,
"perTx": 0.1,
"fee": 156.45,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "VS EIRF Debit",
"normalized": "Electronic Interchange Reimbursement Fee (EIRF), Debit - Exempt",
"network": "Visa",
"amount": 1387.22,
"countTx": 1,
"rate": 0.0175,
"perTx": 0.2,
"fee": 24.48,
"standardRate": 0.0175,
"standardPerTx": 0.2,
"standardFee": 24.47635,
"padding": 0
},
{
"term": "VS Non Qual Cons Cr",
"normalized": "Non-Qualified Consumer Credit - Signature Preferred (Visa Infinite)",
"network": "Visa",
"amount": 21581.19,
"countTx": 9,
"rate": 0.0315,
"perTx": 0.1,
"fee": 680.71,
"standardRate": 0.0315,
"standardPerTx": 0.1,
"standardFee": 680.707485,
"padding": 0
},
{
"term": "VS Non Qual Bus Cr",
"normalized": "Business Non-Qualified - Tier 1",
"network": "Visa",
"amount": 298378.08,
"countTx": 28,
"rate": 0.0315,
"perTx": 0.2,
"fee": 9404.52,
"standardRate": 0.0315,
"standardPerTx": 0.2,
"standardFee": 9404.50952,
"padding": 0.01048
},
{
"term": "VS US Regulated Debit",
"normalized": "CPS/Retail, Debit - Regulated (CP)",
"network": "Visa",
"amount": 105031.36,
"countTx": 50,
"rate": 0.0005,
"perTx": 0.22,
"fee": 63.52,
"standardRate": 0.0005,
"standardPerTx": 0.22,
"standardFee": 63.51568,
"padding": 0
},
{
"term": "MC World Elite Key Entered",
"normalized": "Key-entered - World Elite",
"network": "Mastercard",
"amount": 5541.63,
"countTx": 2,
"rate": 0.026,
"perTx": 0.1,
"fee": 144.29,
"standardRate": 0.026,
"standardPerTx": 0.1,
"standardFee": 144.28238,
"padding": 0
},
{
"term": "MC Business Level 5 Data Rate I",
"normalized": "Data Rate I Level 5 | Commercial Data Rate I Business Level 5",
"network": "Mastercard",
"amount": 25357.9,
"countTx": 11,
"rate": 0.03,
"perTx": 0.1,
"fee": 761.84,
"standardRate": 0.03,
"standardPerTx": 0.1,
"standardFee": 761.837,
"padding": 0
},
{
"term": "MC US Cons Regulated POS Debit w/Fraud Adj",
"normalized": "Regulated Purchases POS Debit with Fraud Adjustment - Debit Rate | Universal Regulated Debit Fraud Adj",
"network": "Mastercard",
"amount": 8326.22,
"countTx": 5,
"rate": 0.0005,
"perTx": 0.22,
"fee": 5.27,
"standardRate": 0.0005,
"standardPerTx": 0.22,
"standardFee": 5.26311,
"padding": 0
},
{
"term": "AM Retail Tier 2",
"normalized": "Retail Tier 2",
"network": "AMEX",
"amount": 2643.42,
"countTx": 4,
"rate": 0.0195,
"perTx": 0.1,
"fee": 51.94,
"standardRate": 0.0195,
"standardPerTx": 0.1,
"standardFee": 51.94669,
"padding": 0
},
{
"term": "AM Retail Tier 3",
"normalized": "Retail Tier 3",
"network": "AMEX",
"amount": 44502.81,
"countTx": 13,
"rate": 0.024,
"perTx": 0.1,
"fee": 1069.36,
"standardRate": 0.024,
"standardPerTx": 0.1,
"standardFee": 1069.36744,
"padding": 0
},
{
"term": "DS PSL Key Entry PR",
"normalized": "PSL Key Entry - Premium",
"network": "Discover",
"amount": 2171.6,
"countTx": 1,
"rate": 0.0205,
"perTx": 0.1,
"fee": 44.62,
"standardRate": 0.0205,
"standardPerTx": 0.1,
"standardFee": 44.6178,
"padding": 0
}
],
"Total Interchange padding": 0.01048,
"Interchange optimization": {
"totalSavings": 3924.14747,
"items": [
{
"type": "Other",
"term": "VS Non Qual Bus Cr",
"normalized": "Business Non-Qualified - Tier 1",
"network": "Visa",
"amount": 298378.08,
"rate": 0.0315,
"countTx": 28,
"perTx": 0.2,
"fee": 9404.52,
"padding": 0.01048,
"paddingPercentage": 1.114357776793116e-6,
"standardCost": 9404.50952,
"standardRate": 0.0315,
"standardPerTx": 0.2,
"availableOptimizations": [
{
"level": 2,
"optimizedCategory": "Business Level II - Tier 1",
"optimizedRate": 0.019,
"optimizedPerTx": 0.1,
"optimizedCost": 5671.98352,
"savings": 3732.526
}
],
"maxOptimizedCategory": "Business Level II - Tier 1",
"maxOptimizedRate": 0.019,
"maxOptimizedPerTx": 0.1,
"maxOptimizedCost": 5671.98352,
"maxOptimizedSavings": 3732.526
},
{
"type": "Other",
"term": "MC Business Level 5 Data Rate I",
"normalized": "Data Rate I Level 5 | Commercial Data Rate I Business Level 5",
"network": "Mastercard",
"amount": 25357.9,
"rate": 0.03,
"countTx": 11,
"perTx": 0.1,
"fee": 761.84,
"padding": 0,
"paddingPercentage": 0,
"standardCost": 761.837,
"standardRate": 0.03,
"standardPerTx": 0.1,
"availableOptimizations": [
{
"level": 2,
"optimizedCategory": "Data Rate II Level 5 | Commercial Data Rate II L5",
"optimizedRate": 0.0225,
"optimizedPerTx": 0.1,
"optimizedCost": 571.65275,
"savings": 190.18425
}
],
"maxOptimizedCategory": "Data Rate II Level 5 | Commercial Data Rate II L5",
"maxOptimizedRate": 0.0225,
"maxOptimizedPerTx": 0.1,
"maxOptimizedCost": 571.65275,
"maxOptimizedSavings": 190.18425
},
{
"type": "Other",
"term": "VS EIRF Debit",
"normalized": "Electronic Interchange Reimbursement Fee (EIRF), Debit - Exempt",
"network": "Visa",
"amount": 1387.22,
"rate": 0.0175,
"countTx": 1,
"perTx": 0.2,
"fee": 24.48,
"padding": 0,
"paddingPercentage": 0,
"standardCost": 24.47635,
"standardRate": 0.0175,
"standardPerTx": 0.2,
"availableOptimizations": [
{
"level": 2,
"optimizedCategory": "CPS/Card Not Present, Debit - Exempt (CNP)",
"optimizedRate": 0.0165,
"optimizedPerTx": 0.15,
"optimizedCost": 23.03913,
"savings": 1.43722
}
],
"maxOptimizedCategory": "CPS/Card Not Present, Debit - Exempt (CNP)",
"maxOptimizedRate": 0.0165,
"maxOptimizedPerTx": 0.15,
"maxOptimizedCost": 23.03913,
"maxOptimizedSavings": 1.43722
}
]
},
"Card Brands Dues and Assessments": [
{
"term": "VS-NAPF-Credit",
"normalized": null,
"network": null,
"amount": 0,
"countTx": 45,
"rate": 0,
"perTx": 0.0195,
"fee": 0.88,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "VS-NAPFDOMCRAUTHREV",
"normalized": null,
"network": null,
"amount": 0,
"countTx": 1,
"rate": 0,
"perTx": 0.0195,
"fee": 0.02,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "VS-VS FANF CP",
"normalized": null,
"network": null,
"amount": 0,
"countTx": 1,
"rate": 0,
"perTx": 0,
"fee": 2,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "VS-NAPF-Debit",
"normalized": null,
"network": null,
"amount": 0,
"countTx": 55,
"rate": 0,
"perTx": 0.0155,
"fee": 0.85,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "VS-TIF",
"normalized": null,
"network": null,
"amount": 431677.8,
"countTx": 89,
"rate": 0,
"perTx": 0.1,
"fee": 8.9,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "VS-ASSMNT CREDIT",
"normalized": "Assessments %",
"network": "Visa",
"amount": 325259.22,
"countTx": 38,
"rate": 0.0014,
"perTx": 0,
"fee": 455.34,
"standardRate": 0.0014,
"standardPerTx": 0,
"standardFee": 455.362908,
"padding": 0
},
{
"term": "VS-ASSMNT DEBIT",
"normalized": null,
"network": null,
"amount": 106418.58,
"countTx": 51,
"rate": 0.0013,
"perTx": 0,
"fee": 138.34,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "VS-VS TRANSMFEE",
"normalized": null,
"network": null,
"amount": 432909.3,
"countTx": 90,
"rate": 0,
"perTx": 0.0018,
"fee": 0.16,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "VS-VSCRVCHRFEEDB",
"normalized": null,
"network": null,
"amount": 1231.5,
"countTx": 1,
"rate": 0,
"perTx": 0.0155,
"fee": 0.02,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "MC-ACQ Brnd Vol ABV",
"normalized": null,
"network": null,
"amount": 27791.75,
"countTx": 8,
"rate": 0.0014,
"perTx": 0,
"fee": 38.92,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "MC-ACQ Brand Volume",
"normalized": null,
"network": null,
"amount": 11434,
"countTx": 10,
"rate": 0.0013,
"perTx": 0,
"fee": 14.86,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "MC-AVS CardPresent",
"normalized": null,
"network": null,
"amount": 0,
"countTx": 10,
"rate": 0,
"perTx": 0.01,
"fee": 0.1,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "MC-MC Acq Licn Fee",
"normalized": null,
"network": null,
"amount": 39225.75,
"countTx": 18,
"rate": 0.000125,
"perTx": 0,
"fee": 4.9,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "MC-MC Location Fee",
"normalized": null,
"network": null,
"amount": 0,
"countTx": 1,
"rate": 0,
"perTx": 0,
"fee": 1.25,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "MC-NABU Auth",
"normalized": null,
"network": null,
"amount": 0,
"countTx": 21,
"rate": 0,
"perTx": 0.0195,
"fee": 0.41,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "MC-MC Sfe Nt Aq Fee",
"normalized": null,
"network": null,
"amount": 0,
"countTx": 21,
"rate": 0,
"perTx": 0.0007,
"fee": 0.01,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "AM-AM USASSMNTFEE",
"normalized": null,
"network": null,
"amount": 47146.23,
"countTx": 17,
"rate": 0.00165,
"perTx": 0,
"fee": 77.82,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "DS-DS Assessment",
"normalized": null,
"network": null,
"amount": 2171.6,
"countTx": 1,
"rate": 0.0014,
"perTx": 0,
"fee": 3.04,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
},
{
"term": "DS-DS Ntwk Auth Fee",
"normalized": null,
"network": null,
"amount": 0,
"countTx": 1,
"rate": 0,
"perTx": 0.019,
"fee": 0.02,
"standardRate": 0,
"standardPerTx": 0,
"standardFee": 0,
"padding": 0
}
],
"Total Card Brands Dues and Assessments padding": 0,
"Processor-Specific Fees": [
{
"term": "Discover Authorization",
"category": "Processing fee",
"amount": 0,
"rate": 0,
"countTx": 1,
"perTx": 0.1,
"fee": 0.1
},
{
"term": "MasterCard Authorization",
"category": "Processing fee",
"amount": 0,
"rate": 0,
"countTx": 21,
"perTx": 0.1,
"fee": 2.1
},
{
"term": "Visa Authorization",
"category": "Processing fee",
"amount": 0,
"rate": 0,
"countTx": 102,
"perTx": 0.1,
"fee": 10.2
},
{
"term": "AMEX Authorization",
"category": "Processing fee",
"amount": 0,
"rate": 0,
"countTx": 19,
"perTx": 0.1,
"fee": 1.9
},
{
"term": "AM-Non-Swiped Tr",
"category": "Processing fee",
"amount": 49085.22,
"rate": 0.003,
"countTx": 18,
"perTx": 0,
"fee": 147.25
},
{
"term": "AMEX Support Fee",
"category": "Service",
"amount": 47146.23,
"rate": 0.003,
"countTx": 1,
"perTx": 0,
"fee": 141.44
},
{
"term": "Monthly Service Fee",
"category": "Service",
"amount": 5,
"rate": 0,
"countTx": 1,
"perTx": 0,
"fee": 5
},
{
"term": "Regulatory Compliance Fee",
"category": "PCI Compliance",
"amount": 3,
"rate": 0,
"countTx": 1,
"perTx": 0,
"fee": 3
},
{
"term": "Gateway Access Fee",
"category": "Service",
"amount": 7,
"rate": 0,
"countTx": 1,
"perTx": 0,
"fee": 7
},
{
"term": "Batch Fee",
"category": "Batch",
"amount": 0,
"rate": 0,
"countTx": 21,
"perTx": 0.25,
"fee": 5.25
}
],
"Unknown Fees": [
{
"term": "Gateway Authorization",
"normalized": null,
"network": null,
"amount": 0,
"rate": 0,
"countTx": 143,
"perTx": 0.07,
"fee": 10.01
},
{
"term": "VS-Visa US AVS",
"normalized": null,
"network": null,
"amount": 0,
"rate": 0,
"countTx": 70,
"perTx": 0.001,
"fee": 0.07
},
{
"term": "AM-Amex AcqTransFee",
"normalized": null,
"network": null,
"amount": 49085.22,
"rate": 0,
"countTx": 18,
"perTx": 0.02,
"fee": 0.36
},
{
"term": "DS-DS AVS",
"normalized": null,
"network": null,
"amount": 0,
"rate": 0,
"countTx": 1,
"perTx": 0.005,
"fee": 0.01
},
{
"term": "DS-DS Dig Invt Fee",
"normalized": null,
"network": null,
"amount": 2171.6,
"rate": 0.0001,
"countTx": 1,
"perTx": 0,
"fee": 0.22
},
{
"term": "TSS Network Fee",
"normalized": null,
"network": null,
"amount": 520221.38,
"rate": 0.0007,
"countTx": 125,
"perTx": 0,
"fee": 364.15
},
{
"term": "Compass Reporting Fee",
"normalized": null,
"network": null,
"amount": 3,
"rate": 0,
"countTx": 1,
"perTx": 0,
"fee": 3
}
],
"IsQuickQuote": 0
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
2.13 Set Plan (id) - PUT
requires authentication
Sets a specified proposal plan so that the proposal may be re-generated using the corresponding {pricing regimen, cost/commissions, proposal template} set.
Example request:
curl --request PUT \
"https://developer.feenavigator.com/api/v1/set-plan/1755002352774017576?idPlan=1755002352774017576" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://developer.feenavigator.com/api/v1/set-plan/1755002352774017576"
);
const params = {
"idPlan": "1755002352774017576",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "PUT",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/set-plan/1755002352774017576';
$response = $client->put(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'idPlan' => '1755002352774017576',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"status": "updated"
}
Example response (404):
{
"errors": [
"Statement not found"
]
}
Example response (500):
{
"errors": [
"Internal Server Error -- We had a problem with our server. Try again later."
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
2.14 Set Default Plan (id) - PUT
requires authentication
Sets the default proposal plan for this user.
The proposal plan includes a set of {pricing regimen, cost/commissions, proposal template}.
Example request:
curl --request PUT \
"https://developer.feenavigator.com/api/v1/set-default-plan/1755002352774017576" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://developer.feenavigator.com/api/v1/set-default-plan/1755002352774017576"
);
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "PUT",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/set-default-plan/1755002352774017576';
$response = $client->put(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"status": "updated"
}
Example response (404):
{
"errors": [
"Statement not found"
]
}
Example response (500):
{
"errors": [
"Internal Server Error -- We had a problem with our server. Try again later."
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
2.15 Set MCC (id) - PUT
requires authentication
Sets the industry/MCC associated with the statement.
Example request:
curl --request PUT \
"https://developer.feenavigator.com/api/v1/set-mcc/1755002352774017576?idMcc=1755002352774017576" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://developer.feenavigator.com/api/v1/set-mcc/1755002352774017576"
);
const params = {
"idMcc": "1755002352774017576",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "PUT",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/set-mcc/1755002352774017576';
$response = $client->put(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'idMcc' => '1755002352774017576',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"status": "updated"
}
Example response (404):
{
"errors": [
"Statement not found"
]
}
Example response (500):
{
"errors": [
"Internal Server Error -- We had a problem with our server. Try again later."
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
2.16 Get History - GET
requires authentication
Returns the count and names of PDF statements submitted by all the team users during a specific time interval.
Example request:
curl --request GET \
--get "https://developer.feenavigator.com/api/v1/get-statement-history?startDate=2020-06-01&endDate=2020-12-01" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://developer.feenavigator.com/api/v1/get-statement-history"
);
const params = {
"startDate": "2020-06-01",
"endDate": "2020-12-01",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/get-statement-history';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'startDate' => '2020-06-01',
'endDate' => '2020-12-01',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"count": 2,
"history": [
{
"timestamp": "2020-06-19 12:56:32",
"statementId": 1753313502913753640,
"fileName": "Demo Statement 1.pdf"
},
{
"timestamp": "2020-06-19 13:55:11",
"statementId": 1753032027937042984,
"fileName": "Demo Statement 2.pdf"
}
]
}
Example response (400):
{
"error": [
"Please provide a valid startDate.",
"Please provide a valid endDate."
],
"code": 400
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
2.17 Get History User - GET
requires authentication
Returns the count and names of PDF statements submitted by a specific user during a chosen time interval.
Example request:
curl --request GET \
--get "https://developer.feenavigator.com/api/v1/get-user-statement-history?email=example%40example.com&startDate=2020-06-01&endDate=2020-12-01" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://developer.feenavigator.com/api/v1/get-user-statement-history"
);
const params = {
"email": "example@example.com",
"startDate": "2020-06-01",
"endDate": "2020-12-01",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/get-user-statement-history';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'email' => 'example@example.com',
'startDate' => '2020-06-01',
'endDate' => '2020-12-01',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"count": 2,
"history": [
{
"timestamp": "2020-06-19 12:56:32",
"statementId": 1753313502913753640,
"fileName": "Demo Statement 1.pdf"
},
{
"timestamp": "2020-06-19 13:55:11",
"statementId": 1753032027937042984,
"fileName": "Demo Statement 2.pdf"
}
]
}
Example response (400):
{
"error": [
"Please provide a valid startDate.",
"Please provide a valid endDate.",
"Can not find user with provided company"
],
"code": 400
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
2.18 Send Proposal link - POST
requires authentication
Send Proposal link.
Example request:
curl --request POST \
"https://developer.feenavigator.com/api/v1/proposal/send-link" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"proposalId\": \"267672\",
\"sendTo[merchantName]\": \"iusto\",
\"sendTo[firstName]\": \"John\",
\"sendTo[email]\": \"john@smith.com\",
\"sendTo[expirationDays]\": 2,
\"sendTo[expirationViews]\": 20
}"
const url = new URL(
"https://developer.feenavigator.com/api/v1/proposal/send-link"
);
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"proposalId": "267672",
"sendTo[merchantName]": "iusto",
"sendTo[firstName]": "John",
"sendTo[email]": "john@smith.com",
"sendTo[expirationDays]": 2,
"sendTo[expirationViews]": 20
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/proposal/send-link';
$response = $client->post(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'proposalId' => '267672',
'sendTo[merchantName]' => 'iusto',
'sendTo[firstName]' => 'John',
'sendTo[email]' => 'john@smith.com',
'sendTo[expirationDays]' => 2,
'sendTo[expirationViews]' => 20,
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
3. Industry
3.1 Get IC Schedule - GET
requires authentication
Returns the current interchange schedule .
Example request:
curl --request GET \
--get "https://developer.feenavigator.com/api/v1/ic-schedule" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://developer.feenavigator.com/api/v1/ic-schedule"
);
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/ic-schedule';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
[
{
"type": "IC",
"network": "Discover",
"plan": "PSL E-Commerce DB Reg",
"rate": "0.05000000",
"perTx": "0.21000000",
"cap": "0.00000000"
},
{
"type": "IC",
"network": "Visa",
"plan": "Non-Qualified Commercial Prepaid Regulated",
"rate": "0.05000000",
"perTx": "0.22000000",
"cap": "0.00000000"
},
{
"type": "DA",
"network": "Visa",
"plan": "Fixed Acquirer Network Fee - Table 1B Tier 4",
"rate": null,
"perTx": "0.00000000",
"cap": "0.00000000"
},
{
"type": "IC",
"network": "Mastercard",
"plan": "Standard - Core | Consumer Standard Consumer Credit",
"rate": "2.95000000",
"perTx": "0.10000000",
"cap": "0.00000000"
},
{
"type": "DA",
"network": "Visa",
"plan": "Int'l Acquiring Fee (IAF)",
"rate": null,
"perTx": "0.00000000",
"cap": "0.00000000"
},
{
"type": "IC",
"network": "Discover",
"plan": "PSL Card Not Present (excluding eCommerce/ Internet) - Core",
"rate": "1.89000000",
"perTx": "0.10000000",
"cap": "0.00000000"
},
{
"type": "IC",
"network": "Discover",
"plan": "PSL E-Commerce Secured DB Reg",
"rate": "0.05000000",
"perTx": "0.21000000",
"cap": "0.00000000"
}
]
Example response (400):
{
"error": [
"Please provide a valid startDate.",
"Please provide a valid endDate."
],
"code": 400
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
3.2 Get Normalized Term - GET
requires authentication
Returns the most recent interchange normalized term associated with the entered term, as well as its rate, per tx, and cap.
Example request:
curl --request GET \
--get "https://developer.feenavigator.com/api/v1/normalized-term?term=quisquam" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://developer.feenavigator.com/api/v1/normalized-term"
);
const params = {
"term": "quisquam",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/normalized-term';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'term' => 'quisquam',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
{
"type": "IC",
"network": "Mastercard",
"plan": "Full UCAF SecureCode - World",
"rate": "2.05000000",
"perTx": "0.10000000",
"cap": "0.00000000"
}
Example response (400):
{
"error": [
"Please provide a valid startDate.",
"Please provide a valid endDate."
],
"code": 400
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
3.3 Get MCC List - GET
requires authentication
Returns the industry/MCC list
Example request:
curl --request GET \
--get "https://developer.feenavigator.com/api/v1/mcc-list" \
--header "Authorization: {apiKey}" \
--header "Content-Type: application/json" \
--header "Accept: application/json"
const url = new URL(
"https://developer.feenavigator.com/api/v1/mcc-list"
);
const headers = {
"Authorization": "{apiKey}",
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://developer.feenavigator.com/api/v1/mcc-list';
$response = $client->get(
$url,
[
'headers' => [
'Authorization' => '{apiKey}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example response (200):
[
{
"id": 31,
"Industry": "FURNISHINGS/APPLIANCES OFFICE & HOME",
"mcc": "5712",
"MCC": "FURNITURE/EQUIP STORES"
},
{
"id": 32,
"Industry": "FURNISHINGS/APPLIANCES OFFICE & HOME",
"mcc": "5713",
"MCC": "FLOOR COVERING STORES"
},
{
"id": 33,
"Industry": "FURNISHINGS/APPLIANCES OFFICE & HOME",
"mcc": "5714",
"MCC": "DRAPERY & UPHOLSTERY STORES"
},
{
"id": 34,
"Industry": "FURNISHINGS/APPLIANCES OFFICE & HOME",
"mcc": "5719",
"MCC": "MISC HOME FURNISHING SPECIALT"
},
{
"id": 35,
"Industry": "FURNISHINGS/APPLIANCES OFFICE & HOME",
"mcc": "5722",
"MCC": "HOUSEHOLD APPLIANCE STORES"
}
]
Example response (400):
{
"error": [
"Please provide a valid startDate.",
"Please provide a valid endDate."
],
"code": 400
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.