MISMO API Toolkit
Total Page:16
File Type:pdf, Size:1020Kb
MISMO API Toolkit June 1, 2020 Presented by Leslie Malicki, MGIC Elizabeth Smith, USAA Keith Soura, Blend Christopher Stookey, Wells Fargo What is MISMO? • MISMO® “Mortgage Industry Standards Maintenance Organization” is the standards development body for the mortgage industry. MISMO is a wholly owned subsidiary of the Mortgage Bankers Association. • MISMO developed a common language for exchanging information for the mortgage finance industry. Today, MISMO standards are accepted and deployed by every type of entity involved in creating mortgages, and they are required by most regulators, housing agencies and the GSEs that participate in the industry. • Use of MISMO's standards has been found to lower per loan costs, improve margins, reduce errors and speed up the loan process by reducing manual, paper-based processes while creating cost savings for the consumer. API Toolkit Introduction What is an API? API = Application Programming Interface Exchanges information between systems over a network Provides clear, consistent specifications for data requirements, request and response protocols, and security Documentation identifies what to send and what to expect in response Why APIs? The modern Web runs on them! • Time to Market • Efficiency • Integration • Interoperability • Stability • Scalability Example: Online Grocery "USItemId": "172844767", "offerId": "B5F11C1D43E341A39D4AD36DAFE80526", "sku": "3100149894", "basic": { "salesUnit": "Each", "name": "Great Value Large White Eggs, 18 count, 36 oz", "image": { "thumbnail": "https://i5.walmartimages.com/asr/df2ea507-1953-4cb9-97b6- a1bc10f3dd19_1.bc951a020f826ffe87cf466c3fc1c130.jpeg?odnHeight=150&odnWidth=150&odnBg=ffffff" }, "weightIncrement": 1, "averageWeight": null, "maxAllowed": 12, "productUrl": "/ip/Great-Value-Large-White-Eggs-18-count-36-oz/172844767", "isSnapEligible": true, "type": "REGULAR" }, APIs in Relation to MISMO optimal APIs benefit MISMO The API Toolkit will … Utilize Based off the MISMO Logical Data Model, solutions founded from the API toolkit will inherit industry-vetted Industry data definitions rendering industry subject matter Standards expertise out of the box. Utilize Leveraging OpenAPI accelerates API development by Technology enabling standardized API documentation, code Standards generation, and automated testing. Allowing for a subset to be carved out from the industry Enable More superset of information, provides a quick start for Connections succinct business innovation feeding the vision for a growing network of best of breed solutions. Industry Standards Being industry-enabled removes add-on integration cost barriers for growth Project Running Project Running Connections being added Weeks Total Weeks Total Product Type A - #1 4 4 5 5 Product Type B - #1 4 8 5 10 Product Type C - #1 4 12 5 15 Product Type A - #2 & #3 4 + 4 20 1 + 1 17 Product Type B - #2 & #3 4 + 4 28 1 + 1 19 Product Type C - #2 & #3 4 + 4 36 1 + 1 21 Product Type A – Industry Update - #1, #2, #3 2 + 2 + 2 42 2 23 Product Type B – Industry Update - #1, #2, #3 2 + 2 + 2 48 2 25 Product Type C – Industry Update - #1, #2, #3 2 + 2 + 2 54 2 27 Example: Standing up 9 connections (3 product Proprietary Integrations Standard Integrations categories) with one industry compliance change Technology Standards Being able to evolve as preferences change keeps solution enablers relevant Google Trends Relative Popularity Data source: Google Trends (https://www.google.com/trends) Integration Connections Evolution Being connection-enabled allows continued best of breed adoption Stand-alone Best of Breed Software packages for every function; re-keying between requiring Manual Re-keying them all Stand-alone Best of Breed Software packages for every function; importing/exporting requiring Export/Import data between them all Monolithic software packages attempting to serve all Closed Enterprise Solutions functions, usually with shortcomings (“jack of all trades”) Integrated Enterprise Solutions Robust software packages integrating seamlessly with best using Best of Breed of breed ancillary software solutions Open Enterprise Solutions A growing network of best of breed solutions evolving evolving with Best of Breed together, remaining compatible, seamlessly integrated and providing programmatic access to logic and data API Toolkit Value Proposition – Deeper Dive What it provides What it enables INDUSTRY TECHNOLOGY PROVIDER TOOLKIT Best of Breed Concise business Technology MISMO glossary and data standards vetted by requirements industry participants Efficiency and Automation Easy to follow standards MISMO Industry Experts (COPs) to identify subsets of business scenario related data Adoptable Disruption Lightweight transactions Generation of API start-up files to kick-start Quickly Quick to market MISMO-standard JSON and XML integration solutions efforts MISMO API Toolkit Contents • API Objects – Accelerate software development by using standard schemas to define requests/responses • Implementation Guide (I-Guide) – Identifies recommended practices for implementing MISMO- based APIs • Sample API Specifications – Serve as a template or guide for development teams • MISMO Engineering Guidelines (MEG) – Provides engineering guidance on the representation of MISMO data structures and relationships in a Web API Relationships Between Models Legend: In Progress Existing Product Planned Considered Decision Business Glossary of Reference Business Business Model Model Terms Logical Data Model ER Database XML Schema API Toolkit Model Business/Tech Views (Taxonomy) Views Business/Tech Semantic Other Derivative Technical Model Representations API Development Process 1. Identify data points using the LDD 3. Generate code stubs from the API definition 2. Build the API definition using API object files 4. Implement the API Target Dates Can’t wait? Get involved! Comments: COMING Release: July 2020 September 2020 SOON Key Concepts REST Concept REST is about the ‘transfer’ of a particular ‘representation’ of the ‘state’ of a ‘resource’ from/to a unique address. It completely decouples the native representation of the entity at the source from the representation in which it is provided to the requester of the data. The same Borrower record, residing in some database in a platform specific format can be transferred in a JSON, XML, HTML or another format using a REST style API. JSON HTML JSON Records in native format XML Same data, different representations Data Exchange Format – XML or JSON . The ‘representation’ of a ‘resource’ in the REST architectural style can be accomplished using several formats. XML and JSON are by far the most ubiquitous formats. JSON is a more modern format and is the default choice for REST API payloads due to its simplicity and succinctness. <CLOSING_INFORMATION> { <CLOSING_ADJUSTMENT_ITEMS> "ClosingInformation": { <CLOSING_ADJUSTMENT_ITEM> “ClosingAdjustmentsItems": [ <CLOSING_ADJUSTMENT_ITEM_DETAIL> { <ClosingAdjustmentItemAmount>5500.00</ClosingAdjustmentItemAmount> “closingAdjustmentItemAmount": 5500.00, <ClosingAdjustmentItemType>LenderCredit</ClosingAdjustmentItemType> “closingAdjustmentItemType": "LenderCredit" </CLOSING_ADJUSTMENT_ITEM_DETAIL> } </CLOSING_ADJUSTMENT_ITEM> ] </CLOSING_ADJUSTMENT_ITEMS> } </CLOSING_INFORMATION> XML } JSON 1. The XML snippet on the left has 345 characters. 2. The JSON snippet on the right has 135 characters – a 60% reduction. 3. Even with the same level of nesting the JSON is significantly less verbose. Why OpenAPI 3.0? • Modern specification • Highly interoperable • Widely used • Comprehensive lifecycle tools for rapid design, development, and testing OpenAPI Features Documentation Deployment Tests OpenAPI Client Libraries Implementation Prototypes Supported Languages and Frameworks Erlang Slim Silex Scala NancyFx Java Pistache NodeJS Ruby ASP.NET Core Restbed Ada Rails5 JavaScript Haskell Kotlin JAXRS Lumen CXF Python RESTEasy Inflector Micronaut C# C++ Jersey PHP MSF4J Spring Go Zend Q: What is defined in the API Toolkit? A: Building blocks to create APIs . It does NOT define a set of Mortgage APIs . The MISMO API Toolkit focuses on the schemas object • Defines the data model • Describes API input and output • Documents the data exchange . It defines what data is available in an API, not where or how Sample API Our Pilot Use Cases A consumer looking A lender determining Automation relying for how much they if they need to send on credit scores for can afford initial disclosures decisioning • API Call • API Call • API Call • Request Mortgage Insurance • Check Application Threshold • Pull Credit Report for borrowers (MI) Rate • • INPUT • INPUT • INPUT • The six data points defined by • Loan information, credit product • Loan and property information, TILA/RESPA as needed to details, information on parties MI product detail, information have an application to the loan on parties to the loan • • OUTPUT • OUTPUT • OUTPUT • A Yes/No decision indicating • Credit reports from the three • MI product detail, premium whether the lender needs to bureaus information, and a formal quote send disclosures Implementation: Mortgage Insurance Rate Quote Address: description: Address is based upon USPS publication … type: object properties: … cityName: description: The name of the city or Military APO FPO designation. $ref: "MISMOString.yaml#/components/schemas/MISMOString" countyName: description: The name of the county within a… $ref: "MISMOString.yaml#/components/schemas/MISMOString" postalCode: description: The postal code (ZIP Code… MI COP iGuide stateCode: