NAV
bash javascript php python

About Fee Navigator API

Fee Navigator API offers a suite of technology components to automate merchant statement analysis and comparison.

These are a subset of the full solution that Fee Navigator offers to the industry, which include the email analysis bot, Lead Funnel Unlimited, knowledge management, affiliate system, and AI-DYI capabilities when automatic analysis fails. For more information about the full solution, please visit https://www.feenavigator.com

We made this API available to help the industry produce custom experiences on top of our technology. Contact sales@feenavigator.com to get an API key and start coding!

Get Postman Collection

Authorization

Fee Navigator API ("FNAPI") uses API keys to allow access to the API. Be sure to request your key by contacting sales@feenavigator.com.

FNAPI expects the API key to be included in all API requests to the server in a header that looks like the following:

Authorization: {apiKey}

1. Admin

1.1 Fee Library - GET

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 -X GET \
    -G "https://developer.feenavigator.com/api/v1/get-fee-library" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}"
const url = new URL(
    "https://developer.feenavigator.com/api/v1/get-fee-library"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->get(
    'https://developer.feenavigator.com/api/v1/get-fee-library',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/get-fee-library'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

[
    {
        "id": 4,
        "name": "Statement Fee"
    },
    {
        "id": 6,
        "name": "Monthly Fee"
    }
]

Example response (400):

null

HTTP Request

GET api/v1/get-fee-library

1.2 Pricing Regimens - GET

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 -X GET \
    -G "https://developer.feenavigator.com/api/v1/get-pricing-regimens" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}"
const url = new URL(
    "https://developer.feenavigator.com/api/v1/get-pricing-regimens"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->get(
    'https://developer.feenavigator.com/api/v1/get-pricing-regimens',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/get-pricing-regimens'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

[
    {
        "id": 66,
        "name": "Sample Flat",
        "type": "Flat"
    },
    {
        "id": 67,
        "name": "Sample IC Plus",
        "type": "IC Plus"
    }
]

Example response (400):

null

HTTP Request

GET api/v1/get-pricing-regimens

1.3 Pricing Regimen (id) - GET

Returns a specific pricing regimen identified by its id.

This returns all the details (definition) of the selected pricing regimen.

Example request:

curl -X GET \
    -G "https://developer.feenavigator.com/api/v1/get-pricing-regimens/1755002352774017576" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}"
const url = new URL(
    "https://developer.feenavigator.com/api/v1/get-pricing-regimens/1755002352774017576"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->get(
    'https://developer.feenavigator.com/api/v1/get-pricing-regimens/1755002352774017576',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/get-pricing-regimens/1755002352774017576'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('GET', url, headers=headers)
response.json()

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
}

HTTP Request

GET api/v1/get-pricing-regimens/{id}

URL Parameters

Parameter Status Description
id required A valid pricing regimen ID previously obtained.

1.4 Cost Schedules - GET

Returns a list of the available cost/commission schedules.

Example request:

curl -X GET \
    -G "https://developer.feenavigator.com/api/v1/get-cost-schedules" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}"
const url = new URL(
    "https://developer.feenavigator.com/api/v1/get-cost-schedules"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->get(
    'https://developer.feenavigator.com/api/v1/get-cost-schedules',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/get-cost-schedules'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

[
    {
        "id": 113,
        "name": "Sample Schedule A"
    },
    {
        "id": 145,
        "name": "AT Sample Schedule A"
    }
]

Example response (400):

null

HTTP Request

GET api/v1/get-cost-schedules

1.5 Cost Schedule (id) - GET

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 -X GET \
    -G "https://developer.feenavigator.com/api/v1/get-cost-schedules/1755002352774017576" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}"
const url = new URL(
    "https://developer.feenavigator.com/api/v1/get-cost-schedules/1755002352774017576"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->get(
    'https://developer.feenavigator.com/api/v1/get-cost-schedules/1755002352774017576',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/get-cost-schedules/1755002352774017576'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('GET', url, headers=headers)
response.json()

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
}

HTTP Request

GET api/v1/get-cost-schedules/{id}

URL Parameters

Parameter Status Description
id required A valid Commission ID previously obtained.

1.6 Proposal Templates - GET

Returns a list with the available proposal templates.

Example request:

curl -X GET \
    -G "https://developer.feenavigator.com/api/v1/get-proposal-templates" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}"
const url = new URL(
    "https://developer.feenavigator.com/api/v1/get-proposal-templates"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->get(
    'https://developer.feenavigator.com/api/v1/get-proposal-templates',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/get-proposal-templates'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

[
    {
        "id": 34,
        "name": "FN_Sample_EXCEL_Proposal.xlsx"
    },
    {
        "id": 85,
        "name": "Sample_Excel_Second_Proposal.xlsx"
    }
]

Example response (400):

null

HTTP Request

GET api/v1/get-proposal-templates

1.7 Proposal Template (id) - GET

Returns the proposal template identified by the specific id

Example request:

curl -X GET \
    -G "https://developer.feenavigator.com/api/v1/get-proposal-templates/1755002352774017576" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}"
const url = new URL(
    "https://developer.feenavigator.com/api/v1/get-proposal-templates/1755002352774017576"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->get(
    'https://developer.feenavigator.com/api/v1/get-proposal-templates/1755002352774017576',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/get-proposal-templates/1755002352774017576'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (400):

{
    "errors": "Proposal template not found",
    "code": 400
}

Example response (500):

{
    "message": "Server Error"
}

HTTP Request

GET api/v1/get-proposal-templates/{id}

URL Parameters

Parameter Status Description
id required A valid proposal template ID previously obtained.

1.8 Usable Tokens - GET

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 -X GET \
    -G "https://developer.feenavigator.com/api/v1/get-usable-tokens" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}"
const url = new URL(
    "https://developer.feenavigator.com/api/v1/get-usable-tokens"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->get(
    'https://developer.feenavigator.com/api/v1/get-usable-tokens',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/get-usable-tokens'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

[
    {
        "term": "VisaAuthorizations",
        "definition": "Number of authorizations for Visa"
    },
    {
        "id": "VisaPerAuthCurrent",
        "name": "Per authorization cost for Visa (Current)"
    }
]

HTTP Request

GET api/v1/get-usable-tokens

1.9 Plans - GET

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 -X GET \
    -G "https://developer.feenavigator.com/api/v1/get-plans" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}"
const url = new URL(
    "https://developer.feenavigator.com/api/v1/get-plans"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->get(
    'https://developer.feenavigator.com/api/v1/get-plans',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/get-plans'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

[
    {
        "id": 102,
        "name": "Sample IC Plus Fixed",
        "isDefault": 0
    },
    {
        "id": 103,
        "name": "Sample IC Plus Dynamic",
        "isDefault": 1
    }
]

Example response (400):

null

HTTP Request

GET api/v1/get-plans

1.10 Plan (id) - GET

Returns the details of a specific proposal plan.

Example request:

curl -X GET \
    -G "https://developer.feenavigator.com/api/v1/get-plans/175" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}"
const url = new URL(
    "https://developer.feenavigator.com/api/v1/get-plans/175"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->get(
    'https://developer.feenavigator.com/api/v1/get-plans/175',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/get-plans/175'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('GET', url, headers=headers)
response.json()

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
}

HTTP Request

GET api/v1/get-plans/{id}

URL Parameters

Parameter Status Description
id required A valid plan ID previously obtained.

1.11 Assignments - GET

Returns the users that are part of the team and their roles.

Example request:

curl -X GET \
    -G "https://developer.feenavigator.com/api/v1/get-assignments" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}"
const url = new URL(
    "https://developer.feenavigator.com/api/v1/get-assignments"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->get(
    'https://developer.feenavigator.com/api/v1/get-assignments',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/get-assignments'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

[
    {
        "id": 1,
        "name": "Example User",
        "role": "manager"
    },
    {
        "id": 2,
        "name": "Example User two",
        "role": "member"
    }
]

Example response (400):

null

HTTP Request

GET api/v1/get-assignments

1.12 Assignment (id) - GET

Returns the proposal plans assigned to the specified user, including the default plan.

Example request:

curl -X GET \
    -G "https://developer.feenavigator.com/api/v1/get-assignments/1755002352774017576" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}"
const url = new URL(
    "https://developer.feenavigator.com/api/v1/get-assignments/1755002352774017576"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->get(
    'https://developer.feenavigator.com/api/v1/get-assignments/1755002352774017576',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/get-assignments/1755002352774017576'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('GET', url, headers=headers)
response.json()

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
}

HTTP Request

GET api/v1/get-assignments/{id}

URL Parameters

Parameter Status Description
id required A valid assignment ID previously obtained.

2. Proposal

2.1 Submit Statement - POST

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 -X POST \
    "https://developer.feenavigator.com/api/v1/statements/upload" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}" \
    -d '{"pdf":"my_pdf_statement.pdf","merchantId":"95b7a4b5-da9a-43bf-bd4a-b6d158d9e6f6","merchantData":{"merchantName":"Acme Inc.","industry":"5712","firstName":"John","lastName":"Smith","phone":"consequatur","email":"john@smith.com","zip":"23456"},"withDatapoints":0}'
const url = new URL(
    "https://developer.feenavigator.com/api/v1/statements/upload"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

let body = {
    "pdf": "my_pdf_statement.pdf",
    "merchantId": "95b7a4b5-da9a-43bf-bd4a-b6d158d9e6f6",
    "merchantData": {
        "merchantName": "Acme Inc.",
        "industry": "5712",
        "firstName": "John",
        "lastName": "Smith",
        "phone": "consequatur",
        "email": "john@smith.com",
        "zip": "23456"
    },
    "withDatapoints": 0
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->post(
    'https://developer.feenavigator.com/api/v1/statements/upload',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],

        'multipart' => [
            [
                'name' => 'pdf',
                'contents' => file_get_contents('my_pdf_statement.pdf'),
            ],
            [
                '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' => 'consequatur',
            ],
            [
                'name' => 'merchantData[email]',
                'contents' => 'john@smith.com',
            ],
            [
                'name' => 'merchantData[zip]',
                'contents' => '23456',
            ],
            [
                'name' => 'withDatapoints',
                'contents' => '0',
            ],
        ]
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/statements/upload'
payload = {
    "pdf": "my_pdf_statement.pdf",
    "merchantId": "95b7a4b5-da9a-43bf-bd4a-b6d158d9e6f6",
    "merchantData": {
        "merchantName": "Acme Inc.",
        "industry": "5712",
        "firstName": "John",
        "lastName": "Smith",
        "phone": "consequatur",
        "email": "john@smith.com",
        "zip": "23456"
    },
    "withDatapoints": 0
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):

{
    "id": 1755002352774017576
}

Example response (404):

{
    "errors": [
        "Not Found -- The specified resource could not be found"
    ]
}

HTTP Request

POST api/v1/statements/upload

Body Parameters

Parameter Type Status Description
pdf file required Statement PDF file.
merchantId string optional The ID of the existing Merchant to whom the statement belongs to.
Note: If it is not provided it means that a new Merchant must be created and therefore the below section (merchantData) is required.
merchantData[merchantName] string optional The Merchant's name.
Note: It is required if merchantId was not provided.
merchantData[industry] string optional The Merchant's MCC industry code.
Note: It is required if merchantId was not provided.
merchantData[firstName] string optional Merchant's first name.
merchantData[lastName] string optional Merchant's last name.
merchantData[phone] string optional Merchant's mobile phone number.
merchantData[email] string optional Merchant's email address.
merchantData[zip] string optional Merchant's ZIP.
withDatapoints integer optional Append all data points to the response. Default value = 0.
Possible values: [1 = true, 0 = false].

2.2 Delete Statement (id) - DEL

Deletes a statement and all extracted or processed information, including any associated analyses.

Example request:

curl -X DELETE \
    "https://developer.feenavigator.com/api/v1/statements/delete/1755002352774017576" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}"
const url = new URL(
    "https://developer.feenavigator.com/api/v1/statements/delete/1755002352774017576"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

fetch(url, {
    method: "DELETE",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->delete(
    'https://developer.feenavigator.com/api/v1/statements/delete/1755002352774017576',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/statements/delete/1755002352774017576'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('DELETE', url, headers=headers)
response.json()

Example response (200):

[]

HTTP Request

DELETE api/v1/statements/delete/{id}

URL Parameters

Parameter Status Description
id required A valid statement ID previously obtained.

2.3 Submit Quote - POST

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 -X POST \
    "https://developer.feenavigator.com/api/v1/submit-quote" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}" \
    -d '{"debitVsCredit":50,"cpVsCnp":80,"volume":100000,"averageTransaction":45,"fees":2500,"idPlan":"100","merchantId":"95b7a4b5-da9a-43bf-bd4a-b6d158d9e6f6","merchantData":{"merchantName":"Acme Inc","industry":"5712","firstName":"John","lastName":"Smith","phone":"23456785","email":"john@smith.com","zip":"52343"},"withDatapoints":0}'
const url = new URL(
    "https://developer.feenavigator.com/api/v1/submit-quote"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

let body = {
    "debitVsCredit": 50,
    "cpVsCnp": 80,
    "volume": 100000,
    "averageTransaction": 45,
    "fees": 2500,
    "idPlan": "100",
    "merchantId": "95b7a4b5-da9a-43bf-bd4a-b6d158d9e6f6",
    "merchantData": {
        "merchantName": "Acme Inc",
        "industry": "5712",
        "firstName": "John",
        "lastName": "Smith",
        "phone": "23456785",
        "email": "john@smith.com",
        "zip": "52343"
    },
    "withDatapoints": 0
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->post(
    'https://developer.feenavigator.com/api/v1/submit-quote',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],

        'body' => [
                'debitVsCredit' => '50',
                'cpVsCnp' => '80',
                'volume' => '100000',
                'averageTransaction' => '45',
                'fees' => '2500',
                'idPlan' => '100',
                'merchantId' => '95b7a4b5-da9a-43bf-bd4a-b6d158d9e6f6',
                'merchantData' => [
                        'merchantName' => 'Acme Inc',
                        'industry' => '5712',
                        'firstName' => 'John',
                        'lastName' => 'Smith',
                        'phone' => '23456785',
                        'email' => 'john@smith.com',
                        'zip' => '52343',
                ]
                'withDatapoints' => '0',
        ]
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/submit-quote'
payload = {
    "debitVsCredit": 50,
    "cpVsCnp": 80,
    "volume": 100000,
    "averageTransaction": 45,
    "fees": 2500,
    "idPlan": "100",
    "merchantId": "95b7a4b5-da9a-43bf-bd4a-b6d158d9e6f6",
    "merchantData": {
        "merchantName": "Acme Inc",
        "industry": "5712",
        "firstName": "John",
        "lastName": "Smith",
        "phone": "23456785",
        "email": "john@smith.com",
        "zip": "52343"
    },
    "withDatapoints": 0
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

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."
        ]
    }
}

HTTP Request

POST api/v1/submit-quote

Body Parameters

Parameter Type Status Description
debitVsCredit integer required Debit vs credit percentage.
cpVsCnp integer required Card present vs card not present percentage.
volume float required
averageTransaction float required
fees float required
idPlan string optional
merchantId string optional The ID of the existing Merchant for whom the quick quote is done for.
Note: If it is not provided it means that a new Merchant must be created and therefore the below section (merchantData) is required.
merchantData[merchantName] string optional The Merchant's name.
Note: It is required if merchantId is missing.
merchantData[industry] string optional The Merchant's MCC industry code.
Note: It is required if merchantId is missing.
merchantData[firstName] string optional Merchant's first name.
merchantData[lastName] string optional Merchant's last name.
merchantData[phone] string optional Merchant's mobile phone number.
merchantData[email] string optional Merchant's email address.
merchantData[zip] string optional Merchant's ZIP.
withDatapoints integer optional Append all data points to the response. Default value = 0.
Possible values: [1 = true, 0 = false].

2.4 Delete Quote (id) - DEL

Deletes a specified quote, and all the data associated with it.

Example request:

curl -X DELETE \
    "https://developer.feenavigator.com/api/v1/submit-quote/1755002352774017576" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}"
const url = new URL(
    "https://developer.feenavigator.com/api/v1/submit-quote/1755002352774017576"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

fetch(url, {
    method: "DELETE",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->delete(
    'https://developer.feenavigator.com/api/v1/submit-quote/1755002352774017576',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/submit-quote/1755002352774017576'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('DELETE', url, headers=headers)
response.json()

Example response (200):

[]

HTTP Request

DELETE api/v1/submit-quote/{id}

URL Parameters

Parameter Status Description
id required A valid statement ID previously obtained.

2.5 Get Statement (id) - GET

Returns the uploaded statement with the specified id.

Example request:

curl -X GET \
    -G "https://developer.feenavigator.com/api/v1/statement/download/pdf/1755002352774017576" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}"
const url = new URL(
    "https://developer.feenavigator.com/api/v1/statement/download/pdf/1755002352774017576"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->get(
    'https://developer.feenavigator.com/api/v1/statement/download/pdf/1755002352774017576',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/statement/download/pdf/1755002352774017576'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (500):

{
    "message": "Server Error"
}

HTTP Request

GET api/v1/statement/download/pdf/{id}

URL Parameters

Parameter Status Description
id required A valid statement ID previously obtained.

2.6 Get Extracted Text (id) - GET

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 -X GET \
    -G "https://developer.feenavigator.com/api/v1/statements/get-extracted-text/1755002352774017576" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}"
const url = new URL(
    "https://developer.feenavigator.com/api/v1/statements/get-extracted-text/1755002352774017576"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->get(
    'https://developer.feenavigator.com/api/v1/statements/get-extracted-text/1755002352774017576',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/statements/get-extracted-text/1755002352774017576'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('GET', url, headers=headers)
response.json()

Example response (200):

{
    "extractedText": ".... extracted text as a string ..."
}

HTTP Request

GET api/v1/statements/get-extracted-text/{id}

URL Parameters

Parameter Status Description
id required A valid statement ID previously obtained.

2.7 Get Data Points (id)- GET

Returns the extracted and processed elements from the statement and proposal.

Example request:

curl -X GET \
    -G "https://developer.feenavigator.com/api/v1/statements/get-datapoints/1755002352774017576" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}"
const url = new URL(
    "https://developer.feenavigator.com/api/v1/statements/get-datapoints/1755002352774017576"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->get(
    'https://developer.feenavigator.com/api/v1/statements/get-datapoints/1755002352774017576',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/statements/get-datapoints/1755002352774017576'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('GET', url, headers=headers)
response.json()

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
        }
    ]
}

HTTP Request

GET api/v1/statements/get-datapoints/{id}

URL Parameters

Parameter Status Description
id required A valid statement ID previously obtained.

2.8 Get FeeNav Excel (id) - GET

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 -X GET \
    -G "https://developer.feenavigator.com/api/v1/analysis/download/excel/"xK1v5bvy"?analysis=1&summary=0&padding=1&optimization=1" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}"
const url = new URL(
    "https://developer.feenavigator.com/api/v1/analysis/download/excel/"xK1v5bvy""
);

let params = {
    "analysis": "1",
    "summary": "0",
    "padding": "1",
    "optimization": "1",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->get(
    'https://developer.feenavigator.com/api/v1/analysis/download/excel/"xK1v5bvy"',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],
        'query' => [
            'analysis'=> '1',
            'summary'=> '0',
            'padding'=> '1',
            'optimization'=> '1',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/analysis/download/excel/"xK1v5bvy"'
params = {
  'analysis': '1',
  'summary': '0',
  'padding': '1',
  'optimization': '1',
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()

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):

{
    "message": "Server Error"
}

HTTP Request

GET api/v1/analysis/download/excel/{id}

URL Parameters

Parameter Status Description
id required Statement id previously obtained.

Query Parameters

Parameter Status Description
analysis required Whether to return full analysis (1) or not (0).
summary required Whether to return summary analysis (1) or not (0).
padding required Whether to extract IC Padding (1) or not (0).
optimization required Whether to extract IC Optimization (1) or not (0).

2.9 Get Proposal PDF (id) - GET

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 -X GET \
    -G "https://developer.feenavigator.com/api/v1/get-proposal-pdf/1755002352774017576" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}"
const url = new URL(
    "https://developer.feenavigator.com/api/v1/get-proposal-pdf/1755002352774017576"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->get(
    'https://developer.feenavigator.com/api/v1/get-proposal-pdf/1755002352774017576',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/get-proposal-pdf/1755002352774017576'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('GET', url, headers=headers)
response.json()

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):

{
    "message": "Server Error"
}

HTTP Request

GET api/v1/get-proposal-pdf/{id}

URL Parameters

Parameter Status Description
id required Statement id previously obtained.

2.10 Get Proposal - GET

Returns the completed proposal in its source template format - either Word or Excel.

Example request:

curl -X GET \
    -G "https://developer.feenavigator.com/api/v1/get-proposal/1755002352774017576" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}"
const url = new URL(
    "https://developer.feenavigator.com/api/v1/get-proposal/1755002352774017576"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->get(
    'https://developer.feenavigator.com/api/v1/get-proposal/1755002352774017576',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/get-proposal/1755002352774017576'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('GET', url, headers=headers)
response.json()

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):

{
    "message": "Server Error"
}

HTTP Request

GET api/v1/get-proposal/{id}

URL Parameters

Parameter Status Description
id required Statement id previously obtained.

2.11 Update Proposal (id) - POST

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 -X POST \
    "https://developer.feenavigator.com/api/v1/update-proposal/x236td5" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}" \
    -d '{"dataPoints":"{\"95\":\"0.01990\",\"162\":\"30\"}"}'
const url = new URL(
    "https://developer.feenavigator.com/api/v1/update-proposal/x236td5"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

let body = {
    "dataPoints": "{\"95\":\"0.01990\",\"162\":\"30\"}"
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->post(
    'https://developer.feenavigator.com/api/v1/update-proposal/x236td5',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],

        'body' => [
                'dataPoints' => '{"95":"0.01990","162":"30"}',
        ]
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/update-proposal/x236td5'
payload = {
    "dataPoints": "{\"95\":\"0.01990\",\"162\":\"30\"}"
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (404):

{
    "errors": [
        "Statement not found."
    ]
}

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
        }
    ]
}

HTTP Request

POST api/v1/update-proposal/{id}

URL Parameters

Parameter Status Description
id required Statement id previously obtained.

Body Parameters

Parameter Type Status Description
dataPoints string required An JSON encoded array containing some or all the proposed data points new values having the data point ID as key.

2.12 New Proposal - GET

Generates a new Proposal for existing analysed statement based on the specified plan.

Example request:

curl -X GET \
    -G "https://developer.feenavigator.com/api/v1/new-proposal/xYz23Pq?idPlan=123" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}"
const url = new URL(
    "https://developer.feenavigator.com/api/v1/new-proposal/xYz23Pq"
);

let params = {
    "idPlan": "123",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->get(
    'https://developer.feenavigator.com/api/v1/new-proposal/xYz23Pq',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],
        'query' => [
            'idPlan'=> '123',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/new-proposal/xYz23Pq'
params = {
  'idPlan': '123',
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()

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
    }
}

HTTP Request

GET api/v1/new-proposal/{id}

URL Parameters

Parameter Status Description
id required Statement id previously obtained.

Query Parameters

Parameter Status Description
idPlan optional optional The new plan based on which to generate the new proposal.

2.13 Set Plan (id) - PUT

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 -X PUT \
    "https://developer.feenavigator.com/api/v1/set-plan/1755002352774017576?idPlan=1755002352774017576" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}"
const url = new URL(
    "https://developer.feenavigator.com/api/v1/set-plan/1755002352774017576"
);

let params = {
    "idPlan": "1755002352774017576",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

fetch(url, {
    method: "PUT",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->put(
    'https://developer.feenavigator.com/api/v1/set-plan/1755002352774017576',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],
        'query' => [
            'idPlan'=> '1755002352774017576',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/set-plan/1755002352774017576'
params = {
  'idPlan': '1755002352774017576',
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('PUT', url, headers=headers, params=params)
response.json()

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."
    ]
}

HTTP Request

PUT api/v1/set-plan/{id}

URL Parameters

Parameter Status Description
id required Statement id previously obtained.

Query Parameters

Parameter Status Description
idPlan required ApPlan id previously obtained.

2.14 Set Default Plan (id) - PUT

Sets the default proposal plan for this user.

The proposal plan includes a set of {pricing regimen, cost/commissions, proposal template}.

Example request:

curl -X PUT \
    "https://developer.feenavigator.com/api/v1/set-default-plan/1755002352774017576" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}"
const url = new URL(
    "https://developer.feenavigator.com/api/v1/set-default-plan/1755002352774017576"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

fetch(url, {
    method: "PUT",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->put(
    'https://developer.feenavigator.com/api/v1/set-default-plan/1755002352774017576',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/set-default-plan/1755002352774017576'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('PUT', url, headers=headers)
response.json()

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."
    ]
}

HTTP Request

PUT api/v1/set-default-plan/{id}

URL Parameters

Parameter Status Description
id required Statement id previously obtained.

2.15 Set MCC (id) - PUT

Sets the industry/MCC associated with the statement.

Example request:

curl -X PUT \
    "https://developer.feenavigator.com/api/v1/set-mcc/1755002352774017576?idMcc=1755002352774017576" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}"
const url = new URL(
    "https://developer.feenavigator.com/api/v1/set-mcc/1755002352774017576"
);

let params = {
    "idMcc": "1755002352774017576",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

fetch(url, {
    method: "PUT",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->put(
    'https://developer.feenavigator.com/api/v1/set-mcc/1755002352774017576',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],
        'query' => [
            'idMcc'=> '1755002352774017576',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/set-mcc/1755002352774017576'
params = {
  'idMcc': '1755002352774017576',
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('PUT', url, headers=headers, params=params)
response.json()

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."
    ]
}

HTTP Request

PUT api/v1/set-mcc/{id}

URL Parameters

Parameter Status Description
id required Statement id previously obtained.

Query Parameters

Parameter Status Description
idMcc required industry id previously obtained.

2.16 Get History - GET

Returns the count and names of PDF statements submitted by all the team users during a specific time interval.

Example request:

curl -X GET \
    -G "https://developer.feenavigator.com/api/v1/get-statement-history?startDate=2020-06-01&endDate=2020-12-01" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}"
const url = new URL(
    "https://developer.feenavigator.com/api/v1/get-statement-history"
);

let params = {
    "startDate": "2020-06-01",
    "endDate": "2020-12-01",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->get(
    'https://developer.feenavigator.com/api/v1/get-statement-history',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],
        'query' => [
            'startDate'=> '2020-06-01',
            'endDate'=> '2020-12-01',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/get-statement-history'
params = {
  'startDate': '2020-06-01',
  'endDate': '2020-12-01',
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()

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
}

HTTP Request

GET api/v1/get-statement-history

Query Parameters

Parameter Status Description
startDate required Beginning of the date/time interval.
endDate required End of the date/time interval.

2.17 Get History User - GET

Returns the count and names of PDF statements submitted by a specific user during a chosen time interval.

Example request:

curl -X GET \
    -G "https://developer.feenavigator.com/api/v1/get-user-statement-history?email=example%40example.com&startDate=2020-06-01&endDate=2020-12-01" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}"
const url = new URL(
    "https://developer.feenavigator.com/api/v1/get-user-statement-history"
);

let params = {
    "email": "example@example.com",
    "startDate": "2020-06-01",
    "endDate": "2020-12-01",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->get(
    'https://developer.feenavigator.com/api/v1/get-user-statement-history',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],
        'query' => [
            'email'=> 'example@example.com',
            'startDate'=> '2020-06-01',
            'endDate'=> '2020-12-01',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/get-user-statement-history'
params = {
  'email': 'example@example.com',
  'startDate': '2020-06-01',
  'endDate': '2020-12-01',
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()

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
}

HTTP Request

GET api/v1/get-user-statement-history

Query Parameters

Parameter Status Description
email required Searched user email.
startDate required Beginning of the date/time interval.
endDate required End of the date/time interval.

2.18 Send Proposal link - POST

Send Proposal link.

Example request:

curl -X POST \
    "https://developer.feenavigator.com/api/v1/proposal/send-link" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}" \
    -d '{"proposalId":"267672","sendTo":{"merchantName":"consequatur","firstName":"John","email":"john@smith.com","mobile":"62345678","sendVia":"email","expirationDays":2,"expirationViews":20}}'
const url = new URL(
    "https://developer.feenavigator.com/api/v1/proposal/send-link"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

let body = {
    "proposalId": "267672",
    "sendTo": {
        "merchantName": "consequatur",
        "firstName": "John",
        "email": "john@smith.com",
        "mobile": "62345678",
        "sendVia": "email",
        "expirationDays": 2,
        "expirationViews": 20
    }
}

fetch(url, {
    method: "POST",
    headers: headers,
    body: body
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->post(
    'https://developer.feenavigator.com/api/v1/proposal/send-link',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],

        'body' => [
                'proposalId' => '267672',
                'sendTo' => [
                        'merchantName' => 'consequatur',
                        'firstName' => 'John',
                        'email' => 'john@smith.com',
                        'mobile' => '62345678',
                        'sendVia' => 'email',
                        'expirationDays' => '2',
                        'expirationViews' => '20',
                ]
        ]
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/proposal/send-link'
payload = {
    "proposalId": "267672",
    "sendTo": {
        "merchantName": "consequatur",
        "firstName": "John",
        "email": "john@smith.com",
        "mobile": "62345678",
        "sendVia": "email",
        "expirationDays": 2,
        "expirationViews": 20
    }
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()

HTTP Request

POST api/v1/proposal/send-link

Body Parameters

Parameter Type Status Description
proposalId string required A previously acquired analysis id.
sendTo[merchantName] string optional The Merchant's name.
sendTo[firstName] string required The contact person's first name.
sendTo[email] string optional The contact person's email.
sendTo[mobile] string optional The contact person's mobile phone.
sendTo[sendVia] string required The chosen method to send the link: 'mobile' for sending by SMS, and 'email' for sending by email.
sendTo[expirationDays] integer required After how many days the link becomes invalid.
sendTo[expirationViews] integer required After how many visualizations the link becomes invalid.

3. Industry

3.1 Get IC Schedule - GET

Returns the current interchange schedule .

Example request:

curl -X GET \
    -G "https://developer.feenavigator.com/api/v1/ic-schedule" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}"
const url = new URL(
    "https://developer.feenavigator.com/api/v1/ic-schedule"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->get(
    'https://developer.feenavigator.com/api/v1/ic-schedule',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/ic-schedule'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('GET', url, headers=headers)
response.json()

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
}

HTTP Request

GET api/v1/ic-schedule

3.2 Get Normalized Term - GET

Returns the most recent interchange normalized term associated with the entered term, as well as its rate, per tx, and cap.

Example request:

curl -X GET \
    -G "https://developer.feenavigator.com/api/v1/normalized-term?term=consequatur" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}"
const url = new URL(
    "https://developer.feenavigator.com/api/v1/normalized-term"
);

let params = {
    "term": "consequatur",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->get(
    'https://developer.feenavigator.com/api/v1/normalized-term',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],
        'query' => [
            'term'=> 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/normalized-term'
params = {
  'term': 'consequatur',
}
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()

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
}

HTTP Request

GET api/v1/normalized-term

Query Parameters

Parameter Status Description
term required Searched term

3.3 Get MCC List - GET

Returns the industry/MCC list

Example request:

curl -X GET \
    -G "https://developer.feenavigator.com/api/v1/mcc-list" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -H "Authorization: {apiKey}"
const url = new URL(
    "https://developer.feenavigator.com/api/v1/mcc-list"
);

let headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{apiKey}",
};

fetch(url, {
    method: "GET",
    headers: headers,
})
    .then(response => response.json())
    .then(json => console.log(json));

$client = new \GuzzleHttp\Client();

$response = $client->get(
    'https://developer.feenavigator.com/api/v1/mcc-list',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => '{apiKey}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://developer.feenavigator.com/api/v1/mcc-list'
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': '{apiKey}'
}
response = requests.request('GET', url, headers=headers)
response.json()

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
}

HTTP Request

GET api/v1/mcc-list

Errors

The FNAPI uses the following error codes:

Error Code Meaning
400 Bad Request -- Your request is invalid.
401 Unauthorized -- Your API key is wrong.
403 Forbidden -- The resource requested requires an elevated set of credentials.
404 Not Found -- The specified resource could not be found
405 Method Not Allowed -- You tried to access a resource with an invalid method.
406 Not Acceptable -- You requested a format that isn't json.
410 Gone -- The requested resource has been removed from our servers.
422 Unprocessable Entity -- The request contains invalid parameters.
429 Too Many Requests -- You're requesting too many resources! Slow down!
500 Internal Server Error -- We had a problem with our server. Try again later.
503 Service Unavailable -- We're temporarily offline for maintenance. Please try again later.