Real Estate Transaction Quickstart

The Proof for Real Estate API allows you to manage each key step of the online closing process: transaction creation, eNote generation, upload of the closing documents, completion of the closing documents, and retrieval of completed documents after a successful close.

Our RESTful API is designed to have predictable, resource-oriented URLs, and uses HTTP response codes to indicate any API errors. Webhooks are available to enable you to be notified when a transaction changes state.

To get started, you must have a lender or title account with Proof.

1. Determine your transaction type

The first step will be determining the correct transaction type . Below are the supported transaction type parameters. You will use this parameter in step 2.

The next step is determining if the property address is able to be closed online. You can do this by leveraging our Smart Routing feature.

2. Checking property address eligibility

Make a GET to the Verify Property Address endpoint with the transaction_type and the street_address_object.

curl -X GET "
  ?transaction_type=refinance&street_address[line1]=745 Boylston St&street_address[city]=Boston&street_address[state]=MA" \
  -H "ApiKey: `insert key here`" \
  -H "Content-Type: application/json" \

If the property can be sold or purchased online, Proof will return supported : true in the JSON response. We will also return an array of eligible_title_agencies that serve that particular county, as well as the eligible_underwriters for each title agent.

Because some recording jurisdictions only partially cover geographic locations, some street addresses may return multiple recording jurisdictions for you to chose from. If multiple jurisdictions are returned, it will be up to you to chose the appropriate one.

3. Deciding the transaction parameters

After you have determined that the property can be signed online, you can start building out the other transaction parameters. These parameters allow you to customize your transaction for internal necessities as well as for the signer experience. You can set things like loan_number, file_number, a message_to_signer, etc. A full list of parameters can be found in the [Create Transaction] endpoint.

4. Create your transaction

Once you have decided what your transaction parameters will be, it will be time to create the transaction. Make a POST request to the [Create Transaction] endpoint. Below is an example only leveraging the required and recommended parameters.

NOTE: All real estate transactions will be created in draft by default. Our closing team will add signature designations to the transaction and coordinate the signing time with the signer. After complete, they will send the transaction to the signer.

curl -X POST "" \
  -H "ApiKey: `insert key here`" \
  -H "Content-Type: application/json" \
  -d \
      "transaction_type": "refinance",
      "transaction_name": "Broman_Refinance",
      "require_secondary_photo_id": "true",
      "file_number": "ABC123",
      "loan_number": "DEF456",
      "signer": {
        "email":"[email protected]",
        "first_name": "Testy",
        "last_name": "McTesterson"
      "street_address": {
        "line1": "745 Boylston St.",
        "line2": "Suite 600",
        "city": "Boston",
        "state": "MA",
        "zip_code": "02116"
      "recording_jurisdiction_id": "rl6rn64np",
      "title_agency_id": "or8znm4dd",
      "title_underwriter_id": "oryxdwjnk"

5. Add your closing documents to the transaction

Proof supports .pdf file types supplied either as a URL, a base64 encoded local file. You can also pass a document with PDF bookmarks so each bookmark becomes its own individual document in the transaction. If you do so, you must set the pdf_bookmarked attribute to true.

If you are passing a pdf_bookmarked document, it will take the Proof system time to split the document. We will respond with a 200 and a response indicating that document upload is in progress. Should you wish to set your document parameters on a pdf_bookmarked document, you must first wait for this upload to complete (~5min), recall the document object on the transaction, and use the document id returned to update the documents flags.

You can find a full list of supported document parameters in the [Add Document] endpoint. These parameters allow you set document level permissions such as notarization_required or witness_required. All document attributes are also supported in the [Update Document] endpoint.

6. LENDER ONLY: Add your eNote to the transaction

Proof supports XML seed files as well as MISMO 1.02 SMARTDocs. The eNote can be passed as either a URL or a base64 encoded .xml file. You can find the supported XML schema here. Use the [Add eNote] endpoint to add the eNote to your transaction.

7. Monitoring the transaction

You can leverage Proof WebHooks to monitor the state of the transaction. There are several events fired - for example you will be able to see when your signer has received and opened their transaction email as well as when they have completed their signing.

8. Retrieve the completed transaction.

The Retrieve Transaction endpoint will return links to the completed documents. Alternatively, the binary file content can be returned of each document by using the Retrieve Document endpoint

What’s Next

Check out the necessary endpoints.