{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"664e5ca4-3785-056f-6f39-a66bddef4cdb","name":"lienwaivers.io API","description":"Welcome to the [lienwaivers.io](https://lienwaivers.io/?utm_source=postman&utm_medium=documentation&utm_campaign=api&utm_term=organic) API. You can use our API to:\n\n- Create lien waiver templates\n- Create lien waivers from templates\n- Send lien waivers out for electronic signature\n- Exchange a lien waiver for a payment\n- Send a payment\n\n# Overview\n\nAt the core of our API is the ability to create lien waiver documents and send those documents out for electronic signature. Our API provides an unified abstraction layer on top of the APIs from a number of electronic signature services to make it easier to programmatically create and populate reusable document templates, extract data entered by signers during the signing process, and receive notifications of the signing process.\n\nDocuments created by our API can also be distributed in paper form or email attachment, and tracked automatically through REST and SMTP endpoints.\n\nOur API also exposes a REST endpoint for identifying lien waivers that were created by external systems.\n\nIf that all sounds interesting, you can [request an API access key here](https://lienwaivers.io/developers/?utm_source=postman&utm_medium=documentation&utm_campaign=api&utm_term=organic&utm_content=request%20an%20API%20access%20key%20here).\n\n## A Note on Signature Providers\n\nOur system leverages third-party electronic signature and notarization providers. If your company has an existing relationship with a supported electronic signature provider, you can use our API to send documents through your own account and receive all the benefits of our API such as enhanced functionality, increased security, better error handling and more predictability.\n\nOur API currently supports HelloSign, PandaDoc, Eversign and DocuSign.\n\n# Authentication\n\nAll API requests must be signed using your API access key, which consists of an access key ID and a secret key. To sign a request, you first calculate a hash (digest) of the request. Then you use the hash value, some other information from the request, and your secret key to calculate another hash known as the signature. Then you add the signature to the request in one of the following ways:\n\n- Using the HTTP `Authorization:` header. We support `AWS4-HMAC-<algorithm> <signature>`, `AWS <access key ID>:<signature>`, `Basic base64(<secret key>):<empty password>` and `Bearer <secret key>`\n- Using the HTTP `X-API-Key: <secret key>` header.\n- Adding a query string value to the request. Because the signature is part of the URL in this case, this type of URL is called a presigned URL.\n\nFor compatiblity with existing REST clients and libraries, we support two signature versions: AWS [Signature Version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) and [Signature Version 2](https://docs.aws.amazon.com/general/latest/gr/signature-version-2.html).\n\n> [Postman has a number of bugs with their implementation of AWS Signature Version 4](https://github.com/postmanlabs/postman-app-support/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+aws). We recommend [Insomnia](https://insomnia.rest/?utm_source=lienwaiversio&utm_medium=documentation&utm_campaign=api&utm_term=organic) for a more delightful experience.\n\n## Live versus test mode\n\nThere is no \"switch\" for changing between modes. Instead our API uses the concept of platforms with associated access keys to separate live and test transactions.\n\n# Request Types\n\nOur API accepts multipart (`multipart/form-data`), URL-encoded (`application/x-www-form-urlencoded`) and JSON (`application/json`) requests. Be sure to set the `Content-Type:` header on the request.\n\n# Idempotent Requests\n\nOur API supports [idempotency](https://en.wikipedia.org/wiki/Idempotence) for safely retrying requests without accidentally performing the same operation twice. For example, if a request to send a document fails due to a network connection error, you can retry the request with the same idempotency key to prevent the API from attempting to resend the document.\n\nTo perform an idempotent request, attach a unique key to any `POST` request made to the API via the `Idempotency-Key:` header.\n\nHow you create unique keys is completely up to you. We suggest using random strings or UUIDs. We’ll return a `208 Already Reported` response for requests made with the same key.\n\nKeys expire after 24 hours.\n\n# Request IDs\n\nEach API request has an associated request identifier. You can find this value in the response headers, under the `Request-Id:` header. \n\n> If you need to contact us about a specific request, providing the request identifier will ensure the fastest possible resolution.\n\n# Request Parameter Types\n\nOur API documentation includes descriptions of parameters and their type.\n\n## Amounts in cents\n\nAmounts should be expressed as an integer in cents, e.g. \"$1,000.00\" should be expressed as \"100000\" cents.\n\n## Boolean values\n\nThe values \"1\", \"true\", \"on\" and \"yes\" are all interpreted as `true`. The values \"0\", \"false\", \"off\", \"no\", and no value are interpreted as `false`.\n\n## Fields\n\nField parameters generally support 5 attributes: \n\n- `name`\n    - Field name. Required.\n- `label`\n  - Label if field is editable. Optional.\n- `value`\n    - If provided when creating a template, sets the default value for the field. If provided when creating a document, sets/overrides the value for the field. Required when creating a document if template field is required and default value is not provided.\n- `editable`\n    - Indicates that a value for the document field is editable when sending a document. Optional; defaults to `false`.\n- `required`\n    - Indicates that a value for the template field is required when creating a document. Optional; defaults to `false`.\n\n## Lien waiver type\n\nMust be one of `partial_conditional`, `partial_unconditional`, `final_conditional` or `final_unconditional`.\n\n## Person, e.g. senders and signers\n\nPerson parameters generally support 3 attributes:\n\n- `email`\n    - Required.\n- `given_name`\n    - First name. Optional.\n- `family_name`\n    - Last name. Optional.\n\n## State\n\nLowercase [2+2-letter code from ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2). The [list of ISO 3166-2 codes for the US is here](https://en.wikipedia.org/wiki/ISO_3166-2:US).\n\n## Strings\n\nFree-form text, up to 191 characters.\n\n## Template types\n\nMust be one of `text/html`, `text/html+liquid`, `text/markdown`, `text/markdown+liquid`, `text/x-markdown` or `text/x-markdown+liquid`.\n\n# Template Syntax\n\nCurrently our API supports HTML (`text/html`), [Markdown](https://daringfireball.net/projects/markdown/syntax) (`text/markdown`) and [Markdown Extra](https://michelf.ca/projects/php-markdown/extra/) (`text/x-markdown`) syntax for both templates and documents.\n\nYou can embed [Liquid markup](http://shopify.github.io/liquid/) into templates and documents to enable variable substitution and transformation using the Liquid variant (`text/html+liquid`, `text/markdown+liquid`, `text/x-markdown+liquid`). Values for Liquid variables are set through the `fields` parameter when creating the template or document.\n\n## Signature tags\n\nOur API supports the following special tags for signatures.\n\n- `{{ checkbox }}`\n- `{{ date }}`\n- `{{ initials }}`\n- `{{ signature }}`\n\n## Transformations\n\nOur API supports all [Liquid standard filters](https://github.com/Shopify/liquid/wiki/Liquid-for-Designers#standard-filters). For example, use the following syntax to format a date: \n\n`{{ through-date | date: '%m/%d/%Y' }}`\n\n### Additional filters\n\n#### Currency\n\n- `{{ amount | USD }}`\n    - Formats the amount in cents to a dollar value, e.g. \"100001\" is formatted as \"$1,000.01\".\n- `{{ amount | USD: 'en_US' }}`\n    - Formats the amount in cents to its word representation, e.g. \"100001\" is formatted as \"One Thousand Dollars One Cent\".\n\n#### Numbers\n\n- `{{ number | en_US }}`\n    - Formats the integer number to its word representation, e.g. \"100001\" is formatted as \"One Hundred Thousand One\".\n\n# Metadata\n\nMost resources include an optional metadata property which can be used to store additional, structured information on a resource. For example, you could use metadata to associate a resource in the API to one or more resources within your own system. The metadata property can be a simple string, a number or even JSON.\n\nMetadata is not used by our API, and is stored encrypted on our servers.\n\n# Errors\n\nOur API uses conventional HTTP response codes to indicate the success or failure of an API request. In general, codes in the `2xx` range indicate success, codes in the `4xx` range indicate an error that failed given the information provided (e.g., a required parameter was omitted, a parameter is invalid, etc.), and codes in the `5xx` range indicate an error with our servers.\n","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"3645232","collectionId":"664e5ca4-3785-056f-6f39-a66bddef4cdb","publishedId":"7TRdVVG","public":true,"publicUrl":"https://developers.lienwaivers.io","privateUrl":"https://go.postman.co/documentation/3645232-664e5ca4-3785-056f-6f39-a66bddef4cdb","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"00B863"},"documentationLayout":"classic-double-column","version":"8.11.9","publishDate":"2018-02-08T18:47:24.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{},"logos":{}},"statusCode":200},"environments":[{"name":"API documentation.template","id":"880a3221-cdf8-bcad-0a38-9403abeb6784","owner":"3645232","values":[{"enabled":true,"key":"apiUrl","value":"https://api.lienwaivers.io","type":"text"},{"enabled":true,"key":"accessKeyId","value":"ak_123xyz","type":"text"},{"enabled":true,"key":"sender","value":"jack@example.com","type":"text"},{"enabled":true,"key":"signer","value":"jill@example.com","type":"text"},{"enabled":true,"key":"templateId","value":"te_123xyz","type":"text"},{"enabled":true,"key":"documentId","value":"do_123xyz","type":"text"},{"enabled":true,"key":"subscriptionId","value":"su_123xyz","type":"text"}],"published":true}],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/768118b36f06c94b0306958b980558e6915839447e859fe16906e29d683976f0","favicon":"https://lienwaivers.io/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"},{"label":"API documentation.template","value":"3645232-880a3221-cdf8-bcad-0a38-9403abeb6784"}],"canonicalUrl":"https://developers.lienwaivers.io/view/metadata/7TRdVVG"}