NAV Navbar
Shell HTTP JavaScript Node.JS Ruby Python Java Go
  • Blend API v2.1.0
  • Authentication
  • Auth
  • Loans
  • Documents
  • Borrowers
  • Disclosures Packages
  • Lenders
  • Realtors
  • Account Opening
  • Reporting
  • Events
  • Schemas
  • Blend API v2.1.0

    Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

    Base URLs:

    Authentication

    Auth

    Get Current User

    Code samples

    # You can also use wget
    curl -X GET https://api.blendlabs.com/current-user \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Accept: application/json'
    
    
    GET https://api.blendlabs.com/current-user HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/current-user',
      method: 'get',
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/current-user',
    {
      method: 'GET',
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Accept' => 'application/json'
    }
    
    result = RestClient.get 'https://api.blendlabs.com/current-user',
      params: {
      }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Accept': 'application/json'
    }
    
    r = requests.get('https://api.blendlabs.com/current-user', params={
    
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/current-user");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("GET", "https://api.blendlabs.com/current-user", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    GET /current-user

    Get Current User

    Example responses

    200 Response

    {
      "isAuthenticated": true
    }
    

    403 Response

    {
      "error": "Forbidden",
      "display": "You do not have the appropriate permissions to take this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK Current User Inline
    403 Forbidden Not Authorized NotAuthorizedErrorSchema

    Response Schema

    Status Code 200

    Name Type Required Restrictions Description
    » isAuthenticated boolean false none User authentication result

    Loans

    Get Loans

    Code samples

    # You can also use wget
    curl -X GET https://api.blendlabs.com/loans \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Accept: application/json'
    
    
    GET https://api.blendlabs.com/loans HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/loans',
      method: 'get',
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/loans',
    {
      method: 'GET',
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Accept' => 'application/json'
    }
    
    result = RestClient.get 'https://api.blendlabs.com/loans',
      params: {
      }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Accept': 'application/json'
    }
    
    r = requests.get('https://api.blendlabs.com/loans', params={
    
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/loans");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("GET", "https://api.blendlabs.com/loans", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    GET /loans

    Get a paginated list of active loans sorted by creation date descending. This endpoint also supports a few filtering parameters.

    Parameters

    Parameter In Type Required Description
    limit query integer false The number of loans to be provided for this call. Minimum is 1, maximum is 100, default is 50.
    cursor query string false An opaque string used for pagination, pass the cursor back to start at this position
    losId-exists query string false If losId-exists is true, then the response only contains loans that have losId set. If losId-exists is false, then the response only contains loans that do not have losId set. Otherwise, the response returns loans independent of the losId field.
    crmId-eq query string false Filters the list of loans to loans that have the same crmId.
    borrower-email-eq query string false Filters the list of loans to loans that have the same borrower email.
    losId-eq query string false Filters the list of loans to loans that have the same losId.
    exportable query boolean false If exportable is true, then the response contains the list of loans that can be exported (e.g. borrower submitted, lender clicks export, or trid is triggered). If exportable is false, then the response contains the list of loans that cannot be exported. If omitted, the response returns loans independent of exportable field.

    Example responses

    200 Response

    {
      "loans": [
        {
          "id": "aa9fdaa2-7bf3-4411-a836-c2a46117f5c3",
          "referenceNumber": 124123,
          "losId": "Loan-12391",
          "crmId": "crmLead1",
          "status": "Application Submitted",
          "borrowers": [
            {
              "id": "3f345acb-6ac4-4bd0-b04a-dc0b9ad76e70",
              "loanId": "aa9fdaa2-7bf3-4411-a836-c2a46117f5c3",
              "type": "string",
              "email": "johnhernandez@mail.com",
              "name": "string"
            }
          ],
          "propertyAddress": {
            "streetAddressLine1": "100 Main St",
            "streetAddressLine2": "Apt 10",
            "city": "Chicago",
            "state": "IL",
            "zipCode": "60007",
            "zipCodePlusFour": "1000"
          },
          "loanOriginator": {
            "email": "lo@mortgage.com"
          },
          "leadId": "lead134912"
        }
      ],
      "nextCursor": "biwxNTIzOTk4Njg1NTc5LGRkYWYwNDY5LTdlNTYtNDRjZS05MDE3LTZkM2VhNjk1Mzc2OA",
      "prevCursor": "cCwxNTIzOTk4NTQ4MTU5LGEwYWNkZTZjLWY1M2MtNGM5NC1iYmM1LWE0M2MyYTY5YjM3Mg"
    }
    

    400 Response

    {
      "error": "Invalid Request",
      "display": "The action you're trying to take is invalid.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    401 Response

    {
      "error": "Authentication required",
      "display": "Your credentials are invalid.",
      "trackingId": "cbd15fc4-a8cc-45db-ac87-f90802ebbcc3"
    }
    

    403 Response

    {
      "error": "Forbidden",
      "display": "You do not have the appropriate permissions to take this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    422 Response

    {
      "error": "The requested update is invalid",
      "display": "Please provide a valid fieldName.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    500 Response

    {
      "error": "Internal Server Error",
      "display": "Something went wrong. Please try again later.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK List of paginated loans, with cursors to go the next or previous pages. Inline
    400 Bad Request Invalid Request InvalidRequestErrorSchema
    401 Unauthorized Invalid Credentials AuthenticationRequiredErrorSchema
    403 Forbidden Not Authorized NotAuthorizedErrorSchema
    422 Unprocessable Entity Invalid Update InvalidUpdateErrorSchema
    500 Internal Server Error Unexpected Error InternalServerErrorSchema

    Response Schema

    Status Code 200

    Name Type Required Restrictions Description
    » loans [LoanSchema] false none An array of loans
    »» id LoanId true none The UUID of the loan in Blend's system. The static identifier that should be used to connect the loan's identity across Blend and external integrations.
    »» referenceNumber ReferenceNumber false none A mutable identifier of the loan. Not safe to use to connect the loan's identity across Blend and external systems because it can, and for most implementations, will change. Default value is an incremented ID set by Blend. Other Values could be LOS GUID after export of the loan to LOS (may be the same as the losID field or different), Can be manually set to anything by lenders in the UI or programmatically via the API.
    »» losId LosId false none The UUID or GUID of the loan in the LOS AFTER initial export to the LOS. May match the Loan reference number depending on the LOS and if the customer has selected to use only GUIDs instead of UUIDs in their LOS settings.
    »» crmId CrmId false none The unique identifier of the loan in a lender's Customer Relationship Management system, or CRM (e.g. Salesforce, Velocify etc.). This value should not change over time and should be used to connect the loan's identity between Blend and the CRM.
    »» status string false none Loan status
    »» borrowers [allOf] false none none

    allOf

    Name Type Required Restrictions Description
    »»» anonymous BorrowerSchemaBase false none none
    »»»» id string false none Borrower id
    »»»» loanId LoanId false none The UUID of the loan in Blend's system. The static identifier that should be used to connect the loan's identity across Blend and external integrations.
    »»»» type string false none none
    »»»» email string false none none

    and

    Name Type Required Restrictions Description
    »»» anonymous object false none none
    »»»» name string false none none

    continued

    Name Type Required Restrictions Description
    »»» propertyAddress AddressSchema false none none
    »»»» streetAddressLine1 string true none none
    »»»» streetAddressLine2 string false none none
    »»»» city string true none none
    »»»» state string true none Two-digit US state code
    »»»» zipCode string true none Five-digit US zip code
    »»»» zipCodePlusFour string false none Four-digit additional US zip code numbers
    »»» loanOriginator object false none none
    »»»» email string false none Loan originator email
    »»» leadId string false none Loan lead id
    »» nextCursor string false none Cursor to use to get to the next set of loans
    »» prevCursor string false none Cursor to use to get to the previous set of loans

    Post Loan

    Code samples

    # You can also use wget
    curl -X POST https://api.blendlabs.com/loans \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Content-Type: application/json' \
      -H 'Accept: application/json'
    
    
    POST https://api.blendlabs.com/loans HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Content-Type: application/json
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/loans',
      method: 'post',
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "loanType": "MORTGAGE",
      "applicationType": "FULL_APPLICATION",
      "loanPurposeType": "PURCHASE",
      "propertyType": "SINGLE_FAMILY",
      "propertySearchType": "NOT_STARTED",
      "propertyUsageType": "PRIMARY_RESIDENCE",
      "loanAmount": 100000,
      "propertyValue": 200000,
      "propertyAddress": {
        "streetAddressLine1": "100 Main St",
        "streetAddressLine2": "Apt 10",
        "city": "Chicago",
        "state": "IL",
        "zipCode": "60007",
        "zipCodePlusFour": "1000"
      },
      "borrower": {
        "name": "string",
        "email": "johnhernandez@mail.com",
        "SSN": "000113933",
        "dateOfBirth": 801385200000,
        "homePhone": "1112223333",
        "currentAddress": {
          "streetAddressLine1": "100 Main St",
          "streetAddressLine2": "Apt 10",
          "city": "Chicago",
          "state": "IL",
          "zipCode": "60007",
          "zipCodePlusFour": "1000"
        }
      },
      "leadId": "leadId1",
      "crmId": "crmLead1",
      "losId": "Loan-12391",
      "referenceNumber": 124123,
      "referrerEmail": "loanOfficer@bank.com",
      "sendEmailInvite": true,
      "applicationTemplateId": "fd658b97-f901-4b14-b693-4654d276c909",
      "applicationSource": {
        "type": "LOS",
        "name": "string"
      }
    }';
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/loans',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    }
    
    result = RestClient.post 'https://api.blendlabs.com/loans',
      params: {
      }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Content-Type': 'application/json',
      'Accept': 'application/json'
    }
    
    r = requests.post('https://api.blendlabs.com/loans', params={
    
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/loans");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Content-Type": []string{"application/json"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("POST", "https://api.blendlabs.com/loans", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    POST /loans

    Create a new loan in Blend with minimal borrower and loan data. This endpoint is usually used to create loans in Blend from CRMs or other central borrower databases.

    Body parameter

    {
      "loanType": "MORTGAGE",
      "applicationType": "FULL_APPLICATION",
      "loanPurposeType": "PURCHASE",
      "propertyType": "SINGLE_FAMILY",
      "propertySearchType": "NOT_STARTED",
      "propertyUsageType": "PRIMARY_RESIDENCE",
      "loanAmount": 100000,
      "propertyValue": 200000,
      "propertyAddress": {
        "streetAddressLine1": "100 Main St",
        "streetAddressLine2": "Apt 10",
        "city": "Chicago",
        "state": "IL",
        "zipCode": "60007",
        "zipCodePlusFour": "1000"
      },
      "borrower": {
        "name": "string",
        "email": "johnhernandez@mail.com",
        "SSN": "000113933",
        "dateOfBirth": 801385200000,
        "homePhone": "1112223333",
        "currentAddress": {
          "streetAddressLine1": "100 Main St",
          "streetAddressLine2": "Apt 10",
          "city": "Chicago",
          "state": "IL",
          "zipCode": "60007",
          "zipCodePlusFour": "1000"
        }
      },
      "leadId": "leadId1",
      "crmId": "crmLead1",
      "losId": "Loan-12391",
      "referenceNumber": 124123,
      "referrerEmail": "loanOfficer@bank.com",
      "sendEmailInvite": true,
      "applicationTemplateId": "fd658b97-f901-4b14-b693-4654d276c909",
      "applicationSource": {
        "type": "LOS",
        "name": "string"
      }
    }
    

    Parameters

    Parameter In Type Required Description
    body body LoanRequestSchema true Loan Creation Body

    Example responses

    200 Response

    {
      "id": "aa9fdaa2-7bf3-4411-a836-c2a46117f5c3",
      "loanType": "MORTGAGE",
      "borrowers": [
        {
          "name": "John Hernandez",
          "type": "BORROWER"
        }
      ]
    }
    

    400 Response

    {
      "error": "Invalid Request",
      "display": "The action you're trying to take is invalid.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    401 Response

    {
      "error": "Authentication required",
      "display": "Your credentials are invalid.",
      "trackingId": "cbd15fc4-a8cc-45db-ac87-f90802ebbcc3"
    }
    

    403 Response

    {
      "error": "Forbidden",
      "display": "You do not have the appropriate permissions to take this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    422 Response

    {
      "error": "The requested update is invalid",
      "display": "Please provide a valid fieldName.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    500 Response

    {
      "error": "Internal Server Error",
      "display": "Something went wrong. Please try again later.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK New Loan Inline
    400 Bad Request Invalid Request InvalidRequestErrorSchema
    401 Unauthorized Invalid Credentials AuthenticationRequiredErrorSchema
    403 Forbidden Not Authorized NotAuthorizedErrorSchema
    422 Unprocessable Entity Invalid Update InvalidUpdateErrorSchema
    500 Internal Server Error Unexpected Error InternalServerErrorSchema

    Response Schema

    Status Code 200

    Name Type Required Restrictions Description
    » id LoanId false none The UUID of the loan in Blend's system. The static identifier that should be used to connect the loan's identity across Blend and external integrations.
    » loanType string false none none
    » borrowers [object] false none none
    »» name string false none Borrower's full name
    »» type string false none Borrower's type

    Enumerated Values

    Property Value
    type BORROWER
    type COBORROWER

    Post LOS Milestones

    Code samples

    # You can also use wget
    curl -X POST https://api.blendlabs.com/loans/los-milestones \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Content-Type: application/json' \
      -H 'Accept: application/json'
    
    
    POST https://api.blendlabs.com/loans/los-milestones HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Content-Type: application/json
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/loans/los-milestones',
      method: 'post',
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "losMilestones": [
        {
          "losMilestone": "SUBMITTED",
          "loanId": "aa9fdaa2-7bf3-4411-a836-c2a46117f5c3"
        }
      ]
    }';
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/loans/los-milestones',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    }
    
    result = RestClient.post 'https://api.blendlabs.com/loans/los-milestones',
      params: {
      }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Content-Type': 'application/json',
      'Accept': 'application/json'
    }
    
    r = requests.post('https://api.blendlabs.com/loans/los-milestones', params={
    
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/loans/los-milestones");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Content-Type": []string{"application/json"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("POST", "https://api.blendlabs.com/loans/los-milestones", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    POST /loans/los-milestones

    Bulk update a list of loans to be on specific los milestones

    Body parameter

    {
      "losMilestones": [
        {
          "losMilestone": "SUBMITTED",
          "loanId": "aa9fdaa2-7bf3-4411-a836-c2a46117f5c3"
        }
      ]
    }
    

    Parameters

    Parameter In Type Required Description
    body body object true List of loan ids and the milestones to update to
    » losMilestones body [LosMilestoneSchema] false none
    »» losMilestone body string false Enum of los milestones to provide the borrower with the latest loan status
    »» loanId body LoanId false The UUID of the loan in Blend's system. The static identifier that should be used to connect the loan's identity across Blend and external integrations.

    Enumerated Values

    Parameter Value
    »» losMilestone SUBMITTED
    »» losMilestone UNDERWRITING
    »» losMilestone CONDITIONAL APPROVAL
    »» losMilestone APPROVED
    »» losMilestone CLOSING
    »» losMilestone CLOSED

    Example responses

    200 Response

    {
      "success": [
        {
          "losMilestone": "SUBMITTED",
          "loanId": "aa9fdaa2-7bf3-4411-a836-c2a46117f5c3"
        }
      ]
    }
    

    207 Response

    {
      "success": [
        {
          "losMilestone": "SUBMITTED",
          "loanId": "aa9fdaa2-7bf3-4411-a836-c2a46117f5c3"
        }
      ],
      "error": [
        {
          "loanId": "aa9fdaa2-7bf3-4411-a836-c2a46117f5c3",
          "code": 404,
          "reason": "loan does not exist"
        }
      ]
    }
    

    401 Response

    {
      "error": "Authentication required",
      "display": "Your credentials are invalid.",
      "trackingId": "cbd15fc4-a8cc-45db-ac87-f90802ebbcc3"
    }
    

    403 Response

    {
      "error": "Forbidden",
      "display": "You do not have the appropriate permissions to take this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    500 Response

    {
      "error": "Internal Server Error",
      "display": "Something went wrong. Please try again later.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK All Milestones Updated Successfully Inline
    207 Multi-Status Some Milestones Not Successfully Updated Inline
    401 Unauthorized Invalid Credentials AuthenticationRequiredErrorSchema
    403 Forbidden Not Authorized NotAuthorizedErrorSchema
    500 Internal Server Error Unexpected Error InternalServerErrorSchema

    Response Schema

    Status Code 200

    Name Type Required Restrictions Description
    » success [LosMilestoneSchema] true none none
    »» losMilestone string false none Enum of los milestones to provide the borrower with the latest loan status
    »» loanId LoanId false none The UUID of the loan in Blend's system. The static identifier that should be used to connect the loan's identity across Blend and external integrations.

    Enumerated Values

    Property Value
    losMilestone SUBMITTED
    losMilestone UNDERWRITING
    losMilestone CONDITIONAL APPROVAL
    losMilestone APPROVED
    losMilestone CLOSING
    losMilestone CLOSED

    Status Code 207

    Name Type Required Restrictions Description
    » success [LosMilestoneSchema] false none none
    »» losMilestone string false none Enum of los milestones to provide the borrower with the latest loan status
    »» loanId LoanId false none The UUID of the loan in Blend's system. The static identifier that should be used to connect the loan's identity across Blend and external integrations.
    » error [LosMilestoneErrorSchema] true none none
    »» loanId LoanId false none The UUID of the loan in Blend's system. The static identifier that should be used to connect the loan's identity across Blend and external integrations.
    »» code number false none none
    »» reason string false none none

    Enumerated Values

    Property Value
    losMilestone SUBMITTED
    losMilestone UNDERWRITING
    losMilestone CONDITIONAL APPROVAL
    losMilestone APPROVED
    losMilestone CLOSING
    losMilestone CLOSED
    code 404
    code 409

    Get Export Statuses

    Code samples

    # You can also use wget
    curl -X GET https://api.blendlabs.com/loans/export-statuses?ids=9250f84b-c2a1-4cab-b265-bd720685c361 \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Accept: application/json'
    
    
    GET https://api.blendlabs.com/loans/export-statuses?ids=9250f84b-c2a1-4cab-b265-bd720685c361 HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/loans/export-statuses',
      method: 'get',
      data: '?ids=9250f84b-c2a1-4cab-b265-bd720685c361',
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/loans/export-statuses?ids=9250f84b-c2a1-4cab-b265-bd720685c361',
    {
      method: 'GET',
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Accept' => 'application/json'
    }
    
    result = RestClient.get 'https://api.blendlabs.com/loans/export-statuses',
      params: {
      'ids' => 'array[string]'
    }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Accept': 'application/json'
    }
    
    r = requests.get('https://api.blendlabs.com/loans/export-statuses', params={
      'ids': [
      "9250f84b-c2a1-4cab-b265-bd720685c361"
    ]
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/loans/export-statuses?ids=9250f84b-c2a1-4cab-b265-bd720685c361");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("GET", "https://api.blendlabs.com/loans/export-statuses", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    GET /loans/export-statuses

    Get Export Statuses

    Parameters

    Parameter In Type Required Description
    ids query array[string] true Loan Ids to query for

    Example responses

    200 Response

    {
      "success": [
        {
          "status": "IN_PROGRESS",
          "reason": "import failed on los",
          "loanId": "aa9fdaa2-7bf3-4411-a836-c2a46117f5c3",
          "lastUpdated": "2018-08-30T19:31:38.902Z"
        }
      ],
      "error": [
        {
          "id": "29526148-296e-477d-8a61-5eceb51f4075",
          "code": 409,
          "reason": "Invalid lender params."
        }
      ]
    }
    

    401 Response

    {
      "error": "Authentication required",
      "display": "Your credentials are invalid.",
      "trackingId": "cbd15fc4-a8cc-45db-ac87-f90802ebbcc3"
    }
    

    403 Response

    {
      "error": "Forbidden",
      "display": "You do not have the appropriate permissions to take this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK Export Statuses Inline
    401 Unauthorized Invalid Credentials AuthenticationRequiredErrorSchema
    403 Forbidden Not Authorized NotAuthorizedErrorSchema

    Response Schema

    Status Code 200

    Name Type Required Restrictions Description
    » success [allOf] false none none

    allOf

    Name Type Required Restrictions Description
    »» anonymous ExportStatusSchema false none none
    »»» status string true none Export status
    »»» reason string false none Explanation for status

    and

    Name Type Required Restrictions Description
    »» anonymous object false none none
    »»» loanId LoanId true none The UUID of the loan in Blend's system. The static identifier that should be used to connect the loan's identity across Blend and external integrations.
    »»» lastUpdated string false none Timestamp of last update to status

    continued

    Name Type Required Restrictions Description
    »» error [BulkRequestErrorSchema] false none none
    »»» id string true none none
    »»» code number true none none
    »»» reason string true none none

    Enumerated Values

    Property Value
    status IN_PROGRESS
    status DELETED
    status SUCCESS

    Post Export Status

    Code samples

    # You can also use wget
    curl -X POST https://api.blendlabs.com/loans/{id}/export-status \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Content-Type: application/json' \
      -H 'Accept: application/json'
    
    
    POST https://api.blendlabs.com/loans/{id}/export-status HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Content-Type: application/json
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/loans/{id}/export-status',
      method: 'post',
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "status": "IN_PROGRESS",
      "reason": "import failed on los"
    }';
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/loans/{id}/export-status',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    }
    
    result = RestClient.post 'https://api.blendlabs.com/loans/{id}/export-status',
      params: {
      }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Content-Type': 'application/json',
      'Accept': 'application/json'
    }
    
    r = requests.post('https://api.blendlabs.com/loans/{id}/export-status', params={
    
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/loans/{id}/export-status");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Content-Type": []string{"application/json"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("POST", "https://api.blendlabs.com/loans/{id}/export-status", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    POST /loans/{id}/export-status

    Update export status on a loan

    Body parameter

    {
      "status": "IN_PROGRESS",
      "reason": "import failed on los"
    }
    

    Parameters

    Parameter In Type Required Description
    id path LoanId true The UUID of the loan in Blend's system. The static identifier that should be used to connect the loan's identity across Blend and external integrations.
    body body ExportStatusSchema true Export status and reason for that status

    Example responses

    200 Response

    {
      "status": "IN_PROGRESS",
      "reason": "import failed on los"
    }
    

    401 Response

    {
      "error": "Authentication required",
      "display": "Your credentials are invalid.",
      "trackingId": "cbd15fc4-a8cc-45db-ac87-f90802ebbcc3"
    }
    

    403 Response

    {
      "error": "Forbidden",
      "display": "You do not have the appropriate permissions to take this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    404 Response

    {
      "error": "Not Found",
      "display": "The action you're trying to take is invalid. Please validate the loan details in your Blend lending portal before retrying this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    500 Response

    {
      "error": "Internal Server Error",
      "display": "Something went wrong. Please try again later.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK Export Status Updated Successfully ExportStatusSchema
    401 Unauthorized Invalid Credentials AuthenticationRequiredErrorSchema
    403 Forbidden Not Authorized NotAuthorizedErrorSchema
    404 Not Found Loan not found LoanNotFoundErrorSchema
    500 Internal Server Error Unexpected Error InternalServerErrorSchema

    Get Loan Data

    Code samples

    # You can also use wget
    curl -X GET https://api.blendlabs.com/loans/{id} \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Accept: text/plain'
    
    
    GET https://api.blendlabs.com/loans/{id} HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Accept: text/plain
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'text/plain'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/loans/{id}',
      method: 'get',
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'text/plain'
    
    };
    
    fetch('https://api.blendlabs.com/loans/{id}',
    {
      method: 'GET',
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Accept' => 'text/plain'
    }
    
    result = RestClient.get 'https://api.blendlabs.com/loans/{id}',
      params: {
      }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Accept': 'text/plain'
    }
    
    r = requests.get('https://api.blendlabs.com/loans/{id}', params={
    
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/loans/{id}");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Accept": []string{"text/plain"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("GET", "https://api.blendlabs.com/loans/{id}", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    GET /loans/{id}

    Get loan details in JSON, MISMO 3.3.1, or Fannie 3.2 format. The MISMO 3.3.1 and Fannie 3.2 responses are base64 encoded and contain more details about the loan than the JSON response does.

    Parameters

    Parameter In Type Required Description
    id path LoanId true The UUID of the loan in Blend's system. The static identifier that should be used to connect the loan's identity across Blend and external integrations.
    format query string false Response format
    version query string false There is no version requirement for json. Fannie version must be 3.2. Mismo version must be 3.3.1.

    Enumerated Values

    Parameter Value
    format fannie
    format mismo
    format json
    version 3.2
    version 3.3.1

    Example responses

    200 Response

    PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxNRVNTQUdFIHhtbG5zOmJsZW5kPSJodHRwOi8vd3d3LmJsZW5kbGFicy5jb20iIHhtbG5zPSJodHRwOi8vd3d3Lm1pc21vLm9yZy9yZXNpZGVudGlhbC8yMDA5L3NjaGVtYXMiIHhtbG5zOm1pc21vPSJodHRwOi8vd3d3Lm1pc21vLm9yZy9yZXNpZGVudGlhbC8yMDA5L3NjaGVtYXMiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiBNSVNNT1JlZmVyZW5jZU1vZGVsSWRlbnRpZmllcj0iMy4zLjEiIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL3d3dy5taXNtby5vcmcvcmVzaWRlbnRpYWwvMjAwOS9zY2hlbWFzIj4NCiAgPEFCT1VUX1ZFUlNJT05TPg0KICAgIDxBQk9VVF9WRVJTSU9OPg0KICAgICAgPEFib3V0VmVyc2lvbklkZW50aWZpZXI+My4zLjE8L0Fib3V0VmVyc2lvbklkZW50aWZpZXI+DQogICAgICA8Q3JlYXRlZERhdGV0aW1lPjIwMTgtMDYtMTdUMTQ6MDg6MjZaPC9DcmVhdGVkRGF0ZXRpbWU+DQogICAgPC9BQk9VVF9WRVJTSU9OPg0KICA8L0FCT1VUX1ZFUlNJT05TPg0KICA8REVBTF9TRVRTPg0KICAgIDxERUFMX1NFVD4NCiAgICAgIDxERUFMUz4NCiAgICAgICAgPERFQUw+DQogICAgICAgICAgPEFTU0VUUy8+DQogICAgICAgICAgPENPTExBVEVSQUxTPg0KICAgICAgICAgICAgPENPTExBVEVSQUw+DQogICAgICAgICAgICAgIDxTVUJKRUNUX1BST1BFUlRZPg0KICAgICAgICAgICAgICAgIDxMT0NBVElPTl9JREVOVElGSUVSLz4NCiAgICAgICAgICAgICAgICA8UFJPUEVSVFlfREVUQUlMLz4NCiAgICAgICAgICAgICAgICA8U0FMRVNfSElTVE9SSUVTPg0KICAgICAgICAgICAgICAgICAgPFNBTEVTX0hJU1RPUlkvPg0KICAgICAgICAgICAgICAgIDwvU0FMRVNfSElTVE9SSUVTPg0KICAgICAgICAgICAgICA8L1NVQkpFQ1RfUFJPUEVSVFk+DQogICAgICAgICAgICAgIDxDT0xMQVRFUkFMX0RFVEFJTD4NCiAgICAgICAgICAgICAgICA8RVhURU5TSU9OPg0KICAgICAgICAgICAgICAgICAgPE9USEVSPg0KICAgICAgICAgICAgICAgICAgICA8YmxlbmQ6Q09MTEFURVJBTF9ERVRBSUwvPg0KICAgICAgICAgICAgICAgICAgPC9PVEhFUj4NCiAgICAgICAgICAgICAgICA8L0VYVEVOU0lPTj4NCiAgICAgICAgICAgICAgPC9DT0xMQVRFUkFMX0RFVEFJTD4NCiAgICAgICAgICAgIDwvQ09MTEFURVJBTD4NCiAgICAgICAgICA8L0NPTExBVEVSQUxTPg0KICAgICAgICAgIDxMT0FOUz4NCiAgICAgICAgICAgIDxMT0FOIExvYW5Sb2xlVHlwZT0iU3ViamVjdExvYW4iPg0KICAgICAgICAgICAgICA8QU1PUlRJWkFUSU9OPg0KICAgICAgICAgICAgICAgIDxBTU9SVElaQVRJT05fUlVMRT4NCiAgICAgICAgICAgICAgICAgIDxBbW9ydGl6YXRpb25UeXBlPkZpeGVkPC9BbW9ydGl6YXRpb25UeXBlPg0KICAgICAgICAgICAgICAgICAgPEFtb3J0aXphdGlvblR5cGVPdGhlckRlc2NyaXB0aW9uPk4vQTwvQW1vcnRpemF0aW9uVHlwZU90aGVyRGVzY3JpcHRpb24+DQogICAgICAgICAgICAgICAgICA8TG9hbkFtb3J0aXphdGlvblBlcmlvZFR5cGU+TW9udGg8L0xvYW5BbW9ydGl6YXRpb25QZXJpb2RUeXBlPg0KICAgICAgICAgICAgICAgIDwvQU1PUlRJWkFUSU9OX1JVTEU+DQogICAgICAgICAgICAgIDwvQU1PUlRJWkFUSU9OPg0KICAgICAgICAgICAgICA8RkVFX0lORk9STUFUSU9OLz4NCiAgICAgICAgICAgICAgPExPQU5fREVUQUlMLz4NCiAgICAgICAgICAgICAgPExPQU5fSURFTlRJRklFUlM+DQogICAgICAgICAgICAgICAgPExPQU5fSURFTlRJRklFUj4NCiAgICAgICAgICAgICAgICAgIDxMb2FuSWRlbnRpZmllcj4xMjM0NTY3ODwvTG9hbklkZW50aWZpZXI+DQogICAgICAgICAgICAgICAgICA8TG9hbklkZW50aWZpZXJUeXBlPkxlbmRlckNhc2U8L0xvYW5JZGVudGlmaWVyVHlwZT4NCiAgICAgICAgICAgICAgICA8L0xPQU5fSURFTlRJRklFUj4NCiAgICAgICAgICAgICAgICA8TE9BTl9JREVOVElGSUVSPg0KICAgICAgICAgICAgICAgICAgPExvYW5JZGVudGlmaWVyPmU1YzZiNTk3LTVkODMtNGE5Mi1iNmJiLWNmNzhiN2NmZmNiZDwvTG9hbklkZW50aWZpZXI+DQogICAgICAgICAgICAgICAgICA8TG9hbklkZW50aWZpZXJUeXBlPk90aGVyPC9Mb2FuSWRlbnRpZmllclR5cGU+DQogICAgICAgICAgICAgICAgPC9MT0FOX0lERU5USUZJRVI+DQogICAgICAgICAgICAgIDwvTE9BTl9JREVOVElGSUVSUz4NCiAgICAgICAgICAgICAgPE1BVFVSSVRZLz4NCiAgICAgICAgICAgICAgPFRFUk1TX09GX0xPQU4+DQogICAgICAgICAgICAgICAgPExpZW5Qcmlvcml0eVR5cGU+Rmlyc3RMaWVuPC9MaWVuUHJpb3JpdHlUeXBlPg0KICAgICAgICAgICAgICAgIDxMb2FuUHVycG9zZVR5cGU+VW5rbm93bjwvTG9hblB1cnBvc2VUeXBlPg0KICAgICAgICAgICAgICAgIDxMb2FuUHVycG9zZVR5cGVPdGhlckRlc2NyaXB0aW9uPk4vQTwvTG9hblB1cnBvc2VUeXBlT3RoZXJEZXNjcmlwdGlvbj4NCiAgICAgICAgICAgICAgICA8TW9ydGdhZ2VUeXBlPkNvbnZlbnRpb25hbDwvTW9ydGdhZ2VUeXBlPg0KICAgICAgICAgICAgICAgIDxNb3J0Z2FnZVR5cGVPdGhlckRlc2NyaXB0aW9uPk4vQTwvTW9ydGdhZ2VUeXBlT3RoZXJEZXNjcmlwdGlvbj4NCiAgICAgICAgICAgICAgPC9URVJNU19PRl9MT0FOPg0KICAgICAgICAgICAgICA8RVhURU5TSU9OPg0KICAgICAgICAgICAgICAgIDxPVEhFUj4NCiAgICAgICAgICAgICAgICAgIDxibGVuZDpMT0FOPg0KICAgICAgICAgICAgICAgICAgICA8YmxlbmQ6Q09NUExJQU5DRS8+DQogICAgICAgICAgICAgICAgICA8L2JsZW5kOkxPQU4+DQogICAgICAgICAgICAgICAgPC9PVEhFUj4NCiAgICAgICAgICAgICAgPC9FWFRFTlNJT04+DQogICAgICAgICAgICA8L0xPQU4+DQogICAgICAgICAgPC9MT0FOUz4NCiAgICAgICAgICA8UEFSVElFUz4NCiAgICAgICAgICAgIDxQQVJUWT4NCiAgICAgICAgICAgICAgPElORElWSURVQUw+DQogICAgICAgICAgICAgICAgPENPTlRBQ1RfUE9JTlRTPg0KICAgICAgICAgICAgICAgICAgPENPTlRBQ1RfUE9JTlQ+DQogICAgICAgICAgICAgICAgICAgIDxDT05UQUNUX1BPSU5UX0VNQUlMPg0KICAgICAgICAgICAgICAgICAgICAgIDxDb250YWN0UG9pbnRFbWFpbFZhbHVlPmxvc2JvcnJvd2VyQGJsZW5kbGFicy5jb208L0NvbnRhY3RQb2ludEVtYWlsVmFsdWU+DQogICAgICAgICAgICAgICAgICAgIDwvQ09OVEFDVF9QT0lOVF9FTUFJTD4NCiAgICAgICAgICAgICAgICAgIDwvQ09OVEFDVF9QT0lOVD4NCiAgICAgICAgICAgICAgICA8L0NPTlRBQ1RfUE9JTlRTPg0KICAgICAgICAgICAgICAgIDxOQU1FPg0KICAgICAgICAgICAgICAgICAgPEZpcnN0TmFtZT5BZGFtPC9GaXJzdE5hbWU+DQogICAgICAgICAgICAgICAgICA8TGFzdE5hbWU+Qm9ycm93ZXI8L0xhc3ROYW1lPg0KICAgICAgICAgICAgICAgIDwvTkFNRT4NCiAgICAgICAgICAgICAgPC9JTkRJVklEVUFMPg0KICAgICAgICAgICAgICA8Uk9MRVM+DQogICAgICAgICAgICAgICAgPFJPTEU+DQogICAgICAgICAgICAgICAgICA8Qk9SUk9XRVI+DQogICAgICAgICAgICAgICAgICAgIDxCT1JST1dFUl9ERVRBSUw+DQogICAgICAgICAgICAgICAgICAgICAgPEJvcnJvd2VyQ2xhc3NpZmljYXRpb25UeXBlPlByaW1hcnk8L0JvcnJvd2VyQ2xhc3NpZmljYXRpb25UeXBlPg0KICAgICAgICAgICAgICAgICAgICAgIDxDcmVkaXRSZXBvcnRBdXRob3JpemF0aW9uSW5kaWNhdG9yPmZhbHNlPC9DcmVkaXRSZXBvcnRBdXRob3JpemF0aW9uSW5kaWNhdG9yPg0KICAgICAgICAgICAgICAgICAgICAgIDxEZXBlbmRlbnRDb3VudD4wPC9EZXBlbmRlbnRDb3VudD4NCiAgICAgICAgICAgICAgICAgICAgICA8Sm9pbnRBc3NldExpYWJpbGl0eVJlcG9ydGluZ1R5cGU+Tm90Sm9pbnRseTwvSm9pbnRBc3NldExpYWJpbGl0eVJlcG9ydGluZ1R5cGU+DQogICAgICAgICAgICAgICAgICAgICAgPEVYVEVOU0lPTj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxPVEhFUj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJsZW5kOkJPUlJPV0VSX0RFVEFJTD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YmxlbmQ6Qm9ycm93ZXJJZGVudGlmaWVyPjE8L2JsZW5kOkJvcnJvd2VySWRlbnRpZmllcj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YmxlbmQ6Q3VzdG9tZXJBdXRob3JpemVkVG9BcHBseU5hbWU+QWRhbSBCb3Jyb3dlcjwvYmxlbmQ6Q3VzdG9tZXJBdXRob3JpemVkVG9BcHBseU5hbWU+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJsZW5kOkVsZWN0cm9uaWNDb25zZW50VHlwZVRleHQ+UGVuZGluZzwvYmxlbmQ6RWxlY3Ryb25pY0NvbnNlbnRUeXBlVGV4dD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YmxlbmQ6Sm9pbnRSZWdCQXV0aG9yaXphdGlvbkluZGljYXRvcj5mYWxzZTwvYmxlbmQ6Sm9pbnRSZWdCQXV0aG9yaXphdGlvbkluZGljYXRvcj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YmxlbmQ6VW5pcXVlSWRlbnRpZmllcj4xMjMyYjcxNy04NmFkLTQ3YWQtOGNmYS0wNWRhNDlkNGU4YTA8L2JsZW5kOlVuaXF1ZUlkZW50aWZpZXI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJsZW5kOlZldGVyYW5TdGF0dXNDb2RlPk5vdEVsaWdpYmxlPC9ibGVuZDpWZXRlcmFuU3RhdHVzQ29kZT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9ibGVuZDpCT1JST1dFUl9ERVRBSUw+DQogICAgICAgICAgICAgICAgICAgICAgICA8L09USEVSPg0KICAgICAgICAgICAgICAgICAgICAgIDwvRVhURU5TSU9OPg0KICAgICAgICAgICAgICAgICAgICA8L0JPUlJPV0VSX0RFVEFJTD4NCiAgICAgICAgICAgICAgICAgICAgPENSRURJVF9TQ09SRVMvPg0KICAgICAgICAgICAgICAgICAgICA8Q1VSUkVOVF9JTkNPTUUvPg0KICAgICAgICAgICAgICAgICAgICA8REVDTEFSQVRJT04vPg0KICAgICAgICAgICAgICAgICAgICA8UkVTSURFTkNFUy8+DQogICAgICAgICAgICAgICAgICA8L0JPUlJPV0VSPg0KICAgICAgICAgICAgICAgICAgPFJPTEVfREVUQUlMPg0KICAgICAgICAgICAgICAgICAgICA8UGFydHlSb2xlVHlwZT5Cb3Jyb3dlcjwvUGFydHlSb2xlVHlwZT4NCiAgICAgICAgICAgICAgICAgIDwvUk9MRV9ERVRBSUw+DQogICAgICAgICAgICAgICAgPC9ST0xFPg0KICAgICAgICAgICAgICA8L1JPTEVTPg0KICAgICAgICAgICAgICA8VEFYUEFZRVJfSURFTlRJRklFUlM+DQogICAgICAgICAgICAgICAgPFRBWFBBWUVSX0lERU5USUZJRVIvPg0KICAgICAgICAgICAgICA8L1RBWFBBWUVSX0lERU5USUZJRVJTPg0KICAgICAgICAgICAgPC9QQVJUWT4NCiAgICAgICAgICAgIDxQQVJUWT4NCiAgICAgICAgICAgICAgPElORElWSURVQUw+DQogICAgICAgICAgICAgICAgPENPTlRBQ1RfUE9JTlRTPg0KICAgICAgICAgICAgICAgICAgPENPTlRBQ1RfUE9JTlQ+DQogICAgICAgICAgICAgICAgICAgIDxDT05UQUNUX1BPSU5UX0VNQUlMPg0KICAgICAgICAgICAgICAgICAgICAgIDxDb250YWN0UG9pbnRFbWFpbFZhbHVlPmFwaS5kMzZmMzQ5Nzg3NmVAaW50ZXJuYWwuYmxlbmRsYWJzLmNvbTwvQ29udGFjdFBvaW50RW1haWxWYWx1ZT4NCiAgICAgICAgICAgICAgICAgICAgPC9DT05UQUNUX1BPSU5UX0VNQUlMPg0KICAgICAgICAgICAgICAgICAgICA8Q09OVEFDVF9QT0lOVF9ERVRBSUw+DQogICAgICAgICAgICAgICAgICAgICAgPENvbnRhY3RQb2ludFJvbGVUeXBlPldvcms8L0NvbnRhY3RQb2ludFJvbGVUeXBlPg0KICAgICAgICAgICAgICAgICAgICA8L0NPTlRBQ1RfUE9JTlRfREVUQUlMPg0KICAgICAgICAgICAgICAgICAgPC9DT05UQUNUX1BPSU5UPg0KICAgICAgICAgICAgICAgIDwvQ09OVEFDVF9QT0lOVFM+DQogICAgICAgICAgICAgICAgPE5BTUU+DQogICAgICAgICAgICAgICAgICA8RnVsbE5hbWU+QVBJIFVzZXI6IG5vIGRlc2NyaXB0aW9uPC9GdWxsTmFtZT4NCiAgICAgICAgICAgICAgICA8L05BTUU+DQogICAgICAgICAgICAgIDwvSU5ESVZJRFVBTD4NCiAgICAgICAgICAgICAgPFJPTEVTPg0KICAgICAgICAgICAgICAgIDxST0xFPg0KICAgICAgICAgICAgICAgICAgPFJPTEVfREVUQUlMPg0KICAgICAgICAgICAgICAgICAgICA8UGFydHlSb2xlVHlwZT5Mb2FuT3JpZ2luYXRvcjwvUGFydHlSb2xlVHlwZT4NCiAgICAgICAgICAgICAgICAgICAgPEVYVEVOU0lPTj4NCiAgICAgICAgICAgICAgICAgICAgICA8T1RIRVI+DQogICAgICAgICAgICAgICAgICAgICAgICA8YmxlbmQ6Uk9MRV9ERVRBSUw+DQogICAgICAgICAgICAgICAgICAgICAgICAgIDxibGVuZDpPcmdhbml6YXRpb25OYW1lPmludGVybmFsLmJsZW5kbGFicy5jb208L2JsZW5kOk9yZ2FuaXphdGlvbk5hbWU+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2JsZW5kOlJPTEVfREVUQUlMPg0KICAgICAgICAgICAgICAgICAgICAgIDwvT1RIRVI+DQogICAgICAgICAgICAgICAgICAgIDwvRVhURU5TSU9OPg0KICAgICAgICAgICAgICAgICAgPC9ST0xFX0RFVEFJTD4NCiAgICAgICAgICAgICAgICA8L1JPTEU+DQogICAgICAgICAgICAgIDwvUk9MRVM+DQogICAgICAgICAgICA8L1BBUlRZPg0KICAgICAgICAgIDwvUEFSVElFUz4NCiAgICAgICAgICA8RVhURU5TSU9OPg0KICAgICAgICAgICAgPE9USEVSPg0KICAgICAgICAgICAgICA8YmxlbmQ6REVBTD4NCiAgICAgICAgICAgICAgICA8YmxlbmQ6REVBTF9ERVRBSUw+DQogICAgICAgICAgICAgICAgICA8YmxlbmQ6QXBwbGljYXRpb25UZW1wbGF0ZUlkZW50aWZpZXI+ZGVmYjNhOTMtY2M1MS00Mzk2LTk4ZTItNzY4YTgzMzZmZGE0PC9ibGVuZDpBcHBsaWNhdGlvblRlbXBsYXRlSWRlbnRpZmllcj4NCiAgICAgICAgICAgICAgICAgIDxibGVuZDpMb2FuU291cmNlVHlwZT5MZW5kZXI8L2JsZW5kOkxvYW5Tb3VyY2VUeXBlPg0KICAgICAgICAgICAgICAgIDwvYmxlbmQ6REVBTF9ERVRBSUw+DQogICAgICAgICAgICAgIDwvYmxlbmQ6REVBTD4NCiAgICAgICAgICAgIDwvT1RIRVI+DQogICAgICAgICAgPC9FWFRFTlNJT04+DQogICAgICAgIDwvREVBTD4NCiAgICAgIDwvREVBTFM+DQogICAgPC9ERUFMX1NFVD4NCiAgPC9ERUFMX1NFVFM+DQogIDxET0NVTUVOVF9TRVRTPg0KICAgIDxET0NVTUVOVF9TRVQ+DQogICAgICA8RE9DVU1FTlRTPg0KICAgICAgICA8RE9DVU1FTlQ+DQogICAgICAgICAgPEVYVEVOU0lPTj4NCiAgICAgICAgICAgIDxPVEhFUj4NCiAgICAgICAgICAgICAgPGJsZW5kOkRPQ1VNRU5UPg0KICAgICAgICAgICAgICAgIDxibGVuZDpCT1JST1dFUl9JREVOVElGSUVSUz4NCiAgICAgICAgICAgICAgICAgIDxibGVuZDpCb3Jyb3dlcklkZW50aWZpZXI+MTwvYmxlbmQ6Qm9ycm93ZXJJZGVudGlmaWVyPg0KICAgICAgICAgICAgICAgIDwvYmxlbmQ6Qk9SUk9XRVJfSURFTlRJRklFUlM+DQogICAgICAgICAgICAgICAgPGJsZW5kOkRvY3VtZW50SWRlbnRpZmllcj4yNThiNGYwYS01MjE2LTQxZWMtYjZmYS1iZWI5ZTlhYjBlODA8L2JsZW5kOkRvY3VtZW50SWRlbnRpZmllcj4NCiAgICAgICAgICAgICAgICA8YmxlbmQ6RG9jdW1lbnRUeXBlVGV4dD5PdGhlcjwvYmxlbmQ6RG9jdW1lbnRUeXBlVGV4dD4NCiAgICAgICAgICAgICAgICA8YmxlbmQ6VXBsb2FkZWRCeVR5cGU+TGVuZGVyPC9ibGVuZDpVcGxvYWRlZEJ5VHlwZT4NCiAgICAgICAgICAgICAgPC9ibGVuZDpET0NVTUVOVD4NCiAgICAgICAgICAgIDwvT1RIRVI+DQogICAgICAgICAgPC9FWFRFTlNJT04+DQogICAgICAgIDwvRE9DVU1FTlQ+DQogICAgICAgIDxET0NVTUVOVD4NCiAgICAgICAgICA8RVhURU5TSU9OPg0KICAgICAgICAgICAgPE9USEVSPg0KICAgICAgICAgICAgICA8YmxlbmQ6RE9DVU1FTlQ+DQogICAgICAgICAgICAgICAgPGJsZW5kOkJPUlJPV0VSX0lERU5USUZJRVJTPg0KICAgICAgICAgICAgICAgICAgPGJsZW5kOkJvcnJvd2VySWRlbnRpZmllcj4xPC9ibGVuZDpCb3Jyb3dlcklkZW50aWZpZXI+DQogICAgICAgICAgICAgICAgPC9ibGVuZDpCT1JST1dFUl9JREVOVElGSUVSUz4NCiAgICAgICAgICAgICAgICA8YmxlbmQ6RG9jdW1lbnRJZGVudGlmaWVyPjBlNmRlYzg5LTRiOWQtNGE5Ni1iM2ZmLWQ4YzkzNjJhZmZmODwvYmxlbmQ6RG9jdW1lbnRJZGVudGlmaWVyPg0KICAgICAgICAgICAgICAgIDxibGVuZDpEb2N1bWVudFR5cGVUZXh0Pk90aGVyPC9ibGVuZDpEb2N1bWVudFR5cGVUZXh0Pg0KICAgICAgICAgICAgICAgIDxibGVuZDpVcGxvYWRlZEJ5VHlwZT5MZW5kZXI8L2JsZW5kOlVwbG9hZGVkQnlUeXBlPg0KICAgICAgICAgICAgICA8L2JsZW5kOkRPQ1VNRU5UPg0KICAgICAgICAgICAgPC9PVEhFUj4NCiAgICAgICAgICA8L0VYVEVOU0lPTj4NCiAgICAgICAgPC9ET0NVTUVOVD4NCiAgICAgICAgPERPQ1VNRU5UPg0KICAgICAgICAgIDxFWFRFTlNJT04+DQogICAgICAgICAgICA8T1RIRVI+DQogICAgICAgICAgICAgIDxibGVuZDpET0NVTUVOVD4NCiAgICAgICAgICAgICAgICA8YmxlbmQ6Qk9SUk9XRVJfSURFTlRJRklFUlM+DQogICAgICAgICAgICAgICAgICA8YmxlbmQ6Qm9ycm93ZXJJZGVudGlmaWVyPjE8L2JsZW5kOkJvcnJvd2VySWRlbnRpZmllcj4NCiAgICAgICAgICAgICAgICA8L2JsZW5kOkJPUlJPV0VSX0lERU5USUZJRVJTPg0KICAgICAgICAgICAgICAgIDxibGVuZDpEb2N1bWVudElkZW50aWZpZXI+ZTczZWQ5YTUtNjNkMC00MWJiLTk5YWEtODZmMTZlM2FhZTFkPC9ibGVuZDpEb2N1bWVudElkZW50aWZpZXI+DQogICAgICAgICAgICAgICAgPGJsZW5kOkRvY3VtZW50VHlwZVRleHQ+T3RoZXI8L2JsZW5kOkRvY3VtZW50VHlwZVRleHQ+DQogICAgICAgICAgICAgICAgPGJsZW5kOlVwbG9hZGVkQnlUeXBlPkxlbmRlcjwvYmxlbmQ6VXBsb2FkZWRCeVR5cGU+DQogICAgICAgICAgICAgIDwvYmxlbmQ6RE9DVU1FTlQ+DQogICAgICAgICAgICA8L09USEVSPg0KICAgICAgICAgIDwvRVhURU5TSU9OPg0KICAgICAgICA8L0RPQ1VNRU5UPg0KICAgICAgICA8RE9DVU1FTlQ+DQogICAgICAgICAgPEVYVEVOU0lPTj4NCiAgICAgICAgICAgIDxPVEhFUj4NCiAgICAgICAgICAgICAgPGJsZW5kOkRPQ1VNRU5UPg0KICAgICAgICAgICAgICAgIDxibGVuZDpCT1JST1dFUl9JREVOVElGSUVSUz4NCiAgICAgICAgICAgICAgICAgIDxibGVuZDpCb3Jyb3dlcklkZW50aWZpZXI+MTwvYmxlbmQ6Qm9ycm93ZXJJZGVudGlmaWVyPg0KICAgICAgICAgICAgICAgIDwvYmxlbmQ6Qk9SUk9XRVJfSURFTlRJRklFUlM+DQogICAgICAgICAgICAgICAgPGJsZW5kOkRvY3VtZW50SWRlbnRpZmllcj5jMTZjODgzMy0xMzBkLTQxZjEtYTU1OC04ZjJkOWNiODQ5YzE8L2JsZW5kOkRvY3VtZW50SWRlbnRpZmllcj4NCiAgICAgICAgICAgICAgICA8YmxlbmQ6RG9jdW1lbnRUeXBlVGV4dD5PdGhlcjwvYmxlbmQ6RG9jdW1lbnRUeXBlVGV4dD4NCiAgICAgICAgICAgICAgICA8YmxlbmQ6VXBsb2FkZWRCeVR5cGU+TGVuZGVyPC9ibGVuZDpVcGxvYWRlZEJ5VHlwZT4NCiAgICAgICAgICAgICAgPC9ibGVuZDpET0NVTUVOVD4NCiAgICAgICAgICAgIDwvT1RIRVI+DQogICAgICAgICAgPC9FWFRFTlNJT04+DQogICAgICAgIDwvRE9DVU1FTlQ+DQogICAgICAgIDxET0NVTUVOVD4NCiAgICAgICAgICA8RVhURU5TSU9OPg0KICAgICAgICAgICAgPE9USEVSPg0KICAgICAgICAgICAgICA8YmxlbmQ6RE9DVU1FTlQ+DQogICAgICAgICAgICAgICAgPGJsZW5kOkJPUlJPV0VSX0lERU5USUZJRVJTPg0KICAgICAgICAgICAgICAgICAgPGJsZW5kOkJvcnJvd2VySWRlbnRpZmllcj4xPC9ibGVuZDpCb3Jyb3dlcklkZW50aWZpZXI+DQogICAgICAgICAgICAgICAgPC9ibGVuZDpCT1JST1dFUl9JREVOVElGSUVSUz4NCiAgICAgICAgICAgICAgICA8YmxlbmQ6RG9jdW1lbnRJZGVudGlmaWVyPmQzMjkzNWI5LWRlODYtNGFhYi1hOWU2LTE4MWQyZTNmNTdjYTwvYmxlbmQ6RG9jdW1lbnRJZGVudGlmaWVyPg0KICAgICAgICAgICAgICAgIDxibGVuZDpEb2N1bWVudFR5cGVUZXh0Pk90aGVyPC9ibGVuZDpEb2N1bWVudFR5cGVUZXh0Pg0KICAgICAgICAgICAgICAgIDxibGVuZDpVcGxvYWRlZEJ5VHlwZT5MZW5kZXI8L2JsZW5kOlVwbG9hZGVkQnlUeXBlPg0KICAgICAgICAgICAgICA8L2JsZW5kOkRPQ1VNRU5UPg0KICAgICAgICAgICAgPC9PVEhFUj4NCiAgICAgICAgICA8L0VYVEVOU0lPTj4NCiAgICAgICAgPC9ET0NVTUVOVD4NCiAgICAgIDwvRE9DVU1FTlRTPg0KICAgIDwvRE9DVU1FTlRfU0VUPg0KICA8L0RPQ1VNRU5UX1NFVFM+DQo8L01FU1NBR0U+DQo=
    

    400 Response

    {
      "error": "Invalid Request",
      "display": "The action you're trying to take is invalid.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    401 Response

    {
      "error": "Authentication required",
      "display": "Your credentials are invalid.",
      "trackingId": "cbd15fc4-a8cc-45db-ac87-f90802ebbcc3"
    }
    

    403 Response

    {
      "error": "Forbidden",
      "display": "You do not have the appropriate permissions to take this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    500 Response

    {
      "error": "Internal Server Error",
      "display": "Something went wrong. Please try again later.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK Export Data (MISMO or Fannie or JSON) Inline
    400 Bad Request Invalid Request InvalidRequestErrorSchema
    401 Unauthorized Invalid Credentials AuthenticationRequiredErrorSchema
    403 Forbidden Not Authorized NotAuthorizedErrorSchema
    500 Internal Server Error Unexpected Error InternalServerErrorSchema

    Response Schema

    Patch Loan

    Code samples

    # You can also use wget
    curl -X PATCH https://api.blendlabs.com/loans/{id} \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Content-Type: application/json' \
      -H 'Accept: application/json'
    
    
    PATCH https://api.blendlabs.com/loans/{id} HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Content-Type: application/json
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/loans/{id}',
      method: 'patch',
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "losId": "Loan-12391",
      "crmId": "crmLead1",
      "referenceNumber": 124123,
      "propertyAddress": {
        "streetAddressLine1": "100 Main St",
        "streetAddressLine2": "Apt 10",
        "city": "Chicago",
        "state": "IL",
        "zipCode": "60007",
        "zipCodePlusFour": "1000"
      },
      "tridTriggeredDate": 1529360743127
    }';
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/loans/{id}',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    }
    
    result = RestClient.patch 'https://api.blendlabs.com/loans/{id}',
      params: {
      }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Content-Type': 'application/json',
      'Accept': 'application/json'
    }
    
    r = requests.patch('https://api.blendlabs.com/loans/{id}', params={
    
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/loans/{id}");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Content-Type": []string{"application/json"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("PATCH", "https://api.blendlabs.com/loans/{id}", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    PATCH /loans/{id}

    Update properties on a specific loan.

    Body parameter

    {
      "losId": "Loan-12391",
      "crmId": "crmLead1",
      "referenceNumber": 124123,
      "propertyAddress": {
        "streetAddressLine1": "100 Main St",
        "streetAddressLine2": "Apt 10",
        "city": "Chicago",
        "state": "IL",
        "zipCode": "60007",
        "zipCodePlusFour": "1000"
      },
      "tridTriggeredDate": 1529360743127
    }
    

    Parameters

    Parameter In Type Required Description
    id path LoanId true The UUID of the loan in Blend's system. The static identifier that should be used to connect the loan's identity across Blend and external integrations.
    body body object false Loan Update Body
    » losId body LosId false The UUID or GUID of the loan in the LOS AFTER initial export to the LOS. May match the Loan reference number depending on the LOS and if the customer has selected to use only GUIDs instead of UUIDs in their LOS settings.
    » crmId body CrmId false The unique identifier of the loan in a lender's Customer Relationship Management system, or CRM (e.g. Salesforce, Velocify etc.). This value should not change over time and should be used to connect the loan's identity between Blend and the CRM.
    » referenceNumber body ReferenceNumber false A mutable identifier of the loan. Not safe to use to connect the loan's identity across Blend and external systems because it can, and for most implementations, will change. Default value is an incremented ID set by Blend. Other Values could be LOS GUID after export of the loan to LOS (may be the same as the losID field or different), Can be manually set to anything by lenders in the UI or programmatically via the API.
    » propertyAddress body AddressSchema false none
    »» streetAddressLine1 body string true none
    »» streetAddressLine2 body string false none
    »» city body string true none
    »» state body string true Two-digit US state code
    »» zipCode body string true Five-digit US zip code
    »» zipCodePlusFour body string false Four-digit additional US zip code numbers
    » tridTriggeredDate body number false none

    Example responses

    400 Response

    {
      "error": "Invalid Request",
      "display": "The action you're trying to take is invalid.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    401 Response

    {
      "error": "Authentication required",
      "display": "Your credentials are invalid.",
      "trackingId": "cbd15fc4-a8cc-45db-ac87-f90802ebbcc3"
    }
    

    403 Response

    {
      "error": "Forbidden",
      "display": "You do not have the appropriate permissions to take this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    500 Response

    {
      "error": "Internal Server Error",
      "display": "Something went wrong. Please try again later.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK None
    400 Bad Request Invalid Request InvalidRequestErrorSchema
    401 Unauthorized Invalid Credentials AuthenticationRequiredErrorSchema
    403 Forbidden Not Authorized NotAuthorizedErrorSchema
    500 Internal Server Error Unexpected Error InternalServerErrorSchema

    Get Loan Borrowers

    Code samples

    # You can also use wget
    curl -X GET https://api.blendlabs.com/loans/{id}/borrowers \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Accept: application/json'
    
    
    GET https://api.blendlabs.com/loans/{id}/borrowers HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/loans/{id}/borrowers',
      method: 'get',
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/loans/{id}/borrowers',
    {
      method: 'GET',
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Accept' => 'application/json'
    }
    
    result = RestClient.get 'https://api.blendlabs.com/loans/{id}/borrowers',
      params: {
      }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Accept': 'application/json'
    }
    
    r = requests.get('https://api.blendlabs.com/loans/{id}/borrowers', params={
    
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/loans/{id}/borrowers");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("GET", "https://api.blendlabs.com/loans/{id}/borrowers", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    GET /loans/{id}/borrowers

    Get a list of borrowers on the loan

    Parameters

    Parameter In Type Required Description
    id path LoanId true The UUID of the loan in Blend's system. The static identifier that should be used to connect the loan's identity across Blend and external integrations.
    losId-eq query string false Returns only the borrower matching the given LOS identifier, if they exist on this loan

    Example responses

    200 Response

    [
      {
        "id": "3f345acb-6ac4-4bd0-b04a-dc0b9ad76e70",
        "type": "BORROWER",
        "name": {
          "firstName": "John",
          "middleName": "M",
          "lastName": "Doe",
          "suffixName": "III"
        },
        "email": "borrower@email.com",
        "phoneNumbers": [
          {
            "phoneNumber": 4155504810,
            "phoneNumberType": "HOME"
          }
        ],
        "econsent": {
          "status": "Pending",
          "date": "2018-08-30T19:31:38.902Z",
          "ip": "8.8.8.8"
        }
      }
    ]
    

    400 Response

    {
      "error": "Invalid Request",
      "display": "The action you're trying to take is invalid.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    401 Response

    {
      "error": "Authentication required",
      "display": "Your credentials are invalid.",
      "trackingId": "cbd15fc4-a8cc-45db-ac87-f90802ebbcc3"
    }
    

    403 Response

    {
      "error": "Forbidden",
      "display": "You do not have the appropriate permissions to take this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    500 Response

    {
      "error": "Internal Server Error",
      "display": "Something went wrong. Please try again later.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK List of borrowers Inline
    400 Bad Request Invalid Request InvalidRequestErrorSchema
    401 Unauthorized Invalid Credentials AuthenticationRequiredErrorSchema
    403 Forbidden Not Authorized NotAuthorizedErrorSchema
    500 Internal Server Error Unexpected Error InternalServerErrorSchema

    Response Schema

    Status Code 200

    Name Type Required Restrictions Description
    anonymous [BorrowerEconsentSchema] false none none
    » id string false none Borrower id
    » type string false none Identifying BORROWER (primary borrower; first borrower on first 1003/borrower pair) or COBORROWER
    » name NameSchema false none none
    »» firstName string false none none
    »» middleName string false none none
    »» lastName string false none none
    »» suffixName string false none none
    » email string false none Borrower email
    » phoneNumbers [PhoneNumberSchema] false none none
    »» phoneNumber integer false none Borrower's phone number
    »» phoneNumberType string false none Type of phone number
    » econsent EconsentSchema false none none
    »» status string false none State of econsent
    »» date string false none ISO-8601 UTC timestamp (null if status is Pending)
    »» ip string false none IP Address from which econsent was given (null if status is Pending)

    Enumerated Values

    Property Value
    type BORROWER
    type COBORROWER
    phoneNumberType HOME
    phoneNumberType WORK
    phoneNumberType MOBILE
    status Accepted
    status Declined
    status Pending

    Get Loan Documents

    Code samples

    # You can also use wget
    curl -X GET https://api.blendlabs.com/loans/{id}/documents \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Accept: application/json'
    
    
    GET https://api.blendlabs.com/loans/{id}/documents HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/loans/{id}/documents',
      method: 'get',
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/loans/{id}/documents',
    {
      method: 'GET',
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Accept' => 'application/json'
    }
    
    result = RestClient.get 'https://api.blendlabs.com/loans/{id}/documents',
      params: {
      }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Accept': 'application/json'
    }
    
    r = requests.get('https://api.blendlabs.com/loans/{id}/documents', params={
    
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/loans/{id}/documents");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("GET", "https://api.blendlabs.com/loans/{id}/documents", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    GET /loans/{id}/documents

    Get a list of all the uploaded and signature complete documents on a specific loan, ordered by document creation date.

    Parameters

    Parameter In Type Required Description
    id path LoanId true The UUID of the loan in Blend's system. The static identifier that should be used to connect the loan's identity across Blend and external integrations.
    includeAllExports query boolean false If true, the losExportedAt time in the response will be that of the latest export (if one exists) by any paradigm. If false/not provided, the losExportedAt time in the response will correspond to the latest export (if one exists) by the paradigm of the current caller.
    includeAllDocuments query boolean false If true, returns a list of all the documents on the loan, including signature pending documents.

    Example responses

    200 Response

    {
      "documents": [
        {
          "id": "528e481b-19b7-4e81-a49e-bbb8258e308d",
          "name": "Paystub.pdf",
          "type": "LOE_PUBLIC_RECORD:BANKRUPTCY",
          "loanId": "aa9fdaa2-7bf3-4411-a836-c2a46117f5c3",
          "losType": "PAYSTUB_DOC",
          "losTypeId": "12312",
          "created": "2018-10-02T20:07:27+00:00",
          "borrowerIds": [
            "18c3e52a-c7e7-4c6d-a36f-d5bca568613a"
          ],
          "downloadUrl": "https://api.blendlabs.com/documents/eba0d438-0748-4296-b369-c98210e537f7",
          "losExportedAt": "2018-10-03T20:07:27+00:00"
        }
      ]
    }
    

    401 Response

    {
      "error": "Authentication required",
      "display": "Your credentials are invalid.",
      "trackingId": "cbd15fc4-a8cc-45db-ac87-f90802ebbcc3"
    }
    

    403 Response

    {
      "error": "Forbidden",
      "display": "You do not have the appropriate permissions to take this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    500 Response

    {
      "error": "Internal Server Error",
      "display": "Something went wrong. Please try again later.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK List of documents Inline
    401 Unauthorized Invalid Credentials AuthenticationRequiredErrorSchema
    403 Forbidden Not Authorized NotAuthorizedErrorSchema
    500 Internal Server Error Unexpected Error InternalServerErrorSchema

    Response Schema

    Status Code 200

    Name Type Required Restrictions Description
    » documents [DocumentSchema] false none Array of documents
    »» id string false none Document Id
    »» name string false none Document Filename
    »» type DocumentType false none Blend document type
    »» loanId LoanId false none The UUID of the loan in Blend's system. The static identifier that should be used to connect the loan's identity across Blend and external integrations.
    »» losType string false none LOS document type (used with Blend document templating)
    »» losTypeId string false none LOS document id (use for external tracking)
    »» created string false none ISO Timestamp of document creation
    »» borrowerIds [string] false none none
    »» downloadUrl string false none Document url
    »» losExportedAt string false none ISO Timestamp of last export for document

    Enumerated Values

    Property Value
    type LOE_PUBLIC_RECORD:BANKRUPTCY
    type LOE_PUBLIC_RECORD:TAX_LIEN
    type LOE_PUBLIC_RECORD:JUDGMENT
    type LOE_LARGE_DEPOSITS:TRANSFER
    type LOE_LARGE_DEPOSITS:SALE_OF_ASSET
    type LOE_LARGE_DEPOSITS:INCOME
    type LOE_LARGE_DEPOSITS:GIFT
    type LOE_LARGE_DEPOSITS:OTHER
    type BANK_STATEMENT
    type BANK_STATEMENT:_MUTUAL_FUND_ACCOUNT
    type BANK_STATEMENT:_STOCK_ACCOUNT
    type FINANCIAL_STATEMENT:_BALANCE_SHEET
    type FINANCIAL_STATEMENT:_INCOME
    type IRS1040
    type IRS1041
    type IRS1120
    type IRS1120_S
    type LLC_BTR_DOC
    type IRSW2
    type CRAT4
    type 1003
    type 4506t
    type TAX_TRANSCRIPT
    type DOCUSIGN_CERT_OF_COMP
    type PAY_STUB
    type PROPERTY_INSURANCE_POLICY:_GENERAL
    type PROPERTY_INSURANCE_POLICY:_MINE_SUBSIDENCE
    type PROPERTY_INSURANCE_POLICY:_INSECT_INFESTATION
    type PROPERTY_INSURANCE_POLICY:_HOMEOWNERS
    type PROPERTY_INSURANCE_POLICY:_VOLCANO
    type PROPERTY_INSURANCE_POLICY:_FLOOD
    type PROPERTY_INSURANCE_POLICY:_HAZARD
    type INSURANCE_AGENT_CONTACT_INFO
    type PURCHASE_AGREEMENT
    type OTHER_DISCLOSURES
    type REQUEST_FOR_COPY_OF_TAX_RETURN:_IRS4506_T
    type RETIREMENT_ACCOUNT_STATEMENT
    type SOCIAL_SECURITY_AWARD_LETTER
    type TRUST_AGREEMENT
    type VERIFICATION_OF_EMPLOYMENT
    type VERIFICATION_OF_EMPLOYMENT_REVERIFY
    type VERIFICATION_OF_EMPLOYMENT_RETRIEVED
    type VERIFICATION_OF_INCOME
    type PENSION_AWARD_LETTER
    type ANNUITY_AWARD_LETTER
    type DEFERRED_COMPENSATION_AWARD_LETTER
    type VERIFICATION_OF_MORTGAGE_OR_RENT
    type VERIFICATION_OF_RENT
    type VERIFICATION_OF_MORTGAGE
    type RETIREMENT_LIQUIDITY_TERMS
    type LETTER_OF_EXPLANATION:_CREDIT_INQUIRY
    type LETTER_OF_EXPLANATION:_DEROGATORY_CREDIT
    type LETTER_OF_EXPLANATION:_ADDRESS_VERIFICATION
    type LETTER_OF_EXPLANATION:_JOB_GAP
    type LETTER_OF_EXPLANATION:_LARGE_DEPOSITS
    type PROPERTY_TAX_BILL
    type MORTGAGE_STATEMENT
    type BORROWER_CONSENT_FORM
    type BORROWER_INCOME_VERIFICATION_CONSENT_FORM
    type APPRAISAL_WAIVER
    type INTENT_TO_PROCEED
    type NATIONAL_IDENTIFICATION
    type PROPERTY_INSURANCE_POLICY:_MASTERPOLICY_ASSN
    type MARRIAGE_CERTIFICATE
    type DEATH_CERTIFICATE
    type DIVORCE_DECREE
    type NATIONAL_IDENTIFICATION:_SOCIAL_SECURITY_CARD
    type CONDOMINIUM_OCCUPANCY_CERTIFICATE
    type HOMEOWNERS_ASSOCIATION_CERTIFICATION
    type BANK_DEPOSIT_SLIP
    type PROPERTY_INSURANCE_POLICY:_HURRICANE
    type PROPERTY_INSURANCE_POLICY:_LEASEHOLD
    type PROPERTY_INSURANCE_POLICY:_PERSONAL_PROPERTY
    type PROPERTY_INSURANCE_POLICY:_STORM
    type PROPERTY_INSURANCE_POLICY:_TORNADO
    type PROPERTY_INSURANCE_POLICY:_WIND
    type CREDIT_REPORT
    type PERMANENT_RESIDENT_IDENTIFICATION
    type PROPERTY_INSURANCE_POLICY:_CONDOMINIUM
    type APPRAISAL_REPORT_SINGLE FAMILY
    type APPRAISAL_REPORT_2_-_4_UNIT
    type APPRAISAL_REPORT_MANUFACTURED_HOME
    type APPRAISAL_REPORT_COOP
    type APPRAISAL_REPORT_EXTERIOR_ONLY
    type APPRAISAL_REPORT_AVM
    type APPRAISAL_REPORT_RENT_SURVEY
    type APPRAISAL_REPORT_OPERATING_INCOME_SCHEDULE
    type APPRAISAL_REPORT_MARKET_CONDITIONS_ADDENDUM
    type APPRAISAL_REPORT_UPDATE_AND_OR_COMPLETION_REPORT
    type APPRAISAL_REPORT_PROPERTY_CONDITION_REPORT
    type APPRAISAL_REPORT_DESK_REVIEW
    type SETTLEMENT_STATEMENT_HUD1
    type VISA
    type PASSPORT
    type NATIONAL_IDENTIFICATION_NON_PERMANENT_RESIDENT
    type DD_214
    type VA_STATEMENT_OF_SERVICE
    type VA_CERTIFICATE_OF_ELIGIBILITY
    type CREDIT_AUTHORIZATION
    type CREDIT_CARD_AUTHORIZATION
    type BIRTH_CERTIFICATE
    type INVOICE_UTILITY_BILL
    type ADDRESS_VERIFICATION
    type LETTER_OF_EXPLANATION_NAME_VARIATION
    type POWER_OF_ATTORNEY
    type RENTAL_AGREEMENT
    type RENTAL_SECURITY_DEPOSIT
    type VERIFICATION_OF_EMPLOYMENT_WRITTEN
    type BUSINESS_LICENSE
    type IRS1099
    type K1
    type IRS1065
    type SOCIAL_SECURITY_PROOF_OF_RECEIPT
    type EMPLOYMENT_OFFER_LETTER
    type RENTAL_INCOME_PROOF_OF_RECEIPT
    type RETIREMENT_AWARD_LETTER
    type VA_AWARD_LETTER
    type BONUS_AND_COMMISSION_DOCUMENTATION
    type CHILD_SUPPORT_INCOME
    type ALIMONY_INCOME
    type CHILD_SUPPORT_LIABILITY
    type ALIMONY_LIABILITY
    type GENERATED_ASSET_STATEMENT
    type ACHDEBIT_AUTHORIZATION
    type GIFT_LETTER
    type PROOF_OF_LIQUIDATION
    type CREDIT_REPORT_NON_TRADITIONAL
    type CREDIT_SUPPLEMENT
    type BANKRUPTCY_DISCHARGE_NOTICE
    type BANKRUPTCY_FILING
    type SATISFACTION_OF_SECURITY_INSTRUMENT_LIEN_RELEASE
    type FRAUD_ALERT
    type STATEMENT_CREDIT_CARD_OR_INSTALLMENT_ACCT
    type JUDGMENT
    type COSIGNED_LIABILITY
    type PURCHASE_AGREEMENT_ADDENDUM
    type HOME_INSPECTION_REPORT
    type PEST_INSPECTION_REPORT
    type ROOF_INSPECTION_REPORT
    type POOL_INSPECTION_REPORT
    type EARNEST_MONEY_DEPOSIT
    type FLOOD_HAZARD_NOTICE
    type FLOOD_CERTIFICATION
    type TAX_CERTIFICATE
    type AMENDATORY_CLAUSE
    type PAYOFF_STATEMENT
    type CLOSING_PROTECTION_LETTER
    type SCHEDULE_OF_REAL_ESTATE
    type BORROWER_CERTIFICATION
    type OCCUPANCY_CERTIFICATION
    type TRUTH_IN_LENDING
    type GOOD_FAITH_ESTIMATE
    type ESCROW_WAIVER
    type LOAN_ESTIMATE
    type CLOSING_DISCLOSURE
    type GENERAL_LOAN_ACKNOWLEDGMENT
    type HUD_VA_ADDENDUM
    type BORROWER_CORRESPONDENCE:_LETTER_OF_EXPLANATION
    type BORROWER_CORRESPONDENCE:_LETTER_OF_EXPLANATION_OCCUPANCY
    type BORROWER_CORRESPONDENCE:_LETTER_OF_EXPLANATION_CASHOUT
    type MORTGAGE_INSURANCE
    type NET_TANGIBLE_BENEFIT
    type NOTE
    type HOA_BILL
    type ARTICLES_OF_INCORPORATION
    type BYLAWS_OPERATING_AGREEMENT
    type AFFILIATED_BUSINESS_ARRANGEMENT_DISCLOSURE
    type DISCLOSURES_TRACKING_REPORT
    type ENERGY_EFFICIENT_MORTGAGE_WORKSHEET
    type IMPORTANT_NOTICE_TO_HOMEBUYER
    type FAIR_LENDING_NOTICE
    type FOR_YOUR_PROTECTION_HOME_INSPECTION
    type RATE_LOCK_AGREEMENT
    type BOND_CERTIFICATE
    type CUSTOMER_IDENTIFICATION_VERIFICATION
    type VERIFICATION_OF_SSN
    type RESIDUAL_INCOME_LETTER
    type OTHER
    type DU_UNDERWRITING_FINDINGS
    type DU_UNDERWRITING_LOG
    type DU_UNDERWRITING_DEFAULTS
    type OTHER_APPLICATION
    type PRE_QUALIFICATION_LETTER
    type APPRAISAL
    type PRE_APPROVAL_LETTER
    type PRE_APPROVAL_LETTER:_PREVIEW
    type COMPLIANCE_REPORT
    type LOAN_SNAPSHOT
    type HMDA_REPORT
    type ATTACHMENT
    type LETTER_OF_EXPLANATION:_GENERATED_CREDIT_INQUIRY
    type LETTER_OF_EXPLANATION:_GENERATED_ADDRESS_VERIFICATION
    type GENERATED_GIFT_LETTER
    type LETTER_OF_EXPLANATION:_GENERATED_LATE_PAYMENT
    type LETTER_OF_EXPLANATION:_GENERATED_PUBLIC_RECORD
    type LETTER_OF_EXPLANATION:_GENERATED_LARGE_DEPOSIT
    type MEDICAL_RESIDENCY_FELLOWSHIP
    type MEDICAL_LICENSE_DIPLOMA
    type NEAREST_LIVING_RELATIVE
    type EMPLOYMENT_CONTRACT
    type GENERATED_COST_WORKSHEET
    type FNMA_NETPAY_REPORT_ASSETS
    type FNMA_NETPAY_REPORT_INCOME
    type FNMA_NETPAY_BORROWERS_REQUEST
    type FNMA_NETPAY_GSE_API_XML
    type KNOW_YOUR_CUSTOMER

    Get Loan Application Details

    Code samples

    # You can also use wget
    curl -X GET https://api.blendlabs.com/loans/{id}/application-details \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Accept: application/json'
    
    
    GET https://api.blendlabs.com/loans/{id}/application-details HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/loans/{id}/application-details',
      method: 'get',
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/loans/{id}/application-details',
    {
      method: 'GET',
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Accept' => 'application/json'
    }
    
    result = RestClient.get 'https://api.blendlabs.com/loans/{id}/application-details',
      params: {
      }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Accept': 'application/json'
    }
    
    r = requests.get('https://api.blendlabs.com/loans/{id}/application-details', params={
    
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/loans/{id}/application-details");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("GET", "https://api.blendlabs.com/loans/{id}/application-details", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    GET /loans/{id}/application-details

    Get the list of borrower pairs on the loan (relevant for mortgage loans)

    Parameters

    Parameter In Type Required Description
    id path LoanId true The UUID of the loan in Blend's system. The static identifier that should be used to connect the loan's identity across Blend and external integrations.

    Example responses

    200 Response

    {
      "borrowerPairs": [
        {
          "primaryBorrowerId": "1001db24-14b2-4179-8e1e-08bbb2fb94b3",
          "secondaryBorrowerId": "56632a12-1bd7-4014-8571-cff53c346738"
        }
      ]
    }
    

    401 Response

    {
      "error": "Authentication required",
      "display": "Your credentials are invalid.",
      "trackingId": "cbd15fc4-a8cc-45db-ac87-f90802ebbcc3"
    }
    

    403 Response

    {
      "error": "Forbidden",
      "display": "You do not have the appropriate permissions to take this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    500 Response

    {
      "error": "Internal Server Error",
      "display": "Something went wrong. Please try again later.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK Loan Application Details Inline
    401 Unauthorized Invalid Credentials AuthenticationRequiredErrorSchema
    403 Forbidden Not Authorized NotAuthorizedErrorSchema
    500 Internal Server Error Unexpected Error InternalServerErrorSchema

    Response Schema

    Status Code 200

    Name Type Required Restrictions Description
    » borrowerPairs [BorrowerPairSchema] false none none
    »» primaryBorrowerId string false none First applicant on a specific 1003
    »» secondaryBorrowerId string false none Second applicant on a specific 1003

    Put Loan Application Details

    Code samples

    # You can also use wget
    curl -X PUT https://api.blendlabs.com/loans/{id}/application-details \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Content-Type: application/json' \
      -H 'Accept: application/json'
    
    
    PUT https://api.blendlabs.com/loans/{id}/application-details HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Content-Type: application/json
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/loans/{id}/application-details',
      method: 'put',
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "borrowerPairs": [
        {
          "primaryBorrowerId": "1001db24-14b2-4179-8e1e-08bbb2fb94b3",
          "secondaryBorrowerId": "56632a12-1bd7-4014-8571-cff53c346738"
        }
      ]
    }';
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/loans/{id}/application-details',
    {
      method: 'PUT',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    }
    
    result = RestClient.put 'https://api.blendlabs.com/loans/{id}/application-details',
      params: {
      }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Content-Type': 'application/json',
      'Accept': 'application/json'
    }
    
    r = requests.put('https://api.blendlabs.com/loans/{id}/application-details', params={
    
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/loans/{id}/application-details");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PUT");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Content-Type": []string{"application/json"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("PUT", "https://api.blendlabs.com/loans/{id}/application-details", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    PUT /loans/{id}/application-details

    Update the location of borrowers on the loan (by 1003/borrower pairing and location on the borrower pair)

    Body parameter

    {
      "borrowerPairs": [
        {
          "primaryBorrowerId": "1001db24-14b2-4179-8e1e-08bbb2fb94b3",
          "secondaryBorrowerId": "56632a12-1bd7-4014-8571-cff53c346738"
        }
      ]
    }
    

    Parameters

    Parameter In Type Required Description
    id path LoanId true The UUID of the loan in Blend's system. The static identifier that should be used to connect the loan's identity across Blend and external integrations.
    body body object false New BorrowerPair
    » borrowerPairs body [BorrowerPairSchema] false none
    »» primaryBorrowerId body string false First applicant on a specific 1003
    »» secondaryBorrowerId body string false Second applicant on a specific 1003

    Example responses

    401 Response

    {
      "error": "Authentication required",
      "display": "Your credentials are invalid.",
      "trackingId": "cbd15fc4-a8cc-45db-ac87-f90802ebbcc3"
    }
    

    403 Response

    {
      "error": "Forbidden",
      "display": "You do not have the appropriate permissions to take this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    500 Response

    {
      "error": "Internal Server Error",
      "display": "Something went wrong. Please try again later.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK Successful Upsert None
    401 Unauthorized Invalid Credentials AuthenticationRequiredErrorSchema
    403 Forbidden Not Authorized NotAuthorizedErrorSchema
    500 Internal Server Error Unexpected Error InternalServerErrorSchema

    Documents

    Get Documents

    Code samples

    # You can also use wget
    curl -X GET https://api.blendlabs.com/documents \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Accept: application/json'
    
    
    GET https://api.blendlabs.com/documents HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/documents',
      method: 'get',
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/documents',
    {
      method: 'GET',
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Accept' => 'application/json'
    }
    
    result = RestClient.get 'https://api.blendlabs.com/documents',
      params: {
      }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Accept': 'application/json'
    }
    
    r = requests.get('https://api.blendlabs.com/documents', params={
    
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/documents");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("GET", "https://api.blendlabs.com/documents", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    GET /documents

    Get a paginated list of documents

    Parameters

    Parameter In Type Required Description
    cursor query string false An opaque string used for pagination, pass the cursor back to start at this position
    limit query number false The number of loans to be provided for this call. Minimum is 1, maximum is 100, default is 50.
    exported query boolean false If exported is true, then the response only contains documents that have already been exported. If exported is false, then the response only contains documents that have not already been exported. Otherwise, the response returns documents independent of the exported field.
    includeAllExports query boolean false If true, the losExportedAt time in the response will be that of the latest export (if one exists) by any paradigm. If false/not provided, the losExportedAt time in the response will correspond to the latest export (if one exists) by the paradigm of the current caller.
    uploadedAfter query number false Returns only documents uploaded after this time (UNIX milliseconds since epoch)
    uploadedBefore query number false Returns only documents uploaded before this time (UNIX milliseconds since epoch)
    statusIncludes query string false Comma delimited string of document statuses to filter for

    Enumerated Values

    Parameter Value
    statusIncludes READY
    statusIncludes SIGNATURE_REQUESTED
    statusIncludes VOIDED

    Example responses

    200 Response

    {
      "documents": [
        {
          "id": "528e481b-19b7-4e81-a49e-bbb8258e308d",
          "name": "Paystub.pdf",
          "type": "LOE_PUBLIC_RECORD:BANKRUPTCY",
          "loanId": "aa9fdaa2-7bf3-4411-a836-c2a46117f5c3",
          "losType": "PAYSTUB_DOC",
          "losTypeId": "12312",
          "created": "2018-10-02T20:07:27+00:00",
          "borrowerIds": [
            "18c3e52a-c7e7-4c6d-a36f-d5bca568613a"
          ],
          "downloadUrl": "https://api.blendlabs.com/documents/eba0d438-0748-4296-b369-c98210e537f7",
          "losExportedAt": "2018-10-03T20:07:27+00:00"
        }
      ],
      "prevCursor": "string",
      "nextCursor": "string"
    }
    

    400 Response

    {
      "error": "Invalid Request",
      "display": "The action you're trying to take is invalid.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    401 Response

    {
      "error": "Authentication required",
      "display": "Your credentials are invalid.",
      "trackingId": "cbd15fc4-a8cc-45db-ac87-f90802ebbcc3"
    }
    

    403 Response

    {
      "error": "Forbidden",
      "display": "You do not have the appropriate permissions to take this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    500 Response

    {
      "error": "Internal Server Error",
      "display": "Something went wrong. Please try again later.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK List of paginated documents, with cursors to go the next or previous pages. Inline
    400 Bad Request Invalid Request InvalidRequestErrorSchema
    401 Unauthorized Invalid Credentials AuthenticationRequiredErrorSchema
    403 Forbidden Not Authorized NotAuthorizedErrorSchema
    500 Internal Server Error Unexpected Error InternalServerErrorSchema

    Response Schema

    Status Code 200

    Name Type Required Restrictions Description
    » documents [DocumentSchema] false none An array of documents
    »» id string false none Document Id
    »» name string false none Document Filename
    »» type DocumentType false none Blend document type
    »» loanId LoanId false none The UUID of the loan in Blend's system. The static identifier that should be used to connect the loan's identity across Blend and external integrations.
    »» losType string false none LOS document type (used with Blend document templating)
    »» losTypeId string false none LOS document id (use for external tracking)
    »» created string false none ISO Timestamp of document creation
    »» borrowerIds [string] false none none
    »» downloadUrl string false none Document url
    »» losExportedAt string false none ISO Timestamp of last export for document
    » prevCursor string false none Cursor to use to get to the previous set of documents
    » nextCursor string false none Cursor to use to get to the next set of documents

    Enumerated Values

    Property Value
    type LOE_PUBLIC_RECORD:BANKRUPTCY
    type LOE_PUBLIC_RECORD:TAX_LIEN
    type LOE_PUBLIC_RECORD:JUDGMENT
    type LOE_LARGE_DEPOSITS:TRANSFER
    type LOE_LARGE_DEPOSITS:SALE_OF_ASSET
    type LOE_LARGE_DEPOSITS:INCOME
    type LOE_LARGE_DEPOSITS:GIFT
    type LOE_LARGE_DEPOSITS:OTHER
    type BANK_STATEMENT
    type BANK_STATEMENT:_MUTUAL_FUND_ACCOUNT
    type BANK_STATEMENT:_STOCK_ACCOUNT
    type FINANCIAL_STATEMENT:_BALANCE_SHEET
    type FINANCIAL_STATEMENT:_INCOME
    type IRS1040
    type IRS1041
    type IRS1120
    type IRS1120_S
    type LLC_BTR_DOC
    type IRSW2
    type CRAT4
    type 1003
    type 4506t
    type TAX_TRANSCRIPT
    type DOCUSIGN_CERT_OF_COMP
    type PAY_STUB
    type PROPERTY_INSURANCE_POLICY:_GENERAL
    type PROPERTY_INSURANCE_POLICY:_MINE_SUBSIDENCE
    type PROPERTY_INSURANCE_POLICY:_INSECT_INFESTATION
    type PROPERTY_INSURANCE_POLICY:_HOMEOWNERS
    type PROPERTY_INSURANCE_POLICY:_VOLCANO
    type PROPERTY_INSURANCE_POLICY:_FLOOD
    type PROPERTY_INSURANCE_POLICY:_HAZARD
    type INSURANCE_AGENT_CONTACT_INFO
    type PURCHASE_AGREEMENT
    type OTHER_DISCLOSURES
    type REQUEST_FOR_COPY_OF_TAX_RETURN:_IRS4506_T
    type RETIREMENT_ACCOUNT_STATEMENT
    type SOCIAL_SECURITY_AWARD_LETTER
    type TRUST_AGREEMENT
    type VERIFICATION_OF_EMPLOYMENT
    type VERIFICATION_OF_EMPLOYMENT_REVERIFY
    type VERIFICATION_OF_EMPLOYMENT_RETRIEVED
    type VERIFICATION_OF_INCOME
    type PENSION_AWARD_LETTER
    type ANNUITY_AWARD_LETTER
    type DEFERRED_COMPENSATION_AWARD_LETTER
    type VERIFICATION_OF_MORTGAGE_OR_RENT
    type VERIFICATION_OF_RENT
    type VERIFICATION_OF_MORTGAGE
    type RETIREMENT_LIQUIDITY_TERMS
    type LETTER_OF_EXPLANATION:_CREDIT_INQUIRY
    type LETTER_OF_EXPLANATION:_DEROGATORY_CREDIT
    type LETTER_OF_EXPLANATION:_ADDRESS_VERIFICATION
    type LETTER_OF_EXPLANATION:_JOB_GAP
    type LETTER_OF_EXPLANATION:_LARGE_DEPOSITS
    type PROPERTY_TAX_BILL
    type MORTGAGE_STATEMENT
    type BORROWER_CONSENT_FORM
    type BORROWER_INCOME_VERIFICATION_CONSENT_FORM
    type APPRAISAL_WAIVER
    type INTENT_TO_PROCEED
    type NATIONAL_IDENTIFICATION
    type PROPERTY_INSURANCE_POLICY:_MASTERPOLICY_ASSN
    type MARRIAGE_CERTIFICATE
    type DEATH_CERTIFICATE
    type DIVORCE_DECREE
    type NATIONAL_IDENTIFICATION:_SOCIAL_SECURITY_CARD
    type CONDOMINIUM_OCCUPANCY_CERTIFICATE
    type HOMEOWNERS_ASSOCIATION_CERTIFICATION
    type BANK_DEPOSIT_SLIP
    type PROPERTY_INSURANCE_POLICY:_HURRICANE
    type PROPERTY_INSURANCE_POLICY:_LEASEHOLD
    type PROPERTY_INSURANCE_POLICY:_PERSONAL_PROPERTY
    type PROPERTY_INSURANCE_POLICY:_STORM
    type PROPERTY_INSURANCE_POLICY:_TORNADO
    type PROPERTY_INSURANCE_POLICY:_WIND
    type CREDIT_REPORT
    type PERMANENT_RESIDENT_IDENTIFICATION
    type PROPERTY_INSURANCE_POLICY:_CONDOMINIUM
    type APPRAISAL_REPORT_SINGLE FAMILY
    type APPRAISAL_REPORT_2_-_4_UNIT
    type APPRAISAL_REPORT_MANUFACTURED_HOME
    type APPRAISAL_REPORT_COOP
    type APPRAISAL_REPORT_EXTERIOR_ONLY
    type APPRAISAL_REPORT_AVM
    type APPRAISAL_REPORT_RENT_SURVEY
    type APPRAISAL_REPORT_OPERATING_INCOME_SCHEDULE
    type APPRAISAL_REPORT_MARKET_CONDITIONS_ADDENDUM
    type APPRAISAL_REPORT_UPDATE_AND_OR_COMPLETION_REPORT
    type APPRAISAL_REPORT_PROPERTY_CONDITION_REPORT
    type APPRAISAL_REPORT_DESK_REVIEW
    type SETTLEMENT_STATEMENT_HUD1
    type VISA
    type PASSPORT
    type NATIONAL_IDENTIFICATION_NON_PERMANENT_RESIDENT
    type DD_214
    type VA_STATEMENT_OF_SERVICE
    type VA_CERTIFICATE_OF_ELIGIBILITY
    type CREDIT_AUTHORIZATION
    type CREDIT_CARD_AUTHORIZATION
    type BIRTH_CERTIFICATE
    type INVOICE_UTILITY_BILL
    type ADDRESS_VERIFICATION
    type LETTER_OF_EXPLANATION_NAME_VARIATION
    type POWER_OF_ATTORNEY
    type RENTAL_AGREEMENT
    type RENTAL_SECURITY_DEPOSIT
    type VERIFICATION_OF_EMPLOYMENT_WRITTEN
    type BUSINESS_LICENSE
    type IRS1099
    type K1
    type IRS1065
    type SOCIAL_SECURITY_PROOF_OF_RECEIPT
    type EMPLOYMENT_OFFER_LETTER
    type RENTAL_INCOME_PROOF_OF_RECEIPT
    type RETIREMENT_AWARD_LETTER
    type VA_AWARD_LETTER
    type BONUS_AND_COMMISSION_DOCUMENTATION
    type CHILD_SUPPORT_INCOME
    type ALIMONY_INCOME
    type CHILD_SUPPORT_LIABILITY
    type ALIMONY_LIABILITY
    type GENERATED_ASSET_STATEMENT
    type ACHDEBIT_AUTHORIZATION
    type GIFT_LETTER
    type PROOF_OF_LIQUIDATION
    type CREDIT_REPORT_NON_TRADITIONAL
    type CREDIT_SUPPLEMENT
    type BANKRUPTCY_DISCHARGE_NOTICE
    type BANKRUPTCY_FILING
    type SATISFACTION_OF_SECURITY_INSTRUMENT_LIEN_RELEASE
    type FRAUD_ALERT
    type STATEMENT_CREDIT_CARD_OR_INSTALLMENT_ACCT
    type JUDGMENT
    type COSIGNED_LIABILITY
    type PURCHASE_AGREEMENT_ADDENDUM
    type HOME_INSPECTION_REPORT
    type PEST_INSPECTION_REPORT
    type ROOF_INSPECTION_REPORT
    type POOL_INSPECTION_REPORT
    type EARNEST_MONEY_DEPOSIT
    type FLOOD_HAZARD_NOTICE
    type FLOOD_CERTIFICATION
    type TAX_CERTIFICATE
    type AMENDATORY_CLAUSE
    type PAYOFF_STATEMENT
    type CLOSING_PROTECTION_LETTER
    type SCHEDULE_OF_REAL_ESTATE
    type BORROWER_CERTIFICATION
    type OCCUPANCY_CERTIFICATION
    type TRUTH_IN_LENDING
    type GOOD_FAITH_ESTIMATE
    type ESCROW_WAIVER
    type LOAN_ESTIMATE
    type CLOSING_DISCLOSURE
    type GENERAL_LOAN_ACKNOWLEDGMENT
    type HUD_VA_ADDENDUM
    type BORROWER_CORRESPONDENCE:_LETTER_OF_EXPLANATION
    type BORROWER_CORRESPONDENCE:_LETTER_OF_EXPLANATION_OCCUPANCY
    type BORROWER_CORRESPONDENCE:_LETTER_OF_EXPLANATION_CASHOUT
    type MORTGAGE_INSURANCE
    type NET_TANGIBLE_BENEFIT
    type NOTE
    type HOA_BILL
    type ARTICLES_OF_INCORPORATION
    type BYLAWS_OPERATING_AGREEMENT
    type AFFILIATED_BUSINESS_ARRANGEMENT_DISCLOSURE
    type DISCLOSURES_TRACKING_REPORT
    type ENERGY_EFFICIENT_MORTGAGE_WORKSHEET
    type IMPORTANT_NOTICE_TO_HOMEBUYER
    type FAIR_LENDING_NOTICE
    type FOR_YOUR_PROTECTION_HOME_INSPECTION
    type RATE_LOCK_AGREEMENT
    type BOND_CERTIFICATE
    type CUSTOMER_IDENTIFICATION_VERIFICATION
    type VERIFICATION_OF_SSN
    type RESIDUAL_INCOME_LETTER
    type OTHER
    type DU_UNDERWRITING_FINDINGS
    type DU_UNDERWRITING_LOG
    type DU_UNDERWRITING_DEFAULTS
    type OTHER_APPLICATION
    type PRE_QUALIFICATION_LETTER
    type APPRAISAL
    type PRE_APPROVAL_LETTER
    type PRE_APPROVAL_LETTER:_PREVIEW
    type COMPLIANCE_REPORT
    type LOAN_SNAPSHOT
    type HMDA_REPORT
    type ATTACHMENT
    type LETTER_OF_EXPLANATION:_GENERATED_CREDIT_INQUIRY
    type LETTER_OF_EXPLANATION:_GENERATED_ADDRESS_VERIFICATION
    type GENERATED_GIFT_LETTER
    type LETTER_OF_EXPLANATION:_GENERATED_LATE_PAYMENT
    type LETTER_OF_EXPLANATION:_GENERATED_PUBLIC_RECORD
    type LETTER_OF_EXPLANATION:_GENERATED_LARGE_DEPOSIT
    type MEDICAL_RESIDENCY_FELLOWSHIP
    type MEDICAL_LICENSE_DIPLOMA
    type NEAREST_LIVING_RELATIVE
    type EMPLOYMENT_CONTRACT
    type GENERATED_COST_WORKSHEET
    type FNMA_NETPAY_REPORT_ASSETS
    type FNMA_NETPAY_REPORT_INCOME
    type FNMA_NETPAY_BORROWERS_REQUEST
    type FNMA_NETPAY_GSE_API_XML
    type KNOW_YOUR_CUSTOMER

    Post Document

    Code samples

    # You can also use wget
    curl -X POST https://api.blendlabs.com/documents \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Content-Type: multipart/related' \
      -H 'Accept: application/json'
    
    
    POST https://api.blendlabs.com/documents HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Content-Type: multipart/related
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Content-Type':'multipart/related',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/documents',
      method: 'post',
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "metadata": {
        "loanId": "aa9fdaa2-7bf3-4411-a836-c2a46117f5c3",
        "type": "LOE_PUBLIC_RECORD:BANKRUPTCY",
        "losType": "Verification_of_Income_type",
        "losTypeId": "123123",
        "borrowerIds": [
          "82479d45-e4c9-4e1a-bfb5-28a7c6160f67"
        ],
        "name": "VerificationOfIncome.pdf",
        "status": "SIGNATURE_REQUESTED"
      },
      "data": "JVBERi0xLjMKJcfsj6IKMzAgMCBvYmoKPDwvTGVuZ3RoIDMxIDAgUi9GaWx0ZXIgL0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnic7X3dkyW3be/7/BVT9yVOVfa4+U0mTzeJ45uUXXFspZKHvNgrS3K8K9mSJcf56y9+ALqbPY2ew9N"
    }';
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Content-Type':'multipart/related',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/documents',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Content-Type' => 'multipart/related',
      'Accept' => 'application/json'
    }
    
    result = RestClient.post 'https://api.blendlabs.com/documents',
      params: {
      }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Content-Type': 'multipart/related',
      'Accept': 'application/json'
    }
    
    r = requests.post('https://api.blendlabs.com/documents', params={
    
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/documents");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Content-Type": []string{"multipart/related"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("POST", "https://api.blendlabs.com/documents", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    POST /documents

    Create a document on a specific loan with a file and related metadata.

    Body parameter

    --boundary_string
    Content-Type: application/json; charset=UTF-8
    
    {
      "loanId": "aa9fdaa2-7bf3-4411-a836-c2a46117f5c3",
      "type": "LOE_PUBLIC_RECORD:BANKRUPTCY",
      "losType": "Verification_of_Income_type",
      "losTypeId": "123123",
      "borrowerIds": [
        "82479d45-e4c9-4e1a-bfb5-28a7c6160f67"
      ],
      "name": "VerificationOfIncome.pdf",
      "status": "SIGNATURE_REQUESTED"
    }
    
    --boundary_string
    Content-Type: application/pdf
    
    JVBERi0xLjMKJcfsj6IKMzAgMCBvYmoKPDwvTGVuZ3RoIDMxIDAgUi9GaWx0ZXIgL0ZsYXRlRGVjb2RlPj4Kc3RyZWFtCnic7X3dkyW3be/7/BVT9yVOVfa4+U0mTzeJ45uUXXFspZKHvNgrS3K8K9mSJcf56y9+ALqbPY2ew9N
    
    --boundary_string--
    

    Parameters

    Parameter In Type Required Description
    body body object false none
    » metadata body DocumentRequestSchema false none
    »» loanId body LoanId true The UUID of the loan in Blend's system. The static identifier that should be used to connect the loan's identity across Blend and external integrations.
    »» type body DocumentType false Blend document type
    »» losType body string false LOS document type (used with Blend document templating)
    »» losTypeId body string false LOS document id (used for external tracking)
    »» borrowerIds body [string] false none
    »» name body string false none
    »» status body string false Document status enum
    » data body string(binary) false Base64 Encoded File

    Enumerated Values

    Parameter Value
    »» type LOE_PUBLIC_RECORD:BANKRUPTCY
    »» type LOE_PUBLIC_RECORD:TAX_LIEN
    »» type LOE_PUBLIC_RECORD:JUDGMENT
    »» type LOE_LARGE_DEPOSITS:TRANSFER
    »» type LOE_LARGE_DEPOSITS:SALE_OF_ASSET
    »» type LOE_LARGE_DEPOSITS:INCOME
    »» type LOE_LARGE_DEPOSITS:GIFT
    »» type LOE_LARGE_DEPOSITS:OTHER
    »» type BANK_STATEMENT
    »» type BANK_STATEMENT:_MUTUAL_FUND_ACCOUNT
    »» type BANK_STATEMENT:_STOCK_ACCOUNT
    »» type FINANCIAL_STATEMENT:_BALANCE_SHEET
    »» type FINANCIAL_STATEMENT:_INCOME
    »» type IRS1040
    »» type IRS1041
    »» type IRS1120
    »» type IRS1120_S
    »» type LLC_BTR_DOC
    »» type IRSW2
    »» type CRAT4
    »» type 1003
    »» type 4506t
    »» type TAX_TRANSCRIPT
    »» type DOCUSIGN_CERT_OF_COMP
    »» type PAY_STUB
    »» type PROPERTY_INSURANCE_POLICY:_GENERAL
    »» type PROPERTY_INSURANCE_POLICY:_MINE_SUBSIDENCE
    »» type PROPERTY_INSURANCE_POLICY:_INSECT_INFESTATION
    »» type PROPERTY_INSURANCE_POLICY:_HOMEOWNERS
    »» type PROPERTY_INSURANCE_POLICY:_VOLCANO
    »» type PROPERTY_INSURANCE_POLICY:_FLOOD
    »» type PROPERTY_INSURANCE_POLICY:_HAZARD
    »» type INSURANCE_AGENT_CONTACT_INFO
    »» type PURCHASE_AGREEMENT
    »» type OTHER_DISCLOSURES
    »» type REQUEST_FOR_COPY_OF_TAX_RETURN:_IRS4506_T
    »» type RETIREMENT_ACCOUNT_STATEMENT
    »» type SOCIAL_SECURITY_AWARD_LETTER
    »» type TRUST_AGREEMENT
    »» type VERIFICATION_OF_EMPLOYMENT
    »» type VERIFICATION_OF_EMPLOYMENT_REVERIFY
    »» type VERIFICATION_OF_EMPLOYMENT_RETRIEVED
    »» type VERIFICATION_OF_INCOME
    »» type PENSION_AWARD_LETTER
    »» type ANNUITY_AWARD_LETTER
    »» type DEFERRED_COMPENSATION_AWARD_LETTER
    »» type VERIFICATION_OF_MORTGAGE_OR_RENT
    »» type VERIFICATION_OF_RENT
    »» type VERIFICATION_OF_MORTGAGE
    »» type RETIREMENT_LIQUIDITY_TERMS
    »» type LETTER_OF_EXPLANATION:_CREDIT_INQUIRY
    »» type LETTER_OF_EXPLANATION:_DEROGATORY_CREDIT
    »» type LETTER_OF_EXPLANATION:_ADDRESS_VERIFICATION
    »» type LETTER_OF_EXPLANATION:_JOB_GAP
    »» type LETTER_OF_EXPLANATION:_LARGE_DEPOSITS
    »» type PROPERTY_TAX_BILL
    »» type MORTGAGE_STATEMENT
    »» type BORROWER_CONSENT_FORM
    »» type BORROWER_INCOME_VERIFICATION_CONSENT_FORM
    »» type APPRAISAL_WAIVER
    »» type INTENT_TO_PROCEED
    »» type NATIONAL_IDENTIFICATION
    »» type PROPERTY_INSURANCE_POLICY:_MASTERPOLICY_ASSN
    »» type MARRIAGE_CERTIFICATE
    »» type DEATH_CERTIFICATE
    »» type DIVORCE_DECREE
    »» type NATIONAL_IDENTIFICATION:_SOCIAL_SECURITY_CARD
    »» type CONDOMINIUM_OCCUPANCY_CERTIFICATE
    »» type HOMEOWNERS_ASSOCIATION_CERTIFICATION
    »» type BANK_DEPOSIT_SLIP
    »» type PROPERTY_INSURANCE_POLICY:_HURRICANE
    »» type PROPERTY_INSURANCE_POLICY:_LEASEHOLD
    »» type PROPERTY_INSURANCE_POLICY:_PERSONAL_PROPERTY
    »» type PROPERTY_INSURANCE_POLICY:_STORM
    »» type PROPERTY_INSURANCE_POLICY:_TORNADO
    »» type PROPERTY_INSURANCE_POLICY:_WIND
    »» type CREDIT_REPORT
    »» type PERMANENT_RESIDENT_IDENTIFICATION
    »» type PROPERTY_INSURANCE_POLICY:_CONDOMINIUM
    »» type APPRAISAL_REPORT_SINGLE FAMILY
    »» type APPRAISAL_REPORT_2_-_4_UNIT
    »» type APPRAISAL_REPORT_MANUFACTURED_HOME
    »» type APPRAISAL_REPORT_COOP
    »» type APPRAISAL_REPORT_EXTERIOR_ONLY
    »» type APPRAISAL_REPORT_AVM
    »» type APPRAISAL_REPORT_RENT_SURVEY
    »» type APPRAISAL_REPORT_OPERATING_INCOME_SCHEDULE
    »» type APPRAISAL_REPORT_MARKET_CONDITIONS_ADDENDUM
    »» type APPRAISAL_REPORT_UPDATE_AND_OR_COMPLETION_REPORT
    »» type APPRAISAL_REPORT_PROPERTY_CONDITION_REPORT
    »» type APPRAISAL_REPORT_DESK_REVIEW
    »» type SETTLEMENT_STATEMENT_HUD1
    »» type VISA
    »» type PASSPORT
    »» type NATIONAL_IDENTIFICATION_NON_PERMANENT_RESIDENT
    »» type DD_214
    »» type VA_STATEMENT_OF_SERVICE
    »» type VA_CERTIFICATE_OF_ELIGIBILITY
    »» type CREDIT_AUTHORIZATION
    »» type CREDIT_CARD_AUTHORIZATION
    »» type BIRTH_CERTIFICATE
    »» type INVOICE_UTILITY_BILL
    »» type ADDRESS_VERIFICATION
    »» type LETTER_OF_EXPLANATION_NAME_VARIATION
    »» type POWER_OF_ATTORNEY
    »» type RENTAL_AGREEMENT
    »» type RENTAL_SECURITY_DEPOSIT
    »» type VERIFICATION_OF_EMPLOYMENT_WRITTEN
    »» type BUSINESS_LICENSE
    »» type IRS1099
    »» type K1
    »» type IRS1065
    »» type SOCIAL_SECURITY_PROOF_OF_RECEIPT
    »» type EMPLOYMENT_OFFER_LETTER
    »» type RENTAL_INCOME_PROOF_OF_RECEIPT
    »» type RETIREMENT_AWARD_LETTER
    »» type VA_AWARD_LETTER
    »» type BONUS_AND_COMMISSION_DOCUMENTATION
    »» type CHILD_SUPPORT_INCOME
    »» type ALIMONY_INCOME
    »» type CHILD_SUPPORT_LIABILITY
    »» type ALIMONY_LIABILITY
    »» type GENERATED_ASSET_STATEMENT
    »» type ACHDEBIT_AUTHORIZATION
    »» type GIFT_LETTER
    »» type PROOF_OF_LIQUIDATION
    »» type CREDIT_REPORT_NON_TRADITIONAL
    »» type CREDIT_SUPPLEMENT
    »» type BANKRUPTCY_DISCHARGE_NOTICE
    »» type BANKRUPTCY_FILING
    »» type SATISFACTION_OF_SECURITY_INSTRUMENT_LIEN_RELEASE
    »» type FRAUD_ALERT
    »» type STATEMENT_CREDIT_CARD_OR_INSTALLMENT_ACCT
    »» type JUDGMENT
    »» type COSIGNED_LIABILITY
    »» type PURCHASE_AGREEMENT_ADDENDUM
    »» type HOME_INSPECTION_REPORT
    »» type PEST_INSPECTION_REPORT
    »» type ROOF_INSPECTION_REPORT
    »» type POOL_INSPECTION_REPORT
    »» type EARNEST_MONEY_DEPOSIT
    »» type FLOOD_HAZARD_NOTICE
    »» type FLOOD_CERTIFICATION
    »» type TAX_CERTIFICATE
    »» type AMENDATORY_CLAUSE
    »» type PAYOFF_STATEMENT
    »» type CLOSING_PROTECTION_LETTER
    »» type SCHEDULE_OF_REAL_ESTATE
    »» type BORROWER_CERTIFICATION
    »» type OCCUPANCY_CERTIFICATION
    »» type TRUTH_IN_LENDING
    »» type GOOD_FAITH_ESTIMATE
    »» type ESCROW_WAIVER
    »» type LOAN_ESTIMATE
    »» type CLOSING_DISCLOSURE
    »» type GENERAL_LOAN_ACKNOWLEDGMENT
    »» type HUD_VA_ADDENDUM
    »» type BORROWER_CORRESPONDENCE:_LETTER_OF_EXPLANATION
    »» type BORROWER_CORRESPONDENCE:_LETTER_OF_EXPLANATION_OCCUPANCY
    »» type BORROWER_CORRESPONDENCE:_LETTER_OF_EXPLANATION_CASHOUT
    »» type MORTGAGE_INSURANCE
    »» type NET_TANGIBLE_BENEFIT
    »» type NOTE
    »» type HOA_BILL
    »» type ARTICLES_OF_INCORPORATION
    »» type BYLAWS_OPERATING_AGREEMENT
    »» type AFFILIATED_BUSINESS_ARRANGEMENT_DISCLOSURE
    »» type DISCLOSURES_TRACKING_REPORT
    »» type ENERGY_EFFICIENT_MORTGAGE_WORKSHEET
    »» type IMPORTANT_NOTICE_TO_HOMEBUYER
    »» type FAIR_LENDING_NOTICE
    »» type FOR_YOUR_PROTECTION_HOME_INSPECTION
    »» type RATE_LOCK_AGREEMENT
    »» type BOND_CERTIFICATE
    »» type CUSTOMER_IDENTIFICATION_VERIFICATION
    »» type VERIFICATION_OF_SSN
    »» type RESIDUAL_INCOME_LETTER
    »» type OTHER
    »» type DU_UNDERWRITING_FINDINGS
    »» type DU_UNDERWRITING_LOG
    »» type DU_UNDERWRITING_DEFAULTS
    »» type OTHER_APPLICATION
    »» type PRE_QUALIFICATION_LETTER
    »» type APPRAISAL
    »» type PRE_APPROVAL_LETTER
    »» type PRE_APPROVAL_LETTER:_PREVIEW
    »» type COMPLIANCE_REPORT
    »» type LOAN_SNAPSHOT
    »» type HMDA_REPORT
    »» type ATTACHMENT
    »» type LETTER_OF_EXPLANATION:_GENERATED_CREDIT_INQUIRY
    »» type LETTER_OF_EXPLANATION:_GENERATED_ADDRESS_VERIFICATION
    »» type GENERATED_GIFT_LETTER
    »» type LETTER_OF_EXPLANATION:_GENERATED_LATE_PAYMENT
    »» type LETTER_OF_EXPLANATION:_GENERATED_PUBLIC_RECORD
    »» type LETTER_OF_EXPLANATION:_GENERATED_LARGE_DEPOSIT
    »» type MEDICAL_RESIDENCY_FELLOWSHIP
    »» type MEDICAL_LICENSE_DIPLOMA
    »» type NEAREST_LIVING_RELATIVE
    »» type EMPLOYMENT_CONTRACT
    »» type GENERATED_COST_WORKSHEET
    »» type FNMA_NETPAY_REPORT_ASSETS
    »» type FNMA_NETPAY_REPORT_INCOME
    »» type FNMA_NETPAY_BORROWERS_REQUEST
    »» type FNMA_NETPAY_GSE_API_XML
    »» type KNOW_YOUR_CUSTOMER
    »» status SIGNATURE_REQUESTED
    »» status READY

    Example responses

    200 Response

    {
      "id": "528e481b-19b7-4e81-a49e-bbb8258e308d",
      "name": "Paystub.pdf",
      "type": "LOE_PUBLIC_RECORD:BANKRUPTCY",
      "loanId": "aa9fdaa2-7bf3-4411-a836-c2a46117f5c3",
      "losType": "PAYSTUB_DOC",
      "losTypeId": "12312",
      "created": "2018-10-02T20:07:27+00:00",
      "borrowerIds": [
        "18c3e52a-c7e7-4c6d-a36f-d5bca568613a"
      ],
      "downloadUrl": "https://api.blendlabs.com/documents/eba0d438-0748-4296-b369-c98210e537f7",
      "losExportedAt": "2018-10-03T20:07:27+00:00"
    }
    

    400 Response

    {
      "error": "Invalid Request",
      "display": "The action you're trying to take is invalid.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    401 Response

    {
      "error": "Authentication required",
      "display": "Your credentials are invalid.",
      "trackingId": "cbd15fc4-a8cc-45db-ac87-f90802ebbcc3"
    }
    

    403 Response

    {
      "error": "Forbidden",
      "display": "You do not have the appropriate permissions to take this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    500 Response

    {
      "error": "Internal Server Error",
      "display": "Something went wrong. Please try again later.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK Created Document Metadata DocumentSchema
    400 Bad Request Invalid Request InvalidRequestErrorSchema
    401 Unauthorized Invalid Credentials AuthenticationRequiredErrorSchema
    403 Forbidden Not Authorized NotAuthorizedErrorSchema
    500 Internal Server Error Unexpected Error InternalServerErrorSchema

    Get Document Data

    Code samples

    # You can also use wget
    curl -X GET https://api.blendlabs.com/documents/{id} \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Accept: text/plain'
    
    
    GET https://api.blendlabs.com/documents/{id} HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Accept: text/plain
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'text/plain'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/documents/{id}',
      method: 'get',
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'text/plain'
    
    };
    
    fetch('https://api.blendlabs.com/documents/{id}',
    {
      method: 'GET',
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Accept' => 'text/plain'
    }
    
    result = RestClient.get 'https://api.blendlabs.com/documents/{id}',
      params: {
      }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Accept': 'text/plain'
    }
    
    r = requests.get('https://api.blendlabs.com/documents/{id}', params={
    
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/documents/{id}");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Accept": []string{"text/plain"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("GET", "https://api.blendlabs.com/documents/{id}", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    GET /documents/{id}

    Download the file associated with a document

    Parameters

    Parameter In Type Required Description
    id path string true Document Id

    Example responses

    200 Response

    JVBERi0xLjcKJfbk/N8KMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMiAwIFIKL0Fj cm9Gb3JtIDMgMCBSCi9NZXRhZGF0YSA0IDAgUgo+PgplbmRvYmoKNSAwIG9iago8PAovUHJvZHVj ZXIgKFJBRCBQREYgMy43LjEuMSAtIGh0dHA6Ly93d3cucmFkcGRmLmNvbSkKL0FjY2Vzc2liaWxp dHkgKHN0cnVjdHVyZWQ7IHRhZ2dlZCkKL0F1dGhvciAoU0U6VzpDQVM6U1A6U1BCOlQpCi9DcmVh dG9yIChSQUQgUERGKQovRm9ybSMyMGZpZWxkcyAoZmlsbGFibGUpCi9LZXl3b3JkcyAoRmlsbGFi bGUpCi9TUERGICgxMTEyKQovU3ViamVjdCAoUmVxdWVzdCBmb3IgVHJhbnNjcmlwdCBvZiBUYXgg UmV0dXJuKQovVGl0bGUgKEZvcm0gNDUwNi1UIFwoUmV2LiA5LTIwMThcKSkKL0NyZWF0aW9uRGF0 ZSAoRDoyMDE4MDkyNTExMDgxNS0wNCcwMCcpCi9Nb2REYXRlIChEOjIwMTgxMjA1MjEwODM0WikK Pj4KZW5kb2JqCjIgMCBvYmoKPDwKL1R5cGUgL1BhZ2VzCi9Db3VudCAyCi9LaWRzIFs2IDAgUiA3 IDAgUl0KPj4KZW5kb2JqCjMgMCBvYmoKPDwKL0RBICgvSGVsdiAwIFRmIDAgZykKL0ZpZWxkcyBb OCAwIFIgOSAwIFIgMTAgMCBSIDExIDAgUiAxMiAwIFIgMTMgMCBSIDE0IDAgUiAxNSAwIFIgMTYg MCBSIDE3IDAgUgoxOCAwIFIgMTkgMCBSIDIwIDAgUiAyMSAwIFIgMjIgMCBSIDIzIDAgUiAyNCAw IFIgMjUgMCBSIDI2IDAgUiAyNyAwIFIKMjggMCBSIDI5IDAgUiAzMCAwIFIgMzEgMCBSIDMyIDAg UiAzMyAwIFIgMzQgMCBSIDM1IDAgUiAzNiAwIFJdCi9EUiA8PAovRm9udCAzNyAwIFIKPj4KL05l ZWRBcHBlYXJhbmNlcyB0cnVlCj4+CmVuZG9iago0IDAgb2JqCjw8Ci9UeXBlIC9NZXRhZGF0YQov U3VidHlwZSAvWE1MCi9MZW5ndGggMTMwMQo+PgpzdHJlYW0NCjw/eHBhY2tldCBiZWdpbj0i77u/ IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRv YmU6bnM6bWV0YS8iIHg6eG1wdGs9IkR5bmFQREYgNC4wLjI1LjY2LCBodHRwOi8vd3d3LmR5bmFm b3Jtcy5jb20iPgo8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIv MjItcmRmLXN5bnRheC1ucyMiPgo8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgoJeG1sbnM6 cGRmPSJodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvIgoJeG1sbnM6ZGM9Imh0dHA6Ly9wdXJs Lm9yZy9kYy9lbGVtZW50cy8xLjEvIgoJeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hh cC8xLjAvIgoJeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iPgo8 cGRmOktleXdvcmRzPkZpbGxhYmxlPC9wZGY6S2V5d29yZHM+CjxwZGY6UHJvZHVjZXI+UkFEIFBE RiAzLjcuMS4xIC0gaHR0cDovL3d3dy5yYWRwZGYuY29tPC9wZGY6UHJvZHVjZXI+Cjx4bXA6Q3Jl YXRlRGF0ZT4yMDE4LTA5LTI1VDExOjA4OjE1LTA0OjAwPC94bXA6Q3JlYXRlRGF0ZT4KPHhtcDpD cmVhdG9yVG9vbD5SQUQgUERGPC94bXA6Q3JlYXRvclRvb2w+Cjx4bXA6TWV0YWRhdGFEYXRlPjIw MTgtMTItMDVUMjE6MDg6MzRaPC94bXA6TWV0YWRhdGFEYXRlPgo8eG1wOk1vZGlmeURhdGU+MjAx OC0xMi0wNVQyMTowODozNFo8L3htcDpNb2RpZnlEYXRlPgo8ZGM6Y3JlYXRvcj48cmRmOlNlcT48 cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPlNFOlc6Q0FTOlNQOlNQQjpUPC9yZGY6bGk+PC9y ZGY6U2VxPjwvZGM6Y3JlYXRvcj4KPGRjOmRlc2NyaXB0aW9uPjxyZGY6QWx0PjxyZGY6bGkgeG1s Omxhbmc9IngtZGVmYXVsdCI+UmVxdWVzdCBmb3IgVHJhbnNjcmlwdCBvZiBUYXggUmV0dXJuPC9y ZGY6bGk+PC9yZGY6QWx0PjwvZGM6ZGVzY3JpcHRpb24+CjxkYzp0aXRsZT48cmRmOkFsdD48cmRm OmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPkZvcm0gNDUwNi1UIChSZXYuIDktMjAxOCk8L3JkZjps aT48L3JkZjpBbHQ+PC9kYzp0aXRsZT4KPHhtcE1NOkRvY3VtZW50SUQ+dXVpZDoxODk0OWNlMy1h YzE2LTM4ZmItYmE5ZC1iZTk1MzNmMzFjNTc8L3htcE1NOkRvY3VtZW50SUQ+Cjx4bXBNTTpWZXJz aW9uSUQ+MTwveG1wTU06VmVyc2lvbklEPgo8eG1wTU06UmVuZGl0aW9uQ2xhc3M+ZGVmYXVsdDwv eG1wTU06UmVuZGl0aW9uQ2xhc3M+CjwvcmRmOkRlc2NyaXB0aW9uPgo8L3JkZjpSREY+CjwveDp4 bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJ3Ij8+DQplbmRzdHJlYW0KZW5kb2JqCjYgMCBvYmoKPDwK L1R5cGUgL1BhZ2UKL1BhcmVudCAyIDAgUgovQ29udGVudHMgMzggMCBSCi9NZWRpYUJveCBbMCAw IDYxMS45NzYwMSA3OTEuOTY4MDJdCi9Dcm9wQm94IFswIDAgNjExLjk3NjAxIDc5MS45NjgwMl0K L0Fubm90cyBbOCAwIFIgOSAwIFIgMTAgMCBSIDExIDAgUiAxMiAwIFIgMTMgMCBSIDE0IDAgUiAx NSAwIFIgMTYgMCBSIDE3IDAgUgoxOCAwIFIgMTkgMCBSIDIwIDAgUiAyMSAwIFIgMjIgMCBSIDIz IDAgUiAyNCAwIFIgMjUgMCBSIDI2IDAgUiAyNyAwIFIKMjggMCBSIDI5IDAgUiAzMCAwIFIgMzEg MCBSIDMyIDAgUiAzMyAwIFIgMzQgMCBSIDM1IDAgUiAzNiAwIFJdCi9UYWJzIC9TCi9SZXNvdXJj ZXMgPDwKL0ZvbnQgPDwKL0MwXzAgMzkgMCBSCi9DMF8xIDQwIDAgUgovVDFfMCA0MSAwIFIKL1Qx XzEgNDIgMCBSCi9UMV8yIDQzIDAgUgovVDFfMyA0NCAwIFIKL1QxXzQgNDUgMCBSCj4+Cj4+Cj4+ CmVuZG9iago3IDAgb2JqCjw8Ci9UeXBlIC9QYWdlCi9QYXJlbnQgMiAwIFIKL0NvbnRlbnRzIDQ2 IDAgUgovTWVkaWFCb3ggWzAgMCA2MTEuOTc2MDEgNzkxLjk2ODAyXQovQ3JvcEJveCBbMCAwIDYx MS45NzYwMSA3OTEuOTY4MDJdCi9UYWJzIC9TCi9SZXNvdXJjZXMgPDwKL0ZvbnQgPDwKL0MwXzAg NDAgMCBSCi9UMV8wIDQxIDAgUgovVDFfMSA0NCAwIFIKL1QxXzIgNDcgMCBSCi9UMV8zIDQzIDAg UgovVDFfNCA0OCAwIFIKL1QxXzUgNDUgMCBSCj4+Cj4+Cj4+CmVuZG9iago4IDAgb2JqCjw8Ci9T dWJ0eXBlIC9XaWRnZXQKL1JlY3QgWzM2IDYzNS43MjggMzAyLjQgNjUyLjI4OF0KL0FQIDw8Ci9O IDQ5IDAgUgo+PgovREEgKC9IZUJvIDcuOTk5OTIgVGYgMCAwIC40OTgwNCByZykKL0YgNAovRmYg ODM4ODYwOAovRlQgL1R4Ci9QIDYgMCBSCi9UIChmaWxlck5hbWUpCi9RIDAKL1YgKCkKPj4KZW5k b2JqCjkgMCBvYmoKPDwKL1N1YnR5cGUgL1dpZGdldAovUmVjdCBbMzYgNTk5LjcyOCAzMDIuNCA2 MjUuNjQ4XQovQVAgPDwKL04gNTAgMCBSCj4+Ci9EQSAoL0hlQm8gNy45OTk5MiBUZiAwIDAgLjQ5 ODA0IHJnKQovRiA0Ci9GZiA4Mzg4NjA4Ci9GVCAvVHgKL1AgNiAwIFIKL1QgKGNvZmlsZXJOYW1l KQovUSAwCi9WIChUNzE0MCBUNzE0MCkKPj4KZW5kb2JqCjEwIDAgb2JqCjw8Ci9TdWJ0eXBlIC9X aWRnZXQKL1JlY3QgWzMwMi40IDU5OS43MjggNTc2IDYxNi4yODhdCi9BUCA8PAovTiA1MSAwIFIK Pj4KL0RBICgvSGVCbyA3Ljk5OTkyIFRmIDAgMCAuNDk4MDQgcmcpCi9GIDQKL0ZUIC9UeAovUCA2 IDAgUgovVCAoY29maWxlclNTTikKL01heExlbiAxMQovUSAxCi9WICg5OTktOTktOTkwMCkKPj4K ZW5kb2JqCjExIDAgb2JqCjw8Ci9TdWJ0eXBlIC9XaWRnZXQKL1JlY3QgWzM2IDU3NS45NjggNTc2 IDU4OS42NDhdCi9BUCA8PAovTiA1MiAwIFIKPj4KL0RBICgvSGVCbyA3Ljk5OTkyIFRmIDAgMCAu NDk4MDQgcmcpCi9GIDQKL0ZmIDgzODg2MDgKL0ZUIC9UeAovUCA2IDAgUgovVCAoY3VycmVudEFk ZHJlc3MpCi9RIDAKL1YgKFQ3MTQwIFQ3MTQwLCA0NDUgQW5kZXJzb24gUm9hZCwgQm9hcmRtYW4s IE9SIDk3ODE4KQo+PgplbmRvYmoKMTIgMCBvYmoKPDwKL1N1YnR5cGUgL1dpZGdldAovUmVjdCBb MzYgNTUyLjIwOCA1NzYgNTY1Ljg4OF0KL0FQIDw8Ci9OIDUzIDAgUgo+PgovREEgKC9IZUJvIDcu OTk5OTIgVGYgMCAwIC40OTgwNCByZykKL0YgNAovRmYgODM4ODYwOAovRlQgL1R4Ci9QIDYgMCBS Ci9UIChmaWxpbmdBZGRyZXNzKQovUSAwCi9WICgpCj4+CmVuZG9iagoxMyAwIG9iago8PAovU3Vi dHlwZSAvV2lkZ2V0Ci9SZWN0IFszNiA1MTYuMjA4IDU3NiA1MzIuMDQ4XQovQVAgPDwKL04gNTQg MCBSCj4+Ci9EQSAoL0hlQm8gNy45OTk5MiBUZiAwIDAgLjQ5ODA0IHJnKQovRiA0Ci9GZiA4Mzg4 NjA4Ci9GVCAvVHgKL1AgNiAwIFIKL1QgKG1haWxpbmdBZGRyZXNzKQovUSAwCi9WIChCQi1TdGFn aW5nLCAxMDAgTW9udGdvbWVyeSBTdC4sIFNhbiBGcmFuY2lzY28sIENBKQo+PgplbmRvYmoKMTQg MCBvYmoKPDwKL1N1YnR5cGUgL1dpZGdldAovUmVjdCBbMjA4LjggMTkyLjIwOCAyMzAuNCAyMDMu NzI4XQovQVAgPDwKL04gNTUgMCBSCj4+Ci9EQSAoL0hlQm8gNy45OTk5MiBUZiAwIDAgLjQ5ODA0 IHJnKQovRiA0Ci9GVCAvVHgKL1AgNiAwIFIKL1QgKGZpcnN0TW9udGgpCi9NYXhMZW4gMgovUSAx Ci9WICgxMikKPj4KZW5kb2JqCjE1IDAgb2JqCjw8Ci9TdWJ0eXBlIC9XaWRnZXQKL1JlY3QgWzIz Ny42IDE5Mi4yMDggMjU4LjQ4IDIwMy43MjhdCi9BUCA8PAovTiA1NiAwIFIKPj4KL0RBICgvSGVC byA3Ljk5OTkyIFRmIDAgMCAuNDk4MDQgcmcpCi9GIDQKL0ZUIC9UeAovUCA2IDAgUgovVCAoZmly c3REYXkpCi9NYXhMZW4gMgovUSAxCi9WICgzMSkKPj4KZW5kb2JqCjE2IDAgb2JqCjw8Ci9TdWJ0 eXBlIC9XaWRnZXQKL1JlY3QgWzI2Ni40IDE5Mi4yMDggMjk1LjIgMjAzLjcyOF0KL0FQIDw8Ci9O IDU3IDAgUgo+PgovREEgKC9IZUJvIDcuOTk5OTIgVGYgMCAwIC40OTgwNCByZykKL0YgNAovRlQg L1R4Ci9QIDYgMCBSCi9UIChmaXJzdFllYXIpCi9NYXhMZW4gNAovUSAxCi9WICgyMDE4KQo+Pgpl bmRvYmoKMTcgMCBvYmoKPDwKL1N1YnR5cGUgL1dpZGdldAovUmVjdCBbMzAyLjQgMTkyLjIwOCAz MjQgMjAzLjcyOF0KL0FQIDw8Ci9OIDU4IDAgUgo+PgovREEgKC9IZUJvIDcuOTk5OTIgVGYgMCAw IC40OTgwNCByZykKL0YgNAovRlQgL1R4Ci9QIDYgMCBSCi9UIChzZWNvbmRNb250aCkKL01heExl biAyCi9RIDEKL1YgKDEyKQo+PgplbmRvYmoKMTggMCBvYmoKPDwKL1N1YnR5cGUgL1dpZGdldAov UmVjdCBbMzMxLjIgMTkyLjIwOCAzNTIuMDggMjAzLjcyOF0KL0FQIDw8Ci9OIDU5IDAgUgo+Pgov REEgKC9IZUJvIDcuOTk5OTIgVGYgMCAwIC40OTgwNCByZykKL0YgNAovRlQgL1R4Ci9QIDYgMCBS Ci9UIChzZWNvbmREYXkpCi9NYXhMZW4gMgovUSAxCi9WICgzMSkKPj4KZW5kb2JqCjE5IDAgb2Jq Cjw8Ci9TdWJ0eXBlIC9XaWRnZXQKL1JlY3QgWzM5NiAxOTIuMjA4IDQxNy42IDIwMy43MjhdCi9B UCA8PAovTiA2MCAwIFIKPj4KL0RBICgvSGVCbyA3Ljk5OTkyIFRmIDAgMCAuNDk4MDQgcmcpCi9G IDQKL0ZUIC9UeAovUCA2IDAgUgovVCAodGhpcmRNb250aCkKL01heExlbiAyCi9RIDEKL1YgKCkK Pj4KZW5kb2JqCjIwIDAgb2JqCjw8Ci9TdWJ0eXBlIC9XaWRnZXQKL1JlY3QgWzQ1My42IDE5Mi4y MDggNDgyLjQgMjAzLjcyOF0KL0FQIDw8Ci9OIDYxIDAgUgo+PgovREEgKC9IZUJvIDcuOTk5OTIg VGYgMCAwIC40OTgwNCByZykKL0YgNAovRlQgL1R4Ci9QIDYgMCBSCi9UICh0aGlyZFllYXIpCi9N YXhMZW4gNAovUSAxCi9WICgpCj4+CmVuZG9iagoyMSAwIG9iago8PAovU3VidHlwZSAvV2lkZ2V0 Ci9SZWN0IFs0ODkuNiAxOTIuMjA4IDUxMS4yIDIwMy43MjhdCi9BUCA8PAovTiA2MiAwIFIKPj4K L0RBICgvSGVCbyA3Ljk5OTkyIFRmIDAgMCAuNDk4MDQgcmcpCi9GIDQKL0ZUIC9UeAovUCA2IDAg UgovVCAoZm91cnRoTW9udGgpCi9NYXhMZW4gMgovUSAxCi9WICgpCj4+CmVuZG9iagoyMiAwIG9i ago8PAovU3VidHlwZSAvV2lkZ2V0Ci9SZWN0IFs1MTguNCAxOTIuMjA4IDUzOS4yOCAyMDMuNzI4 XQovQVAgPDwKL04gNjMgMCBSCj4+Ci9EQSAoL0hlQm8gNy45OTk5MiBUZiAwIDAgLjQ5ODA0IHJn KQovRiA0Ci9GVCAvVHgKL1AgNiAwIFIKL1QgKGZvdXJ0aERheSkKL01heExlbiAyCi9RIDEKL1Yg KCkKPj4KZW5kb2JqCjIzIDAgb2JqCjw8Ci9TdWJ0eXBlIC9XaWRnZXQKL1JlY3QgWzU0Ny4yIDE5 Mi4yMDggNTc2IDIwMy43MjhdCi9BUCA8PAovTiA2NCAwIFIKPj4KL0RBICgvSGVCbyA3Ljk5OTky IFRmIDAgMCAuNDk4MDQgcmcpCi9GIDQKL0ZUIC9UeAovUCA2IDAgUgovVCAoZm91cnRoWWVhcikK L01heExlbiA0Ci9RIDEKL1YgKCkKPj4KZW5kb2JqCjI0IDAgb2JqCjw8Ci9TdWJ0eXBlIC9XaWRn ZXQKL1JlY3QgWzE1MS4yIDQxOS43MjggMjY2LjQgNDMxLjk2OF0KL0FQIDw8Ci9OIDY1IDAgUgo+ PgovREEgKC9IZUJvIDcuOTk5OTIgVGYgMCAwIC40OTgwNCByZykKL0YgNAovRmYgODM4ODYwOAov RlQgL1R4Ci9QIDYgMCBSCi9UICh0cmFuc2NyaXB0UmVxdWVzdGVkKQovUSAxCi9WICgxMDQwKQo+ PgplbmRvYmoKMjUgMCBvYmoKPDwKL1N1YnR5cGUgL1dpZGdldAovUmVjdCBbODYuNCA3MS4yNDgg NTc2IDgzLjQ4OF0KL0FQIDw8Ci9OIDY2IDAgUgo+PgovREEgKC9IZUJvIDcuOTk5OTIgVGYgMCAw IC40OTgwNCByZykKL0YgNAovRmYgODM4ODYwOAovRlQgL1R4Ci9QIDYgMCBSCi9UICh0aXRsZSkK L1EgMAovViAoKQo+PgplbmRvYmoKMjYgMCBvYmoKPDwKL1N1YnR5cGUgL1dpZGdldAovUmVjdCBb NDM5LjIgOTUuNzI4IDU3NiAxMTEuNTY4XQovQVAgPDwKL04gNjcgMCBSCj4+Ci9EQSAoL0hlQm8g Ny45OTk5MiBUZiAwIDAgLjQ5ODA0IHJnKQovRiA0Ci9GZiA4Mzg4NjA4Ci9GVCAvVHgKL1AgNiAw IFIKL1QgKGZpbGVyUGhvbmVOdW1iZXIpCi9RIDEKL1YgKDk4Ny05NzktNzk3NykKPj4KZW5kb2Jq CjI3IDAgb2JqCjw8Ci9TdWJ0eXBlIC9XaWRnZXQKL1JlY3QgWzQyNC44IDE5Mi4yMDggNDQ1LjY4 IDIwMy43MjhdCi9BUCA8PAovTiA2OCAwIFIKPj4KL0RBICgvSGVCbyA3Ljk5OTkyIFRmIDAgMCAu NDk4MDQgcmcpCi9GIDQKL0ZUIC9UeAovUCA2IDAgUgovVCAodGhpcmREYXkpCi9NYXhMZW4gMgov USAxCi9WICgpCj4+CmVuZG9iagoyOCAwIG9iago8PAovU3VidHlwZSAvV2lkZ2V0Ci9SZWN0IFsz NjAgMTkyLjIwOCAzODguOCAyMDMuNzI4XQovQVAgPDwKL04gNjkgMCBSCj4+Ci9EQSAoL0hlQm8g Ny45OTk5MiBUZiAwIDAgLjQ5ODA0IHJnKQovRiA0Ci9GVCAvVHgKL1AgNiAwIFIKL1QgKHNlY29u ZFllYXIpCi9NYXhMZW4gNAovUSAxCi9WICgyMDE3KQo+PgplbmRvYmoKMjkgMCBvYmoKPDwKL1N1 YnR5cGUgL1dpZGdldAovUmVjdCBbMzAyLjQgNjM1LjcyOCA1NzYgNjUyLjI4OF0KL0FQIDw8Ci9O IDcwIDAgUgo+PgovREEgKC9IZUJvIDcuOTk5OTIgVGYgMCAwIC40OTgwNCByZykKL0YgNAovRlQg L1R4Ci9QIDYgMCBSCi9UIChwcmltYXJ5RmlsZXJTU04pCi9NYXhMZW4gMTEKL1EgMQo+PgplbmRv YmoKMzAgMCBvYmoKPDwKL1N1YnR5cGUgL1dpZGdldAovUmVjdCBbNTY0LjQ4IDM4Mi4yODggNTcz LjEyIDM5MC4yMDhdCi9BUCA8PAovTiA8PAovWWVzIDcxIDAgUgovT2ZmIDcyIDAgUgo+PgovRCA8 PAovWWVzIDczIDAgUgovT2ZmIDc0IDAgUgo+Pgo+PgovREEgKC9aYURiIDAgVGYgMCBnKQovRiA0 Ci9GVCAvQnRuCi9IIC9QCi9NSyA8PAovQ0EgKDQpCj4+Ci9QIDYgMCBSCi9UIChyZXR1cm5UcmFu c2NyaXB0KQovQVMgL09mZgovViAvT2ZmCj4+CmVuZG9iagozMSAwIG9iago8PAovU3VidHlwZSAv V2lkZ2V0Ci9SZWN0IFs1NjQuNDggMzQ5Ljg4OCA1NzMuMTIgMzU3LjgwOF0KL0FQIDw8Ci9OIDw8 Ci9ZZXMgNzUgMCBSCi9PZmYgNzYgMCBSCj4+Ci9EIDw8Ci9ZZXMgNzcgMCBSCi9PZmYgNzggMCBS Cj4+Cj4+Ci9EQSAoL1phRGIgMCBUZiAwIGcpCi9GIDQKL0ZUIC9CdG4KL0ggL1AKL01LIDw8Ci9D QSAoNCkKPj4KL1AgNiAwIFIKL1QgKGFjY291bnRUcmFuc2NyaXB0KQovQVMgL1llcwovViAvWWVz Cj4+CmVuZG9iagozMiAwIG9iago8PAovU3VidHlwZSAvV2lkZ2V0Ci9SZWN0IFs1NjQuNDggMzI2 LjEyOCA1NzMuMTIgMzM0LjA0OF0KL0FQIDw8Ci9OIDw8Ci9ZZXMgNzkgMCBSCi9PZmYgODAgMCBS Cj4+Ci9EIDw8Ci9ZZXMgODEgMCBSCi9PZmYgODIgMCBSCj4+Cj4+Ci9EQSAoL1phRGIgMCBUZiAw IGcpCi9GIDQKL0ZUIC9CdG4KL0ggL1AKL01LIDw8Ci9DQSAoNCkKPj4KL1AgNiAwIFIKL1QgKHJl Y29yZE9mQWNjb3VudCkKL0FTIC9ZZXMKL1YgL1llcwo+PgplbmRvYmoKMzMgMCBvYmoKPDwKL1N1 YnR5cGUgL1dpZGdldAovUmVjdCBbNTY0LjQ4IDMwMS42NDggNTczLjEyIDMxMC4yODhdCi9BUCA8 PAovTiA8PAovWWVzIDgzIDAgUgovT2ZmIDg0IDAgUgo+PgovRCA8PAovWWVzIDg1IDAgUgovT2Zm IDg2IDAgUgo+Pgo+PgovREEgKC9aYURiIDAgVGYgMCBnKQovRiA0Ci9GVCAvQnRuCi9IIC9QCi9N SyA8PAovQ0EgKDQpCj4+Ci9QIDYgMCBSCi9UICh2ZXJpZmljYXRpb25PZk5vbmZpbGluZykKL0FT IC9ZZXMKL1YgL1llcwo+PgplbmRvYmoKMzQgMCBvYmoKPDwKL1N1YnR5cGUgL1dpZGdldAovUmVj dCBbNTY0LjQ4IDI1NC4xMjggNTczLjEyIDI2Mi4wNDhdCi9BUCA8PAovTiA8PAovWWVzIDg3IDAg UgovT2ZmIDg4IDAgUgo+PgovRCA8PAovWWVzIDg5IDAgUgovT2ZmIDkwIDAgUgo+Pgo+PgovREEg KC9aYURiIDAgVGYgMCBnKQovRiA0Ci9GVCAvQnRuCi9IIC9QCi9NSyA8PAovQ0EgKDQpCj4+Ci9Q IDYgMCBSCi9UIChvdGhlclRyYW5zY3JpcHQpCi9BUyAvT2ZmCi9WIC9PZmYKPj4KZW5kb2JqCjM1 IDAgb2JqCjw8Ci9TdWJ0eXBlIC9XaWRnZXQKL1JlY3QgWzM2LjcyIDEyMS42NDggNDQuNjQgMTI5 LjU2OF0KL0FQIDw8Ci9OIDw8Ci9ZZXMgOTEgMCBSCi9PZmYgOTIgMCBSCj4+Ci9EIDw8Ci9ZZXMg OTMgMCBSCi9PZmYgOTQgMCBSCj4+Cj4+Ci9EQSAoL1phRGIgMCBUZiAwIGcpCi9GIDQKL0ZUIC9C dG4KL0ggL1AKL01LIDw8Ci9DQSAoNCkKPj4KL1AgNiAwIFIKL1QgKHZlcmlmeVNpZ24pCi9BUyAv T2ZmCi9WIC9PZmYKPj4KZW5kb2JqCjM2IDAgb2JqCjw8Ci9TdWJ0eXBlIC9XaWRnZXQKL1JlY3Qg WzM2IDQ5MS43MjggNTc2IDUwNi4xMjhdCi9BUCA8PAovTiA5NSAwIFIKPj4KL0RBICgvSGVCbyA3 Ljk5OTkyIFRmIDAgMCAuNDk4MDQgcmcpCi9GIDQKL0ZUIC9UeAovTUsgPDwKPj4KL1AgNiAwIFIK L1QgKGN1c3RvbWVyRmlsZU51bWJlcikKL01heExlbiAxMAovUSAwCj4+CmVuZG9iagozNyAwIG9i ago8PAovSGVsdiA5NiAwIFIKL0hlQm8gOTcgMCBSCi9aYURiIDk4IDAgUgo+PgplbmRvYmoKMzgg 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 v/1WRob2kKUwce4psE0dfC1584VZ2E7ImMJU9WT2vpaCR435ROqGtdkxl1F84QqIGBcOh193gqkz n81PFgxNb6NwNbJLu5jh+Wb0+k1MeZ89kYcXLpGLs823vU1MhMKP+nMi3W5qA6uNNhuwlOKhfjIf nbDoUF1qM2Cm3VbHBVP+qVT3qhXw8Dd8LLP41TKTGciMv15mIlXu+g2KL8523vVkBs7M9N3deR8J aHs2MKveMu/v5gXtBnsc8XJZvceBaEK90yz32Onrt6GeT33hRn08w7PPCOmcp+diExbW6RN1bce0 a7Av+iYp+7DqVJT7UkBC8Vw3v7Gv5Vq7E/UbwBtISBYMXc0RL2lHs8WhCEx6ggeOj+d5uPgRoVhC ShsCI/rLB7ri0wXqK0JxmiTpL3NREhQ9n6ArhDxpnq5xQ82ALrywLHMl4CxK+v0wk0FN5HmQpbn/ gvtS3dTXk/BLYHlvPFvefC2fApbf6s/QzW5JmOHxUChGHwEZf05s6OjG0crQlqvJgaZYd3xxDBJC q9d73ycNZpQUGQCP05Wl97N2rT5i8k30y/FnTAb0xyBU/hb6o7fTj7rxTdSPC6AD6vF2ZvoW6sWb qdefBfs2+s+6SUu/5HEQv4X+5DL97P8AELzTXg0KZW5kc3RyZWFtCmVuZG9iagozOSAwIG9iago8 PAovVHlwZSAvRm9udAovU3VidHlwZSAvVHlwZTAKL0Jhc2VGb250IC9EUUhSTVgrVW5pdmVyc2Fs U3RkLU5ld3N3aXRoQ29tbVBpCi9FbmNvZGluZyAvSWRlbnRpdHktSAovRGVzY2VuZGFudEZvbnRz IFs5OSAwIFJdCi9Ub1VuaWNvZGUgMTAwIDAgUgo+PgplbmRvYmoKNDAgMCBvYmoKPDwKL1R5cGUg L0ZvbnQKL1N1YnR5cGUgL1R5cGUwCi9CYXNlRm9udCAvSVNXVkVOK0Fkb2JlUGlTdGQKL0VuY29k aW5nIC9JZGVudGl0eS1ICi9EZXNjZW5kYW50Rm9udHMgWzEwMSAwIFJdCi9Ub1VuaWNvZGUgMTAy IDAgUgo+PgplbmRvYmoKNDEgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9C YXNlRm9udCAvVFRFSkNSK0hlbHZldGljYU5ldWVMVFN0ZC1Sb21hbgovRmlyc3RDaGFyIDAKL0xh c3RDaGFyIDI1NQovRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZwovRm9udERlc2NyaXB0b3IgMTAz IDAgUgovV2lkdGhzIFs1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAKNTAw IDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwCjUwMCA1MDAgNTAwIDUwMCA1MDAg NTAwIDUwMCA1MDAgNTAwIDUwMAo1MDAgNTAwIDI3OCAyNTkgNDI2IDU1NiA1NTYgMTAwMCA2MzAg Mjc4CjI1OSAyNTkgMzUyIDYwMCAyNzggMzg5IDI3OCAzMzMgNTU2IDU1Ngo1NTYgNTU2IDU1NiA1 NTYgNTU2IDU1NiA1NTYgNTU2IDI3OCAyNzgKNjAwIDYwMCA2MDAgNTU2IDgwMCA2NDggNjg1IDcy MiA3MDQgNjExCjU3NCA3NTkgNzIyIDI1OSA1MTkgNjY3IDU1NiA4NzEgNzIyIDc2MAo2NDggNzYw IDY4NSA2NDggNTc0IDcyMiA2MTEgOTI2IDYxMSA2NDgKNjExIDI1OSAzMzMgMjU5IDYwMCA1MDAg MjIyIDUzNyA1OTMgNTM3CjU5MyA1MzcgMjk2IDU3NCA1NTYgMjIyIDIyMiA1MTkgMjIyIDg1Mwo1 NTYgNTc0IDU5MyA1OTMgMzMzIDUwMCAzMTUgNTU2IDUwMCA3NTgKNTE4IDUwMCA0ODAgMzMzIDIy MiAzMzMgNjAwIDUwMCA1NTYgNTAwCjI3OCA1NTYgNDI2IDEwMDAgNTU2IDU1NiAyMjIgMTE0OCA2 NDggMjU5CjEwNzQgNTAwIDYxMSA1MDAgNTAwIDI3OCAyNzggNDI2IDQyNiA1MDAKNTAwIDEwMDAg MjIyIDk5MCA1MDAgMjU5IDg5MSA1MDAgNDgwIDY0OAoyNzggMjU5IDU1NiA1NTYgNTU2IDU1NiAy MjIgNTU2IDIyMiA4MDAKMzc4IDQ2MyA2MDAgMzg5IDgwMCAyMjIgNDAwIDYwMCA1MDAgNTAwCjIy MiA1NTYgNjAwIDI3OCAyMjIgNTAwIDM4NCA0NjMgODM0IDgzNAo4MzQgNTU2IDY0OCA2NDggNjQ4 IDY0OCA2NDggNjQ4IDkyNiA3MjIKNjExIDYxMSA2MTEgNjExIDI1OSAyNTkgMjU5IDI1OSA3MDQg NzIyCjc2MCA3NjAgNzYwIDc2MCA3NjAgNjAwIDc2MCA3MjIgNzIyIDcyMgo3MjIgNjQ4IDY0OCA1 NTYgNTM3IDUzNyA1MzcgNTM3IDUzNyA1MzcKODcwIDUzNyA1MzcgNTM3IDUzNyA1MzcgMjIyIDIy MiAyMjIgMjIyCjU3NCA1NTYgNTc0IDU3NCA1NzQgNTc0IDU3NCA2MDAgNTc0IDU1Ngo1NTYgNTU2 IDU1NiA1MDAgNTkzIDUwMF0KPj4KZW5kb2JqCjQyIDAgb2JqCjw8Ci9UeXBlIC9Gb250Ci9TdWJ0 eXBlIC9UeXBlMQovQmFzZUZvbnQgL0lTV1ZFTitIZWx2ZXRpY2FOZXVlTFRTdGQtQmxrQ24KL0Zp cnN0Q2hhciAwCi9MYXN0Q2hhciAyNTUKL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcKL0ZvbnRE ZXNjcmlwdG9yIDEwNCAwIFIKL1dpZHRocyBbNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUw MCA1MDAgNTAwCjUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMAo1MDAgNTAw IDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAKNTAwIDUwMCAyNjAgMzE0IDQ4MSA1MjAg NTIwIDc3OCA2MTEgMjYwCjMxNCAzMTQgNDA2IDYwMCAyNjAgMzY4IDI2MCAzMzMgNTIwIDUyMAo1 MjAgNTIwIDUyMCA1MjAgNTIwIDUyMCA1MjAgNTIwIDI2MCAyNjAKNjAwIDYwMCA2MDAgNTAwIDgw MCA1NTYgNTc0IDUzNyA1NzQgNTAwCjQ4MSA1NTYgNTc0IDI2MCA0ODEgNTU2IDQ2MyA3NTggNTky IDU1Ngo1MzcgNTU2IDU3NCA1MzcgNDYyIDU1NiA1MjAgNzc4IDUzNiA1MjAKNDgxIDMxNCAzMzMg MzE0IDYwMCA1MDAgMjYwIDUwMCA1MjAgNDgxCjUyMCA0ODEgMzE1IDUyMCA1MjAgMjU4IDI1OCA1 MDAgMjU4IDc3OAo1MjAgNTAwIDUyMCA1MjAgMzUyIDQ2MyAzMTUgNTIwIDQ2MyA3NDAKNDgxIDQ2 MyA0NDQgMzMzIDIyMiAzMzMgNjAwIDUwMCA1MjAgNTAwCjI2MCA1MjAgNDgxIDEwMDAgNTIwIDUy MCAyNjAgMTExMSA1MzcgMjQwCjc1OSA1MDAgNDgxIDUwMCA1MDAgMjYwIDI2MCA0ODEgNDgxIDUw MAo1MDAgMTAwMCAyNjAgMTAwMCA0NjMgMjQwIDc0MCA1MDAgNDQ0IDUyMAoyNjAgMzE0IDUyMCA1 MjAgNTIwIDUyMCAyMjIgNTIwIDI2MCA4MDAKMzUyIDQ0NCA2MDAgMzY4IDgwMCAyNjAgNDAwIDYw MCAzNzAgMzcwCjI2MCA1MjAgNjY2IDI2MCAyNjAgMzMzIDM1MiA0NDQgODE0IDgxNAo4MTQgNTAw IDU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2IDc3OCA1MzcKNTAwIDUwMCA1MDAgNTAwIDI2MCAyNjAg MjYwIDI2MCA1NzQgNTkyCjU1NiA1NTYgNTU2IDU1NiA1NTYgNjAwIDU1NiA1NTYgNTU2IDU1Ngo1 NTYgNTIwIDUzNyA1MjAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAKNzQwIDQ4MSA0ODEgNDgxIDQ4 MSA0ODEgMjU4IDI1OCAyNTggMjU4CjUwMCA1MjAgNTAwIDUwMCA1MDAgNTAwIDUwMCA2MDAgNTAw IDUyMAo1MjAgNTIwIDUyMCA0NjMgNTIwIDQ2M10KPj4KZW5kb2JqCjQzIDAgb2JqCjw8Ci9UeXBl IC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovQmFzZUZvbnQgL0RRSFJNWCtJVENGcmFua2xpbkdvdGhp Y1N0ZC1EZW1pCi9GaXJzdENoYXIgMAovTGFzdENoYXIgMjU1Ci9FbmNvZGluZyAvV2luQW5zaUVu Y29kaW5nCi9Gb250RGVzY3JpcHRvciAxMDUgMCBSCi9XaWR0aHMgWzUwMCA1MDAgNTAwIDUwMCA1 MDAgNTAwIDUwMCA1MDAgNTAwIDUwMAo1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUw MCA1MDAKNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwCjUwMCA1MDAgMzAw IDMyMCA0NjAgNjAwIDYwMCA3MDAgNzIwIDMwMAozODAgMzgwIDYwMCA2MDAgMzAwIDI0MCAzMDAg NjAwIDYwMCA2MDAKNjAwIDYwMCA2MDAgNjAwIDYwMCA2MDAgNjAwIDYwMCAzMDAgMzAwCjYwMCA2 MDAgNjAwIDU0MCA4MDAgNjQwIDY2MCA2NjAgNjYwIDU4MAo1NDAgNjYwIDY2MCAzMDAgNDAwIDY0 MCA1MDAgODgwIDY2MCA2NjAKNjIwIDY2MCA2NjAgNjAwIDU0MCA2NjAgNjAwIDkwMCA2NDAgNjAw CjY2MCAzODAgNjAwIDM4MCA2MDAgNTAwIDM4MCA1NDAgNTQwIDU0MAo1NDAgNTQwIDMwMCA1NjAg NTQwIDI2MCAyNjAgNTYwIDI2MCA4MjAKNTQwIDU0MCA1NDAgNTQwIDM0MCA1MDAgMzgwIDU0MCA0 ODAgNzQwCjU0MCA0ODAgNDIwIDM4MCAzMDAgMzgwIDYwMCA2MDAgNjAwIDYwMAozMDAgNjAwIDQ4 MCAxMDAwIDYwMCA2MDAgNTAwIDEwNDAgNjAwIDI2MAo5NjAgNjAwIDY2MCA2MDAgNjAwIDMwMCAz MDAgNDgwIDQ4MCA2MDAKNTAwIDEwMDAgNTAwIDEwMDAgNTAwIDI2MCA4NjAgNjAwIDQyMCA2MDAK MzAwIDMyMCA2MDAgNjAwIDYwMCA2MDAgMzAwIDYwMCA0MjAgNzQwCjM2MCA0MDAgNjAwIDI0MCA3 NDAgNDYwIDQwMCA2MDAgMzYwIDM2MAo0MDAgNTQwIDU0MCAzMDAgMzQwIDM2MCAzNjAgNDAwIDkw MCA5MDAKOTAwIDU0MCA2NDAgNjQwIDY0MCA2NDAgNjQwIDY0MCA5MDAgNjYwCjU4MCA1ODAgNTgw IDU4MCAzMDAgMzAwIDMwMCAzMDAgNjYwIDY2MAo2NjAgNjYwIDY2MCA2NjAgNjYwIDYwMCA2NjAg NjYwIDY2MCA2NjAKNjYwIDYwMCA2MjAgNjYwIDU0MCA1NDAgNTQwIDU0MCA1NDAgNTQwCjgyMCA1 NDAgNTQwIDU0MCA1NDAgNTQwIDI2MCAyNjAgMjYwIDI2MAo1NDAgNTQwIDU0MCA1NDAgNTQwIDU0 MCA1NDAgNjAwIDU0MCA1NDAKNTQwIDU0MCA1NDAgNDgwIDU0MCA0ODBdCj4+CmVuZG9iago0NCAw IG9iago8PAovVHlwZSAvRm9udAovU3VidHlwZSAvVHlwZTEKL0Jhc2VGb250IC9UVEVKQ1IrSGVs dmV0aWNhTmV1ZUxUU3RkLUJkCi9GaXJzdENoYXIgMAovTGFzdENoYXIgMjU1Ci9FbmNvZGluZyAv V2luQW5zaUVuY29kaW5nCi9Gb250RGVzY3JpcHRvciAxMDYgMCBSCi9XaWR0aHMgWzUwMCA1MDAg NTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMAo1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1 MDAgNTAwIDUwMCA1MDAKNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwCjUw MCA1MDAgMjc4IDI3OCA0NjMgNTU2IDU1NiAxMDAwIDY4NSAyNzgKMjk2IDI5NiA0MDcgNjAwIDI3 OCA0MDcgMjc4IDM3MSA1NTYgNTU2CjU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYgMjc4 IDI3OAo2MDAgNjAwIDYwMCA1NTYgODAwIDY4NSA3MDQgNzQxIDc0MSA2NDgKNTkzIDc1OSA3NDEg Mjk1IDU1NiA3MjIgNTkzIDkwNyA3NDEgNzc4CjY2NyA3NzggNzIyIDY0OSA2MTEgNzQxIDYzMCA5 NDQgNjY3IDY2Nwo2NDggMzMzIDM3MSAzMzMgNjAwIDUwMCAyNTkgNTc0IDYxMSA1NzQKNjExIDU3 NCAzMzMgNjExIDU5MyAyNTggMjc4IDU3NCAyNTggOTA2CjU5MyA2MTEgNjExIDYxMSAzODkgNTM3 IDM1MiA1OTMgNTIwIDgxNAo1MzcgNTE5IDUxOSAzMzMgMjIzIDMzMyA2MDAgNTAxIDU1NiA1MDEK Mjc4IDU1NiA0NjMgMTAwMCA1NTYgNTU2IDI1OSAxMTQ3IDY0OSAyNDEKMTA5MyA1MDEgNjQ4IDUw MSA1MDEgMjc4IDI3OCA0NjMgNDYzIDUwMQo1MDAgMTAwMCAyNTkgMTAwMCA1MzcgMjQxIDkyNiA1 MDEgNTE5IDY2NwoyNzggMjc4IDU1NiA1NTYgNTU2IDU1NiAyMjMgNTU2IDI1OSA4MDAKMzQ0IDQ0 NCA2MDAgNDA3IDgwMCAyNTkgNDAwIDYwMCAzOTIgMzkyCjI1OSA1OTMgNjIwIDI3OCAyNTkgMzky IDM2NyA0NDQgODkyIDg4OQo4ODkgNTU2IDY4NSA2ODUgNjg1IDY4NSA2ODUgNjg1IDk4MSA3NDEK NjQ4IDY0OCA2NDggNjQ4IDI5NSAyOTUgMjk1IDI5NSA3NDEgNzQxCjc3OCA3NzggNzc4IDc3OCA3 NzggNjAwIDc3OCA3NDEgNzQxIDc0MQo3NDEgNjY3IDY2NyA2MTEgNTc0IDU3NCA1NzQgNTc0IDU3 NCA1NzQKOTA3IDU3NCA1NzQgNTc0IDU3NCA1NzQgMjU4IDI1OCAyNTggMjU4CjYxMSA1OTMgNjEx IDYxMSA2MTEgNjExIDYxMSA2MDAgNjExIDU5Mwo1OTMgNTkzIDU5MyA1MTkgNjExIDUxOV0KPj4K ZW5kb2JqCjQ1IDAgb2JqCjw8Ci9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQovQmFzZUZvbnQg L0lTV1ZFTitIZWx2ZXRpY2FOZXVlTFRTdGQtQmRJdAovRmlyc3RDaGFyIDAKL0xhc3RDaGFyIDI1 NQovRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZwovRm9udERlc2NyaXB0b3IgMTA3IDAgUgovV2lk dGhzIFs1NzQgNTc0IDU3NCA1NzQgNTc0IDU3NCA1NzQgNTc0IDU3NCA1NzQKNTc0IDU3NCA1NzQg NTc0IDU3NCA1NzQgNTc0IDU3NCA1NzQgNTc0CjU3NCA1NzQgNTc0IDU3NCA1NzQgNTc0IDU3NCA1 NzQgNTc0IDU3NAo1NzQgNTc0IDI3OCAyOTYgNDgxIDU1NiA1NTYgOTYzIDY4NSAyNzgKMjk2IDI5 NiA0MDcgNjAwIDI3OCA0MDcgMjc4IDM4OSA1NTYgNTU2CjU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2 IDU1NiA1NTYgMjc4IDI3OAo2MDAgNjAwIDYwMCA1NzQgODAwIDY4NSA3MjIgNzQxIDc0MSA2NjcK NTkzIDc1OSA3NDEgMjk2IDU1NiA3MjIgNTc0IDkwNyA3NDEgNzc4CjY2NyA3NzggNzIyIDY0OCA2 MTEgNzQxIDYzMCA5NDQgNjY3IDY0OAo2NDggMzMzIDM4OSAzMzMgNjAwIDUwMCAyNTkgNTc0IDYx MSA1NTYKNjExIDU3NCAzNTIgNjExIDYxMSAyNTkgMjU5IDU1NiAyNTkgOTA3CjYxMSA1OTMgNjEx IDYxMSAzODkgNTE5IDM3MCA2MTEgNTE5IDgxNQo1MTkgNTE5IDUwMCAzMzMgMjIyIDMzMyA2MDAg NTAwIDU1NiA1MDAKMjc4IDU1NiA0ODEgMTAwMCA1OTMgNTkzIDI1OSAxMTMwIDY0OCAyNTkKMTEx MSA1MDAgNjQ4IDUwMCA1MDAgMjc4IDI3OCA0ODEgNDgxIDUwMAo1MDAgMTAwMCAyNTkgOTkwIDUx OSAyNTkgOTI2IDUwMCA1MDAgNjQ4CjI3OCAyOTYgNTU2IDU1NiA1NTYgNTU2IDIyMiA1OTMgMjU5 IDgwMAozNDQgNDYzIDYwMCA0MDcgODAwIDI1OSA0MDAgNjAwIDM5MiAzOTIKMjU5IDYxMSA2MDAg Mjc4IDI1OSAzOTIgMzU2IDQ2MyA4ODkgODg5Cjg4OSA1NzQgNjg1IDY4NSA2ODUgNjg1IDY4NSA2 ODUgOTgxIDc0MQo2NjcgNjY3IDY2NyA2NjcgMjk2IDI5NiAyOTYgMjk2IDc0MSA3NDEKNzc4IDc3 OCA3NzggNzc4IDc3OCA2MDAgNzc4IDc0MSA3NDEgNzQxCjc0MSA2NDggNjY3IDU5MyA1NzQgNTc0 IDU3NCA1NzQgNTc0IDU3NAo5MDcgNTU2IDU3NCA1NzQgNTc0IDU3NCAyNTkgMjU5IDI1OSAyNTkK NTkzIDYxMSA1OTMgNTkzIDU5MyA1OTMgNTkzIDYwMCA1OTMgNjExCjYxMSA2MTEgNjExIDUxOSA2 MTEgNTE5XQo+PgplbmRvYmoKNDYgMCBvYmoKPDwKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbmd0 aCA2ODA2Cj4+CnN0cmVhbQ0KeJzFXetz28iR/66/Yu5TvFcUFm8Sm1SqZHm9q2T9OEteX6pcdTUC hyQiEGDwEM389emeFwYYAqBdTs6bimRwHv38dU8T03aJC/99+OXKJRm5+vEDy2mTPbPbMi+rbM+a KktJlV39g3h8oEeCyFlGZBkGThInJN1f4eP9VeR5zhJ+y6/ur/7n6uXD1Y+3ZdGwoiF/+tOPb27v XsFnf/7zy1e3hE9wSbW98viWD97/4boPm6sl/2BJghjWXzmhB0/3Vy9el9WehJEbXz+Qzy8+sGeH JNe+660+/0B+ePj71c9vYNGfHwQHHaFRGDvJGUr9xAkmCfUUoWP0RZHrhEskcums/IQT+Z5uGeHk 4ARPTPAEq/AjWsKUsDfD74i3SPAVCcbuMV8r5tIBJcSriC9zz9ImKwtSsQ2rWJGymtCKkaYkzY6R O1i3KmhOQGysaBm5LdeMtEXO6prv75Jrz/HJw6urFyVMqI5ZzUhRNmztjJMXmORZvCKBHhAo+Xzd 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 jTcIgBRG15jQMW3O6l+CEF17zxpE2bWaN21W5dj9f3cBTn3/AgDG9LANCmVuZHN0cmVhbQplbmRv YmoKNDcgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNlRm9udCAvVFRF SkNSK0hlbHZldGljYU5ldWVMVFN0ZC1JdAovRmlyc3RDaGFyIDAKL0xhc3RDaGFyIDI1NQovRW5j b2RpbmcgL1dpbkFuc2lFbmNvZGluZwovRm9udERlc2NyaXB0b3IgMTA4IDAgUgovV2lkdGhzIFs1 NzEgNTcxIDU3MSA1NzEgNTcxIDU3MSA1NzEgNTcxIDU3MSA1NzEKNTcxIDU3MSA1NzEgNTcxIDU3 MSA1NzEgNTcxIDU3MSA1NzEgNTcxCjU3MSA1NzEgNTcxIDU3MSA1NzEgNTcxIDU3MSA1NzEgNTcx IDU3MQo1NzEgNTcxIDI3OCAyNTkgNDI2IDU1NiA1NTYgOTI2IDYzMCAyNzgKMjU5IDI1OSAzNTIg NjAwIDI3OCAzODkgMjc4IDMzMyA1NTYgNTU2CjU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2IDU1NiA1 NTYgMjc4IDI3OAo2MDAgNjAwIDYwMCA1NTYgODAwIDY2NyA2ODUgNzIyIDcwNCA2MTEKNTc0IDc1 OSA3MjIgMjU5IDUxOSA2NjcgNTU2IDg3MCA3MjIgNzU5CjY0OCA3NTkgNjg1IDY0OCA1NzQgNzIy IDYxMSA5MjYgNjExIDYxMQo2MTEgMjU5IDMzMyAyNTkgNjAwIDUwMCAyMjIgNTE5IDU5MyA1MzcK NTkzIDUzNyAyOTYgNTc0IDU1NiAyMjIgMjIyIDQ4MSAyMjIgODUyCjU1NiA1NzQgNTkzIDU5MyAz MzMgNDgxIDMxNSA1NTYgNDgxIDc1OQo0ODEgNDgxIDQ0NCAzMzMgMjIyIDMzMyA2MDAgNTAwIDU1 NiA1MDAKMjc4IDU1NiA0MjYgMTAwMCA1NTYgNTU2IDIyMiAxMDc0IDY0OCAyNTkKMTA3NCA1MDAg NjExIDUwMCA1MDAgMjc4IDI3OCA0MjYgNDI2IDUwMAo1MDAgMTAwMCAyMjIgOTkwIDQ4MSAyNTkg OTA3IDUwMCA0NDQgNjExCjI3OCAyNTkgNTU2IDU1NiA1NTYgNTU2IDIyMiA1NTYgMjIyIDgwMAoz MTEgNDYzIDYwMCAzODkgODAwIDIyMiA0MDAgNjAwIDMzMyAzMzMKMjIyIDU1NiA2MDAgMjc4IDIy MiAzMzMgMzQ0IDQ2MyA4MzQgODM0CjgzNCA1NTYgNjY3IDY2NyA2NjcgNjY3IDY2NyA2NjcgOTI2 IDcyMgo2MTEgNjExIDYxMSA2MTEgMjU5IDI1OSAyNTkgMjU5IDcwNCA3MjIKNzU5IDc1OSA3NTkg NzU5IDc1OSA2MDAgNzU5IDcyMiA3MjIgNzIyCjcyMiA2MTEgNjQ4IDUzNyA1MTkgNTE5IDUxOSA1 MTkgNTE5IDUxOQo4NzAgNTM3IDUzNyA1MzcgNTM3IDUzNyAyMjIgMjIyIDIyMiAyMjIKNTc0IDU1 NiA1NzQgNTc0IDU3NCA1NzQgNTc0IDYwMCA1NzQgNTU2CjU1NiA1NTYgNTU2IDQ4MSA1OTMgNDgx XQo+PgplbmRvYmoKNDggMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNl Rm9udCAvSVNXVkVOK0hlbHZldGljYU5ldWVMVFN0ZC1CbGsKL0ZpcnN0Q2hhciAwCi9MYXN0Q2hh ciAyNTUKL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcKL0ZvbnREZXNjcmlwdG9yIDEwOSAwIFIK L1dpZHRocyBbNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwCjUwMCA1MDAg NTAwIDUwMCA1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMAo1MDAgNTAwIDUwMCA1MDAgNTAwIDUwMCA1 MDAgNTAwIDUwMCA1MDAKNTAwIDUwMCAzMzQgMzE1IDUxOSA2NjggNjY4IDEwMTkgNzQxIDI5Ngoz MTUgMzE1IDQ2MyA2MDAgMzM0IDQwNyAzMzQgNDI2IDY2OCA2NjgKNjY4IDY2OCA2NjggNjY4IDY2 OCA2NjggNjY4IDY2OCAzMzQgMzM0CjYwMCA2MDAgNjAwIDU3NCA4MDAgNzIyIDc0MSA3NTkgNzc4 IDcwNAo2MzAgNzc4IDc1OSAzMzMgNjExIDc3OCA2MzAgOTQ0IDc1OSA3OTYKNzA0IDc5NiA3NDEg NjY3IDY2OCA3NTkgNjQ4IDk2MyA3NDEgNjY3CjY4NSA0MDcgNDI2IDQwNyA2MDAgNTAwIDI3OCA2 MTEgNjQ4IDYxMQo2NDggNjMwIDM4OSA2MzAgNjQ4IDMxNSAzMTUgNjExIDMxNSA5NjMKNjQ4IDYz MCA2NDggNjQ4IDQ0NCA1NzQgNDA3IDY0OCA1NTYgODcwCjU1NiA1NTYgNTU2IDQwNyAyMjIgNDA3 IDYwMCA1MDAgNjY4IDUwMAoyOTYgNjY4IDUxOSAxMDAwIDY2NyA2NjcgMjc4IDExNjcgNjY3IDI0 MQoxMTMwIDUwMCA2ODUgNTAwIDUwMCAyOTYgMjk2IDUxOSA1MTkgNTAwCjUwMCAxMDAwIDI3OCAx MDAwIDU3NCAyNDEgOTgxIDUwMCA1NTYgNjY3CjMzNCAzMTUgNjY4IDY2OCA2NjggNjY4IDIyMiA2 NjcgMjc4IDgwMAozNjcgNDQ0IDYwMCA0MDcgODAwIDI3OCA0MDAgNjAwIDQwMCA0MDAKMjc4IDY0 OCA2MjAgMzM0IDI3OCA0MDAgMzc4IDQ0NCAxMDAwIDEwMDAKMTAwMCA1NzQgNzIyIDcyMiA3MjIg NzIyIDcyMiA3MjIgMTA1NiA3NTkKNzA0IDcwNCA3MDQgNzA0IDMzMyAzMzMgMzMzIDMzMyA3Nzgg NzU5Cjc5NiA3OTYgNzk2IDc5NiA3OTYgNjAwIDc5NiA3NTkgNzU5IDc1OQo3NTkgNjY3IDcwNCA2 NDggNjExIDYxMSA2MTEgNjExIDYxMSA2MTEKOTYyIDYxMSA2MzAgNjMwIDYzMCA2MzAgMzE1IDMx NSAzMTUgMzE1CjYzMCA2NDggNjMwIDYzMCA2MzAgNjMwIDYzMCA2MDAgNjMwIDY0OAo2NDggNjQ4 IDY0OCA1NTYgNjQ4IDU1Nl0KPj4KZW5kb2JqCjQ5IDAgb2JqCjw8Ci9UeXBlIC9YT2JqZWN0Ci9T dWJ0eXBlIC9Gb3JtCi9CQm94IFswIDAgMjY2LjM5OTk5IDE2LjU2XQovTGVuZ3RoIDczCi9SZXNv dXJjZXMgMTEwIDAgUgo+PgpzdHJlYW0NCiAvVHggQk1DCkJUCi9IZUJvIDcuOTk5OTIgVGYKIDAg MCAuNDk4MDQgcmcKIDIgNS4xNzYwMzA2IFRkCjw+IFRqCkVUCiBFTUMNCmVuZHN0cmVhbQplbmRv YmoKNTAgMCBvYmoKPDwKL1R5cGUgL1hPYmplY3QKL1N1YnR5cGUgL0Zvcm0KL0JCb3ggWzAgMCAy NjYuMzk5OTkgMjUuOTE5OThdCi9MZW5ndGggOTMKL1Jlc291cmNlcyAxMTEgMCBSCj4+CnN0cmVh bQ0KIC9UeCBCTUMKQlQKL0hlQm8gNy45OTk5MiBUZgogMCAwIC40OTgwNCByZwogMiA5Ljg1NjAy IFRkCjw1NDM3MzEzNDMwMjA1NDM3MzEzNDMwPiBUagpFVAogRU1DDQplbmRzdHJlYW0KZW5kb2Jq CjUxIDAgb2JqCjw8Ci9UeXBlIC9YT2JqZWN0Ci9TdWJ0eXBlIC9Gb3JtCi9CQm94IFswIDAgMjcz LjYwMDAxIDE2LjU2XQovTGVuZ3RoIDExMAovUmVzb3VyY2VzIDExMiAwIFIKPj4Kc3RyZWFtDQog L1R4IEJNQwpCVAovSGVCbyA3Ljk5OTkyIFRmCiAwIDAgLjQ5ODA0IHJnCiAyIDUuMTc2MDMwNiBU ZAoxMTIuMTIwMjMgMCBUZAo8MzkzOTM5MkQzOTM5MkQzOTM5MzAzMD4gVGoKRVQKIEVNQw0KZW5k c3RyZWFtCmVuZG9iago1MiAwIG9iago8PAovVHlwZSAvWE9iamVjdAovU3VidHlwZSAvRm9ybQov QkJveCBbMCAwIDU0MCAxMy42Nzk5OV0KL0xlbmd0aCAxNzMKL1Jlc291cmNlcyAxMTMgMCBSCj4+ CnN0cmVhbQ0KIC9UeCBCTUMKQlQKL0hlQm8gNy45OTk5MiBUZgogMCAwIC40OTgwNCByZwogMiAz LjczNjAyNTggVGQKPDU0MzczMTM0MzAyMDU0MzczMTM0MzAyQzIwMzQzNDM1MjA0MTZFNjQ2NTcy NzM2RjZFMjA1MjZGNjE2NDJDMjA0MjZGNjE3MjY0NkQ2MTZFMkMyMDRGNTIyMDM5MzczODMxMzg+ IFRqCkVUCiBFTUMNCmVuZHN0cmVhbQplbmRvYmoKNTMgMCBvYmoKPDwKL1R5cGUgL1hPYmplY3QK L1N1YnR5cGUgL0Zvcm0KL0JCb3ggWzAgMCA1NDAgMTMuNjc5OTldCi9MZW5ndGggNzMKL1Jlc291 cmNlcyAxMTQgMCBSCj4+CnN0cmVhbQ0KIC9UeCBCTUMKQlQKL0hlQm8gNy45OTk5MiBUZgogMCAw IC40OTgwNCByZwogMiAzLjczNjAyNTggVGQKPD4gVGoKRVQKIEVNQw0KZW5kc3RyZWFtCmVuZG9i ago1NCAwIG9iago8PAovVHlwZSAvWE9iamVjdAovU3VidHlwZSAvRm9ybQovQkJveCBbMCAwIDU0 MCAxNS44Mzk5N10KL0xlbmd0aCAxNzEKL1Jlc291cmNlcyAxMTUgMCBSCj4+CnN0cmVhbQ0KIC9U eCBCTUMKQlQKL0hlQm8gNy45OTk5MiBUZgogMCAwIC40OTgwNCByZwogMiA0LjgxNjAxNTcgVGQK PDQyNDIyRDUzNzQ2MTY3Njk2RTY3MkMyMDMxMzAzMDIwNEQ2RjZFNzQ2NzZGNkQ2NTcyNzkyMDUz NzQyRTJDMjA1MzYxNkUyMDQ2NzI2MTZFNjM2OTczNjM2RjJDMjA0MzQxPiBUagpFVAogRU1DDQpl bmRzdHJlYW0KZW5kb2JqCjU1IDAgb2JqCjw8Ci9UeXBlIC9YT2JqZWN0Ci9TdWJ0eXBlIC9Gb3Jt Ci9CQm94IFswIDAgMjEuNTk5OTkgMTEuNTJdCi9MZW5ndGggOTAKL1Jlc291cmNlcyAxMTYgMCBS Cj4+CnN0cmVhbQ0KIC9UeCBCTUMKQlQKL0hlQm8gNy45OTk5MiBUZgogMCAwIC40OTgwNCByZwog MiAyLjY1NjAzMTEgVGQKNC4zNTIwNCAwIFRkCjwzMTMyPiBUagpFVAogRU1DDQplbmRzdHJlYW0K ZW5kb2JqCjU2IDAgb2JqCjw8Ci9UeXBlIC9YT2JqZWN0Ci9TdWJ0eXBlIC9Gb3JtCi9CQm94IFsw IDAgMjAuODggMTEuNTJdCi9MZW5ndGggOTEKL1Jlc291cmNlcyAxMTcgMCBSCj4+CnN0cmVhbQ0K IC9UeCBCTUMKQlQKL0hlQm8gNy45OTk5MiBUZgogMCAwIC40OTgwNCByZwogMiAyLjY1NjAzMTEg VGQKMy45OTIwNDQgMCBUZAo8MzMzMT4gVGoKRVQKIEVNQw0KZW5kc3RyZWFtCmVuZG9iago1NyAw IG9iago8PAovVHlwZSAvWE9iamVjdAovU3VidHlwZSAvRm9ybQovQkJveCBbMCAwIDI4LjgwMDAy IDExLjUyXQovTGVuZ3RoIDk1Ci9SZXNvdXJjZXMgMTE4IDAgUgo+PgpzdHJlYW0NCiAvVHggQk1D CkJUCi9IZUJvIDcuOTk5OTIgVGYKIDAgMCAuNDk4MDQgcmcKIDIgMi42NTYwMzExIFRkCjMuNTA0 MDk5IDAgVGQKPDMyMzAzMTM4PiBUagpFVAogRU1DDQplbmRzdHJlYW0KZW5kb2JqCjU4IDAgb2Jq Cjw8Ci9UeXBlIC9YT2JqZWN0Ci9TdWJ0eXBlIC9Gb3JtCi9CQm94IFswIDAgMjEuNjAwMDEgMTEu NTJdCi9MZW5ndGggOTIKL1Jlc291cmNlcyAxMTkgMCBSCj4+CnN0cmVhbQ0KIC9UeCBCTUMKQlQK L0hlQm8gNy45OTk5MiBUZgogMCAwIC40OTgwNCByZwogMiAyLjY1NjAzMTEgVGQKNC4zNTIwNDk0 IDAgVGQKPDMxMzI+IFRqCkVUCiBFTUMNCmVuZHN0cmVhbQplbmRvYmoKNTkgMCBvYmoKPDwKL1R5 cGUgL1hPYmplY3QKL1N1YnR5cGUgL0Zvcm0KL0JCb3ggWzAgMCAyMC44Nzk5NyAxMS41Ml0KL0xl bmd0aCA5MgovUmVzb3VyY2VzIDEyMCAwIFIKPj4Kc3RyZWFtDQogL1R4IEJNQwpCVAovSGVCbyA3 Ljk5OTkyIFRmCiAwIDAgLjQ5ODA0IHJnCiAyIDIuNjU2MDMxMSBUZAozLjk5MjAyOTcgMCBUZAo8 MzMzMT4gVGoKRVQKIEVNQw0KZW5kc3RyZWFtCmVuZG9iago2MCAwIG9iago8PAovVHlwZSAvWE9i amVjdAovU3VidHlwZSAvRm9ybQovQkJveCBbMCAwIDIxLjYwMDAxIDExLjUyXQovTGVuZ3RoIDg3 Ci9SZXNvdXJjZXMgMTIxIDAgUgo+PgpzdHJlYW0NCiAvVHggQk1DCkJUCi9IZUJvIDcuOTk5OTIg VGYKIDAgMCAuNDk4MDQgcmcKIDIgMi42NTYwMzExIFRkCjguODAwMDA1IDAgVGQKPD4gVGoKRVQK IEVNQw0KZW5kc3RyZWFtCmVuZG9iago2MSAwIG9iago8PAovVHlwZSAvWE9iamVjdAovU3VidHlw ZSAvRm9ybQovQkJveCBbMCAwIDI4Ljc5OTk5IDExLjUyXQovTGVuZ3RoIDg4Ci9SZXNvdXJjZXMg MTIyIDAgUgo+PgpzdHJlYW0NCiAvVHggQk1DCkJUCi9IZUJvIDcuOTk5OTIgVGYKIDAgMCAuNDk4 MDQgcmcKIDIgMi42NTYwMzExIFRkCjEyLjM5OTk5NSAwIFRkCjw+IFRqCkVUCiBFTUMNCmVuZHN0 cmVhbQplbmRvYmoKNjIgMCBvYmoKPDwKL1R5cGUgL1hPYmplY3QKL1N1YnR5cGUgL0Zvcm0KL0JC b3ggWzAgMCAyMS42MDAwMSAxMS41Ml0KL0xlbmd0aCA4NwovUmVzb3VyY2VzIDEyMyAwIFIKPj4K c3RyZWFtDQogL1R4IEJNQwpCVAovSGVCbyA3Ljk5OTkyIFRmCiAwIDAgLjQ5ODA0IHJnCiAyIDIu NjU2MDMxMSBUZAo4LjgwMDAwNSAwIFRkCjw+IFRqCkVUCiBFTUMNCmVuZHN0cmVhbQplbmRvYmoK NjMgMCBvYmoKPDwKL1R5cGUgL1hPYmplY3QKL1N1YnR5cGUgL0Zvcm0KL0JCb3ggWzAgMCAyMC44 OCAxMS41Ml0KL0xlbmd0aCA4MwovUmVzb3VyY2VzIDEyNCAwIFIKPj4Kc3RyZWFtDQogL1R4IEJN QwpCVAovSGVCbyA3Ljk5OTkyIFRmCiAwIDAgLjQ5ODA0IHJnCiAyIDIuNjU2MDMxMSBUZAo4LjQ0 IDAgVGQKPD4gVGoKRVQKIEVNQw0KZW5kc3RyZWFtCmVuZG9iago2NCAwIG9iago8PAovVHlwZSAv WE9iamVjdAovU3VidHlwZSAvRm9ybQovQkJveCBbMCAwIDI4Ljc5OTk5IDExLjUyXQovTGVuZ3Ro IDg4Ci9SZXNvdXJjZXMgMTI1IDAgUgo+PgpzdHJlYW0NCiAvVHggQk1DCkJUCi9IZUJvIDcuOTk5 OTIgVGYKIDAgMCAuNDk4MDQgcmcKIDIgMi42NTYwMzExIFRkCjEyLjM5OTk5NSAwIFRkCjw+IFRq CkVUCiBFTUMNCmVuZHN0cmVhbQplbmRvYmoKNjUgMCBvYmoKPDwKL1R5cGUgL1hPYmplY3QKL1N1 YnR5cGUgL0Zvcm0KL0JCb3ggWzAgMCAxMTUuMiAxMi4yMzk5OV0KL0xlbmd0aCA5NQovUmVzb3Vy Y2VzIDEyNiAwIFIKPj4Kc3RyZWFtDQogL1R4IEJNQwpCVAovSGVCbyA3Ljk5OTkyIFRmCiAwIDAg LjQ5ODA0IHJnCiAyIDMuMDE2MDI2IFRkCjQ2LjcwNDA4NiAwIFRkCjwzMTMwMzQzMD4gVGoKRVQK IEVNQw0KZW5kc3RyZWFtCmVuZG9iago2NiAwIG9iago8PAovVHlwZSAvWE9iamVjdAovU3VidHlw ZSAvRm9ybQovQkJveCBbMCAwIDQ4OS42MDAwMSAxMi4yNF0KL0xlbmd0aCA3MwovUmVzb3VyY2Vz IDEyNyAwIFIKPj4Kc3RyZWFtDQogL1R4IEJNQwpCVAovSGVCbyA3Ljk5OTkyIFRmCiAwIDAgLjQ5 ODA0IHJnCiAyIDMuMDE2MDMwOCBUZAo8PiBUagpFVAogRU1DDQplbmRzdHJlYW0KZW5kb2JqCjY3 IDAgb2JqCjw8Ci9UeXBlIC9YT2JqZWN0Ci9TdWJ0eXBlIC9Gb3JtCi9CQm94IFswIDAgMTM2Ljc5 OTk5IDE1Ljg0XQovTGVuZ3RoIDExMQovUmVzb3VyY2VzIDEyOCAwIFIKPj4Kc3RyZWFtDQogL1R4 IEJNQwpCVAovSGVCbyA3Ljk5OTkyIFRmCiAwIDAgLjQ5ODA0IHJnCiAyIDQuODE2MDMxIFRkCjQx LjQ5NjI0NiAwIFRkCjwzOTM4MzcyRDM5MzczOTJEMzczOTM3Mzc+IFRqCkVUCiBFTUMNCmVuZHN0 cmVhbQplbmRvYmoKNjggMCBvYmoKPDwKL1R5cGUgL1hPYmplY3QKL1N1YnR5cGUgL0Zvcm0KL0JC b3ggWzAgMCAyMC44OCAxMS41Ml0KL0xlbmd0aCA4MwovUmVzb3VyY2VzIDEyOSAwIFIKPj4Kc3Ry ZWFtDQogL1R4IEJNQwpCVAovSGVCbyA3Ljk5OTkyIFRmCiAwIDAgLjQ5ODA0IHJnCiAyIDIuNjU2 MDMxMSBUZAo4LjQ0IDAgVGQKPD4gVGoKRVQKIEVNQw0KZW5kc3RyZWFtCmVuZG9iago2OSAwIG9i ago8PAovVHlwZSAvWE9iamVjdAovU3VidHlwZSAvRm9ybQovQkJveCBbMCAwIDI4Ljc5OTk5IDEx LjUyXQovTGVuZ3RoIDk2Ci9SZXNvdXJjZXMgMTMwIDAgUgo+PgpzdHJlYW0NCiAvVHggQk1DCkJU Ci9IZUJvIDcuOTk5OTIgVGYKIDAgMCAuNDk4MDQgcmcKIDIgMi42NTYwMzExIFRkCjMuNTA0MDgz NiAwIFRkCjwzMjMwMzEzNz4gVGoKRVQKIEVNQw0KZW5kc3RyZWFtCmVuZG9iago3MCAwIG9iago8 PAovVHlwZSAvWE9iamVjdAovU3VidHlwZSAvRm9ybQovQkJveCBbMCAwIDI3My42MDAwMSAxNi41 Nl0KL0xlbmd0aCAwCj4+CnN0cmVhbQ0KDQplbmRzdHJlYW0KZW5kb2JqCjcxIDAgb2JqCjw8Ci9U eXBlIC9YT2JqZWN0Ci9TdWJ0eXBlIC9Gb3JtCi9CQm94IFswIDAgOC42NDAwMSA3LjkxOTk4XQov UmVzb3VyY2VzIDw8Ci9Gb250IDw8Ci9aYURiIDk4IDAgUgo+Pgo+PgovRmlsdGVyIC9GbGF0ZURl Y29kZQovTGVuZ3RoIDg3Cj4+CnN0cmVhbQ0KeJzTD6lQcPJ15nIK4TJQCEkGEeVchgZAqgrITgfx i7j0oxJdkhRM9YxNDS0tFULSuAwVDIDQUMFIz8AMSBiaKoTkckVrmGjGhnhxuYZwuQJNBACJEBN6 DQplbmRzdHJlYW0KZW5kb2JqCjcyIDAgb2JqCjw8Ci9UeXBlIC9YT2JqZWN0Ci9TdWJ0eXBlIC9G b3JtCi9CQm94IFswIDAgOC42NDAwMSA3LjkxOTk4XQovTGVuZ3RoIDAKPj4Kc3RyZWFtDQoNCmVu ZHN0cmVhbQplbmRvYmoKNzMgMCBvYmoKPDwKL1R5cGUgL1hPYmplY3QKL1N1YnR5cGUgL0Zvcm0K L0JCb3ggWzAgMCA4LjY0MDAxIDcuOTE5OThdCi9SZXNvdXJjZXMgPDwKL0ZvbnQgPDwKL1phRGIg OTggMCBSCj4+Cj4+Ci9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9MZW5ndGggMTIyCj4+CnN0cmVhbQ0K eJxljbEKAkEQQ/t8RUpt5nbW3Tu3Pb1GsBAGBMVCxbNS8BrFr3e2tklCAi/S5VgS7wgMXEqb2EmJ nG4Y0diH/XaF1/+45xO9eW/XKm9ocPt6riSb0BzO6wuzLLKWQhuhrBBllNC6aKY9cJyl+ck2GAw7 DH71A3t/HjsNCmVuZHN0cmVhbQplbmRvYmoKNzQgMCBvYmoKPDwKL1R5cGUgL1hPYmplY3QKL1N1 YnR5cGUgL0Zvcm0KL0JCb3ggWzAgMCA4LjY0MDAxIDcuOTE5OThdCi9GaWx0ZXIgL0ZsYXRlRGVj b2RlCi9MZW5ndGggNDUKPj4Kc3RyZWFtDQp4nNMzNzWyNFFI5zJQMFCw0DMzUTDXszRSKErlSuMq xBQMV8jjCuQCABzeCsINCmVuZHN0cmVhbQplbmRvYmoKNzUgMCBvYmoKPDwKL1R5cGUgL1hPYmpl Y3QKL1N1YnR5cGUgL0Zvcm0KL0JCb3ggWzAgMCA4LjY0MDAxIDcuOTE5OThdCi9SZXNvdXJjZXMg PDwKL0ZvbnQgPDwKL1phRGIgOTggMCBSCj4+Cj4+Ci9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9MZW5n dGggODcKPj4Kc3RyZWFtDQp4nNMPqVBw8nXmcgrhMlAISQYR5VyGBkCqCshOB/GLuPSjEl2SFEz1 jE0NLS0VQtK4DBUMgNBQwUjPwAxIGJoqhORyRWuYaMaGeHG5hnC5Ak0EAIkQE3oNCmVuZHN0cmVh bQplbmRvYmoKNzYgMCBvYmoKPDwKL1R5cGUgL1hPYmplY3QKL1N1YnR5cGUgL0Zvcm0KL0JCb3gg WzAgMCA4LjY0MDAxIDcuOTE5OThdCi9MZW5ndGggMAo+PgpzdHJlYW0NCg0KZW5kc3RyZWFtCmVu ZG9iago3NyAwIG9iago8PAovVHlwZSAvWE9iamVjdAovU3VidHlwZSAvRm9ybQovQkJveCBbMCAw IDguNjQwMDEgNy45MTk5OF0KL1Jlc291cmNlcyA8PAovRm9udCA8PAovWmFEYiA5OCAwIFIKPj4K Pj4KL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbmd0aCAxMjIKPj4Kc3RyZWFtDQp4nGWNsQoCQRBD +3xFSm3mdtbdO7c9vUawEAYExULFs1LwGsWvd7a2SUICL9LlWBLvCAxcSpvYSYmcbhjR2If9doXX /7jnE715b9cqb2hw+3quJJvQHM7rC7MsspZCG6GsEGWU0Lpopj1wnKX5yTYYDDsMfvUDe38eOw0K ZW5kc3RyZWFtCmVuZG9iago3OCAwIG9iago8PAovVHlwZSAvWE9iamVjdAovU3VidHlwZSAvRm9y bQovQkJveCBbMCAwIDguNjQwMDEgNy45MTk5OF0KL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbmd0 aCA0NQo+PgpzdHJlYW0NCnic0zM3NbI0UUjnMlAwULDQMzNRMNezNFIoSuVK4yrEFAxXyOMK5AIA HN4Kwg0KZW5kc3RyZWFtCmVuZG9iago3OSAwIG9iago8PAovVHlwZSAvWE9iamVjdAovU3VidHlw ZSAvRm9ybQovQkJveCBbMCAwIDguNjQwMDEgNy45MTk5OF0KL1Jlc291cmNlcyA8PAovRm9udCA8 PAovWmFEYiA5OCAwIFIKPj4KPj4KL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbmd0aCA4Nwo+Pgpz dHJlYW0NCnic0w+pUHDydeZyCuEyUAhJBhHlXIYGQKoKyE4H8Yu49KMSXZIUTPWMTQ0tLRVC0rgM FQyA0FDBSM/ADEgYmiqE5HJFa5hoxoZ4cbmGcLkCTQQAiRATeg0KZW5kc3RyZWFtCmVuZG9iago4 MCAwIG9iago8PAovVHlwZSAvWE9iamVjdAovU3VidHlwZSAvRm9ybQovQkJveCBbMCAwIDguNjQw MDEgNy45MTk5OF0KL0xlbmd0aCAwCj4+CnN0cmVhbQ0KDQplbmRzdHJlYW0KZW5kb2JqCjgxIDAg b2JqCjw8Ci9UeXBlIC9YT2JqZWN0Ci9TdWJ0eXBlIC9Gb3JtCi9CQm94IFswIDAgOC42NDAwMSA3 LjkxOTk4XQovUmVzb3VyY2VzIDw8Ci9Gb250IDw8Ci9aYURiIDk4IDAgUgo+Pgo+PgovRmlsdGVy IC9GbGF0ZURlY29kZQovTGVuZ3RoIDEyMgo+PgpzdHJlYW0NCnicZY2xCgJBEEP7fEVKbeZ21t07 tz29RrAQBgTFQsWzUvAaxa93trZJQgIv0uVYEu8IDFxKm9hJiZxuGNHYh/12hdf/uOcTvXlv1ypv aHD7eq4km9AczusLsyyylkIboawQZZTQumimPXCcpfnJNhgMOwx+9QN7fx47DQplbmRzdHJlYW0K ZW5kb2JqCjgyIDAgb2JqCjw8Ci9UeXBlIC9YT2JqZWN0Ci9TdWJ0eXBlIC9Gb3JtCi9CQm94IFsw IDAgOC42NDAwMSA3LjkxOTk4XQovRmlsdGVyIC9GbGF0ZURlY29kZQovTGVuZ3RoIDQ1Cj4+CnN0 cmVhbQ0KeJzTMzc1sjRRSOcyUDBQsNAzM1Ew17M0UihK5UrjKsQUDFfI4wrkAgAc3grCDQplbmRz dHJlYW0KZW5kb2JqCjgzIDAgb2JqCjw8Ci9UeXBlIC9YT2JqZWN0Ci9TdWJ0eXBlIC9Gb3JtCi9C Qm94IFswIDAgOC42NDAwMSA4LjY0MDAxXQovUmVzb3VyY2VzIDw8Ci9Gb250IDw8Ci9aYURiIDk4 IDAgUgo+Pgo+PgovRmlsdGVyIC9GbGF0ZURlY29kZQovTGVuZ3RoIDg4Cj4+CnN0cmVhbQ0KeJzT D6lQcPJ15nIK4TJQCEkGEeVchgZAqgrITgfxi7j0oxJdkhRM9cwtTAwMFULSuAwVDIDQUMFQz8Jc wUjP2EwhJJcrWsNEMzbEi8s1hMsVaCIAiRITfg0KZW5kc3RyZWFtCmVuZG9iago4NCAwIG9iago8 PAovVHlwZSAvWE9iamVjdAovU3VidHlwZSAvRm9ybQovQkJveCBbMCAwIDguNjQwMDEgOC42NDAw MV0KL0xlbmd0aCAwCj4+CnN0cmVhbQ0KDQplbmRzdHJlYW0KZW5kb2JqCjg1IDAgb2JqCjw8Ci9U eXBlIC9YT2JqZWN0Ci9TdWJ0eXBlIC9Gb3JtCi9CQm94IFswIDAgOC42NDAwMSA4LjY0MDAxXQov UmVzb3VyY2VzIDw8Ci9Gb250IDw8Ci9aYURiIDk4IDAgUgo+Pgo+PgovRmlsdGVyIC9GbGF0ZURl Y29kZQovTGVuZ3RoIDEyMAo+PgpzdHJlYW0NCnic0zM3NbI0UUjnMlAwULDQMzOBEEWpXGlc+iEV Ck6+zlyFmJLhCnlcTiFA8ZBkEFHOZWgApKqAbJBJIUVc+lGJLkkKpnrmFiYGhgohaVyGCiBDDBUM 9SzMFYz0jM0UQnK5ojVMNGNDvLhcQ7gCuVyBVgEAe4kePw0KZW5kc3RyZWFtCmVuZG9iago4NiAw IG9iago8PAovVHlwZSAvWE9iamVjdAovU3VidHlwZSAvRm9ybQovQkJveCBbMCAwIDguNjQwMDEg OC42NDAwMV0KL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbmd0aCA0MAo+PgpzdHJlYW0NCnic0zM3 NbI0UUjnMlAwULDQMzOBEEWpXGlchZiC4Qp5XIFcABzeCsINCmVuZHN0cmVhbQplbmRvYmoKODcg MCBvYmoKPDwKL1R5cGUgL1hPYmplY3QKL1N1YnR5cGUgL0Zvcm0KL0JCb3ggWzAgMCA4LjY0MDAx IDcuOTE5OThdCi9SZXNvdXJjZXMgPDwKL0ZvbnQgPDwKL1phRGIgOTggMCBSCj4+Cj4+Ci9GaWx0 ZXIgL0ZsYXRlRGVjb2RlCi9MZW5ndGggODcKPj4Kc3RyZWFtDQp4nNMPqVBw8nXmcgrhMlAISQYR 5VyGBkCqCshOB/GLuPSjEl2SFEz1jE0NLS0VQtK4DBUMgNBQwUjPwAxIGJoqhORyRWuYaMaGeHG5 hnC5Ak0EAIkQE3oNCmVuZHN0cmVhbQplbmRvYmoKODggMCBvYmoKPDwKL1R5cGUgL1hPYmplY3QK L1N1YnR5cGUgL0Zvcm0KL0JCb3ggWzAgMCA4LjY0MDAxIDcuOTE5OThdCi9MZW5ndGggMAo+Pgpz dHJlYW0NCg0KZW5kc3RyZWFtCmVuZG9iago4OSAwIG9iago8PAovVHlwZSAvWE9iamVjdAovU3Vi dHlwZSAvRm9ybQovQkJveCBbMCAwIDguNjQwMDEgNy45MTk5OF0KL1Jlc291cmNlcyA8PAovRm9u dCA8PAovWmFEYiA5OCAwIFIKPj4KPj4KL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbmd0aCAxMjIK Pj4Kc3RyZWFtDQp4nGWNsQoCQRBD+3xFSm3mdtbdO7c9vUawEAYExULFs1LwGsWvd7a2SUICL9Ll WBLvCAxcSpvYSYmcbhjR2If9doXX/7jnE715b9cqb2hw+3quJJvQHM7rC7MsspZCG6GsEGWU0Lpo pj1wnKX5yTYYDDsMfvUDe38eOw0KZW5kc3RyZWFtCmVuZG9iago5MCAwIG9iago8PAovVHlwZSAv WE9iamVjdAovU3VidHlwZSAvRm9ybQovQkJveCBbMCAwIDguNjQwMDEgNy45MTk5OF0KL0ZpbHRl ciAvRmxhdGVEZWNvZGUKL0xlbmd0aCA0NQo+PgpzdHJlYW0NCnic0zM3NbI0UUjnMlAwULDQMzNR MNezNFIoSuVK4yrEFAxXyOMK5AIAHN4Kwg0KZW5kc3RyZWFtCmVuZG9iago5MSAwIG9iago8PAov VHlwZSAvWE9iamVjdAovU3VidHlwZSAvRm9ybQovQkJveCBbMCAwIDcuOTIgNy45MjAwMV0KL1Jl c291cmNlcyA8PAovRm9udCA8PAovWmFEYiA5OCAwIFIKPj4KPj4KL0ZpbHRlciAvRmxhdGVEZWNv ZGUKL0xlbmd0aCA4NQo+PgpzdHJlYW0NCnic0w+pUHDydeZyCuEyUAhJBhHlXIYGQKoKyE4H8Yu4 9KMSXZIUTPWMTY0UQtK4DBUMgNBQwVDPXMFIz9BUISSXK1rDRDM2xIvLNYTLFWgcAE6pEtkNCmVu ZHN0cmVhbQplbmRvYmoKOTIgMCBvYmoKPDwKL1R5cGUgL1hPYmplY3QKL1N1YnR5cGUgL0Zvcm0K L0JCb3ggWzAgMCA3LjkyIDcuOTIwMDFdCi9MZW5ndGggMAo+PgpzdHJlYW0NCg0KZW5kc3RyZWFt CmVuZG9iago5MyAwIG9iago8PAovVHlwZSAvWE9iamVjdAovU3VidHlwZSAvRm9ybQovQkJveCBb MCAwIDcuOTIgNy45MjAwMV0KL1Jlc291cmNlcyA8PAovRm9udCA8PAovWmFEYiA5OCAwIFIKPj4K Pj4KL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbmd0aCAxMTcKPj4Kc3RyZWFtDQp4nNMzNzWyNFFI 5zJQMFAw17M0ghBFqVxpXPohFQpOvs5chZiS4Qp5XE4hQPGQZBBRzmVoAKSqgGyQSSFFXPpRiS5J CqZ6xqZGCiFpXIYKICMMFQz1zBWM9AxNFUJyuaI1TDRjQ7y4XEO4ArlcgfYAACCkHZoNCmVuZHN0 cmVhbQplbmRvYmoKOTQgMCBvYmoKPDwKL1R5cGUgL1hPYmplY3QKL1N1YnR5cGUgL0Zvcm0KL0JC b3ggWzAgMCA3LjkyIDcuOTIwMDFdCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9MZW5ndGggNDAKPj4K c3RyZWFtDQp4nNMzNzWyNFFI5zJQMFAw17M0ghBFqVxpXIWYguEKeVyBXAAc3grCDQplbmRzdHJl YW0KZW5kb2JqCjk1IDAgb2JqCjw8Ci9UeXBlIC9YT2JqZWN0Ci9TdWJ0eXBlIC9Gb3JtCi9CQm94 IFswIDAgNTQwIDE0LjM5OTk5XQovTGVuZ3RoIDAKPj4Kc3RyZWFtDQoNCmVuZHN0cmVhbQplbmRv YmoKOTYgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9OYW1lIC9IZWx2Ci9C YXNlRm9udCAvSGVsdmV0aWNhCi9FbmNvZGluZyAvV2luQW5zaUVuY29kaW5nCj4+CmVuZG9iago5 NyAwIG9iago8PAovVHlwZSAvRm9udAovU3VidHlwZSAvVHlwZTEKL05hbWUgL0hlQm8KL0Jhc2VG b250IC9IZWx2ZXRpY2EtQm9sZAovRW5jb2RpbmcgMTMxIDAgUgo+PgplbmRvYmoKOTggMCBvYmoK PDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9OYW1lIC9aYURiCi9CYXNlRm9udCAvWmFw ZkRpbmdiYXRzCj4+CmVuZG9iago5OSAwIG9iago8PAovVHlwZSAvRm9udAovU3VidHlwZSAvQ0lE Rm9udFR5cGUwCi9CYXNlRm9udCAvRFFIUk1YK1VuaXZlcnNhbFN0ZC1OZXdzd2l0aENvbW1QaQov Q0lEU3lzdGVtSW5mbyA8PAovUmVnaXN0cnkgKEFkb2JlKQovT3JkZXJpbmcgKElkZW50aXR5KQov U3VwcGxlbWVudCAwCj4+Ci9Gb250RGVzY3JpcHRvciAxMzIgMCBSCj4+CmVuZG9iagoxMDAgMCBv YmoKPDwKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbmd0aCAyMzAKPj4Kc3RyZWFtDQpIiVyQz2rD MAzG734KHdtDcRNYTyGwdQxy2B+a9QEcW8kMi2wU55C3n+KGDiqwQf6+n/gsfW5eG/IJ9BcH22KC 3pNjnMLMFqHDwZMqSnDepq3Ltx1NVFrgdpkSjg31QVUV6IuIU+IFds8udLhX+pMdsqcBdtdzuwfd zjH+4oiU4Ah1DQ57GfRu4ocZEXTGDo0T3aflIMy/43uJCGXui1sYGxxO0VhkQwOq6ihVQ/UmVSsk 96BvVNfbH8Or+1SIu3x6OWX39r5y8j24h7Izs+TJO8hB1gie8L6mGCIItR71J8AAqfJvsg0KZW5k c3RyZWFtCmVuZG9iagoxMDEgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL0NJREZvbnRU eXBlMAovQmFzZUZvbnQgL0lTV1ZFTitBZG9iZVBpU3RkCi9DSURTeXN0ZW1JbmZvIDw8Ci9SZWdp c3RyeSAoQWRvYmUpCi9PcmRlcmluZyAoSWRlbnRpdHkpCi9TdXBwbGVtZW50IDAKPj4KL0ZvbnRE ZXNjcmlwdG9yIDEzMyAwIFIKL1cgWzcwIFs4OTJdCl0KPj4KZW5kb2JqCjEwMiAwIG9iago8PAov RmlsdGVyIC9GbGF0ZURlY29kZQovTGVuZ3RoIDIzMQo+PgpzdHJlYW0NCkiJXJDBasMwDIbvfgod 20NxG7qdQmBrKeTQbizbAzi2khka2SjOIW8/xQsdTGCD/P+f+C19qs81+QT6nYNtMEHnyTGOYWKL 0GLvSR0KcN6mtcu3HUxUWuBmHhMONXVBlSXoDxHHxDNsXlxocav0GztkTz1svk7NFnQzxXjHASnB HqoKHHYy6GrizQwIOmO72onu07wT5s/xOUeEIveH3zA2OByjsciGelTlXqqC8iJVKST3T1+ptrPf hhf38VncxdNrkd3r+8LJ9+ARyk7MkifvIAdZInjCx5piiCDUctSPAAMAqbpvsQ0KZW5kc3RyZWFt CmVuZG9iagoxMDMgMCBvYmoKPDwKL1R5cGUgL0ZvbnREZXNjcmlwdG9yCi9Gb250TmFtZSAvVFRF SkNSK0hlbHZldGljYU5ldWVMVFN0ZC1Sb21hbgovRm9udEZhbWlseSAoSGVsdmV0aWNhTmV1ZUxU IFN0ZCkKL0ZvbnRTdHJldGNoIC9Ob3JtYWwKL0ZvbnRXZWlnaHQgNDAwCi9GbGFncyAzMgovRm9u dEJCb3ggWy0xNjYgLTIxNCAxMDc2IDk1Ml0KL0FzY2VudCA5NTIKL0NhcEhlaWdodCA3MTQKL0Rl c2NlbnQgLTIxNAovU3RlbVYgODQKL0l0YWxpY0FuZ2xlIDAKL1hIZWlnaHQgNTE3Ci9Gb250Rmls ZTMgMTM0IDAgUgovQ2hhclNldCAoL3NwYWNlL3F1b3Rlc2luZ2xlL3BhcmVubGVmdC9wYXJlbnJp Z2h0L2NvbW1hL2h5cGhlbi9wZXJpb2Qvc2xhc2gvemVyby9vbmUvdHdvL3RocmVlL2ZvdXIvZml2 ZS9zaXgvc2V2ZW4vZWlnaHQvbmluZS9jb2xvbi9zZW1pY29sb24vQS9CL0MvRC9FL0YvRy9IL0kv Si9LL0wvTS9OL08vUC9SL1MvVC9VL1YvVy9YL1kvWi9hL2IvYy9kL2UvZi9nL2gvaS9qL2svbC9t L24vby9wL3Evci9zL3QvdS92L3cveC95L3ovcXVvdGVyaWdodC9xdW90ZWRibGxlZnQvcXVvdGVk YmxyaWdodC9lbWRhc2gpCj4+CmVuZG9iagoxMDQgMCBvYmoKPDwKL1R5cGUgL0ZvbnREZXNjcmlw dG9yCi9Gb250TmFtZSAvSVNXVkVOK0hlbHZldGljYU5ldWVMVFN0ZC1CbGtDbgovRm9udEZhbWls eSAoSGVsdmV0aWNhTmV1ZUxUIFN0ZCBCbGsgQ24pCi9Gb250U3RyZXRjaCAvQ29uZGVuc2VkCi9G b250V2VpZ2h0IDkwMAovRmxhZ3MgMzIKL0ZvbnRCQm94IFstMTY1IC0yMzAgMTA5OSA5NzJdCi9B c2NlbnQgOTcyCi9DYXBIZWlnaHQgNzE0Ci9EZXNjZW50IC0yMzAKL1N0ZW1WIDE4MAovSXRhbGlj QW5nbGUgMAovWEhlaWdodCA1NDEKL0ZvbnRGaWxlMyAxMzUgMCBSCi9DaGFyU2V0ICgvaHlwaGVu L3plcm8vZm91ci9maXZlL3NpeC9UKQo+PgplbmRvYmoKMTA1IDAgb2JqCjw8Ci9UeXBlIC9Gb250 RGVzY3JpcHRvcgovRm9udE5hbWUgL0RRSFJNWCtJVENGcmFua2xpbkdvdGhpY1N0ZC1EZW1pCi9G b250RmFtaWx5IChJVEMgRnJhbmtsaW4gR290aGljIFN0ZCBCb29rKQovRm9udFN0cmV0Y2ggL05v cm1hbAovRm9udFdlaWdodCA2MDAKL0ZsYWdzIDMyCi9Gb250QkJveCBbLTE5OSAtMjUwIDEwMTQg OTM0XQovQXNjZW50IDkzNAovQ2FwSGVpZ2h0IDY4NgovRGVzY2VudCAtMjUwCi9TdGVtViAxNDgK L0l0YWxpY0FuZ2xlIDAKL1hIZWlnaHQgNTA4Ci9Gb250RmlsZTMgMTM2IDAgUgovQ2hhclNldCAo L3NwYWNlL2V4Y2xhbS9SL1QvYS9jL2UvZi9pL24vby9wL3Evci9zL3QvdS94KQo+PgplbmRvYmoK MTA2IDAgb2JqCjw8Ci9UeXBlIC9Gb250RGVzY3JpcHRvcgovRm9udE5hbWUgL1RURUpDUitIZWx2 ZXRpY2FOZXVlTFRTdGQtQmQKL0ZvbnRGYW1pbHkgKEhlbHZldGljYU5ldWVMVCBTdGQpCi9Gb250 U3RyZXRjaCAvTm9ybWFsCi9Gb250V2VpZ2h0IDcwMAovRmxhZ3MgMzIKL0ZvbnRCQm94IFstMTY2 IC0yMTggMTA3OCA5NzVdCi9Bc2NlbnQgOTc1Ci9DYXBIZWlnaHQgNzE0Ci9EZXNjZW50IC0yMTgK L1N0ZW1WIDE0NAovSXRhbGljQW5nbGUgMAovWEhlaWdodCA1MTcKL0ZvbnRGaWxlMyAxMzcgMCBS Ci9DaGFyU2V0ICgvc3BhY2UvcXVvdGVzaW5nbGUvcGFyZW5sZWZ0L3BhcmVucmlnaHQvY29tbWEv aHlwaGVuL3BlcmlvZC9zbGFzaC96ZXJvL29uZS90d28vdGhyZWUvZm91ci9maXZlL3NpeC9zZXZl bi9laWdodC9uaW5lL2NvbG9uL0EvQy9EL0YvRy9IL0kvTC9NL04vUC9SL1MvVC9WL1cvWS9hL2Iv Yy9kL2UvZi9nL2gvaS9qL2svbC9tL24vby9wL3Evci9zL3QvdS92L3cveC95L3F1b3RlcmlnaHQp Cj4+CmVuZG9iagoxMDcgMCBvYmoKPDwKL1R5cGUgL0ZvbnREZXNjcmlwdG9yCi9Gb250TmFtZSAv SVNXVkVOK0hlbHZldGljYU5ldWVMVFN0ZC1CZEl0Ci9Gb250RmFtaWx5IChIZWx2ZXRpY2FOZXVl TFQgU3RkKQovRm9udFN0cmV0Y2ggL05vcm1hbAovRm9udFdlaWdodCA3MDAKL0ZsYWdzIDk2Ci9G b250QkJveCBbLTE2NiAtMjE4IDExMjkgOTc1XQovQXNjZW50IDk3NQovQ2FwSGVpZ2h0IDcxNAov RGVzY2VudCAtMjE4Ci9TdGVtViAxNDQKL0l0YWxpY0FuZ2xlIC0xMgovWEhlaWdodCA1MTcKL0Zv bnRGaWxlMyAxMzggMCBSCi9DaGFyU2V0ICgvc3BhY2UvcGVyaW9kL3NsYXNoL3plcm8vZm91ci9m aXZlL3NpeC9BL0MvSS9QL2EvZC9lL2YvZy9oL2kvbC9tL24vby9wL3Ivcy90L3Uvdi93KQo+Pgpl bmRvYmoKMTA4IDAgb2JqCjw8Ci9UeXBlIC9Gb250RGVzY3JpcHRvcgovRm9udE5hbWUgL1RURUpD UitIZWx2ZXRpY2FOZXVlTFRTdGQtSXQKL0ZvbnRGYW1pbHkgKEhlbHZldGljYU5ldWVMVCBTdGQp Ci9Gb250U3RyZXRjaCAvTm9ybWFsCi9Gb250V2VpZ2h0IDQwMAovRmxhZ3MgOTYKL0ZvbnRCQm94 IFstMTY2IC0yMTQgMTEwNiA5NTddCi9Bc2NlbnQgOTU3Ci9DYXBIZWlnaHQgNzE0Ci9EZXNjZW50 IC0yMTQKL1N0ZW1WIDg0Ci9JdGFsaWNBbmdsZSAtMTIKL1hIZWlnaHQgNTE3Ci9Gb250RmlsZTMg MTM5IDAgUgovQ2hhclNldCAoL3NwYWNlL3BlcmlvZC9zbGFzaC96ZXJvL2ZvdXIvZml2ZS9zaXgv VC9XL1kvYS9iL2MvZC9lL2YvZy9oL2kvay9sL20vbi9vL3AvcS9yL3MvdC91L3Yvdy94L3kpCj4+ CmVuZG9iagoxMDkgMCBvYmoKPDwKL1R5cGUgL0ZvbnREZXNjcmlwdG9yCi9Gb250TmFtZSAvSVNX VkVOK0hlbHZldGljYU5ldWVMVFN0ZC1CbGsKL0ZvbnRGYW1pbHkgKEhlbHZldGljYU5ldWVMVCBT dGQgQmxrKQovRm9udFN0cmV0Y2ggL05vcm1hbAovRm9udFdlaWdodCA5MDAKL0ZsYWdzIDMyCi9G b250QkJveCBbLTE2NSAtMjMyIDExMDEgOTUzXQovQXNjZW50IDk1MwovQ2FwSGVpZ2h0IDcxNAov RGVzY2VudCAtMjMyCi9TdGVtViAyMDAKL0l0YWxpY0FuZ2xlIDAKL1hIZWlnaHQgNTE5Ci9Gb250 RmlsZTMgMTQwIDAgUgovQ2hhclNldCAoL0EvQy9JL04vTy9UL1UpCj4+CmVuZG9iagoxMTAgMCBv YmoKPDwKL0ZvbnQgMTQxIDAgUgo+PgplbmRvYmoKMTExIDAgb2JqCjw8Ci9Gb250IDE0MiAwIFIK Pj4KZW5kb2JqCjExMiAwIG9iago8PAovRm9udCAxNDMgMCBSCj4+CmVuZG9iagoxMTMgMCBvYmoK PDwKL0ZvbnQgMTQ0IDAgUgo+PgplbmRvYmoKMTE0IDAgb2JqCjw8Ci9Gb250IDE0NSAwIFIKPj4K ZW5kb2JqCjExNSAwIG9iago8PAovRm9udCAxNDYgMCBSCj4+CmVuZG9iagoxMTYgMCBvYmoKPDwK L0ZvbnQgMTQ3IDAgUgo+PgplbmRvYmoKMTE3IDAgb2JqCjw8Ci9Gb250IDE0OCAwIFIKPj4KZW5k b2JqCjExOCAwIG9iago8PAovRm9udCAxNDkgMCBSCj4+CmVuZG9iagoxMTkgMCBvYmoKPDwKL0Zv bnQgMTUwIDAgUgo+PgplbmRvYmoKMTIwIDAgb2JqCjw8Ci9Gb250IDE1MSAwIFIKPj4KZW5kb2Jq CjEyMSAwIG9iago8PAovRm9udCAxNTIgMCBSCj4+CmVuZG9iagoxMjIgMCBvYmoKPDwKL0ZvbnQg MTUzIDAgUgo+PgplbmRvYmoKMTIzIDAgb2JqCjw8Ci9Gb250IDE1NCAwIFIKPj4KZW5kb2JqCjEy NCAwIG9iago8PAovRm9udCAxNTUgMCBSCj4+CmVuZG9iagoxMjUgMCBvYmoKPDwKL0ZvbnQgMTU2 IDAgUgo+PgplbmRvYmoKMTI2IDAgb2JqCjw8Ci9Gb250IDE1NyAwIFIKPj4KZW5kb2JqCjEyNyAw IG9iago8PAovRm9udCAxNTggMCBSCj4+CmVuZG9iagoxMjggMCBvYmoKPDwKL0ZvbnQgMTU5IDAg Ugo+PgplbmRvYmoKMTI5IDAgb2JqCjw8Ci9Gb250IDE2MCAwIFIKPj4KZW5kb2JqCjEzMCAwIG9i ago8PAovRm9udCAxNjEgMCBSCj4+CmVuZG9iagoxMzEgMCBvYmoKPDwKL1R5cGUgL0VuY29kaW5n Ci9EaWZmZXJlbmNlcyBbMjQgL2JyZXZlIC9jYXJvbiAvY2lyY3VtZmxleCAvZG90YWNjZW50IC9o dW5nYXJ1bWxhdXQgL29nb25layAvcmluZyAvdGlsZGUgMzkKL3F1b3Rlc2luZ2xlIDk2IC9ncmF2 ZSAxMjggL2J1bGxldCAvZGFnZ2VyIC9kYWdnZXJkYmwgL2VsbGlwc2lzIC9lbWRhc2ggL2VuZGFz aAovZmxvcmluIC9mcmFjdGlvbiAvZ3VpbHNpbmdsbGVmdCAvZ3VpbHNpbmdscmlnaHQgL21pbnVz IC9wZXJ0aG91c2FuZCAvcXVvdGVkYmxiYXNlIC9xdW90ZWRibGxlZnQgL3F1b3RlZGJscmlnaHQg L3F1b3RlbGVmdAovcXVvdGVyaWdodCAvcXVvdGVzaW5nbGJhc2UgL3RyYWRlbWFyayAvZmkgL2Zs IC9Mc2xhc2ggL09FIC9TY2Fyb24gL1lkaWVyZXNpcyAvWmNhcm9uCi9kb3RsZXNzaSAvbHNsYXNo IC9vZSAvc2Nhcm9uIC96Y2Fyb24gMTYwIC9FdXJvIDE2NCAvY3VycmVuY3kgMTY2Ci9icm9rZW5i YXIgMTY4IC9kaWVyZXNpcyAvY29weXJpZ2h0IC9vcmRmZW1pbmluZSAxNzIgL2xvZ2ljYWxub3Qg Ly5ub3RkZWYgL3JlZ2lzdGVyZWQgL21hY3JvbgovZGVncmVlIC9wbHVzbWludXMgL3R3b3N1cGVy aW9yIC90aHJlZXN1cGVyaW9yIC9hY3V0ZSAvbXUgMTgzIC9wZXJpb2RjZW50ZXJlZCAvY2VkaWxs YSAvb25lc3VwZXJpb3IKL29yZG1hc2N1bGluZSAxODggL29uZXF1YXJ0ZXIgL29uZWhhbGYgL3Ro cmVlcXVhcnRlcnMgMTkyIC9BZ3JhdmUgL0FhY3V0ZSAvQWNpcmN1bWZsZXggL0F0aWxkZQovQWRp ZXJlc2lzIC9BcmluZyAvQUUgL0NjZWRpbGxhIC9FZ3JhdmUgL0VhY3V0ZSAvRWNpcmN1bWZsZXgg L0VkaWVyZXNpcyAvSWdyYXZlIC9JYWN1dGUKL0ljaXJjdW1mbGV4IC9JZGllcmVzaXMgL0V0aCAv TnRpbGRlIC9PZ3JhdmUgL09hY3V0ZSAvT2NpcmN1bWZsZXggL090aWxkZSAvT2RpZXJlc2lzIC9t dWx0aXBseQovT3NsYXNoIC9VZ3JhdmUgL1VhY3V0ZSAvVWNpcmN1bWZsZXggL1VkaWVyZXNpcyAv WWFjdXRlIC9UaG9ybiAvZ2VybWFuZGJscyAvYWdyYXZlIC9hYWN1dGUKL2FjaXJjdW1mbGV4IC9h dGlsZGUgL2FkaWVyZXNpcyAvYXJpbmcgL2FlIC9jY2VkaWxsYSAvZWdyYXZlIC9lYWN1dGUgL2Vj aXJjdW1mbGV4IC9lZGllcmVzaXMKL2lncmF2ZSAvaWFjdXRlIC9pY2lyY3VtZmxleCAvaWRpZXJl c2lzIC9ldGggL250aWxkZSAvb2dyYXZlIC9vYWN1dGUgL29jaXJjdW1mbGV4IC9vdGlsZGUKL29k aWVyZXNpcyAvZGl2aWRlIC9vc2xhc2ggL3VncmF2ZSAvdWFjdXRlIC91Y2lyY3VtZmxleCAvdWRp ZXJlc2lzIC95YWN1dGUgL3Rob3JuIC95ZGllcmVzaXNdCj4+CmVuZG9iagoxMzIgMCBvYmoKPDwK L1R5cGUgL0ZvbnREZXNjcmlwdG9yCi9Gb250TmFtZSAvRFFIUk1YK1VuaXZlcnNhbFN0ZC1OZXdz d2l0aENvbW1QaQovRm9udEZhbWlseSAoVW5pdmVyc2FsIFN0ZCBOZXdzIHcgQ29tbSBQaSkKL0Zv bnRTdHJldGNoIC9Ob3JtYWwKL0ZvbnRXZWlnaHQgNDAwCi9GbGFncyA0Ci9Gb250QkJveCBbLTcg LTIyNyA5ODkgNzY0XQovQXNjZW50IDc2NAovQ2FwSGVpZ2h0IDcwOAovRGVzY2VudCAtMjI3Ci9T dGVtViA2MTIKL0l0YWxpY0FuZ2xlIDAKL1hIZWlnaHQgMzMwCi9Gb250RmlsZTMgMTYyIDAgUgo+ PgplbmRvYmoKMTMzIDAgb2JqCjw8Ci9UeXBlIC9Gb250RGVzY3JpcHRvcgovRm9udE5hbWUgL0lT V1ZFTitBZG9iZVBpU3RkCi9Gb250RmFtaWx5IChBZG9iZSBQaSBTdGQpCi9Gb250U3RyZXRjaCAv Tm9ybWFsCi9Gb250V2VpZ2h0IDQwMAovRmxhZ3MgNAovRm9udEJCb3ggWzAgLTE5NiAxMjc2IDgy Nl0KL0FzY2VudCA4MjYKL0NhcEhlaWdodCA3MjUKL0Rlc2NlbnQgLTE5NgovU3RlbVYgNzUKL0l0 YWxpY0FuZ2xlIDAKL1hIZWlnaHQgNTAwCi9Gb250RmlsZTMgMTYzIDAgUgo+PgplbmRvYmoKMTM0 IDAgb2JqCjw8Ci9TdWJ0eXBlIC9UeXBlMUMKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbmd0aCA0 Mzk4Cj4+CnN0cmVhbQ0KSIlcVHtUE2cWnyFkEhDCIw5qgsksQpWnyFNQKRARijwsUAXrIpEEiYQE Ex5CfVJXwUBb9ZxdPa1Wt6serXZVSrWu6EJXUbsURZsWBzVoUz0pPtal50682T07we1223++x3zf 787v9/vuvSTh6UGQJMmUlGTlqooic7T6Rm29rlJdoG3Q5pUU12uii4y1aoP7jpKTk9xUTy7Yh8ZU XPPiyos8ITz247wCjgRPXh1IePCRCCA9Vca6ZpNudXU9Mydl7twofkyJnRjjo5i42Ng4ZmKKz9AY V2mZ4mZzvbbWzLxmqDSa6owmdb1WE8Nk6PVMkTuEmSnSmrWmRvfH/3FjdGZGzZSY1BptrdpUwxir +DOdRqtfpTWt1pqYhaaGyppatbmyWmfQGpiMbEa7rlLfYNY1avXNjF5XqTWYtRqmvtpkbFhdzeTp DMb65jotv1hlUpuamezaVTlRjNqgYWrVzQxP0qRdreNpmniQzsBUak31an5e02DSmTW6ynqd0WCO mb2ouMQdJIHRaKsI3gmSIMQehK8fEeJHxIuJzGlENUk0EUQ7QeS5nconCoi1xFFilLc2iJxFZpAd 5HHyhYfBY78HJ6gW7PWUebZ5HvNkhZOFW4RWSkolU8uoc9QoNS4KFS0V6UXHRPfFiWKz+LpXlleF 116vfu8p3oXeLd4fTpo+ad2kCz7TfEw+n/jO8l3pu8H3U9+Hvi8kRRKL5IZfpN92v0/9p/ln+7/t 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 ugh5QGKC4LUTQMhPl6s/xD0KQbqxFXJVlOzFfOxm2LO2JrPLIZhqLRXFfHb9u0Mi3MCeG8yrDTm9 rwk7+97f9wE/df7tqz6xiWYrkhjMXxh1wt5ysk32KuT9QY6zdAoSUkCgUCoNi9Be9BLqpmABfR/S H6B0ClJplArdlMrV+jCtFW1qpcHfEth5hPldbw8N6sX+MKDDQfsY0G9GRIC2PWKeJ0IlDy6QY7n/ CTAAPh5O5A0KZW5kc3RyZWFtCmVuZG9iagoxMzcgMCBvYmoKPDwKL1N1YnR5cGUgL1R5cGUxQwov RmlsdGVyIC9GbGF0ZURlY29kZQovTGVuZ3RoIDM5MzIKPj4Kc3RyZWFtDQpIiWRUCVAUVxruZqbf DAg9q0Mjy8h0iygkIs4wXhijAgrCcniQeKPDTCujHDrDra7GsiJIxlgb1zLrmdSKW8HbRaMLiqgR FJdRPEq3jInG0trSjabW+Rv/qcq+xmOrdqur3t/v+P73ff/xWEYbxLAsG52fPzUrbebwaXJxpVzu cthz5Qo5O39WuXNEqlM9IComVgnXKoNCBRyPpa8uv3Jw8MCghPTvHNT/1wFMEMv+8mta2Yoat2tp UblkTR43LoGOyZa+0ZYgJVksSVKKs6xQlmbVeMrlEo+UWeooc68oc9vLZWeilFJcLM1UwR5ppuyR 3ZXq4js+kssj2aVyt90pl9jdy6WyJXTP5ZSLC2X3UtktTXFXOJaX2D2OIlepXCqlZCRIcrWjuMLj qpSLa6Ril0Mu9chOqbzIXVaxtEjKdpWWldeskOlPodvurpEySgqnJUj2UqdUYq+RKEu3vNRFebop yFUqOWR3uZ3aZRVul8fpcpS7yko9iSPTZ+WrTkZJTnkJw7D0Y/RBTBjPxDBMLMvEaZgRQYyVYWxB zFiWGc8wqZFMEcNMokFncpk8xsMcZB6zelZkrWw2u4NtDxKCtgZ1aYZrtmuuaQu1f9c+5+K5VVwL 94BkkkryGWkkj3Thujm6U/r39Vn6Cv1Z/bNgZ/DpEDZkXsg3IT/2m91va79T/fyhCaGpoX8OfRgW H7Yx7AE/lN/Itxu0Bouh3HDY4P+NDmMbWpWnrSwdY1s1DVqlrnd6oI7AZrwo4ET4goMnBCVsE0Cd BP6gC5CCvn+YiHROlLOC+ofqjOeVC5DIdkOMplu5IFwl81YXzak1Z+q+39bZXfeTHkZgjI7H5zi6 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 NPpXg7PhVQl+xCUZT0BVhJcSUnwsQx2Ec02hlFnP4QRyLPmP5HqGdRQZrUAVO6DDv1BqvRIUozY8 hKr8F9jidekZ2mK0Fg5gVYaLUtR+8E6EkhSt3W8XYVbC+SAj4owUuQR9/h7oExbAbgiYPyLPQj+S NTx/rRlt3I8HsYBZ+AyPw3fAoAU6IL4XDWngsjnWuzs+vfrmzW+rayu/fHnxp72RcPhOMciUhKec 62kb2EEGbSmyUVsCDUqgNSy1gebvui6BFe4SYZq3aGHrDxJqfquIBd79P0FQ40QLEMhoQjsmIc+t HZJggok8Yp4br6MZA7sNUsu1J0+WpzCFqa6pdLqrBqlYhN4p+vdgUACPU4HHRXE4AYP/EhyEiY3n L5aE3/mybP0Hvg0yMtrhTulkJXmAVlb+jvk7OT7ThONAEvXN/7yG8Vjk0u0gcxtz89BdleBuNVTn mzZK0zeb4de51bnw1c0WiG+G8S3XtkaCyo7glvxRgAEApYaPUQ0KZW5kc3RyZWFtCmVuZG9iagox NDEgMCBvYmoKPDwKL0hlQm8gOTcgMCBSCj4+CmVuZG9iagoxNDIgMCBvYmoKPDwKL0hlQm8gOTcg MCBSCj4+CmVuZG9iagoxNDMgMCBvYmoKPDwKL0hlQm8gOTcgMCBSCj4+CmVuZG9iagoxNDQgMCBv YmoKPDwKL0hlQm8gOTcgMCBSCj4+CmVuZG9iagoxNDUgMCBvYmoKPDwKL0hlQm8gOTcgMCBSCj4+ CmVuZG9iagoxNDYgMCBvYmoKPDwKL0hlQm8gOTcgMCBSCj4+CmVuZG9iagoxNDcgMCBvYmoKPDwK L0hlQm8gOTcgMCBSCj4+CmVuZG9iagoxNDggMCBvYmoKPDwKL0hlQm8gOTcgMCBSCj4+CmVuZG9i agoxNDkgMCBvYmoKPDwKL0hlQm8gOTcgMCBSCj4+CmVuZG9iagoxNTAgMCBvYmoKPDwKL0hlQm8g OTcgMCBSCj4+CmVuZG9iagoxNTEgMCBvYmoKPDwKL0hlQm8gOTcgMCBSCj4+CmVuZG9iagoxNTIg MCBvYmoKPDwKL0hlQm8gOTcgMCBSCj4+CmVuZG9iagoxNTMgMCBvYmoKPDwKL0hlQm8gOTcgMCBS Cj4+CmVuZG9iagoxNTQgMCBvYmoKPDwKL0hlQm8gOTcgMCBSCj4+CmVuZG9iagoxNTUgMCBvYmoK PDwKL0hlQm8gOTcgMCBSCj4+CmVuZG9iagoxNTYgMCBvYmoKPDwKL0hlQm8gOTcgMCBSCj4+CmVu ZG9iagoxNTcgMCBvYmoKPDwKL0hlQm8gOTcgMCBSCj4+CmVuZG9iagoxNTggMCBvYmoKPDwKL0hl Qm8gOTcgMCBSCj4+CmVuZG9iagoxNTkgMCBvYmoKPDwKL0hlQm8gOTcgMCBSCj4+CmVuZG9iagox NjAgMCBvYmoKPDwKL0hlQm8gOTcgMCBSCj4+CmVuZG9iagoxNjEgMCBvYmoKPDwKL0hlQm8gOTcg MCBSCj4+CmVuZG9iagoxNjIgMCBvYmoKPDwKL1N1YnR5cGUgL0NJREZvbnRUeXBlMEMKL0ZpbHRl ciAvRmxhdGVEZWNvZGUKL0xlbmd0aCA0NjIKPj4Kc3RyZWFtDQpIiXxRz2sTQRTeaZMN6hJRCB7U +tBWhcRaq0J7KYQWm4KWmih4EiY7r5ux+yPOTBoXevQQWRDRQ/Hiyf+iBL34v3jQ8052Q3U2B4/O 4XvfN7zv8fEesUpzFiHkxtbTVvvJi/rzkB+ikNTvKHZnF4dyyFVvMwqCPV601fVlfSVxFvRVoi+V 9IJTe5sPs9eTD+XfznW9dF7XL+jbzpI+dhatshls2VbV+kMccqvJoi7uMAwVV/Fm1I8F93oK7q2v rTUMrj9swOrKyirMyv1ZN3RiqTCQsBO6kehHgipky9D0fWgXZgltlCgOi89/uYFLoKAEZRhQcQDR PrSQM/S7KDwUsCUG7kFApdvjIYbQ3G4AvnH9gTR+PwafuxhKZKB6Ihp4PXjMw0jFfTSkK6iIYTvo thpAQwYBjcGkFOhxk1MYEw/BRaGoqa8GgkvGXcWjUC7ffdR5Vgx5AAz3/7dj82gBc4TsenqUjPWv MTG4OJ5PSno02ZuO7PR9/qOWb6SfyulPO4f8ey0txPRjZWq/nPF0Izfa1t9qBcsLVc2OcpExcpyx +ayffqmdMn1UPmWVanHXM/qac/Oz/noxSSbvEjsfJpWTsyfn/gowADkxzaMNCmVuZHN0cmVhbQpl bmRvYmoKMTYzIDAgb2JqCjw8Ci9TdWJ0eXBlIC9DSURGb250VHlwZTBDCi9GaWx0ZXIgL0ZsYXRl RGVjb2RlCi9MZW5ndGggMzQyCj4+CnN0cmVhbQ0KSIliZGBhYmBkZBTyDA4Pc/XTdkzJT0oNyAwu SQGJ6vyQ/iHTzSP3Q5bxhwTLDzke0e7fETIsf36eY73Eo/R9Lv/3xYLfF/Co/uDhUWFgZWRk45u3 eivYCM+U1LySzJJKMEfBOT8vLRMskpijB+QVVBZlpmeUKBgZGBgp6IAoY4jC4MriktTcYgXPvOT8 ooL8osSS1BQ9BcecHIUgkIZihaDU4tSiMrAgWENApkJmsUKiQklRYkpqbmJRtkJ+mgIes/TdgkMq C1IVLBRSUtOQPAsEbiCCiZHRL+VHR/feH2/2MgJJlb3M3Sw/On4G/Olg+973+6job7vvk1m/v2D7 rfD7gOh3EOfPJPY/bHFg9ne730A+24/9oiDWbxCP75fAgjLGzT/3Mf98JvZH82fgH82/gax8oNDl /CHPozbjh6RQ0ZKfmUt+9y1h28u1lxsgwADo+5vHDQplbmRzdHJlYW0KZW5kb2JqCnhyZWYKMCAx NjQKMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAwMDE1IDAwMDAwIG4NCjAwMDAwMDA0NjYgMDAw MDAgbg0KMDAwMDAwMDUyOSAwMDAwMCBuDQowMDAwMDAwODI3IDAwMDAwIG4NCjAwMDAwMDAwOTYg MDAwMDAgbg0KMDAwMDAwMjIxMiAwMDAwMCBuDQowMDAwMDAyNjg3IDAwMDAwIG4NCjAwMDAwMDI5 NTEgMDAwMDAgbg0KMDAwMDAwMzEzOSAwMDAwMCBuDQowMDAwMDAzMzQwIDAwMDAwIG4NCjAwMDAw MDM1NDEgMDAwMDAgbg0KMDAwMDAwMzc4MyAwMDAwMCBuDQowMDAwMDAzOTc0IDAwMDAwIG4NCjAw MDAwMDQyMTUgMDAwMDAgbg0KMDAwMDAwNDQwOCAwMDAwMCBuDQowMDAwMDA0NjAwIDAwMDAwIG4N CjAwMDAwMDQ3OTQgMDAwMDAgbg0KMDAwMDAwNDk4NiAwMDAwMCBuDQowMDAwMDA1MTc5IDAwMDAw IG4NCjAwMDAwMDUzNjggMDAwMDAgbg0KMDAwMDAwNTU1OCAwMDAwMCBuDQowMDAwMDA1NzUwIDAw MDAwIG4NCjAwMDAwMDU5NDEgMDAwMDAgbg0KMDAwMDAwNjEzMCAwMDAwMCBuDQowMDAwMDA2MzM2 IDAwMDAwIG4NCjAwMDAwMDY1MTkgMDAwMDAgbg0KMDAwMDAwNjcyNyAwMDAwMCBuDQowMDAwMDA2 OTE3IDAwMDAwIG4NCjAwMDAwMDcxMTAgMDAwMDAgbg0KMDAwMDAwNzI5OSAwMDAwMCBuDQowMDAw MDA3NTU5IDAwMDAwIG4NCjAwMDAwMDc4MjAgMDAwMDAgbg0KMDAwMDAwODA3OSAwMDAwMCBuDQow MDAwMDA4MzQ2IDAwMDAwIG4NCjAwMDAwMDg2MDUgMDAwMDAgbg0KMDAwMDAwODg1NyAwMDAwMCBu DQowMDAwMDA5MDU2IDAwMDAwIG4NCjAwMDAwMDkxMTcgMDAwMDAgbg0KMDAwMDAxNTA5NSAwMDAw MCBuDQowMDAwMDE1MjU4IDAwMDAwIG4NCjAwMDAwMTU0MDUgMDAwMDAgbg0KMDAwMDAxNjYxNSAw MDAwMCBuDQowMDAwMDE3ODI0IDAwMDAwIG4NCjAwMDAwMTkwMzQgMDAwMDAgbg0KMDAwMDAyMDI0 MiAwMDAwMCBuDQowMDAwMDIxNDUwIDAwMDAwIG4NCjAwMDAwMjgzMzIgMDAwMDAgbg0KMDAwMDAy OTUzOCAwMDAwMCBuDQowMDAwMDMwNzUxIDAwMDAwIG4NCjAwMDAwMzA5NTQgMDAwMDAgbg0KMDAw MDAzMTE4MCAwMDAwMCBuDQowMDAwMDMxNDIxIDAwMDAwIG4NCjAwMDAwMzE3MjIgMDAwMDAgbg0K MDAwMDAzMTkyMiAwMDAwMCBuDQowMDAwMDMyMjIxIDAwMDAwIG4NCjAwMDAwMzI0NDAgMDAwMDAg bg0KMDAwMDAzMjY1NyAwMDAwMCBuDQowMDAwMDMyODgxIDAwMDAwIG4NCjAwMDAwMzMxMDIgMDAw MDAgbg0KMDAwMDAzMzMyMyAwMDAwMCBuDQowMDAwMDMzNTM5IDAwMDAwIG4NCjAwMDAwMzM3NTYg MDAwMDAgbg0KMDAwMDAzMzk3MiAwMDAwMCBuDQowMDAwMDM0MTgxIDAwMDAwIG4NCjAwMDAwMzQz OTggMDAwMDAgbg0KMDAwMDAzNDYyMiAwMDAwMCBuDQowMDAwMDM0ODI1IDAwMDAwIG4NCjAwMDAw MzUwNjcgMDAwMDAgbg0KMDAwMDAzNTI3NiAwMDAwMCBuDQowMDAwMDM1NTAxIDAwMDAwIG4NCjAw MDAwMzU2MTEgMDAwMDAgbg0KMDAwMDAzNTg3MiAwMDAwMCBuDQowMDAwMDM1OTgyIDAwMDAwIG4N CjAwMDAwMzYyNzkgMDAwMDAgbg0KMDAwMDAzNjQ1NiAwMDAwMCBuDQowMDAwMDM2NzE3IDAwMDAw IG4NCjAwMDAwMzY4MjcgMDAwMDAgbg0KMDAwMDAzNzEyNCAwMDAwMCBuDQowMDAwMDM3MzAxIDAw MDAwIG4NCjAwMDAwMzc1NjIgMDAwMDAgbg0KMDAwMDAzNzY3MiAwMDAwMCBuDQowMDAwMDM3OTY5 IDAwMDAwIG4NCjAwMDAwMzgxNDYgMDAwMDAgbg0KMDAwMDAzODQwOCAwMDAwMCBuDQowMDAwMDM4 NTE4IDAwMDAwIG4NCjAwMDAwMzg4MTMgMDAwMDAgbg0KMDAwMDAzODk4NSAwMDAwMCBuDQowMDAw MDM5MjQ2IDAwMDAwIG4NCjAwMDAwMzkzNTYgMDAwMDAgbg0KMDAwMDAzOTY1MyAwMDAwMCBuDQow MDAwMDM5ODMwIDAwMDAwIG4NCjAwMDAwNDAwODYgMDAwMDAgbg0KMDAwMDA0MDE5MyAwMDAwMCBu DQowMDAwMDQwNDgyIDAwMDAwIG4NCjAwMDAwNDA2NTEgMDAwMDAgbg0KMDAwMDA0MDc1OCAwMDAw MCBuDQowMDAwMDQwODY4IDAwMDAwIG4NCjAwMDAwNDA5NzQgMDAwMDAgbg0KMDAwMDA0MTA2MCAw MDAwMCBuDQowMDAwMDQxMjYxIDAwMDAwIG4NCjAwMDAwNDE1NjcgMDAwMDAgbg0KMDAwMDA0MTc2 NyAwMDAwMCBuDQowMDAwMDQyMDc0IDAwMDAwIG4NCjAwMDAwNDI2NjIgMDAwMDAgbg0KMDAwMDA0 MzAxMSAwMDAwMCBuDQowMDAwMDQzMzc3IDAwMDAwIG4NCjAwMDAwNDM5MDEgMDAwMDAgbg0KMDAw MDA0NDI5NSAwMDAwMCBuDQowMDAwMDQ0Njk2IDAwMDAwIG4NCjAwMDAwNDUwMjMgMDAwMDAgbg0K MDAwMDA0NTA2MCAwMDAwMCBuDQowMDAwMDQ1MDk3IDAwMDAwIG4NCjAwMDAwNDUxMzQgMDAwMDAg bg0KMDAwMDA0NTE3MSAwMDAwMCBuDQowMDAwMDQ1MjA4IDAwMDAwIG4NCjAwMDAwNDUyNDUgMDAw MDAgbg0KMDAwMDA0NTI4MiAwMDAwMCBuDQowMDAwMDQ1MzE5IDAwMDAwIG4NCjAwMDAwNDUzNTYg MDAwMDAgbg0KMDAwMDA0NTM5MyAwMDAwMCBuDQowMDAwMDQ1NDMwIDAwMDAwIG4NCjAwMDAwNDU0 NjcgMDAwMDAgbg0KMDAwMDA0NTUwNCAwMDAwMCBuDQowMDAwMDQ1NTQxIDAwMDAwIG4NCjAwMDAw NDU1NzggMDAwMDAgbg0KMDAwMDA0NTYxNSAwMDAwMCBuDQowMDAwMDQ1NjUyIDAwMDAwIG4NCjAw MDAwNDU2ODkgMDAwMDAgbg0KMDAwMDA0NTcyNiAwMDAwMCBuDQowMDAwMDQ1NzYzIDAwMDAwIG4N CjAwMDAwNDU4MDAgMDAwMDAgbg0KMDAwMDA0NzEyNiAwMDAwMCBuDQowMDAwMDQ3NDMzIDAwMDAw IG4NCjAwMDAwNDc3MDYgMDAwMDAgbg0KMDAwMDA1MjE5OCAwMDAwMCBuDQowMDAwMDUzMTQ0IDAw MDAwIG4NCjAwMDAwNTQ5MTcgMDAwMDAgbg0KMDAwMDA1ODk0MyAwMDAwMCBuDQowMDAwMDYxNDUz IDAwMDAwIG4NCjAwMDAwNjQyNzcgMDAwMDAgbg0KMDAwMDA2NTE1MCAwMDAwMCBuDQowMDAwMDY1 MTg2IDAwMDAwIG4NCjAwMDAwNjUyMjIgMDAwMDAgbg0KMDAwMDA2NTI1OCAwMDAwMCBuDQowMDAw MDY1Mjk0IDAwMDAwIG4NCjAwMDAwNjUzMzAgMDAwMDAgbg0KMDAwMDA2NTM2NiAwMDAwMCBuDQow MDAwMDY1NDAyIDAwMDAwIG4NCjAwMDAwNjU0MzggMDAwMDAgbg0KMDAwMDA2NTQ3NCAwMDAwMCBu DQowMDAwMDY1NTEwIDAwMDAwIG4NCjAwMDAwNjU1NDYgMDAwMDAgbg0KMDAwMDA2NTU4MiAwMDAw MCBuDQowMDAwMDY1NjE4IDAwMDAwIG4NCjAwMDAwNjU2NTQgMDAwMDAgbg0KMDAwMDA2NTY5MCAw MDAwMCBuDQowMDAwMDY1NzI2IDAwMDAwIG4NCjAwMDAwNjU3NjIgMDAwMDAgbg0KMDAwMDA2NTc5 OCAwMDAwMCBuDQowMDAwMDY1ODM0IDAwMDAwIG4NCjAwMDAwNjU4NzAgMDAwMDAgbg0KMDAwMDA2 NTkwNiAwMDAwMCBuDQowMDAwMDY2NDY4IDAwMDAwIG4NCnRyYWlsZXIKPDwKL1R5cGUgL1hSZWYK L1NpemUgMTY0Ci9Sb290IDEgMCBSCi9JbmZvIDUgMCBSCi9JRCBbPDE2QjA4N0M2MzI3NTdENkE1 RkQzMzREOEM4OThCMDE5PiA8MTZCMDg3QzYzMjc1N0Q2QTVGRDMzNEQ4Qzg5OEIwMTk+XQovVyBb MSAyIDBdCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9MZW5ndGggMzM5Cj4+CnN0YXJ0eHJlZgo2Njkx MAolJUVPRgo=
    

    401 Response

    {
      "error": "Authentication required",
      "display": "Your credentials are invalid.",
      "trackingId": "cbd15fc4-a8cc-45db-ac87-f90802ebbcc3"
    }
    

    403 Response

    {
      "error": "Forbidden",
      "display": "You do not have the appropriate permissions to take this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    500 Response

    {
      "error": "Internal Server Error",
      "display": "Something went wrong. Please try again later.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK Document Binary Data string
    401 Unauthorized Invalid Credentials AuthenticationRequiredErrorSchema
    403 Forbidden Not Authorized NotAuthorizedErrorSchema
    500 Internal Server Error Unexpected Error InternalServerErrorSchema

    Borrowers

    Post Borrower

    Code samples

    # You can also use wget
    curl -X POST https://api.blendlabs.com/borrowers \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Content-Type: application/json' \
      -H 'Accept: application/json'
    
    
    POST https://api.blendlabs.com/borrowers HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Content-Type: application/json
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/borrowers',
      method: 'post',
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "name": {
        "firstName": "John",
        "middleName": "M",
        "lastName": "Doe",
        "suffixName": "III"
      },
      "email": "johnhernandez@mail.com",
      "SSN": "000113933",
      "dateOfBirth": "2018-10-03T20:07:27+00:00",
      "homePhone": "1112223333",
      "currentAddress": {
        "streetAddressLine1": "100 Main St",
        "streetAddressLine2": "Apt 10",
        "city": "Chicago",
        "state": "IL",
        "zipCode": "60007",
        "zipCodePlusFour": "1000"
      },
      "loanId": "aa9fdaa2-7bf3-4411-a836-c2a46117f5c3",
      "fileNumber": 1,
      "filePosition": 1
    }';
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/borrowers',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    }
    
    result = RestClient.post 'https://api.blendlabs.com/borrowers',
      params: {
      }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Content-Type': 'application/json',
      'Accept': 'application/json'
    }
    
    r = requests.post('https://api.blendlabs.com/borrowers', params={
    
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/borrowers");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Content-Type": []string{"application/json"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("POST", "https://api.blendlabs.com/borrowers", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    POST /borrowers

    Add a borrower to a specific loan. You can only add non-primary borrowers through this endpoint.

    Body parameter

    {
      "name": {
        "firstName": "John",
        "middleName": "M",
        "lastName": "Doe",
        "suffixName": "III"
      },
      "email": "johnhernandez@mail.com",
      "SSN": "000113933",
      "dateOfBirth": "2018-10-03T20:07:27+00:00",
      "homePhone": "1112223333",
      "currentAddress": {
        "streetAddressLine1": "100 Main St",
        "streetAddressLine2": "Apt 10",
        "city": "Chicago",
        "state": "IL",
        "zipCode": "60007",
        "zipCodePlusFour": "1000"
      },
      "loanId": "aa9fdaa2-7bf3-4411-a836-c2a46117f5c3",
      "fileNumber": 1,
      "filePosition": 1
    }
    

    Parameters

    Parameter In Type Required Description
    body body object true Borrower parameters
    » name body NameSchema true none
    »» firstName body string false none
    »» middleName body string false none
    »» lastName body string false none
    »» suffixName body string false none
    » email body string true none
    » SSN body string false Social security number, needs to be nine characters
    » dateOfBirth body string false ISO Timestamp of Date of Birth
    » homePhone body integer false Nine-digit home phone number
    » currentAddress body AddressSchema false none
    »» streetAddressLine1 body string true none
    »» streetAddressLine2 body string false none
    »» city body string true none
    »» state body string true Two-digit US state code
    »» zipCode body string true Five-digit US zip code
    »» zipCodePlusFour body string false Four-digit additional US zip code numbers
    » loanId body LoanId false The UUID of the loan in Blend's system. The static identifier that should be used to connect the loan's identity across Blend and external integrations.
    » fileNumber body integer false none
    » filePosition body number false none

    Enumerated Values

    Parameter Value
    » filePosition 1
    » filePosition 2

    Example responses

    200 Response

    {
      "id": "3f345acb-6ac4-4bd0-b04a-dc0b9ad76e70",
      "loanId": "aa9fdaa2-7bf3-4411-a836-c2a46117f5c3",
      "type": "string",
      "email": "johnhernandez@mail.com",
      "name": {
        "firstName": "John",
        "middleName": "M",
        "lastName": "Doe",
        "suffixName": "III"
      }
    }
    

    401 Response

    {
      "error": "Authentication required",
      "display": "Your credentials are invalid.",
      "trackingId": "cbd15fc4-a8cc-45db-ac87-f90802ebbcc3"
    }
    

    403 Response

    {
      "error": "Forbidden",
      "display": "You do not have the appropriate permissions to take this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    500 Response

    {
      "error": "Internal Server Error",
      "display": "Something went wrong. Please try again later.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK Created Borrower BorrowerSchemaNameExpanded
    401 Unauthorized Invalid Credentials AuthenticationRequiredErrorSchema
    403 Forbidden Not Authorized NotAuthorizedErrorSchema
    500 Internal Server Error Unexpected Error InternalServerErrorSchema

    Patch Borrower

    Code samples

    # You can also use wget
    curl -X PATCH https://api.blendlabs.com/borrowers/{id} \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Content-Type: application/json' \
      -H 'Accept: application/json'
    
    
    PATCH https://api.blendlabs.com/borrowers/{id} HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Content-Type: application/json
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/borrowers/{id}',
      method: 'patch',
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "name": {
        "firstName": "John",
        "middleName": "M",
        "lastName": "Doe",
        "suffixName": "III"
      },
      "email": "johnhernandez@mail.com",
      "SSN": "000113933",
      "dateOfBirth": "2018-10-03T20:07:27+00:00",
      "homePhone": "1112223333",
      "currentAddress": {
        "streetAddressLine1": "100 Main St",
        "streetAddressLine2": "Apt 10",
        "city": "Chicago",
        "state": "IL",
        "zipCode": "60007",
        "zipCodePlusFour": "1000"
      }
    }';
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/borrowers/{id}',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    }
    
    result = RestClient.patch 'https://api.blendlabs.com/borrowers/{id}',
      params: {
      }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Content-Type': 'application/json',
      'Accept': 'application/json'
    }
    
    r = requests.patch('https://api.blendlabs.com/borrowers/{id}', params={
    
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/borrowers/{id}");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Content-Type": []string{"application/json"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("PATCH", "https://api.blendlabs.com/borrowers/{id}", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    PATCH /borrowers/{id}

    Update a borrower's details.

    Body parameter

    {
      "name": {
        "firstName": "John",
        "middleName": "M",
        "lastName": "Doe",
        "suffixName": "III"
      },
      "email": "johnhernandez@mail.com",
      "SSN": "000113933",
      "dateOfBirth": "2018-10-03T20:07:27+00:00",
      "homePhone": "1112223333",
      "currentAddress": {
        "streetAddressLine1": "100 Main St",
        "streetAddressLine2": "Apt 10",
        "city": "Chicago",
        "state": "IL",
        "zipCode": "60007",
        "zipCodePlusFour": "1000"
      }
    }
    

    Parameters

    Parameter In Type Required Description
    id path string true Borrower Id
    body body object true Borrower update parameters
    » name body NameSchema false none
    »» firstName body string false none
    »» middleName body string false none
    »» lastName body string false none
    »» suffixName body string false none
    » email body string false none
    » SSN body string false Social security number, needs to be nine characters
    » dateOfBirth body string false ISO Timestamp of Date of Birth
    » homePhone body integer false Nine-digit home phone number
    » currentAddress body AddressSchema false none
    »» streetAddressLine1 body string true none
    »» streetAddressLine2 body string false none
    »» city body string true none
    »» state body string true Two-digit US state code
    »» zipCode body string true Five-digit US zip code
    »» zipCodePlusFour body string false Four-digit additional US zip code numbers

    Example responses

    200 Response

    {
      "id": "3f345acb-6ac4-4bd0-b04a-dc0b9ad76e70",
      "loanId": "aa9fdaa2-7bf3-4411-a836-c2a46117f5c3",
      "type": "string",
      "email": "johnhernandez@mail.com",
      "name": {
        "firstName": "John",
        "middleName": "M",
        "lastName": "Doe",
        "suffixName": "III"
      }
    }
    

    401 Response

    {
      "error": "Authentication required",
      "display": "Your credentials are invalid.",
      "trackingId": "cbd15fc4-a8cc-45db-ac87-f90802ebbcc3"
    }
    

    403 Response

    {
      "error": "Forbidden",
      "display": "You do not have the appropriate permissions to take this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    500 Response

    {
      "error": "Internal Server Error",
      "display": "Something went wrong. Please try again later.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK Updated Borrower BorrowerSchemaNameExpanded
    401 Unauthorized Invalid Credentials AuthenticationRequiredErrorSchema
    403 Forbidden Not Authorized NotAuthorizedErrorSchema
    500 Internal Server Error Unexpected Error InternalServerErrorSchema

    Delete Borrower

    Code samples

    # You can also use wget
    curl -X DELETE https://api.blendlabs.com/borrowers/{id} \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Accept: application/json'
    
    
    DELETE https://api.blendlabs.com/borrowers/{id} HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/borrowers/{id}',
      method: 'delete',
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/borrowers/{id}',
    {
      method: 'DELETE',
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Accept' => 'application/json'
    }
    
    result = RestClient.delete 'https://api.blendlabs.com/borrowers/{id}',
      params: {
      }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Accept': 'application/json'
    }
    
    r = requests.delete('https://api.blendlabs.com/borrowers/{id}', params={
    
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/borrowers/{id}");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("DELETE", "https://api.blendlabs.com/borrowers/{id}", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    DELETE /borrowers/{id}

    Delete borrower from a specific loan.

    Parameters

    Parameter In Type Required Description
    id path string true Borrower Id

    Example responses

    401 Response

    {
      "error": "Authentication required",
      "display": "Your credentials are invalid.",
      "trackingId": "cbd15fc4-a8cc-45db-ac87-f90802ebbcc3"
    }
    

    403 Response

    {
      "error": "Forbidden",
      "display": "You do not have the appropriate permissions to take this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    500 Response

    {
      "error": "Internal Server Error",
      "display": "Something went wrong. Please try again later.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK Successful Deletion None
    401 Unauthorized Invalid Request AuthenticationRequiredErrorSchema
    403 Forbidden Not Authorized NotAuthorizedErrorSchema
    500 Internal Server Error Unexpected Error InternalServerErrorSchema

    Disclosures Packages

    Patch Disclosures Package

    Code samples

    # You can also use wget
    curl -X PATCH https://api.blendlabs.com/disclosures-packages/{id} \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Content-Type: application/json' \
      -H 'Accept: application/json'
    
    
    PATCH https://api.blendlabs.com/disclosures-packages/{id} HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Content-Type: application/json
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/disclosures-packages/{id}',
      method: 'patch',
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "status": "DECLINED",
      "losId": "Loan-12391",
      "recipient": {
        "id": "4ab61cfd-e4f0-47af-bdfa-06901e2bf180",
        "timestamp": "2018-08-30T19:31:38.902Z"
      }
    }';
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/disclosures-packages/{id}',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    }
    
    result = RestClient.patch 'https://api.blendlabs.com/disclosures-packages/{id}',
      params: {
      }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Content-Type': 'application/json',
      'Accept': 'application/json'
    }
    
    r = requests.patch('https://api.blendlabs.com/disclosures-packages/{id}', params={
    
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/disclosures-packages/{id}");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Content-Type": []string{"application/json"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("PATCH", "https://api.blendlabs.com/disclosures-packages/{id}", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    PATCH /disclosures-packages/{id}

    Update disclosures package details

    Body parameter

    {
      "status": "DECLINED",
      "losId": "Loan-12391",
      "recipient": {
        "id": "4ab61cfd-e4f0-47af-bdfa-06901e2bf180",
        "timestamp": "2018-08-30T19:31:38.902Z"
      }
    }
    

    Parameters

    Parameter In Type Required Description
    id path string true Disclosures package id
    body body object true Disclosures package update body
    » status body string false ELECTRONICALLY_VIEWED, DECLINED, and ALL_SIGNATURES_COMPLETE allowed when using Wolters Kluwer, else forbidden.
    » losId body LosId false The UUID or GUID of the loan in the LOS AFTER initial export to the LOS. May match the Loan reference number depending on the LOS and if the customer has selected to use only GUIDs instead of UUIDs in their LOS settings.
    » recipient body object false Required when status is ELECTRONICALLY_VIEWED, DECLINED, or ALL_SIGNATURES_COMPLETE, else forbidden.
    »» id body string true none
    »» timestamp body string true ISO timestamp of when the action was taken by the recipient

    Enumerated Values

    Parameter Value
    » status CANCELLED
    » status RETRIEVED
    » status DECLINED
    » status ELECTRONICALLY_VIEWED
    » status ALL_SIGNATURES_COMPLETE

    Example responses

    400 Response

    {
      "error": "Invalid Request",
      "display": "The action you're trying to take is invalid.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    401 Response

    {
      "error": "Authentication required",
      "display": "Your credentials are invalid.",
      "trackingId": "cbd15fc4-a8cc-45db-ac87-f90802ebbcc3"
    }
    

    403 Response

    {
      "error": "Forbidden",
      "display": "You do not have the appropriate permissions to take this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    500 Response

    {
      "error": "Internal Server Error",
      "display": "Something went wrong. Please try again later.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK Updated disclosures package None
    400 Bad Request Invalid Request InvalidRequestErrorSchema
    401 Unauthorized Invalid Credentials AuthenticationRequiredErrorSchema
    403 Forbidden Not Authorized NotAuthorizedErrorSchema
    500 Internal Server Error Unexpected Error InternalServerErrorSchema

    Post Disclosures Package

    Code samples

    # You can also use wget
    curl -X POST https://api.blendlabs.com/disclosures-packages \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Content-Type: application/json' \
      -H 'Accept: application/json'
    
    
    POST https://api.blendlabs.com/disclosures-packages HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Content-Type: application/json
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/disclosures-packages',
      method: 'post',
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "loanId": "aa9fdaa2-7bf3-4411-a836-c2a46117f5c3",
      "losId": "Loan-12391",
      "type": "initial-disclosures",
      "description": "This is your initial loan estimate",
      "documents": [
        {
          "id": "1239635c-6a0b-406a-85b2-e0e8e23c35db",
          "borrowers": [
            {
              "id": "1239635c-6a0b-406a-85b2-e0e8e23c35db",
              "tabs": {
                "approveTabs": [
                  {
                    "xPosition": 0,
                    "yPosition": 0,
                    "pageNumber": 0,
                    "tabLabel": "string",
                    "name": "string",
                    "conditionalParentLabel": "string",
                    "conditionalParentValue": "string",
                    "height": 0,
                    "width": 0,
                    "buttonText": "string",
                    "font": "string",
                    "fontColor": "string",
                    "fontSize": "string",
                    "bold": true
                  }
                ],
                "signHereTabs": [
                  {
                    "xPosition": 0,
                    "yPosition": 0,
                    "pageNumber": 0,
                    "tabLabel": "string",
                    "name": "string",
                    "conditionalParentLabel": "string",
                    "conditionalParentValue": "string",
                    "scaleValue": 1,
                    "optional": true
                  }
                ],
                "dateSignedTabs": [
                  {
                    "xPosition": 0,
                    "yPosition": 0,
                    "pageNumber": 0,
                    "tabLabel": "string",
                    "name": "string",
                    "conditionalParentLabel": "string",
                    "conditionalParentValue": "string",
                    "font": "string",
                    "fontColor": "string",
                    "fontSize": "string",
                    "bold": true
                  }
                ],
                "checkboxTabs": [
                  {
                    "xPosition": 0,
                    "yPosition": 0,
                    "pageNumber": 0,
                    "tabLabel": "string",
                    "name": "string",
                    "conditionalParentLabel": "string",
                    "conditionalParentValue": "string",
                    "selected": true
                  }
                ],
                "textTabs": [
                  {
                    "xPosition": 0,
                    "yPosition": 0,
                    "pageNumber": 0,
                    "tabLabel": "string",
                    "name": "string",
                    "conditionalParentLabel": "string",
                    "conditionalParentValue": "string",
                    "height": 0,
                    "width": 0,
                    "maxLength": 0,
                    "required": false,
                    "font": "string",
                    "fontColor": "string",
                    "fontSize": "string",
                    "bold": true
                  }
                ],
                "initialHereTabs": [
                  {
                    "xPosition": 0,
                    "yPosition": 0,
                    "pageNumber": 0,
                    "tabLabel": "string",
                    "name": "string",
                    "conditionalParentLabel": "string",
                    "conditionalParentValue": "string",
                    "scaleValue": 0,
                    "optional": true
                  }
                ],
                "dateTabs": [
                  {
                    "xPosition": 0,
                    "yPosition": 0,
                    "pageNumber": 0,
                    "tabLabel": "string",
                    "name": "string",
                    "conditionalParentLabel": "string",
                    "conditionalParentValue": "string",
                    "font": "string",
                    "fontColor": "string",
                    "fontSize": "string",
                    "bold": true,
                    "required": true
                  }
                ],
                "noteTabs": [
                  {
                    "xPosition": 0,
                    "yPosition": 0,
                    "pageNumber": 0,
                    "tabLabel": "string",
                    "name": "string",
                    "conditionalParentLabel": "string",
                    "conditionalParentValue": "string",
                    "height": 0,
                    "width": 0,
                    "value": "string",
                    "font": "string",
                    "fontColor": "string",
                    "fontSize": "string",
                    "bold": true
                  }
                ],
                "radioGroupTabs": [
                  {
                    "groupName": "string",
                    "radios": [
                      {
                        "xPosition": 0,
                        "yPosition": 0,
                        "pageNumber": 0,
                        "tabId": "string",
                        "value": "string",
                        "selected": true,
                        "required": false
                      }
                    ]
                  }
                ]
              }
            }
          ],
          "lender": {
            "tabs": {
              "approveTabs": [
                {
                  "xPosition": 0,
                  "yPosition": 0,
                  "pageNumber": 0,
                  "tabLabel": "string",
                  "name": "string",
                  "conditionalParentLabel": "string",
                  "conditionalParentValue": "string",
                  "height": 0,
                  "width": 0,
                  "buttonText": "string",
                  "font": "string",
                  "fontColor": "string",
                  "fontSize": "string",
                  "bold": true
                }
              ],
              "signHereTabs": [
                {
                  "xPosition": 0,
                  "yPosition": 0,
                  "pageNumber": 0,
                  "tabLabel": "string",
                  "name": "string",
                  "conditionalParentLabel": "string",
                  "conditionalParentValue": "string",
                  "scaleValue": 1,
                  "optional": true
                }
              ],
              "dateSignedTabs": [
                {
                  "xPosition": 0,
                  "yPosition": 0,
                  "pageNumber": 0,
                  "tabLabel": "string",
                  "name": "string",
                  "conditionalParentLabel": "string",
                  "conditionalParentValue": "string",
                  "font": "string",
                  "fontColor": "string",
                  "fontSize": "string",
                  "bold": true
                }
              ],
              "checkboxTabs": [
                {
                  "xPosition": 0,
                  "yPosition": 0,
                  "pageNumber": 0,
                  "tabLabel": "string",
                  "name": "string",
                  "conditionalParentLabel": "string",
                  "conditionalParentValue": "string",
                  "selected": true
                }
              ],
              "textTabs": [
                {
                  "xPosition": 0,
                  "yPosition": 0,
                  "pageNumber": 0,
                  "tabLabel": "string",
                  "name": "string",
                  "conditionalParentLabel": "string",
                  "conditionalParentValue": "string",
                  "height": 0,
                  "width": 0,
                  "maxLength": 0,
                  "required": false,
                  "font": "string",
                  "fontColor": "string",
                  "fontSize": "string",
                  "bold": true
                }
              ],
              "initialHereTabs": [
                {
                  "xPosition": 0,
                  "yPosition": 0,
                  "pageNumber": 0,
                  "tabLabel": "string",
                  "name": "string",
                  "conditionalParentLabel": "string",
                  "conditionalParentValue": "string",
                  "scaleValue": 0,
                  "optional": true
                }
              ],
              "dateTabs": [
                {
                  "xPosition": 0,
                  "yPosition": 0,
                  "pageNumber": 0,
                  "tabLabel": "string",
                  "name": "string",
                  "conditionalParentLabel": "string",
                  "conditionalParentValue": "string",
                  "font": "string",
                  "fontColor": "string",
                  "fontSize": "string",
                  "bold": true,
                  "required": true
                }
              ],
              "noteTabs": [
                {
                  "xPosition": 0,
                  "yPosition": 0,
                  "pageNumber": 0,
                  "tabLabel": "string",
                  "name": "string",
                  "conditionalParentLabel": "string",
                  "conditionalParentValue": "string",
                  "height": 0,
                  "width": 0,
                  "value": "string",
                  "font": "string",
                  "fontColor": "string",
                  "fontSize": "string",
                  "bold": true
                }
              ],
              "radioGroupTabs": [
                {
                  "groupName": "string",
                  "radios": [
                    {
                      "xPosition": 0,
                      "yPosition": 0,
                      "pageNumber": 0,
                      "tabId": "string",
                      "value": "string",
                      "selected": true,
                      "required": false
                    }
                  ]
                }
              ]
            }
          },
          "isWetsign": true,
          "docDeliveryType": "WET_SIGN"
        }
      ],
      "recipients": {
        "borrowers": [
          {
            "id": "c6dabfb0-8753-4a89-b8f0-af059ef869f7"
          }
        ]
      }
    }';
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/disclosures-packages',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    }
    
    result = RestClient.post 'https://api.blendlabs.com/disclosures-packages',
      params: {
      }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Content-Type': 'application/json',
      'Accept': 'application/json'
    }
    
    r = requests.post('https://api.blendlabs.com/disclosures-packages', params={
    
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/disclosures-packages");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Content-Type": []string{"application/json"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("POST", "https://api.blendlabs.com/disclosures-packages", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    POST /disclosures-packages

    Create a disclosures package on a specific loan

    Body parameter

    {
      "loanId": "aa9fdaa2-7bf3-4411-a836-c2a46117f5c3",
      "losId": "Loan-12391",
      "type": "initial-disclosures",
      "description": "This is your initial loan estimate",
      "documents": [
        {
          "id": "1239635c-6a0b-406a-85b2-e0e8e23c35db",
          "borrowers": [
            {
              "id": "1239635c-6a0b-406a-85b2-e0e8e23c35db",
              "tabs": {
                "approveTabs": [
                  {
                    "xPosition": 0,
                    "yPosition": 0,
                    "pageNumber": 0,
                    "tabLabel": "string",
                    "name": "string",
                    "conditionalParentLabel": "string",
                    "conditionalParentValue": "string",
                    "height": 0,
                    "width": 0,
                    "buttonText": "string",
                    "font": "string",
                    "fontColor": "string",
                    "fontSize": "string",
                    "bold": true
                  }
                ],
                "signHereTabs": [
                  {
                    "xPosition": 0,
                    "yPosition": 0,
                    "pageNumber": 0,
                    "tabLabel": "string",
                    "name": "string",
                    "conditionalParentLabel": "string",
                    "conditionalParentValue": "string",
                    "scaleValue": 1,
                    "optional": true
                  }
                ],
                "dateSignedTabs": [
                  {
                    "xPosition": 0,
                    "yPosition": 0,
                    "pageNumber": 0,
                    "tabLabel": "string",
                    "name": "string",
                    "conditionalParentLabel": "string",
                    "conditionalParentValue": "string",
                    "font": "string",
                    "fontColor": "string",
                    "fontSize": "string",
                    "bold": true
                  }
                ],
                "checkboxTabs": [
                  {
                    "xPosition": 0,
                    "yPosition": 0,
                    "pageNumber": 0,
                    "tabLabel": "string",
                    "name": "string",
                    "conditionalParentLabel": "string",
                    "conditionalParentValue": "string",
                    "selected": true
                  }
                ],
                "textTabs": [
                  {
                    "xPosition": 0,
                    "yPosition": 0,
                    "pageNumber": 0,
                    "tabLabel": "string",
                    "name": "string",
                    "conditionalParentLabel": "string",
                    "conditionalParentValue": "string",
                    "height": 0,
                    "width": 0,
                    "maxLength": 0,
                    "required": false,
                    "font": "string",
                    "fontColor": "string",
                    "fontSize": "string",
                    "bold": true
                  }
                ],
                "initialHereTabs": [
                  {
                    "xPosition": 0,
                    "yPosition": 0,
                    "pageNumber": 0,
                    "tabLabel": "string",
                    "name": "string",
                    "conditionalParentLabel": "string",
                    "conditionalParentValue": "string",
                    "scaleValue": 0,
                    "optional": true
                  }
                ],
                "dateTabs": [
                  {
                    "xPosition": 0,
                    "yPosition": 0,
                    "pageNumber": 0,
                    "tabLabel": "string",
                    "name": "string",
                    "conditionalParentLabel": "string",
                    "conditionalParentValue": "string",
                    "font": "string",
                    "fontColor": "string",
                    "fontSize": "string",
                    "bold": true,
                    "required": true
                  }
                ],
                "noteTabs": [
                  {
                    "xPosition": 0,
                    "yPosition": 0,
                    "pageNumber": 0,
                    "tabLabel": "string",
                    "name": "string",
                    "conditionalParentLabel": "string",
                    "conditionalParentValue": "string",
                    "height": 0,
                    "width": 0,
                    "value": "string",
                    "font": "string",
                    "fontColor": "string",
                    "fontSize": "string",
                    "bold": true
                  }
                ],
                "radioGroupTabs": [
                  {
                    "groupName": "string",
                    "radios": [
                      {
                        "xPosition": 0,
                        "yPosition": 0,
                        "pageNumber": 0,
                        "tabId": "string",
                        "value": "string",
                        "selected": true,
                        "required": false
                      }
                    ]
                  }
                ]
              }
            }
          ],
          "lender": {
            "tabs": {
              "approveTabs": [
                {
                  "xPosition": 0,
                  "yPosition": 0,
                  "pageNumber": 0,
                  "tabLabel": "string",
                  "name": "string",
                  "conditionalParentLabel": "string",
                  "conditionalParentValue": "string",
                  "height": 0,
                  "width": 0,
                  "buttonText": "string",
                  "font": "string",
                  "fontColor": "string",
                  "fontSize": "string",
                  "bold": true
                }
              ],
              "signHereTabs": [
                {
                  "xPosition": 0,
                  "yPosition": 0,
                  "pageNumber": 0,
                  "tabLabel": "string",
                  "name": "string",
                  "conditionalParentLabel": "string",
                  "conditionalParentValue": "string",
                  "scaleValue": 1,
                  "optional": true
                }
              ],
              "dateSignedTabs": [
                {
                  "xPosition": 0,
                  "yPosition": 0,
                  "pageNumber": 0,
                  "tabLabel": "string",
                  "name": "string",
                  "conditionalParentLabel": "string",
                  "conditionalParentValue": "string",
                  "font": "string",
                  "fontColor": "string",
                  "fontSize": "string",
                  "bold": true
                }
              ],
              "checkboxTabs": [
                {
                  "xPosition": 0,
                  "yPosition": 0,
                  "pageNumber": 0,
                  "tabLabel": "string",
                  "name": "string",
                  "conditionalParentLabel": "string",
                  "conditionalParentValue": "string",
                  "selected": true
                }
              ],
              "textTabs": [
                {
                  "xPosition": 0,
                  "yPosition": 0,
                  "pageNumber": 0,
                  "tabLabel": "string",
                  "name": "string",
                  "conditionalParentLabel": "string",
                  "conditionalParentValue": "string",
                  "height": 0,
                  "width": 0,
                  "maxLength": 0,
                  "required": false,
                  "font": "string",
                  "fontColor": "string",
                  "fontSize": "string",
                  "bold": true
                }
              ],
              "initialHereTabs": [
                {
                  "xPosition": 0,
                  "yPosition": 0,
                  "pageNumber": 0,
                  "tabLabel": "string",
                  "name": "string",
                  "conditionalParentLabel": "string",
                  "conditionalParentValue": "string",
                  "scaleValue": 0,
                  "optional": true
                }
              ],
              "dateTabs": [
                {
                  "xPosition": 0,
                  "yPosition": 0,
                  "pageNumber": 0,
                  "tabLabel": "string",
                  "name": "string",
                  "conditionalParentLabel": "string",
                  "conditionalParentValue": "string",
                  "font": "string",
                  "fontColor": "string",
                  "fontSize": "string",
                  "bold": true,
                  "required": true
                }
              ],
              "noteTabs": [
                {
                  "xPosition": 0,
                  "yPosition": 0,
                  "pageNumber": 0,
                  "tabLabel": "string",
                  "name": "string",
                  "conditionalParentLabel": "string",
                  "conditionalParentValue": "string",
                  "height": 0,
                  "width": 0,
                  "value": "string",
                  "font": "string",
                  "fontColor": "string",
                  "fontSize": "string",
                  "bold": true
                }
              ],
              "radioGroupTabs": [
                {
                  "groupName": "string",
                  "radios": [
                    {
                      "xPosition": 0,
                      "yPosition": 0,
                      "pageNumber": 0,
                      "tabId": "string",
                      "value": "string",
                      "selected": true,
                      "required": false
                    }
                  ]
                }
              ]
            }
          },
          "isWetsign": true,
          "docDeliveryType": "WET_SIGN"
        }
      ],
      "recipients": {
        "borrowers": [
          {
            "id": "c6dabfb0-8753-4a89-b8f0-af059ef869f7"
          }
        ]
      }
    }
    

    Parameters

    Parameter In Type Required Description
    body body DisclosuresPackageRequestSchema true Disclosures Package Creation Body

    Example responses

    200 Response

    {
      "id": "4ab61cfd-e4f0-47af-bdfa-06901e2bf180"
    }
    

    400 Response

    {
      "error": "Invalid Request",
      "display": "The action you're trying to take is invalid.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    401 Response

    {
      "error": "Authentication required",
      "display": "Your credentials are invalid.",
      "trackingId": "cbd15fc4-a8cc-45db-ac87-f90802ebbcc3"
    }
    

    403 Response

    {
      "error": "Forbidden",
      "display": "You do not have the appropriate permissions to take this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    404 Response

    {
      "error": "Not Found",
      "display": "The action you're trying to take is invalid. Please validate the loan details in your Blend lending portal before retrying this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    500 Response

    {
      "error": "Internal Server Error",
      "display": "Something went wrong. Please try again later.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK New Disclosures Package Inline
    400 Bad Request Invalid Request InvalidRequestErrorSchema
    401 Unauthorized Invalid Credentials AuthenticationRequiredErrorSchema
    403 Forbidden Not Authorized NotAuthorizedErrorSchema
    404 Not Found Loan not found LoanNotFoundErrorSchema
    500 Internal Server Error Unexpected Error InternalServerErrorSchema

    Response Schema

    Status Code 200

    Name Type Required Restrictions Description
    » id string false none Disclosures package id

    Get Disclosures Packages

    Code samples

    # You can also use wget
    curl -X GET https://api.blendlabs.com/disclosures-packages?loanId=aa9fdaa2-7bf3-4411-a836-c2a46117f5c3 \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Accept: application/json'
    
    
    GET https://api.blendlabs.com/disclosures-packages?loanId=aa9fdaa2-7bf3-4411-a836-c2a46117f5c3 HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/disclosures-packages',
      method: 'get',
      data: '?loanId=aa9fdaa2-7bf3-4411-a836-c2a46117f5c3',
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/disclosures-packages?loanId=aa9fdaa2-7bf3-4411-a836-c2a46117f5c3',
    {
      method: 'GET',
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Accept' => 'application/json'
    }
    
    result = RestClient.get 'https://api.blendlabs.com/disclosures-packages',
      params: {
      'loanId' => '[LoanId](#schemaloanid)'
    }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Accept': 'application/json'
    }
    
    r = requests.get('https://api.blendlabs.com/disclosures-packages', params={
      'loanId': 'aa9fdaa2-7bf3-4411-a836-c2a46117f5c3'
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/disclosures-packages?loanId=aa9fdaa2-7bf3-4411-a836-c2a46117f5c3");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("GET", "https://api.blendlabs.com/disclosures-packages", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    GET /disclosures-packages

    Retrieves status and metadata for all disclosures packages on a specific loan.

    Parameters

    Parameter In Type Required Description
    loanId query LoanId true Loan id to filter disclosures packages by
    status query string false Disclosures package status to filter by

    Enumerated Values

    Parameter Value
    status PENDING_ECONSENT
    status ELECTRONICALLY_DELIVERED
    status ELECTRONICALLY_VIEWED
    status ALL_SIGNATURES_COMPLETE
    status SENT_TO_PRINT
    status PHYSICALLY_MAILED
    status PHYSICALLY_DELIVERED
    status DECLINED
    status RETRIEVED
    status NOT_ISSUED
    status ISSUING
    status FAILED_TO_ISSUE

    Example responses

    200 Response

    {
      "disclosuresPackages": [
        {
          "id": "c6dabfb0-8753-4a89-b8f0-af059ef869f7",
          "losId": "Loan-12391",
          "requestedBy": "string",
          "type": "string",
          "status": "PENDING_ECONSENT",
          "displayStatus": "Pending Econsent",
          "sentDate": "2018-10-03T20:07:27+00:00",
          "recipients": [
            {
              "id": "c6dabfb0-8753-4a89-b8f0-af059ef869f7",
              "receivedDate": "2018-10-03T20:07:27+00:00",
              "receivedIP": "string",
              "signedDate": "2018-10-03T20:07:27+00:00",
              "signedIP": "string",
              "declinedToSignDate": "2018-10-03T20:07:27+00:00",
              "declinedToSignIP": "string",
              "wetsignComplete": true
            }
          ],
          "documents": [
            "c6dabfb0-8753-4a89-b8f0-af059ef869f7"
          ]
        }
      ]
    }
    

    400 Response

    {
      "error": "Invalid Request",
      "display": "The action you're trying to take is invalid.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    401 Response

    {
      "error": "Authentication required",
      "display": "Your credentials are invalid.",
      "trackingId": "cbd15fc4-a8cc-45db-ac87-f90802ebbcc3"
    }
    

    403 Response

    {
      "error": "Forbidden",
      "display": "You do not have the appropriate permissions to take this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    500 Response

    {
      "error": "Internal Server Error",
      "display": "Something went wrong. Please try again later.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK Array of disclosures metadata objects Inline
    400 Bad Request Invalid Request InvalidRequestErrorSchema
    401 Unauthorized Invalid Credentials AuthenticationRequiredErrorSchema
    403 Forbidden Not Authorized NotAuthorizedErrorSchema
    500 Internal Server Error Unexpected Error InternalServerErrorSchema

    Response Schema

    Status Code 200

    Name Type Required Restrictions Description
    » disclosuresPackages [DisclosuresPackageSchema] false none none
    »» id string true none none
    »» losId LosId false none The UUID or GUID of the loan in the LOS AFTER initial export to the LOS. May match the Loan reference number depending on the LOS and if the customer has selected to use only GUIDs instead of UUIDs in their LOS settings.
    »» requestedBy string false none none
    »» type string false none none
    »» status string true none Disclosures status enum
    »» displayStatus string false none none
    »» sentDate number false none ISO Timestamp of sent date
    »» recipients [object] false none none
    »»» id string true none If recipient is borrower, then this is the borrower id. otherwise, it is the string LENDER
    »»» receivedDate number false none ISO Timestamp of recipient received date
    »»» receivedIP string false none IP address of recipient upon receival of package
    »»» signedDate number false none ISO Timestamp of recipient signed date
    »»» signedIP string false none IP address of recipient upon signing of package
    »»» declinedToSignDate number false none ISO Timestamp of recipient declined to sign date
    »»» declinedToSignIP string false none IP address of recipient upon signing of package
    »»» wetsignComplete boolean false none Whether or not the recipient has completed their wet-sign documents.
    »» documents [string] false none Array of document ids

    Enumerated Values

    Property Value
    status PENDING_ECONSENT
    status ELECTRONICALLY_DELIVERED
    status ELECTRONICALLY_VIEWED
    status ALL_SIGNATURES_COMPLETE
    status SENT_TO_PRINT
    status PHYSICALLY_MAILED
    status PHYSICALLY_DELIVERED
    status DECLINED
    status EXPIRED
    status RETRIEVED
    status NOT_ISSUED
    status ISSUING
    status FAILED_TO_ISSUE

    Lenders

    Post Lenders

    Code samples

    # You can also use wget
    curl -X POST https://api.blendlabs.com/lenders \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Content-Type: application/json' \
      -H 'Accept: application/json'
    
    
    POST https://api.blendlabs.com/lenders HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Content-Type: application/json
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/lenders',
      method: 'post',
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "lenders": [
        {
          "name": "Joe Lender",
          "email": "joe.lender@example.com",
          "permittedLoanTypes": "HELOAN",
          "requireTwoFactorAuth": true,
          "loginMethod": "email",
          "roleNames": [
            "Loan Officer"
          ],
          "phone": {
            "number": "1112223333",
            "extension": "1234"
          },
          "nmlsId": "39179",
          "losUsername": "joelender",
          "employeeId": "12314",
          "branchId": "string"
        }
      ]
    }';
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/lenders',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    }
    
    result = RestClient.post 'https://api.blendlabs.com/lenders',
      params: {
      }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Content-Type': 'application/json',
      'Accept': 'application/json'
    }
    
    r = requests.post('https://api.blendlabs.com/lenders', params={
    
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/lenders");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Content-Type": []string{"application/json"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("POST", "https://api.blendlabs.com/lenders", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    POST /lenders

    Add Lender

    Body parameter

    {
      "lenders": [
        {
          "name": "Joe Lender",
          "email": "joe.lender@example.com",
          "permittedLoanTypes": "HELOAN",
          "requireTwoFactorAuth": true,
          "loginMethod": "email",
          "roleNames": [
            "Loan Officer"
          ],
          "phone": {
            "number": "1112223333",
            "extension": "1234"
          },
          "nmlsId": "39179",
          "losUsername": "joelender",
          "employeeId": "12314",
          "branchId": "string"
        }
      ]
    }
    

    Parameters

    Parameter In Type Required Description
    body body object true Lender parameters
    » lenders body [LenderCreationRequestSchema] false none
    »» name body string true Lender Full Name
    »» email body string true Lender Email
    »» permittedLoanTypes body string true Loan Types Permitted
    »» requireTwoFactorAuth body boolean false MFA Required
    »» loginMethod body string true Login Method
    »» roleNames body [string] true Roles for Lender
    »» phone body object false none
    »»» number body string false Phone Number
    »»» extension body string false Phone Extension
    »» nmlsId body string false Nationwide Multistate Licensing System ID number
    »» losUsername body string false Lender's LOS Username
    »» employeeId body string false Lender's Employee Id
    »» branchId body string false Lender's Branch Id

    Enumerated Values

    Parameter Value
    »» permittedLoanTypes HELOAN
    »» permittedLoanTypes HELOC
    »» permittedLoanTypes MORTGAGE
    »» loginMethod email
    »» loginMethod SSO
    »» loginMethod borrowerSAML
    »» loginMethod anonymousBorrower

    Example responses

    200 Response

    {
      "success": [
        {
          "name": "Joe Lender",
          "email": "joe.lender@example.com",
          "permittedLoanTypes": "HELOAN",
          "requireTwoFactorAuth": true,
          "loginMethod": "email",
          "roleNames": [
            "Loan Officer"
          ],
          "phone": {
            "number": "1112223333",
            "extension": "1234"
          },
          "nmlsId": "39179",
          "losUsername": "joelender",
          "employeeId": "12314",
          "branchId": "string",
          "id": "9250f84b-c2a1-4cab-b265-bd720685c361",
          "status": "ACTIVE"
        }
      ],
      "error": [
        {}
      ]
    }
    

    207 Response

    {
      "success": [
        {
          "name": "Joe Lender",
          "email": "joe.lender@example.com",
          "permittedLoanTypes": "HELOAN",
          "requireTwoFactorAuth": true,
          "loginMethod": "email",
          "roleNames": [
            "Loan Officer"
          ],
          "phone": {
            "number": "1112223333",
            "extension": "1234"
          },
          "nmlsId": "39179",
          "losUsername": "joelender",
          "employeeId": "12314",
          "branchId": "string",
          "id": "9250f84b-c2a1-4cab-b265-bd720685c361",
          "status": "ACTIVE"
        }
      ],
      "error": [
        {
          "email": "bademail",
          "code": 400,
          "reason": "Invalid lender params."
        }
      ]
    }
    

    401 Response

    {
      "error": "Authentication required",
      "display": "Your credentials are invalid.",
      "trackingId": "cbd15fc4-a8cc-45db-ac87-f90802ebbcc3"
    }
    

    403 Response

    {
      "error": "Forbidden",
      "display": "You do not have the appropriate permissions to take this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK Lender created Inline
    207 Multi-Status Lender created Inline
    401 Unauthorized Invalid Credentials AuthenticationRequiredErrorSchema
    403 Forbidden Not Authorized NotAuthorizedErrorSchema

    Response Schema

    Status Code 200

    Name Type Required Restrictions Description
    » success [allOf] false none none

    allOf

    Name Type Required Restrictions Description
    »» anonymous LenderCreationRequestSchema false none none
    »»» name string true none Lender Full Name
    »»» email string true none Lender Email
    »»» permittedLoanTypes string true none Loan Types Permitted
    »»» requireTwoFactorAuth boolean false none MFA Required
    »»» loginMethod string true none Login Method
    »»» roleNames [string] true none Roles for Lender
    »»» phone object false none none
    »»»» number string false none Phone Number
    »»»» extension string false none Phone Extension
    »»» nmlsId string false none Nationwide Multistate Licensing System ID number
    »»» losUsername string false none Lender's LOS Username
    »»» employeeId string false none Lender's Employee Id
    »»» branchId string false none Lender's Branch Id

    and

    Name Type Required Restrictions Description
    »» anonymous object false none none
    »»» id string true none Lender ID
    »»» status string true none Lender Status

    continued

    Name Type Required Restrictions Description
    »» error [object] false none none

    Enumerated Values

    Property Value
    permittedLoanTypes HELOAN
    permittedLoanTypes HELOC
    permittedLoanTypes MORTGAGE
    loginMethod email
    loginMethod SSO
    loginMethod borrowerSAML
    loginMethod anonymousBorrower
    status ACTIVE
    status ACTIVATION_REQUIRED
    status DORMANT
    status DELETED
    status PROVISIONAL
    status LOCKED_OUT

    Status Code 207

    Name Type Required Restrictions Description
    » success [allOf] false none none

    allOf

    Name Type Required Restrictions Description
    »» anonymous LenderCreationRequestSchema false none none
    »»» name string true none Lender Full Name
    »»» email string true none Lender Email
    »»» permittedLoanTypes string true none Loan Types Permitted
    »»» requireTwoFactorAuth boolean false none MFA Required
    »»» loginMethod string true none Login Method
    »»» roleNames [string] true none Roles for Lender
    »»» phone object false none none
    »»»» number string false none Phone Number
    »»»» extension string false none Phone Extension
    »»» nmlsId string false none Nationwide Multistate Licensing System ID number
    »»» losUsername string false none Lender's LOS Username
    »»» employeeId string false none Lender's Employee Id
    »»» branchId string false none Lender's Branch Id

    and

    Name Type Required Restrictions Description
    »» anonymous object false none none
    »»» id string true none Lender ID
    »»» status string true none Lender Status

    continued

    Name Type Required Restrictions Description
    »» error [object] false none none
    »»» email string false none none
    »»» code number true none none
    »»» reason string true none none

    Enumerated Values

    Property Value
    permittedLoanTypes HELOAN
    permittedLoanTypes HELOC
    permittedLoanTypes MORTGAGE
    loginMethod email
    loginMethod SSO
    loginMethod borrowerSAML
    loginMethod anonymousBorrower
    status ACTIVE
    status ACTIVATION_REQUIRED
    status DORMANT
    status DELETED
    status PROVISIONAL
    status LOCKED_OUT

    Query Lenders

    Code samples

    # You can also use wget
    curl -X GET https://api.blendlabs.com/lenders?ids=9250f84b-c2a1-4cab-b265-bd720685c361 \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Accept: application/json'
    
    
    GET https://api.blendlabs.com/lenders?ids=9250f84b-c2a1-4cab-b265-bd720685c361 HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/lenders',
      method: 'get',
      data: '?ids=9250f84b-c2a1-4cab-b265-bd720685c361',
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/lenders?ids=9250f84b-c2a1-4cab-b265-bd720685c361',
    {
      method: 'GET',
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Accept' => 'application/json'
    }
    
    result = RestClient.get 'https://api.blendlabs.com/lenders',
      params: {
      'ids' => 'array[string]'
    }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Accept': 'application/json'
    }
    
    r = requests.get('https://api.blendlabs.com/lenders', params={
      'ids': [
      "9250f84b-c2a1-4cab-b265-bd720685c361"
    ]
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/lenders?ids=9250f84b-c2a1-4cab-b265-bd720685c361");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("GET", "https://api.blendlabs.com/lenders", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    GET /lenders

    Query Lenders

    Parameters

    Parameter In Type Required Description
    ids query array[string] true Lender Ids to query for

    Example responses

    200 Response

    {
      "success": [
        {
          "name": "Joe Lender",
          "email": "joe.lender@example.com",
          "permittedLoanTypes": "HELOAN",
          "requireTwoFactorAuth": true,
          "loginMethod": "email",
          "roleNames": [
            "Loan Officer"
          ],
          "phone": {
            "number": "1112223333",
            "extension": "1234"
          },
          "nmlsId": "39179",
          "losUsername": "joelender",
          "employeeId": "12314",
          "branchId": "string",
          "id": "9250f84b-c2a1-4cab-b265-bd720685c361",
          "status": "ACTIVE"
        }
      ],
      "error": [
        {}
      ]
    }
    

    207 Response

    {
      "success": [
        {
          "name": "Joe Lender",
          "email": "joe.lender@example.com",
          "permittedLoanTypes": "HELOAN",
          "requireTwoFactorAuth": true,
          "loginMethod": "email",
          "roleNames": [
            "Loan Officer"
          ],
          "phone": {
            "number": "1112223333",
            "extension": "1234"
          },
          "nmlsId": "39179",
          "losUsername": "joelender",
          "employeeId": "12314",
          "branchId": "string",
          "id": "9250f84b-c2a1-4cab-b265-bd720685c361",
          "status": "ACTIVE"
        }
      ],
      "error": [
        {
          "id": "29526148-296e-477d-8a61-5eceb51f4075",
          "code": 409,
          "reason": "Invalid lender params."
        }
      ]
    }
    

    401 Response

    {
      "error": "Authentication required",
      "display": "Your credentials are invalid.",
      "trackingId": "cbd15fc4-a8cc-45db-ac87-f90802ebbcc3"
    }
    

    403 Response

    {
      "error": "Forbidden",
      "display": "You do not have the appropriate permissions to take this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK Lenders Inline
    207 Multi-Status Lenders Inline
    401 Unauthorized Invalid Credentials AuthenticationRequiredErrorSchema
    403 Forbidden Not Authorized NotAuthorizedErrorSchema

    Response Schema

    Status Code 200

    Name Type Required Restrictions Description
    » success [allOf] false none none

    allOf

    Name Type Required Restrictions Description
    »» anonymous LenderCreationRequestSchema false none none
    »»» name string true none Lender Full Name
    »»» email string true none Lender Email
    »»» permittedLoanTypes string true none Loan Types Permitted
    »»» requireTwoFactorAuth boolean false none MFA Required
    »»» loginMethod string true none Login Method
    »»» roleNames [string] true none Roles for Lender
    »»» phone object false none none
    »»»» number string false none Phone Number
    »»»» extension string false none Phone Extension
    »»» nmlsId string false none Nationwide Multistate Licensing System ID number
    »»» losUsername string false none Lender's LOS Username
    »»» employeeId string false none Lender's Employee Id
    »»» branchId string false none Lender's Branch Id

    and

    Name Type Required Restrictions Description
    »» anonymous object false none none
    »»» id string true none Lender ID
    »»» status string true none Lender Status

    continued

    Name Type Required Restrictions Description
    »» error [object] false none none

    Enumerated Values

    Property Value
    permittedLoanTypes HELOAN
    permittedLoanTypes HELOC
    permittedLoanTypes MORTGAGE
    loginMethod email
    loginMethod SSO
    loginMethod borrowerSAML
    loginMethod anonymousBorrower
    status ACTIVE
    status ACTIVATION_REQUIRED
    status DORMANT
    status DELETED
    status PROVISIONAL
    status LOCKED_OUT

    Status Code 207

    Name Type Required Restrictions Description
    » success [allOf] false none none

    allOf

    Name Type Required Restrictions Description
    »» anonymous LenderCreationRequestSchema false none none
    »»» name string true none Lender Full Name
    »»» email string true none Lender Email
    »»» permittedLoanTypes string true none Loan Types Permitted
    »»» requireTwoFactorAuth boolean false none MFA Required
    »»» loginMethod string true none Login Method
    »»» roleNames [string] true none Roles for Lender
    »»» phone object false none none
    »»»» number string false none Phone Number
    »»»» extension string false none Phone Extension
    »»» nmlsId string false none Nationwide Multistate Licensing System ID number
    »»» losUsername string false none Lender's LOS Username
    »»» employeeId string false none Lender's Employee Id
    »»» branchId string false none Lender's Branch Id

    and

    Name Type Required Restrictions Description
    »» anonymous object false none none
    »»» id string true none Lender ID
    »»» status string true none Lender Status

    continued

    Name Type Required Restrictions Description
    »» error [BulkRequestErrorSchema] false none none
    »»» id string true none none
    »»» code number true none none
    »»» reason string true none none

    Enumerated Values

    Property Value
    permittedLoanTypes HELOAN
    permittedLoanTypes HELOC
    permittedLoanTypes MORTGAGE
    loginMethod email
    loginMethod SSO
    loginMethod borrowerSAML
    loginMethod anonymousBorrower
    status ACTIVE
    status ACTIVATION_REQUIRED
    status DORMANT
    status DELETED
    status PROVISIONAL
    status LOCKED_OUT

    Patch Lenders

    Code samples

    # You can also use wget
    curl -X PATCH https://api.blendlabs.com/lenders \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Content-Type: application/json' \
      -H 'Accept: application/json'
    
    
    PATCH https://api.blendlabs.com/lenders HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Content-Type: application/json
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/lenders',
      method: 'patch',
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "lenders": [
        {
          "id": "9250f84b-c2a1-4cab-b265-bd720685c361",
          "name": "Joe Lender",
          "permittedLoanTypes": "HELOAN",
          "requireTwoFactorAuth": true,
          "loginMethod": "email",
          "roleNames": [
            "Loan Officer"
          ],
          "phone": {
            "number": "1112223333",
            "extension": "1234"
          },
          "nmlsId": "39179",
          "losUsername": "joelender",
          "employeeId": "12314",
          "branchId": "Westfield"
        }
      ]
    }';
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/lenders',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    }
    
    result = RestClient.patch 'https://api.blendlabs.com/lenders',
      params: {
      }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Content-Type': 'application/json',
      'Accept': 'application/json'
    }
    
    r = requests.patch('https://api.blendlabs.com/lenders', params={
    
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/lenders");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Content-Type": []string{"application/json"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("PATCH", "https://api.blendlabs.com/lenders", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    PATCH /lenders

    Update Lenders

    Body parameter

    {
      "lenders": [
        {
          "id": "9250f84b-c2a1-4cab-b265-bd720685c361",
          "name": "Joe Lender",
          "permittedLoanTypes": "HELOAN",
          "requireTwoFactorAuth": true,
          "loginMethod": "email",
          "roleNames": [
            "Loan Officer"
          ],
          "phone": {
            "number": "1112223333",
            "extension": "1234"
          },
          "nmlsId": "39179",
          "losUsername": "joelender",
          "employeeId": "12314",
          "branchId": "Westfield"
        }
      ]
    }
    

    Parameters

    Parameter In Type Required Description
    body body object true Lender parameters
    » lenders body [LenderUpdateRequestSchema] false none
    »» id body string true Lender ID
    »» name body string false Lender Full Name
    »» permittedLoanTypes body string false Loan Types Permitted
    »» requireTwoFactorAuth body boolean false MFA Required
    »» loginMethod body string false Login Method
    »» roleNames body [string] false Roles for Lender
    »» phone body object false none
    »»» number body string false Phone Number
    »»» extension body string false Phone Extension
    »» nmlsId body string false Nationwide Multistate Licensing System ID number
    »» losUsername body string false Lender's LOS Username
    »» employeeId body string false Lender's Employee Id
    »» branchId body string false Lender's Branch Id

    Enumerated Values

    Parameter Value
    »» permittedLoanTypes HELOAN
    »» permittedLoanTypes HELOC
    »» permittedLoanTypes MORTGAGE
    »» loginMethod email
    »» loginMethod SSO
    »» loginMethod borrowerSAML
    »» loginMethod anonymousBorrower

    Example responses

    200 Response

    {
      "success": [
        "9250f84b-c2a1-4cab-b265-bd720685c361"
      ],
      "error": [
        {}
      ]
    }
    

    207 Response

    {
      "success": [
        "9250f84b-c2a1-4cab-b265-bd720685c361"
      ],
      "error": [
        {
          "id": "29526148-296e-477d-8a61-5eceb51f4075",
          "code": 409,
          "reason": "Invalid lender params."
        }
      ]
    }
    

    400 Response

    {
      "error": "Invalid Request. Duplicate lender ids.",
      "display": "Please provide a valid list of lender updates.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    401 Response

    {
      "error": "Authentication required",
      "display": "Your credentials are invalid.",
      "trackingId": "cbd15fc4-a8cc-45db-ac87-f90802ebbcc3"
    }
    

    403 Response

    {
      "error": "Forbidden",
      "display": "You do not have the appropriate permissions to take this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK Lenders Inline
    207 Multi-Status Lenders Inline
    400 Bad Request Invalid Request Inline
    401 Unauthorized Invalid Credentials AuthenticationRequiredErrorSchema
    403 Forbidden Not Authorized NotAuthorizedErrorSchema

    Response Schema

    Status Code 200

    Name Type Required Restrictions Description
    » success [string] false none none
    » error [object] false none none

    Status Code 207

    Name Type Required Restrictions Description
    » success [string] false none none
    » error [BulkRequestErrorSchema] false none none
    »» id string true none none
    »» code number true none none
    »» reason string true none none

    Delete Lenders

    Code samples

    # You can also use wget
    curl -X DELETE https://api.blendlabs.com/lenders?ids=9250f84b-c2a1-4cab-b265-bd720685c361 \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Accept: application/json'
    
    
    DELETE https://api.blendlabs.com/lenders?ids=9250f84b-c2a1-4cab-b265-bd720685c361 HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/lenders',
      method: 'delete',
      data: '?ids=9250f84b-c2a1-4cab-b265-bd720685c361',
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/lenders?ids=9250f84b-c2a1-4cab-b265-bd720685c361',
    {
      method: 'DELETE',
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Accept' => 'application/json'
    }
    
    result = RestClient.delete 'https://api.blendlabs.com/lenders',
      params: {
      'ids' => 'array[string]'
    }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Accept': 'application/json'
    }
    
    r = requests.delete('https://api.blendlabs.com/lenders', params={
      'ids': [
      "9250f84b-c2a1-4cab-b265-bd720685c361"
    ]
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/lenders?ids=9250f84b-c2a1-4cab-b265-bd720685c361");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("DELETE", "https://api.blendlabs.com/lenders", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    DELETE /lenders

    Delete Lenders

    Parameters

    Parameter In Type Required Description
    ids query array[string] true Lender Ids to delete

    Example responses

    200 Response

    {
      "success": [
        "9250f84b-c2a1-4cab-b265-bd720685c361"
      ],
      "error": [
        {}
      ]
    }
    

    207 Response

    {
      "success": [
        "9250f84b-c2a1-4cab-b265-bd720685c361"
      ],
      "error": [
        {
          "id": "29526148-296e-477d-8a61-5eceb51f4075",
          "code": 409,
          "reason": "Invalid lender params."
        }
      ]
    }
    

    401 Response

    {
      "error": "Authentication required",
      "display": "Your credentials are invalid.",
      "trackingId": "cbd15fc4-a8cc-45db-ac87-f90802ebbcc3"
    }
    

    403 Response

    {
      "error": "Forbidden",
      "display": "You do not have the appropriate permissions to take this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK Lenders Inline
    207 Multi-Status Lenders Inline
    401 Unauthorized Invalid Credentials AuthenticationRequiredErrorSchema
    403 Forbidden Not Authorized NotAuthorizedErrorSchema

    Response Schema

    Status Code 200

    Name Type Required Restrictions Description
    » success [string] false none none
    » error [object] false none none

    Status Code 207

    Name Type Required Restrictions Description
    » success [string] false none none
    » error [BulkRequestErrorSchema] false none none
    »» id string true none none
    »» code number true none none
    »» reason string true none none

    Realtors

    Post Realtor

    Code samples

    # You can also use wget
    curl -X POST https://api.blendlabs.com/realtors \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Content-Type: application/json' \
      -H 'Accept: application/json'
    
    
    POST https://api.blendlabs.com/realtors HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Content-Type: application/json
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/realtors',
      method: 'post',
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "loanId": "aa9fdaa2-7bf3-4411-a836-c2a46117f5c3",
      "name": {
        "firstName": "John",
        "middleName": "M",
        "lastName": "Doe",
        "suffixName": "III"
      },
      "contact": {
        "email": "realtor@email.com",
        "phoneNumber": 2225557878
      }
    }';
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/realtors',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    }
    
    result = RestClient.post 'https://api.blendlabs.com/realtors',
      params: {
      }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Content-Type': 'application/json',
      'Accept': 'application/json'
    }
    
    r = requests.post('https://api.blendlabs.com/realtors', params={
    
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/realtors");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Content-Type": []string{"application/json"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("POST", "https://api.blendlabs.com/realtors", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    POST /realtors

    Add realtor to loan

    Body parameter

    {
      "loanId": "aa9fdaa2-7bf3-4411-a836-c2a46117f5c3",
      "name": {
        "firstName": "John",
        "middleName": "M",
        "lastName": "Doe",
        "suffixName": "III"
      },
      "contact": {
        "email": "realtor@email.com",
        "phoneNumber": 2225557878
      }
    }
    

    Parameters

    Parameter In Type Required Description
    body body RealtorRequestSchema true Realtor parameters

    Example responses

    200 Response

    {
      "id": "4ab61cfd-e4f0-47af-bdfa-06901e2bf180"
    }
    

    401 Response

    {
      "error": "Authentication required",
      "display": "Your credentials are invalid.",
      "trackingId": "cbd15fc4-a8cc-45db-ac87-f90802ebbcc3"
    }
    

    403 Response

    {
      "error": "Forbidden",
      "display": "You do not have the appropriate permissions to take this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    404 Response

    {
      "error": "Not Found",
      "display": "The action you're trying to take is invalid. Please validate the loan details in your Blend lending portal before retrying this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    500 Response

    {
      "error": "Internal Server Error",
      "display": "Something went wrong. Please try again later.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK Realtor created Inline
    401 Unauthorized Invalid Credentials AuthenticationRequiredErrorSchema
    403 Forbidden Not Authorized NotAuthorizedErrorSchema
    404 Not Found Loan not found LoanNotFoundErrorSchema
    500 Internal Server Error Unexpected Error InternalServerErrorSchema

    Response Schema

    Status Code 200

    Name Type Required Restrictions Description
    » id string false none none

    Account Opening

    Get Account Applications

    Code samples

    # You can also use wget
    curl -X GET https://api.blendlabs.com/account-applications \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Accept: application/json'
    
    
    GET https://api.blendlabs.com/account-applications HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/account-applications',
      method: 'get',
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/account-applications',
    {
      method: 'GET',
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Accept' => 'application/json'
    }
    
    result = RestClient.get 'https://api.blendlabs.com/account-applications',
      params: {
      }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Accept': 'application/json'
    }
    
    r = requests.get('https://api.blendlabs.com/account-applications', params={
    
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/account-applications");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("GET", "https://api.blendlabs.com/account-applications", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    GET /account-applications

    Get a paginated list of account applications sorted by creation date descending.

    Parameters

    Parameter In Type Required Description
    limit query integer false The number of account applications to be provided for this call. Minimum is 1, maximum is 100, default is 50.
    cursor query string false An opaque string used for pagination, pass the cursor back to start at this position

    Example responses

    200 Response

    {
      "data": [
        {
          "_id": "3f345acb-6ac4-4bd0-b04a-dc0b9ad76e70",
          "referenceId": "124123",
          "applicants": [
            {
              "_id": "56632a12-1bd7-4014-8571-cff53c346738",
              "type": "PRIMARY",
              "email": "jane.smith@company.com",
              "name": {
                "firstName": "John",
                "middleName": "M",
                "lastName": "Doe",
                "suffixName": "III"
              },
              "dateOfBirth": 1537222722246,
              "socialSecurityNumber": "111224444",
              "addresses": [
                {
                  "_id": "1239635c-6a0b-406a-85b2-e0e8e23c35db",
                  "type": "CURRENT",
                  "lineText": "123 Main St.",
                  "additionalLineText": "Apt. 4",
                  "cityName": "New York City",
                  "countyName": "New York County",
                  "stateCode": "NY",
                  "zipCode": "10001"
                }
              ],
              "phoneNumbers": [
                {
                  "type": "CELL",
                  "value": 5551112222
                }
              ],
              "identityVerificationStatus": {
                "_id": "1239635c-6a0b-406a-85b2-e0e8e23c35db",
                "statusType": "VERIFIED",
                "code": "OFAC_MATCH",
                "provider": {
                  "_id": "CROSSCORE",
                  "references": {
                    "clientReferenceId": "string",
                    "expRequestId": "string"
                  }
                }
              },
              "identityDocumentation": {
                "type": "US_PASSPORT",
                "value": "S123000U",
                "stateCode": "CA",
                "issueDate": 1529360743127,
                "expiryDate": 1529360993127
              },
              "employers": [
                {
                  "_id": "1239635c-6a0b-406a-85b2-e0e8e23c35db",
                  "referenceId": "243",
                  "name": "Blend",
                  "address": {
                    "_id": "1239635c-6a0b-406a-85b2-e0e8e23c35db",
                    "type": "CURRENT",
                    "lineText": "123 Main St.",
                    "additionalLineText": "Apt. 4",
                    "cityName": "New York City",
                    "countyName": "New York County",
                    "stateCode": "NY",
                    "zipCode": "10001"
                  }
                }
              ]
            }
          ],
          "accounts": [
            {
              "_id": "1239635c-6a0b-406a-85b2-e0e8e23c35db",
              "referenceId": "0051",
              "type": "CHECKING",
              "description": "Premium Checking Account",
              "accountNumber": 33112244,
              "routingNumber": "00227799"
            }
          ],
          "funding": [
            {
              "sourceAccount": {
                "_id": "1239635c-6a0b-406a-85b2-e0e8e23c35db",
                "referenceId": "0051",
                "type": "CHECKING",
                "description": "Premium Checking Account",
                "accountNumber": 33112244,
                "routingNumber": "00227799"
              },
              "destinationAccount": {
                "_id": "1239635c-6a0b-406a-85b2-e0e8e23c35db",
                "referenceId": "0051",
                "type": "CHECKING",
                "description": "Premium Checking Account",
                "accountNumber": 33112244,
                "routingNumber": "00227799"
              },
              "amount": 5000
            }
          ],
          "membershipQualification": {
            "type": "HOME_ADDRESS",
            "employerId": "3f345acb-6ac4-4bd0-b04a-dc0b9ad76e70",
            "accountNumber": "111000222",
            "familyMemberName": {
              "firstName": "Bob",
              "lastName": "Smith"
            }
          },
          "debitCardIndicator": true,
          "overdraftPrivilegeIndicator": false,
          "approvalStatus": "APPROVED"
        }
      ],
      "nextCursor": "biwxNTIzOTk4Njg1NTc5LGRkYWYwNDY5LTdlNTYtNDRjZS05MDE3LTZkM2VhNjk1Mzc2OA",
      "prevCursor": "cCwxNTIzOTk4NTQ4MTU5LGEwYWNkZTZjLWY1M2MtNGM5NC1iYmM1LWE0M2MyYTY5YjM3Mg"
    }
    

    400 Response

    {
      "error": "Invalid Request",
      "display": "The action you're trying to take is invalid.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    401 Response

    {
      "error": "Authentication required",
      "display": "Your credentials are invalid.",
      "trackingId": "cbd15fc4-a8cc-45db-ac87-f90802ebbcc3"
    }
    

    403 Response

    {
      "error": "Forbidden",
      "display": "You do not have the appropriate permissions to take this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    422 Response

    {
      "error": "The requested update is invalid",
      "display": "Please provide a valid fieldName.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    500 Response

    {
      "error": "Internal Server Error",
      "display": "Something went wrong. Please try again later.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK List of paginated account applications, with cursors to go the next or previous pages. Inline
    400 Bad Request Invalid Request InvalidRequestErrorSchema
    401 Unauthorized Invalid Credentials AuthenticationRequiredErrorSchema
    403 Forbidden Not Authorized NotAuthorizedErrorSchema
    422 Unprocessable Entity Invalid Update InvalidUpdateErrorSchema
    500 Internal Server Error Unexpected Error InternalServerErrorSchema

    Response Schema

    Status Code 200

    Name Type Required Restrictions Description
    » data [AccountApplicationSchema] false none An array of account applications
    »» _id string true none Application ID
    »» referenceId string false none Customer reference ID for application
    »» applicants [ApplicantSchema] true none List of applicants applying to open an account. Maximum of two.
    »»» _id string true none Applicant ID
    »»» type string true none Applicant type, primary or secondary
    »»» email string true none Applicant email address
    »»» name NameSchema true none none
    »»»» firstName string false none none
    »»»» middleName string false none none
    »»»» lastName string false none none
    »»»» suffixName string false none none
    »»» dateOfBirth number true none Applicant birth date, UNIX timestamp (milliseconds)
    »»» socialSecurityNumber string false none Applicant SSN
    »»» addresses [AccountApplicationAddressSchema] true none List of applicant addresses, current or mailing
    »»»» _id string true none Address ID
    »»»» type string true none Address type, current or mailing
    »»»» lineText string true none First line of address
    »»»» additionalLineText string false none Second (optional) line of address
    »»»» cityName string true none City name
    »»»» countyName string true none County name
    »»»» stateCode string true none 2-digit state or territory code
    »»»» zipCode string true none 5-digit zip code
    »»» phoneNumbers [any] true none List of phone numbers associated with applicant
    »»»» type string true none Type of phone number
    »»»» value number true none Phone number
    »»» identityVerificationStatus object false none Information regarding id verification for applicant
    »»»» _id string true none Internal ID of idVerification process
    »»»» statusType string false none Result of identity verification process
    »»»» code string false none Reason code related to verification
    »»»» provider object false none Provider metadata object
    »»»»» _id string true none Internal _id of the provider
    »»»»» references object false none References to external provider
    »»»»»» clientReferenceId string false none Unique Id passed to crosscore for referencing
    »»»»»» expRequestId string false none Id returned from crosscore
    »»»»» identityDocumentation object false none ID Document
    »»»»»» type string true none Type of ID document provided by applicant
    »»»»»» value string true none ID document number
    »»»»»» stateCode string false none 2-digit code of state that issued the ID document
    »»»»»» issueDate number true none Date when ID document was issued, UNIX Timestamp (milliseconds)
    »»»»»» expiryDate number true none Date when ID document expires, UNIX Timestamp (milliseconds)
    »»»»» employers [EmployerSchema] false none List of applicant's employers
    »»»»»» _id string true none Internal employer ID
    »»»»»» referenceId string false none External employer reference ID. e.g. select employee group number.
    »»»»»» name string true none Employer name
    »»»»»» address AccountApplicationAddressSchema false none none
    »»»»» accounts [AccountSchema] true none List of accounts requested to be opened.
    »»»»»» _id string true none Internal account ID
    »»»»»» referenceId string false none External ID or code to reference this account. e.g. share code.
    »»»»»» type string false none Account type
    »»»»»» description string false none Additional text describing account
    »»»»»» accountNumber number false none Account number
    »»»»»» routingNumber string false none Routing number
    »»»»» funding [FundingSchema] false none List of funding sources and amounts to be transferred to new accounts.
    »»»»»» sourceAccount AccountSchema true none none
    »»»»»» destinationAccount AccountSchema true none none
    »»»»»» amount number true none Amount being transferred
    »»»»» membershipQualification object true none none
    »»»»»» type string true none Method of qualification for membership
    »»»»»» employerId string false none Blend ID of employer object in applicant's employers array. Required if qualification is based on employer's address or select employee group.
    »»»»»» accountNumber string false none Required if qualification is based on current membership.
    »»»»»» familyMemberName object false none Required if qualification is based on family or household member.
    »»»»»»» firstName string false none Family or household member's first name.
    »»»»»»» lastName string false none Family or household member's last name.
    »»»»»» debitCardIndicator boolean false none Indicates whether applicant is requesting a debit card
    »»»»»» overdraftPrivilegeIndicator boolean false none Indicates whether applicant is requesting overdraft privileges
    »»»»»» approvalStatus string false none Status of the application approval process
    »»»»» nextCursor string false none Cursor to use to get to the next set of account applications
    »»»»» prevCursor string false none Cursor to use to get to the previous set of account applications

    Enumerated Values

    Property Value
    type PRIMARY
    type SECONDARY
    type CURRENT
    type MAILING
    type CELL
    type HOME
    type WORK
    statusType VERIFIED
    statusType REJECT
    statusType SERVICE_UNAVAILABLE
    code OFAC_MATCH
    _id CROSSCORE
    type DRIVERS_LICENSE
    type DRIVERS_PRIVILEGE_CARD
    type CANADIAN_DRIVERS_LICENSE
    type STATE_ID
    type CANADIAN_STATE_ID
    type US_PASSPORT
    type US_PASSPORT_CARD
    type FOREIGN_PASSPORT
    type MILITARY_ID
    type CONSULAR_ID
    type TRIBAL_ID
    type CHECKING
    type SAVINGS
    type CURRENT_MEMBER
    type HOME_ADDRESS
    type EMPLOYER_ADDRESS
    type SELECT_EMPLOYEE_GROUP
    type FAMILY_MEMBER
    approvalStatus APPROVED
    approvalStatus REFER

    Get Account Opening Application Data

    Code samples

    # You can also use wget
    curl -X GET https://api.blendlabs.com/account-applications/{id} \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Accept: application/json'
    
    
    GET https://api.blendlabs.com/account-applications/{id} HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/account-applications/{id}',
      method: 'get',
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/account-applications/{id}',
    {
      method: 'GET',
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Accept' => 'application/json'
    }
    
    result = RestClient.get 'https://api.blendlabs.com/account-applications/{id}',
      params: {
      }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Accept': 'application/json'
    }
    
    r = requests.get('https://api.blendlabs.com/account-applications/{id}', params={
    
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/account-applications/{id}");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("GET", "https://api.blendlabs.com/account-applications/{id}", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    GET /account-applications/{id}

    Get JSON object containing application data for account opening.

    Parameters

    Parameter In Type Required Description
    id path string true Application ID

    Example responses

    200 Response

    {
      "_id": "3f345acb-6ac4-4bd0-b04a-dc0b9ad76e70",
      "referenceId": "124123",
      "applicants": [
        {
          "_id": "56632a12-1bd7-4014-8571-cff53c346738",
          "type": "PRIMARY",
          "email": "jane.smith@company.com",
          "name": {
            "firstName": "John",
            "middleName": "M",
            "lastName": "Doe",
            "suffixName": "III"
          },
          "dateOfBirth": 1537222722246,
          "socialSecurityNumber": "111224444",
          "addresses": [
            {
              "_id": "1239635c-6a0b-406a-85b2-e0e8e23c35db",
              "type": "CURRENT",
              "lineText": "123 Main St.",
              "additionalLineText": "Apt. 4",
              "cityName": "New York City",
              "countyName": "New York County",
              "stateCode": "NY",
              "zipCode": "10001"
            }
          ],
          "phoneNumbers": [
            {
              "type": "CELL",
              "value": 5551112222
            }
          ],
          "identityVerificationStatus": {
            "_id": "1239635c-6a0b-406a-85b2-e0e8e23c35db",
            "statusType": "VERIFIED",
            "code": "OFAC_MATCH",
            "provider": {
              "_id": "CROSSCORE",
              "references": {
                "clientReferenceId": "string",
                "expRequestId": "string"
              }
            }
          },
          "identityDocumentation": {
            "type": "US_PASSPORT",
            "value": "S123000U",
            "stateCode": "CA",
            "issueDate": 1529360743127,
            "expiryDate": 1529360993127
          },
          "employers": [
            {
              "_id": "1239635c-6a0b-406a-85b2-e0e8e23c35db",
              "referenceId": "243",
              "name": "Blend",
              "address": {
                "_id": "1239635c-6a0b-406a-85b2-e0e8e23c35db",
                "type": "CURRENT",
                "lineText": "123 Main St.",
                "additionalLineText": "Apt. 4",
                "cityName": "New York City",
                "countyName": "New York County",
                "stateCode": "NY",
                "zipCode": "10001"
              }
            }
          ]
        }
      ],
      "accounts": [
        {
          "_id": "1239635c-6a0b-406a-85b2-e0e8e23c35db",
          "referenceId": "0051",
          "type": "CHECKING",
          "description": "Premium Checking Account",
          "accountNumber": 33112244,
          "routingNumber": "00227799"
        }
      ],
      "funding": [
        {
          "sourceAccount": {
            "_id": "1239635c-6a0b-406a-85b2-e0e8e23c35db",
            "referenceId": "0051",
            "type": "CHECKING",
            "description": "Premium Checking Account",
            "accountNumber": 33112244,
            "routingNumber": "00227799"
          },
          "destinationAccount": {
            "_id": "1239635c-6a0b-406a-85b2-e0e8e23c35db",
            "referenceId": "0051",
            "type": "CHECKING",
            "description": "Premium Checking Account",
            "accountNumber": 33112244,
            "routingNumber": "00227799"
          },
          "amount": 5000
        }
      ],
      "membershipQualification": {
        "type": "HOME_ADDRESS",
        "employerId": "3f345acb-6ac4-4bd0-b04a-dc0b9ad76e70",
        "accountNumber": "111000222",
        "familyMemberName": {
          "firstName": "Bob",
          "lastName": "Smith"
        }
      },
      "debitCardIndicator": true,
      "overdraftPrivilegeIndicator": false,
      "approvalStatus": "APPROVED"
    }
    

    400 Response

    {
      "error": "Invalid Request",
      "display": "The action you're trying to take is invalid.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    401 Response

    {
      "error": "Authentication required",
      "display": "Your credentials are invalid.",
      "trackingId": "cbd15fc4-a8cc-45db-ac87-f90802ebbcc3"
    }
    

    403 Response

    {
      "error": "Forbidden",
      "display": "You do not have the appropriate permissions to take this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    500 Response

    {
      "error": "Internal Server Error",
      "display": "Something went wrong. Please try again later.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK JSON Account Application Object AccountApplicationSchema
    400 Bad Request Invalid Request InvalidRequestErrorSchema
    401 Unauthorized Invalid Credentials AuthenticationRequiredErrorSchema
    403 Forbidden Not Authorized NotAuthorizedErrorSchema
    500 Internal Server Error Unexpected Error InternalServerErrorSchema

    Patch Account Opening Application

    Code samples

    # You can also use wget
    curl -X PATCH https://api.blendlabs.com/account-applications/{id} \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Content-Type: application/json' \
      -H 'Accept: application/json'
    
    
    PATCH https://api.blendlabs.com/account-applications/{id} HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Content-Type: application/json
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/account-applications/{id}',
      method: 'patch',
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    const inputBody = '{
      "referenceId": "200ABC123",
      "approvalStatus": "APPROVED",
      "accounts": [
        {
          "_id": "1239635c-6a0b-406a-85b2-e0e8e23c35db",
          "referenceId": "0051",
          "type": "CHECKING",
          "description": "Premium Checking Account",
          "accountNumber": 33112244,
          "routingNumber": "00227799"
        }
      ]
    }';
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/account-applications/{id}',
    {
      method: 'PATCH',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    }
    
    result = RestClient.patch 'https://api.blendlabs.com/account-applications/{id}',
      params: {
      }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Content-Type': 'application/json',
      'Accept': 'application/json'
    }
    
    r = requests.patch('https://api.blendlabs.com/account-applications/{id}', params={
    
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/account-applications/{id}");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PATCH");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Content-Type": []string{"application/json"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("PATCH", "https://api.blendlabs.com/account-applications/{id}", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    PATCH /account-applications/{id}

    Update application data.

    Body parameter

    {
      "referenceId": "200ABC123",
      "approvalStatus": "APPROVED",
      "accounts": [
        {
          "_id": "1239635c-6a0b-406a-85b2-e0e8e23c35db",
          "referenceId": "0051",
          "type": "CHECKING",
          "description": "Premium Checking Account",
          "accountNumber": 33112244,
          "routingNumber": "00227799"
        }
      ]
    }
    

    Parameters

    Parameter In Type Required Description
    id path string true Application ID
    body body object true Application update parameters
    » referenceId body string false Optional reference ID for matching records with Blend's application object
    » approvalStatus body string false Decision regarding opening the account
    » accounts body [AccountSchema] false List of accounts with their accountNumbers
    »» _id body string true Internal account ID
    »» referenceId body string false External ID or code to reference this account. e.g. share code.
    »» type body string false Account type
    »» description body string false Additional text describing account
    »» accountNumber body number false Account number
    »» routingNumber body string false Routing number

    Enumerated Values

    Parameter Value
    » approvalStatus APPROVED
    » approvalStatus REFER
    »» type CHECKING
    »» type SAVINGS

    Example responses

    200 Response

    {
      "success": "string"
    }
    

    401 Response

    {
      "error": "Authentication required",
      "display": "Your credentials are invalid.",
      "trackingId": "cbd15fc4-a8cc-45db-ac87-f90802ebbcc3"
    }
    

    403 Response

    {
      "error": "Forbidden",
      "display": "You do not have the appropriate permissions to take this action.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    500 Response

    {
      "error": "Internal Server Error",
      "display": "Something went wrong. Please try again later.",
      "trackingId": "2559635c-6a0b-406a-85b2-e0e8e23c35ab"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK Updated Application Inline
    401 Unauthorized Invalid Credentials AuthenticationRequiredErrorSchema
    403 Forbidden Not Authorized NotAuthorizedErrorSchema
    500 Internal Server Error Unexpected Error InternalServerErrorSchema

    Response Schema

    Status Code 200

    Name Type Required Restrictions Description
    » success string true none none

    Reporting

    Get Loans (Reporting)

    Code samples

    # You can also use wget
    curl -X GET https://api.blendlabs.com/reporting/loans?startDate=2019-04-05 \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Accept: application/json'
    
    
    GET https://api.blendlabs.com/reporting/loans?startDate=2019-04-05 HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/reporting/loans',
      method: 'get',
      data: '?startDate=2019-04-05',
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/reporting/loans?startDate=2019-04-05',
    {
      method: 'GET',
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Accept' => 'application/json'
    }
    
    result = RestClient.get 'https://api.blendlabs.com/reporting/loans',
      params: {
      'startDate' => 'string(date)'
    }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Accept': 'application/json'
    }
    
    r = requests.get('https://api.blendlabs.com/reporting/loans', params={
      'startDate': '2019-04-05'
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/reporting/loans?startDate=2019-04-05");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("GET", "https://api.blendlabs.com/reporting/loans", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    GET /reporting/loans

    Return a paginated list of loans data.

    Parameters

    Parameter In Type Required Description
    startDate query string(date) true Gets all loans created/updated on or after this date
    endDate query string(date) false Gets all loans created/updated on or before this date
    limit query integer false The number of loans to be provided for this API call. Maximum is 10,000
    cursor query string false The cursor to retrieve the next/previous page of results

    Example responses

    200 Response

    {
      "loans": [
        {
          "loanId": "aa9fdaa2-7bf3-4411-a836-c2a46117f5c3",
          "loanNumber": 124123,
          "losPrimaryKey": "Loan-234",
          "createdDatetime": "2018-07-14 00:42:00+00:00",
          "lastUpdatedDatetime": "2018-07-16 00:42:00+00:00",
          "completedDatetime": "2018-07-30 00:00:00+00:00"
        }
      ],
      "nextCursor": "biwxNTIzOTk4Njg1NTc5LGRkYWYwNDY5LTdlNTYtNDRjZS05MDE3LTZkM2VhNjk1Mzc2OA",
      "prevCursor": "cCwxNTIzOTk4NTQ4MTU5LGEwYWNkZTZjLWY1M2MtNGM5NC1iYmM1LWE0M2MyYTY5YjM3Mg"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK List of paginated loans, with cursors to go to the next or previous set. Inline
    400 Bad Request Invalid Request None

    Response Schema

    Status Code 200

    Name Type Required Restrictions Description
    » loans [ReportingLoanSchema] false none An array of loans
    »» loanId LoanId true none The UUID of the loan in Blend's system. The static identifier that should be used to connect the loan's identity across Blend and external integrations.
    »» loanNumber ReferenceNumber false none A mutable identifier of the loan. Not safe to use to connect the loan's identity across Blend and external systems because it can, and for most implementations, will change. Default value is an incremented ID set by Blend. Other Values could be LOS GUID after export of the loan to LOS (may be the same as the losID field or different), Can be manually set to anything by lenders in the UI or programmatically via the API.
    »» losPrimaryKey LosPrimaryKey false none The unique identifier of the loan in a lender's Loan Origination System, or LOS (e.g. Empower, Encompass, etc.). This value should not change over time and should be used to connect the loan's identity between Blend and the LOS.
    »» createdDatetime string(date-time) false none The creation time of the loan (in UTC)
    »» lastUpdatedDatetime string(date-time) false none The last updated time of the loan (in UTC)
    »» completedDatetime string(date-time) false none The application completion time of the loan (in UTC)
    » nextCursor string false none Cursor to use to get to the next set of loans
    » prevCursor string false none Cursor to use to get to the previous set of loans

    Get Borrowers

    Code samples

    # You can also use wget
    curl -X GET https://api.blendlabs.com/reporting/borrowers \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Accept: application/json'
    
    
    GET https://api.blendlabs.com/reporting/borrowers HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/reporting/borrowers',
      method: 'get',
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/reporting/borrowers',
    {
      method: 'GET',
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Accept' => 'application/json'
    }
    
    result = RestClient.get 'https://api.blendlabs.com/reporting/borrowers',
      params: {
      }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Accept': 'application/json'
    }
    
    r = requests.get('https://api.blendlabs.com/reporting/borrowers', params={
    
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/reporting/borrowers");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("GET", "https://api.blendlabs.com/reporting/borrowers", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    GET /reporting/borrowers

    Return a paginated list of borrower data.

    Parameters

    Parameter In Type Required Description
    activationStartDate query string(date) false Gets all borrowers activated on or after this date
    activationEndDate query string(date) false Gets all borrowers activated on or before this date
    limit query integer false The number of borrowers to be provided for this API call. Maximum is 10,000
    cursor query string false The cursor to retrieve the next/previous page of results

    Example responses

    200 Response

    {
      "users": [
        {
          "userId": "c6dabfb0-8753-4a89-b8f0-af059ef869f7",
          "loanId": "aa9fdaa2-7bf3-4411-a836-c2a46117f5c3",
          "role": "Borrower",
          "activationDatetime": "2018-07-24 00:42:00+00:00",
          "invitedDatetime": "2018-07-24 00:42:00+00:00"
        }
      ],
      "nextCursor": "biwxNTIzOTk4Njg1NTc5LGRkYWYwNDY5LTdlNTYtNDRjZS05MDE3LTZkM2VhNjk1Mzc2OA",
      "prevCursor": "cCwxNTIzOTk4NTQ4MTU5LGEwYWNkZTZjLWY1M2MtNGM5NC1iYmM1LWE0M2MyYTY5YjM3Mg"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK List of paginated borrower, with cursors to go to the next or previous set. Inline
    400 Bad Request Invalid Request None

    Response Schema

    Status Code 200

    Name Type Required Restrictions Description
    » users [ReportingBorrowerSchema] false none An array of borrowers
    »» userId string true none User id
    »» loanId LoanId true none The UUID of the loan in Blend's system. The static identifier that should be used to connect the loan's identity across Blend and external integrations.
    »» role string false none The role of the user
    »» activationDatetime string(date-time) false none The activation time of the borrower (in UTC)
    »» invitedDatetime string(date-time) false none The invitation time of the borrower (in UTC)
    » nextCursor string false none Cursor to use to get to the next set of borrower
    » prevCursor string false none Cursor to use to get to the previous set of borrower

    Enumerated Values

    Property Value
    role BORROWER
    role COBORROWER

    Get Lenders

    Code samples

    # You can also use wget
    curl -X GET https://api.blendlabs.com/reporting/lenders \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Accept: application/json'
    
    
    GET https://api.blendlabs.com/reporting/lenders HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/reporting/lenders',
      method: 'get',
    
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/reporting/lenders',
    {
      method: 'GET',
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Accept' => 'application/json'
    }
    
    result = RestClient.get 'https://api.blendlabs.com/reporting/lenders',
      params: {
      }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Accept': 'application/json'
    }
    
    r = requests.get('https://api.blendlabs.com/reporting/lenders', params={
    
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/reporting/lenders");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    package main
    
    import (
           "bytes"
           "net/http"
    )
    
    func main() {
    
        headers := map[string][]string{
            "Authorization": []string{"Basic {{Auth Token}}"},
            "Cache-Control": []string{"no-cache"},
            "Blend-Target-Instance": []string{"blend-borrower~default"},
            "Accept": []string{"application/json"},
    
        }
    
        data := bytes.NewBuffer([]byte{jsonReq})
        req, err := http.NewRequest("GET", "https://api.blendlabs.com/reporting/lenders", data)
        req.Header = headers
    
        client := &http.Client{}
        resp, err := client.Do(req)
        // ...
    }
    
    

    GET /reporting/lenders

    Return a paginated list of lenders data.

    Parameters

    Parameter In Type Required Description
    activationStartDate query string(date) false Gets all lenders activated on or after this date
    activationEndDate query string(date) false Gets all lenders activated on or before this date
    limit query integer false The number of lenders to be provided for this API call. Maximum is 10,000
    cursor query string false The cursor to retrieve the next/previous page of results

    Example responses

    200 Response

    {
      "lenders": [
        {
          "userId": "c6dabfb0-8753-4a89-b8f0-af059ef869f7",
          "loanId": "aa9fdaa2-7bf3-4411-a836-c2a46117f5c3",
          "fullName": "John Smith",
          "email": "john.smith@xyz.com",
          "role": "Loan Officer",
          "nmlsId": "123123",
          "activationDatetime": "2018-07-24 00:42:00+00:00",
          "invitedDatetime": "2018-07-24 00:42:00+00:00"
        }
      ],
      "nextCursor": "biwxNTIzOTk4Njg1NTc5LGRkYWYwNDY5LTdlNTYtNDRjZS05MDE3LTZkM2VhNjk1Mzc2OA",
      "prevCursor": "cCwxNTIzOTk4NTQ4MTU5LGEwYWNkZTZjLWY1M2MtNGM5NC1iYmM1LWE0M2MyYTY5YjM3Mg"
    }
    

    Responses

    Status Meaning Description Schema
    200 OK List of paginated lenders, with cursors to go to the next or previous set. Inline
    400 Bad Request Invalid Request None

    Response Schema

    Status Code 200

    Name Type Required Restrictions Description
    » lenders [ReportingLenderSchema] false none An array of lenders
    »» userId string true none User id
    »» loanId LoanId true none The UUID of the loan in Blend's system. The static identifier that should be used to connect the loan's identity across Blend and external integrations.
    »» fullName string true none The full name of the lender
    »» email string true none The email address of the lender
    »» role string false none The role(s) of the lender, a comma-separated list
    »» nmlsId string false none The NMLS ID of the lender (in UTC)
    »» activationDatetime string(date-time) false none The activation time of the lender (in UTC)
    »» invitedDatetime string(date-time) false none The invitation time of the lender (in UTC)
    » nextCursor string false none Cursor to use to get to the next set of lenders
    » prevCursor string false none Cursor to use to get to the previous set of lenders

    Get Activities

    Code samples

    # You can also use wget
    curl -X GET https://api.blendlabs.com/reporting/activities?startDate=2019-04-05 \
      -H 'Authorization: Basic {{Auth Token}}' \
      -H 'Cache-Control: no-cache' \
      -H 'Blend-Target-Instance: blend-borrower~default' \
      -H 'Accept: application/json'
    
    
    GET https://api.blendlabs.com/reporting/activities?startDate=2019-04-05 HTTP/1.1
    Host: api.blendlabs.com
    Authorization: Basic {{Auth Token}}
    Cache-Control: no-cache
    Blend-Target-Instance: blend-borrower~default
    Accept: application/json
    
    
    var headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    $.ajax({
      url: 'https://api.blendlabs.com/reporting/activities',
      method: 'get',
      data: '?startDate=2019-04-05',
      headers: headers,
      success: function(data) {
        console.log(JSON.stringify(data));
      }
    })
    
    
    const request = require('node-fetch');
    
    const headers = {
      'Authorization':'Basic {{Auth Token}}',
      'Cache-Control':'no-cache',
      'Blend-Target-Instance':'blend-borrower~default',
      'Accept':'application/json'
    
    };
    
    fetch('https://api.blendlabs.com/reporting/activities?startDate=2019-04-05',
    {
      method: 'GET',
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    require 'rest-client'
    require 'json'
    
    headers = {
      'Authorization' => 'Basic {{Auth Token}}',
      'Cache-Control' => 'no-cache',
      'Blend-Target-Instance' => 'blend-borrower~default',
      'Accept' => 'application/json'
    }
    
    result = RestClient.get 'https://api.blendlabs.com/reporting/activities',
      params: {
      'startDate' => 'string(date)'
    }, headers: headers
    
    p JSON.parse(result)
    
    
    import requests
    headers = {
      'Authorization': 'Basic {{Auth Token}}',
      'Cache-Control': 'no-cache',
      'Blend-Target-Instance': 'blend-borrower~default',
      'Accept': 'application/json'
    }
    
    r = requests.get('https://api.blendlabs.com/reporting/activities', params={
      'startDate': '2019-04-05'
    }, headers = headers)
    
    print r.json()
    
    
    URL obj = new URL("https://api.blendlabs.com/reporting/activities?startDate=2019-04-05");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuff