J.L.Sherman&Associates,Inc.

The Leader in Loan Quotation and Loan Calculation Software

SCE API Server - Sherman Calculation Engine API Server

The SCE API Server is loan calculation software that can be embedded within
your own application, supporting consumer, commercial, and mortgage loan
calculations. The Sherman Calculation Engine API Server (SCE API Server) is the software solution that makes Sherman’s extensive expertise in the mathematics of lending part of your own software. Instead of struggling with loan calculations, payment protection methods (which vary by state and company), compliance issues, and the expertise required to identify and setup these calculations, let Sherman and Associates take care of it. The SCE API Server is quite simply the “calculation brain” of our software or of yours. With thousands of possible setup customization options and over sixty man years of specific experience contained in it, the SCE API Server is your best choice.

Who Needs the SCE API Server?

Two types of customers rely on the SCE API Server:

  1. Lenders developing their own platform system can simply call the SCE API Server to integrate our calculation into their software. The full array of Sherman’s calculations for accrual types, loan types, and payment protection products are then customized with setups to match the lender’s methods.

  2. Loan origination and servicing software providers rely on the SCE API Server as the calculation heart of their systems. They don’t have to worry about programming the loan types, interest methods, payment protection plans, and Truth In Lending disclosures their clients require, because the SCE API Server covers all of this and more. Sherman and Associates also provides the downstream support for all of these elements. Please see the Partners area of our site for a partial list of our LOS partners. It includes the major LOS providers across the consumer, commercial, mortgage, and student lending spaces.

What does the SCE API Server do for you?

Using the SCE API Server

The SCE API Server provides a HTTP REST API wrapped around our calculation engine. All input sent to the SCE API Server is contained in an HTTP POST request, with the SCE results returned in the HTTP response.

The format of the data sent in the POST request can be JSON or XML, depending upon the functionality required and your development team’s preferences.

Sample SCE JSON Request and Response

{
  "Module" : "Loan",
  "Data" : {
    "Advances" : [
      {
        "Date" : "2019-01-01",
        "Amount" : "1000.00"
      }
    ],
    "AccrualConfigs" : [
      {
        "Date" : "2019-01-01",
        "IntRate" : "10.000",
        "AccrualCode" : "320"
      }
    ],
    "PmtStreams" : [
      {
        "Date" : "2019-02-01",
        "Term" : "12"
      }
    ]
  }
}

The result of the loan calculation is then passed back to the calling application in the HTTP response. The application then need only parse the returned JSON to use the calculation results as appropriate. Here is a sample result returned from the SCE, using the inputs specified above (with the amortization table shortened):

{
  "Result" : 200,
  "Module" : "Loan",
  "Data" : {
    "Errors" : [
    ],
    "Warnings" : [
    ],
    "Notes" : [
    ],
    "FedBox" : {
      "AmtFin" : "1000.00",
      "FinChg" : "54.80",
      "TotPmts" : "1054.80",
      "APR" : {
        "Value" : "9.966",
        "Type" : "Actuarial"
      }
    },
    "Moneys" : {
      "Proceeds" : "1000.00",
      "Principal" : "1000.00",
      "Interest" : "54.80"
    },
    "Accrual" : {
      "Methods" : [
        "Actual/365 USRule"
      ],
      "Days1Pmt" : "31",
      "DayCount" : "Actual",
      "Maturity" : "2020-01-01"
    },
    "PmtStreams" : [
      {
        "Term" : "12",
        "Pmt" : "87.90",
        "Rate" : "10.000",
        "Begin" : "2019-02-01",
        "PPY" : "12"
      }
    ],
    "AmTable" : {
      "AmLines" : [
        {
          "Idx" : "0",
          "Date" : "2019-01-01",
          "BegBal" : "0.00",
          "Pmt" : "0.00",
          "Int" : "0.00",
          "Prin" : "-1000.00",
          "UnpaidInt" : "0.00",
          "EndBal" : "1000.00"
        },
        {
          "Idx" : "0",
          "Date" : "2019-01-01",
          "BegBal" : "1000.00",
          "Pmt" : "0.00",
          "Int" : "0.00",
          "Prin" : "0.00",
          "UnpaidInt" : "0.00",
          "EndBal" : "1000.00"
        },
        {
          "Idx" : "1",
          "Date" : "2019-02-01",
          "BegBal" : "1000.00",
          "Pmt" : "87.90",
          "Int" : "8.49",
          "Prin" : "79.41",
          "UnpaidInt" : "0.00",
          "EndBal" : "920.59"
        },
        {
          "Idx" : "2",
          "Date" : "2019-03-01",
          "BegBal" : "920.59",
          "Pmt" : "87.90",
          "Int" : "7.06",
          "Prin" : "80.84",
          "UnpaidInt" : "0.00",
          "EndBal" : "839.75"
        },
        ...,
        {
          "Idx" : "12",
          "Date" : "2020-01-01",
          "BegBal" : "87.11",
          "Pmt" : "87.90",
          "Int" : "0.74",
          "Prin" : "87.16",
          "UnpaidInt" : "0.00",
          "EndBal" : "-0.05"
        }
      ]
    }
  }
}

Sample SCE XML Request and Response

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE inEQUAL_PMT SYSTEM "inEQUAL_PMT.dtd" >
<inEQUAL_PMT Account="2" PPY="monthly" HOEPA="no" HideAmort="true">
 <LoanDate>2004-06-10</LoanDate>
 <PmtDate>2004-07-10</PmtDate>
 <IntRate>10.000%</IntRate>
 <Proceeds>$10,000.00</Proceeds>
 <Term>36</Term>
</inEQUAL_PMT>

The result of the loan calculation is then passed back to the calling application in the HTTP response. The application then need only parse the returned XML to use the calculation results as appropriate. Here is a sample result returned from the SCE, using the inputs specified above (with the amortization table turned off):

<?xml version="1.0" standalone="no" ?>
<!DOCTYPE outEQUAL_PMT  SYSTEM "outEQUAL_PMT.dtd" >
<outEQUAL_PMT>
 <Results>
  <Description>Successful Calculation</Description>
  <XMLDetail>XML Input is well formed</XMLDetail>
  <XMLDetail>XML Input is Valid.</XMLDetail>
  <XMLDetail>XML Output is untested</XMLDetail>
  <Payment>322.70</Payment>
  <Final>322.63</Final>
 </Results>
 <FedBox>
  <AmtFin>10000.00</AmtFin>
  <FinChg>1617.13</FinChg>
  <TotPmts>11617.13</TotPmts>
  <RegZAPR Type="Actuarial">10.006</RegZAPR>
 </FedBox>
 <Moneys>
  <Principal>10000.00</Principal>
  <Interest>1617.13</Interest>
  <Protection Category="None" PerPmt="0.00" PerDay="0.00">0.00</Protection>
 </Moneys>
 <Accrual>
  <Method>Actual/365 US Rule</Method>
  <Days1Pmt DayCount="Actual">30</Days1Pmt>
  <Maturity>2007-06-10</Maturity>
 </Accrual>
 <PmtStream Term="35" Pmt="322.70" Rate="10.000" Begin="2004-07-10"/>
 <PmtStream Term="1" Pmt="322.63" Rate="10.000" Begin="2007-06-10"/>
</outEQUAL_PMT>