### Retrieve Transaction Details Source: https://dev.proof.com/docs/proof-transaction-quickstart-guide Fetches the details of a specific transaction, including links to completed documents once the transaction is finalized. ```APIDOC ## GET /transactions/{transactionId} ### Description Retrieves the details of a specific transaction, including its status and links to completed documents. ### Method GET ### Endpoint `/transactions/{transactionId}` ### Parameters #### Path Parameters - **transactionId** (string) - Required - The ID of the transaction to retrieve. ### Response #### Success Response (200) - **transaction_id** (string) - The unique identifier for the transaction. - **status** (string) - The current status of the transaction. - **documents** (array) - A list of documents associated with the transaction, including links to completed versions. - **url** (string) - The URL to the completed document. #### Response Example ```json { "transaction_id": "txn_abcdef123456", "status": "completed", "documents": [ { "url": "https://proof.com/completed/document.pdf" } ] } ``` ``` -------------------------------- ### Create Transaction with Proof Requirements Source: https://dev.proof.com/docs/proof-transaction-quickstart-guide This endpoint allows you to create a new transaction and associate signer-level Proof requirements for identity verification. The `proof_requirement` object can include `id_verification` (with `selfie`), `knowledge_based_authentication`, and `multi_factor_authentication`. ```APIDOC ## POST /transactions ### Description Creates a new transaction with specified signer details and Proof-level identity verification requirements. ### Method POST ### Endpoint `/transactions` ### Parameters #### Request Body - **signer** (object) - Required - Details of the signer, including proof requirements. - **proof_requirement** (object) - Optional - Specifies the identity verification methods. - **id_verification** (object) - Optional - Enables identity verification checks. - **selfie** (boolean) - Optional - Requires a selfie for verification. - **knowledge_based_authentication** (boolean) - Optional - Enables knowledge-based authentication. - **multi_factor_authentication** (object) - Optional - Enables multi-factor authentication. - **type** (string) - Required if `multi_factor_authentication` is present - The type of MFA (e.g., "sms"). - **email** (string) - Required - The email address of the signer. - **first_name** (string) - Required - The first name of the signer. - **last_name** (string) - Required - The last name of the signer. - **phone_number** (string) - Required - The phone number of the signer. - **draft** (boolean) - Optional - If true, the transaction is created as a draft and documents can be added later. ### Request Example ```json { "signer": { "proof_requirement": { "id_verification": { "selfie": true }, "knowledge_based_authentication": true, "multi_factor_authentication": { "type": "sms" } }, "email": "andrew@example.com", "first_name": "Andrew", "last_name": "Example", "phone_number": "1234567878" }, "draft": true } ``` ### Response #### Success Response (200) - **transaction_id** (string) - The unique identifier for the created transaction. - **status** (string) - The current status of the transaction. #### Response Example ```json { "transaction_id": "txn_abcdef123456", "status": "draft" } ``` ``` -------------------------------- ### POST /api/transactions (Identify) Source: https://dev.proof.com/docs/identify-transaction-quickstart-guide Creates an Identify transaction for identity verification. Requirements are set at the signer level. ```APIDOC ## POST /api/transactions ### Description Creates an Identify transaction for identity verification. This endpoint allows you to initiate a verification process for a signer without requiring a document to be signed. Requirements such as biometric verification, knowledge-based authentication, and multi-factor authentication can be configured. ### Method POST ### Endpoint /api/transactions ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **signer** (object) - Required - Details of the signer. - **signing_requirement** (string) - Required - Must be set to 'identify'. - **proof_requirement** (object) - Required - Specifies the identity verification methods. - **id_verification** (object) - Optional - Settings for ID verification. - **selfie** (boolean) - Optional - Whether to require a selfie. - **knowledge_based_authentication** (boolean) - Optional - Whether to require knowledge-based authentication. - **multi_factor_authentication** (object) - Optional - Settings for multi-factor authentication. - **type** (string) - Required if multi_factor_authentication is present - Type of MFA, e.g., 'sms'. - **email** (string) - Required - Signer's email address. - **first_name** (string) - Required - Signer's first name. - **last_name** (string) - Required - Signer's last name. - **phone_number** (string) - Required - Signer's phone number. - **draft** (boolean) - Optional - Whether to save the transaction as a draft. ### Request Example ```json { "signer": { "signing_requirement": "identify", "proof_requirement": { "id_verification": { "selfie": true }, "knowledge_based_authentication": true, "multi_factor_authentication": { "type": "sms" } }, "email": "andrew@example.com", "first_name": "Andrew", "last_name": "Example", "phone_number": "1234567878" }, "draft": true } ``` ### Response #### Success Response (200) - **transaction_id** (string) - The unique identifier for the created transaction. - **status** (string) - The status of the transaction. #### Response Example ```json { "transaction_id": "txn_123abc456def", "status": "pending" } ``` ``` -------------------------------- ### Add Document to Draft Transaction Source: https://dev.proof.com/docs/proof-transaction-quickstart-guide Use this endpoint to add documents to a transaction that was previously created as a draft. Documents are typically PDF files. ```APIDOC ## POST /transactions/{transactionId}/documents ### Description Adds one or more documents to a transaction that is in a draft state. ### Method POST ### Endpoint `/transactions/{transactionId}/documents` ### Parameters #### Path Parameters - **transactionId** (string) - Required - The ID of the transaction to which the document will be added. #### Request Body - **resource** (string) - Required - The URL of the document to be added. ### Request Example ```json { "resource": "https://static.notarize.com/Example.pdf" } ``` ### Response #### Success Response (200) - **message** (string) - Confirmation message that the document was added. #### Response Example ```json { "message": "Document added successfully." } ``` ``` -------------------------------- ### Create Transaction with Proof Signer Requirements (JSON) Source: https://dev.proof.com/docs/proof-transaction-quickstart-guide This JSON object demonstrates how to configure a 'signer' object for a Proof transaction. It includes details for ID verification (selfie), knowledge-based authentication, and multi-factor authentication (SMS). This structure is used when creating new transactions via API. ```json { "signer": { "proof_requirement": { "id_verification": { "selfie": true }, "knowledge_based_authentication": true, "multi_factor_authentication": { "type": "sms" } }, "email": "andrew@example.com", "first_name": "Andrew", "last_name": "Example", "phone_number": "1234567878" }, "draft": true } ``` -------------------------------- ### Create Transaction Source: https://dev.proof.com/docs/creating-an-esign-transaction Initiates an eSign transaction. Requires signer's email and document details. Documents must have `document_requirement` set to `esign` and `customer_can_annotate` to `true` or have an alternative tagging solution configured. ```APIDOC ## POST /transactions ### Description Creates a new eSignature transaction. You can optionally set `draft` to `true` to add documents later. ### Method POST ### Endpoint /transactions ### Parameters #### Request Body - **signers** (array) - Required - A list of objects, each containing a signer's `email`. - **documents** (array) - Optional - A list of document objects. Each object requires: - **resource** (string) - Required - URL of the document. - **requirement** (string) - Required - Must be 'esign'. - **customer_can_annotate** (boolean) - Required - Must be true or an alternative tagging solution configured. - **draft** (boolean) - Optional - If true, the transaction is created as a draft and documents can be added later. ### Request Example ```json { "signers": [ { "email": "foobar@example.com" } ], "documents": [ { "resource": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf", "requirement": "esign", "customer_can_annotate": true } ] } ``` ### Request Example (Draft Transaction) ```json { "signers": [ { "email": "foobar@example.com" } ], "draft": true } ``` ### Response #### Success Response (200) Details of the created transaction, including its ID. #### Response Example (Response structure not provided in the source text) ``` -------------------------------- ### Authentication API Source: https://dev.proof.com/docs/authentication This section covers authentication for the API, including how to log in and retrieve API keys. It also provides an example cURL request for making a GET request. ```APIDOC ## GET / ### Description This endpoint is used for authentication and potentially retrieving initial API access or information. It's the entry point for users to log in and manage their credentials. ### Method GET ### Endpoint / ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```curl curl --request GET \ --url https://example.com/ ``` ### Response #### Success Response (200) - **message** (string) - A success message indicating authentication status or initial data. - **apiKey** (string) - The user's API key if applicable. #### Response Example ```json { "message": "Authentication successful", "apiKey": "xxxxxxxxxx" } ``` ``` -------------------------------- ### Retrieve Transaction Source: https://dev.proof.com/docs/creating-an-esign-transaction Retrieves the details of a transaction, including links to the completed documents once the transaction is finalized. ```APIDOC ## GET /transactions/{transactionId} ### Description Retrieves a specific transaction by its ID. This endpoint is used to check the status and get links to completed documents. ### Method GET ### Endpoint /transactions/{transactionId} ### Parameters #### Path Parameters - **transactionId** (string) - Required - The ID of the transaction to retrieve. ### Response #### Success Response (200) Returns transaction details, including links to completed documents if the transaction is finished. #### Response Example (Response structure not provided in the source text) ``` -------------------------------- ### cURL GET Request Example Source: https://dev.proof.com/docs/authentication This snippet demonstrates a basic cURL GET request to a specified URL. It's a common way to interact with APIs for initial testing or data retrieval. Ensure the URL is correct for your API endpoint. ```bash curl --request GET \ --url https://example.com/ ``` -------------------------------- ### Create Identify Transaction via API (JSON) Source: https://dev.proof.com/docs/identify-transaction-quickstart-guide This JSON payload demonstrates how to create an Identify transaction using the API. It specifies signer requirements for identity verification, including selfie, knowledge-based authentication, and multi-factor authentication, with `signing_requirement` set to `identify`. ```json { "signer": { "signing_requirement": "identify", "proof_requirement": { "id_verification": { "selfie": true }, "knowledge_based_authentication": true, "multi_factor_authentication": { "type": "sms" } }, "email": "andrew@example.com", "first_name": "Andrew", "last_name": "Example", "phone_number": "1234567878" }, "draft": true } ``` -------------------------------- ### Create eSign Transaction - JSON Source: https://dev.proof.com/docs/creating-an-esign-transaction Create a new eSign transaction with a signer's email and a document. The document requires an 'esign' requirement and 'customer_can_annotate' set to true. This is the minimum configuration for an eSign transaction. ```json POST /transactions { "signers": [ { "email": "foobar@example.com" } ], "documents": [{ "resource": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf", "requirement": "esign", "customer_can_annotate": true }] } ``` -------------------------------- ### Create Transaction Source: https://dev.proof.com/docs/business-quick-start Initiates a new notarization transaction. You can either provide all necessary documents and signers upfront or create it as a draft for later updates. ```APIDOC ## POST /transactions/ ### Description Creates a new notarization transaction. Requires signer email and document details (resource URL and requirement). ### Method POST ### Endpoint /transactions/ ### Parameters #### Request Body - **signers** (array) - Required - An array of signer objects, each containing at least an email address. - **email** (string) - Required - The email address of the signer. - **documents** (array) - Required (if not a draft) - An array of document objects. - **resource** (string) - Required - The URL of the document to be notarized. - **requirement** (string) - Required - The notarization requirement for the document (e.g., "notarization"). - **draft** (boolean) - Optional - If set to true, the transaction is created as a draft and can be updated later. ### Request Example ```json { "signers": [ { "email": "foobar@example.com" } ], "documents": [ { "resource": "https://static.notarize.com/Example.pdf", "requirement": "notarization" } ] } ``` ### Request Example (Draft Transaction) ```json { "signers": [ { "email": "foobar@example.com" } ], "draft": true } ``` ### Response #### Success Response (200) - **transaction_id** (string) - The unique identifier for the created transaction. - **status** (string) - The current status of the transaction. ``` -------------------------------- ### Create Transaction Source: https://dev.proof.com/docs/real-estate-quick-start Creates a new real estate transaction. This is a core endpoint for initiating the online closing process. ```APIDOC ## POST /mortgage/v1/transactions ### Description Creates a new real estate transaction with specified parameters. Transactions are created in 'draft' status by default. ### Method POST ### Endpoint `/mortgage/v1/transactions` ### Parameters #### Request Body - **transaction_type** (string) - Required - The type of real estate transaction (e.g., 'refinance'). - **transaction_name** (string) - Required - A name for the transaction. - **require_secondary_photo_id** (string) - Optional - Set to 'true' to require secondary photo ID. - **file_number** (string) - Optional - Internal file number for the transaction. - **loan_number** (string) - Optional - Loan number associated with the transaction. - **signer** (object) - Required - Information about the signer. - **email** (string) - Required - Signer's email address. - **first_name** (string) - Required - Signer's first name. - **last_name** (string) - Required - Signer's last name. - **street_address** (object) - Required - The property's street address. - **line1** (string) - Required - Street address line 1. - **line2** (string) - Optional - Street address line 2. - **city** (string) - Required - City. - **state** (string) - Required - State (e.g., 'MA'). - **zip_code** (string) - Required - Zip code. - **recording_jurisdiction_id** (string) - Required - The ID of the recording jurisdiction. - **title_agency_id** (string) - Required - The ID of the title agency. - **title_underwriter_id** (string) - Required - The ID of the title underwriter. ### Request Example ```json { "transaction_type": "refinance", "transaction_name": "Broman_Refinance", "require_secondary_photo_id": "true", "file_number": "ABC123", "loan_number": "DEF456", "signer": { "email": "testerson@proof.com", "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" } ``` ### Response #### Success Response (200) - **id** (string) - The unique identifier for the created transaction. - **status** (string) - The current status of the transaction (e.g., 'draft'). #### Response Example ```json { "id": "txn_abcdef1234567890", "status": "draft" } ``` ``` -------------------------------- ### Add Documents to Draft Transaction Source: https://dev.proof.com/docs/creating-an-esign-transaction Adds documents to a transaction that was previously created as a draft. Documents require `document_requirement` set to `esign` and `customer_can_annotate` to `true` or an alternative tagging solution. ```APIDOC ## POST /transactions/{transactionId}/documents ### Description Adds documents to an existing draft transaction. ### Method POST ### Endpoint /transactions/ot_xxxxxxx/documents ### Parameters #### Path Parameters - **transactionId** (string) - Required - The ID of the draft transaction. #### Request Body - **resource** (string) - Required - URL of the document. - **requirement** (string) - Required - Must be 'esign'. - **customer_can_annotate** (boolean) - Required - Must be true or an alternative tagging solution configured. ### Request Example ```json { "resource": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf", "requirement": "esign", "customer_can_annotate": true } ``` ### Response #### Success Response (200) Details of the updated transaction with the added document. #### Response Example (Response structure not provided in the source text) ``` -------------------------------- ### Signer Information Example Source: https://dev.proof.com/docs/api-data Provides example data for a signer, including personal details, address, and document URLs. This structure is used to store information about individuals involved in a transaction. ```JSON { "email": "signer1@proof.com", "first_name": "Signer1", "last_name": "Signer1", "dob": "1990-10-24", "address": { "city": "Boston", "line1": "125 Example Street", "line2": "", "state": "MA", "postal": "02111", "country": "US" }, "primary_front": "https://46367235841562-proof-productionmirror-assets.s3.amazonaws.com/fda3b8f09959e86828c1ab4bf07a6790?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAWX5J33QNAB7B5UMG%2F20221031%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20221031T135832Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=c1fac28d440df74dfedf2e3d393a54bfc24f391714b052fec2c1dd21d20428e4", "primary_back": "https://4636758415362-proof-productionmirror-assets.s3.amazonaws.com/2704e26404039ae682b67b48afe3abd1?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAWX5J33QNAB7B5UMG%2F20221031%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20221031T135832Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=bb8ea9c485ca4f86c444d233b49019c885dd296265742c3fc9c96f66545c4ee6", "secondary_front": "https://46367522841562-proof-productionmirror-secure-assets.s3.amazonaws.com/d63b35b0f1b8512099da1b13d6290fc8?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAWX5J33QNAB7B5UMG%2F20221031%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20221031T135832Z&X-Amz-Expires=10800&X-Amz-SignedHeaders=host&X-Amz-Signature=02932020f93553cb1c08e32e29964dadf04038a430da697da7b6107345bb9d0d" } ``` -------------------------------- ### Retrieve Transaction Source: https://dev.proof.com/docs/business-quick-start Retrieves the details of a specific notarization transaction, including its status and pre-signed links to completed documents. ```APIDOC ## GET /transactions/{transaction_id} ### Description Retrieves the details of a specific notarization transaction. This is useful for monitoring the transaction's progress and obtaining links to completed documents. ### Method GET ### Endpoint /transactions/{transaction_id} ### Parameters #### Path Parameters - **transaction_id** (string) - Required - The ID of the transaction to retrieve. ### Response #### Success Response (200) - **transaction_id** (string) - The unique identifier for the transaction. - **status** (string) - The current status of the transaction. - **completed_documents** (array) - An array of objects containing pre-signed links to the completed documents. - **url** (string) - The URL to download the completed document. ``` -------------------------------- ### Deprecation of GET requests with body Source: https://dev.proof.com/docs/deprecation-of-get-requests-with-body-to-proof-api Starting March 15th, 2025, the Proof API will reject all GET requests that include a request body. Such requests will receive a 403 (Forbidden) status code. Users should ensure GET requests do not contain a body and instead utilize query parameters for data retrieval. ```APIDOC ## GET Request with Body Deprecation ### Description GET requests with a request body are being deprecated. Starting March 15th, 2025, any GET request submitted with a body will be rejected with a 403 (Forbidden) status code. ### Method GET ### Endpoint All API endpoints listed on the endpoint reference. ### Parameters #### Query Parameters To retrieve data, construct requests using query parameters instead of a request body. ### Request Example #### Invalid Request Example (will be rejected after March 15th, 2025) ```json { "example": "This is an example of an invalid GET request body." } ``` ### Response #### Error Response (403 Forbidden) - **message** (string) - Indicates that GET requests with a body are not allowed. #### Response Example ```json { "error": "GET requests with a body are forbidden." } ``` ``` -------------------------------- ### Webhook Event History Response Example (JSON) Source: https://dev.proof.com/docs/webhook-configuration-and-testing This is an example of the JSON response received when querying the 'Get Webhook Events V2' endpoint. It details events sent to the webhook, including the event type, response code, delivery time, and payload. ```json [ { "event": "transaction.created", "response": { "body": "", "code": 200, "headers": { "date": "Tue, 26 Sep 2023 18:27:23 GMT", "vary": "Accept-Encoding", "server": "nginx", "x-token-id": "b5accfb5-5ea3-4ff2-9f4e-6a8a2988d651", "content-type": "text/plain; charset=UTF-8", "x-request-id": "361d9d8d-1cc7-42fb-a6fb-5dab55a8dcea", "cache-control": "no-cache, private", "transfer-encoding": "chunked" } }, "delivered": "2023-09-26T18:27:23.408Z", "payload": "{\"event\": \"transaction.created\", \"data\": { \"transaction_id\": \"ot_npryryk\" }}" }, { "event": "transaction.document.upload", "response": { "body": "", "code": 200, "headers": { "date": "Tue, 26 Sep 2023 18:27:23 GMT", "vary": "Accept-Encoding", "server": "nginx", "x-token-id": "b5accfb5-5ea3-4ff2-9f4e-6a8a2988d651", "content-type": "text/plain; charset=UTF-8", "x-request-id": "49fc3c41-cb1b-4168-b949-2cd42d70b14d", "cache-control": "no-cache, private", "transfer-encoding": "chunked" } }, "delivered": "2023-09-26T18:27:23.405Z", "payload": "{\"event\": \"transaction.document.upload\", \"data\": { \"transaction_id\": \"ot_npryryk\", \"organization_name\": \"Batman\", \"document\": { \"document_id\": \"do_b8f2e6b4-713b-48ef-a214-8c08cdce3a7a\", \"name\": \"Doc Requiring Notarization\" }, \"date_occurred\": \"2023-09-26T18:27:22Z\" }}" }, { "event": "transaction.document.upload", "response": { "body": "", "code": 200, "headers": { "date": "Tue, 26 Sep 2023 18:27:23 GMT", "vary": "Accept-Encoding", "server": "nginx", "x-token-id": "b5accfb5-5ea3-4ff2-9f4e-6a8a2988d651", "content-type": "text/plain; charset=UTF-8", "x-request-id": "096be763-1b7b-453c-906d-f29ab5fc4cae", "cache-control": "no-cache, private", "transfer-encoding": "chunked" } }, "delivered": "2023-09-26T18:27:23.228Z", "payload": "{\"event\": \"transaction.document.upload\", \"data\": { \"transaction_id\": \"ot_npryryk\", \"organization_name\": \"Batman\", \"document\": { \"document_id\": \"do_34454f4c-75c7-4504-a268-00bca05cda2d\", \"name\": \"eSign-able Document\" }, \"date_occurred\": \"2023-09-26T18:27:22Z\" }}" } ] ``` -------------------------------- ### Create a Notarization Transaction Source: https://dev.proof.com/docs/business-quick-start Initiates a new notarization transaction with signer and document details. Requires signer's email and document resource URL with a 'notarization' requirement. POST request to the /transactions/ endpoint. ```JSON POST /transactions/ { "signers": [ { "email": "foobar@example.com" } ], "documents": [ { "resource": "https://static.notarize.com/Example.pdf", "requirement": "notarization" } ] } ``` -------------------------------- ### SCIM API Endpoints Source: https://dev.proof.com/docs/scim-api-quick-start-guide This section details the base URL and authentication requirements for interacting with the SCIM API. ```APIDOC ## SCIM API Base URL and Authentication ### Description Proof utilizes the System for Cross-domain Identity Management (SCIM) version 2.0 to automate the provisioning of organization membership. The following base URL is used for all SCIM endpoints. Authentication is required using an API key. ### Method N/A (This describes general API usage, not a specific endpoint) ### Endpoint `https://api.proof.com/scim/v1/organizations/{organization}/` ### Parameters #### Header Parameters - **ApiKey** (string) - Required - Your API key for authentication. ### Request Body N/A ### Response N/A ### Error Handling - 401 Unauthorized: If the API key is missing or invalid. - 400 Bad Request: If the request is malformed. ``` -------------------------------- ### Get Webhook Events API Source: https://dev.proof.com/docs/document-retrieval-and-archiving Retrieves all events triggered for a particular webhook ID. This is used to identify failed deliveries. ```APIDOC ## GET /v2/webhooks/{webhook_id}/events ### Description Retrieves all events triggered for a specific webhook ID. This endpoint is crucial for identifying webhook events that may have failed delivery. ### Method GET ### Endpoint `/v2/webhooks/{webhook_id}/events` ### Parameters #### Path Parameters - **webhook_id** (string) - Required - The unique identifier of the webhook. #### Query Parameters None #### Request Body None ### Request Example None ### Response #### Success Response (200) - **events** (array) - A list of webhook event objects. - **event** (string) - The type of event that occurred. - **response** (object) - Details about the response received when attempting to deliver the event. - **body** (string) - The response body from the webhook endpoint. - **code** (integer) - The HTTP status code of the response. - **error** (string) - A detailed error message if delivery failed. - **delivered** (string) - The timestamp when the event was attempted to be delivered. - **payload** (string) - The original payload of the webhook event. #### Response Example ```json [ { "event": "transaction.completed_with_rejections", "response": { "body": "{\"success\":false,\"error\":{\"message\":\"Token not found\",\"id\":null}}", "code": 404, "error": "Webhook https://webhook.site/0fdc6aac-c71a-4587-944d-e25853ca5bd1 failed for 'BHJ Fairfax Business' with status 404 and returned {\"success\":false,\"error\":{\"message\":\"Token not found\",\"id\":null}}" }, "delivered": "2023-10-11T15:33:41.501Z", "payload": "{\"event\":\"transaction.completed_with_rejections\",\"data\":{\"transaction_id\":\"ot_nbr86qb\"}}" } ] ``` ``` -------------------------------- ### Create Real Estate Transaction with Proof API Source: https://dev.proof.com/docs/real-estate-quick-start Creates a new real estate transaction using the Proof API. It accepts various parameters like transaction type, name, signer details, address, and IDs for recording jurisdiction, title agency, and underwriter. Transactions are created in 'draft' state by default and require further steps for signature coordination and sending to the signer. ```javascript curl -X POST "https://api.proof.com/mortgage/v1/transactions" \ -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":"testerson@proof.com", "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" } ' ``` -------------------------------- ### Get Document API Source: https://dev.proof.com/docs/document-retrieval-and-archiving This endpoint allows you to download a specific document from a transaction in base64 encoded format. It requires the document ID obtained from the Retrieve Transaction endpoint. ```APIDOC ## GET /documents/{document_id} ### Description Retrieves a specific document associated with a transaction in base64 encoded format. ### Method GET ### Endpoint /documents/{document_id} #### Path Parameters - **document_id** (string) - Required - The unique identifier of the document to retrieve. #### Query Parameters - **encoding** (string) - Optional - Specifies the encoding format. Use 'base64' to get the document content as a base64 string. ### Request Example None (This is a GET request, no request body is needed.) ### Response #### Success Response (200) - **content** (string) - The base64 encoded content of the document. #### Response Example ```json { "content": "JVBERi0xLjQKJcOkw7zRjg1OCAxIDAgb2JqCjw8IC9UeXBlIC9QYWdlCi9QYXJlbnQgMSAwIFJvCi9SZXNvdXJjZXMgMiAwIFIKL01lZGlhQm94IFsgMCAwIDU5NSA4NDIgXQovQ29udGVudHMgMyAwIFIKL0J2IG4gPj4KZW5kb2JqCg==" } ``` ``` -------------------------------- ### Create a Draft Transaction Source: https://dev.proof.com/docs/business-quick-start Creates a notarization transaction as a draft, allowing for later updates and document additions. Requires signer's email. POST request to the /transactions endpoint. ```JSON POST /transactions { "signers": [ { "email": "foobar@example.com" } ], "draft": true } ``` -------------------------------- ### Set Specified Order for All Signers (JSON) Source: https://dev.proof.com/docs/signing-order This example demonstrates how to enforce a strict signing order for all participants in a transaction. Each signer is assigned a unique integer starting from 1, dictating the sequence they must follow. ```json { "document": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf", "signers": [ { "email": "YOUR_EMAIL+signer1@notarize.com", "first_name": "Peter", "last_name": "Parker", "order": 1 }, { "email": "YOUR_EMAIL+signer1@notarize.com", "first_name": "Tony", "last_name": "Stark", "order": 2 }, { "email": "YOUR_EMAIL+signer1@notarize.com", "first_name": "Steve", "last_name": "Rogers", "order": 3 }, { "email": "YOUR_EMAIL+signer2@notarize.com", "first_name": "Thor", "last_name": "Odinson", "order": 4 } ] } ``` -------------------------------- ### SAML Attributes for User Provisioning Source: https://dev.proof.com/docs/single-sign-on-sso-command-center Details the SAML attributes sent from the IdP to Proof for user provisioning, role assignment, and creation in child organizations. It outlines required and optional attributes, their case sensitivity, and their purpose. ```APIDOC ## SAML Attributes for User Provisioning ### Description These attributes are sent from the IdP to Proof to provision accounts on-the-fly, assign specific roles (e.g., admin vs. team member), and create users in child organizations. ### Required Attributes * `nameid`: A unique, immutable identifier for the user (e.g., ID number, email, username). * `first_name`: User's first name. * `last_name`: User's last name. * `email`: User's email address. * `roles` (strongly recommended): An array of strings designating the user's roles (e.g., `admin`, `employee`, `notary`). If omitted, the default role of `employee` is assigned. ### Optional Attributes * `middle_name`: User's middle name. Recommended if users will be signing documents in a notarization transaction. * `name`: User's full name (e.g., "John Patrick Smith Jr."). * `organization_id`: A Proof organization ID. If specified, the user will be added to this org; otherwise, they'll be added to the org where SSO was configured. * `notary_state` (required if `roles` includes `notary`): The notary's state of operation (e.g., `AZ`). * `notary_languages` (required if `roles` includes `notary`): An array of strings representing languages spoken by the user (e.g., `[en]`, `[en, es]`). ### Attribute Details | Attribute Name | Attribute Key Case | Attribute Value Case | Attribute Description ``` -------------------------------- ### Retrieve Transaction Response Example - Proof API Source: https://dev.proof.com/docs/document-retrieval-and-archiving This JSON response from the Retrieve Transaction endpoint provides details about a completed transaction. Key fields for document retrieval include audit_trail_url and final_document_url for each document. ```json { "id": "ot_nbr86qb", "audit_trail_url": "https://463675841562-notarize-productionmirror-documents.s3.amazonaws.com/4c1ca084d6317e7ab1b7_AuditTrail.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAWX5J33QNAB7B5UMG%2F20231109%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20231109T202438Z&X-Amz-Expires=900&X-Amz-SignedHeaders=host&X-Amz-Signature=8ec57f72848dddc0bbf15f284e209f3ac4409851bd9dd0f4bf52ab761ff0bd1d", "date_created": "2023-10-11T15:32:59.991927Z", "date_updated": "2023-10-11T15:33:39.957143Z", "detailed_status": "complete", "documents": [ { "id": "do_b2be9ead-fe82-48b2-86c4-409bdb5e127e", "date_created": "2023-10-11T15:33:00.221405Z", "date_updated": "2023-10-11T15:33:39.682147Z", "document_name": "20231011-66-40i052.pdf", "final_document_url": "https://463675841562-notarize-productionmirror-documents.s3.amazonaws.com/finalized_documents/9987d38ffed478662d46_.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAWX5J33QNAB7B5UMG%2F20231109%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20231109T202438Z&X-Amz-Expires=900&X-Amz-SignedHeaders=host&X-Amz-Signature=67f01d7b1d446c19551b95915d50ff6067c35a2eb11a9ecaae80d0cd9edd819e" }, { "id": "do_1a718e6b-1c63-4679-9126-26754a4aa015", "date_created": "2023-10-11T15:33:11.459178Z", "date_updated": "2023-10-11T15:33:39.000000Z", "document_name": "dummy.pdf", "final_document_url": "https://463675841562-notarize-productionmirror-documents.s3.amazonaws.com/finalized_documents/9c4d0b4891d950ba2501_.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAWX5J33QNAB7B5UMG%2F20231109%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20231109T202438Z&X-Amz-Expires=900&X-Amz-SignedHeaders=host&X-Amz-Signature=44823192e04274c23020a58334fa82ff738c4cde38308866c09f198c676d5a2a" } ], "external_id": "123456", "organization_id": "or_nxz456n", "signer_info": { "email": "signer@example.com", "first_name": "Test", "last_name": "Signer" }, "signing_status": "complete" }, "signers": [ { "email": "signer@example.com", "first_name": "Test", "last_name": "Signer" }, "signing_status": "complete" } ], "status": "completed_with_rejections", "transaction_name": "Test Transaction" } ``` -------------------------------- ### Example Webhook Event Payload - Transaction Completed Source: https://dev.proof.com/docs/document-retrieval-and-archiving This JSON payload represents the event data received when a transaction is successfully completed, including any rejections. It contains the transaction ID necessary for further API calls. ```json { "event": "transaction.completed_with_rejections", "data": { "transaction_id": "ot_nbr86qb" } } ``` -------------------------------- ### Adding Field Instructions Source: https://dev.proof.com/docs/field-instructions This endpoint allows you to add 'instructions' to any designation (e.g., free text fields) when creating or updating a document. These instructions provide guidance to users on how to complete the field. ```APIDOC ## POST /websites/dev_proof/document ### Description This endpoint allows for the creation or update of documents, including the addition of field instructions to designations. ### Method POST ### Endpoint /websites/dev_proof/document ### Parameters #### Request Body - **signing_designations** (array) - Required - An array of signing designation objects. - **signer_identifier** (string) - Required - The identifier for the signer. - **type** (string) - Required - The type of designation (e.g., "free_text"). - **page_number** (integer) - Required - The page number where the designation is located. - **x** (integer) - Required - The X coordinate for the designation. - **y** (integer) - Required - The Y coordinate for the designation. - **height** (integer) - Optional - The height of the designation. - **width** (integer) - Optional - The width of the designation. - **hint** (string) - Optional - A short hint for the field. - **optional** (boolean) - Optional - Indicates if the field is optional. - **instruction** (string) - Optional - Detailed guidance for the signer or notary. Maximum 500 characters. ### Request Example ```json { "signing_designations": [ { "signer_identifier": "testsigner1", "type": "free_text", "page_number": 0, "x": 100, "y": 350, "height": 20, "width": 300, "hint": "What is your address?", "optional": false, "instruction": "Provide a residential mailing address - PO boxes are not acceptable." } ] } ``` ### Response #### Success Response (200) - **document_id** (string) - The ID of the created or updated document. - **status** (string) - The status of the document processing. #### Response Example ```json { "document_id": "doc_abc123", "status": "processed" } ``` ### Error Handling - **400 Bad Request**: Invalid input data or missing required fields. - **500 Internal Server Error**: An unexpected error occurred on the server. ``` -------------------------------- ### Add Document to Draft Transaction - JSON Source: https://dev.proof.com/docs/creating-an-esign-transaction Add a document to an existing draft transaction. This endpoint requires the transaction ID and the document details, including the resource URL, 'esign' requirement, and 'customer_can_annotate' set to true. ```json POST /transactions/ot_xxxxxxx/documents { "resource": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf", "requirement": "esign", "customer_can_annotate": true } ```