curl --request POST \
--url https://api.baselayer.com/lien_submissions/import \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"state": "IL",
"filing_number": "P98172",
"filing_name": "Acme Inc — 2023 equipment lien"
}
'import requests
url = "https://api.baselayer.com/lien_submissions/import"
payload = {
"state": "IL",
"filing_number": "P98172",
"filing_name": "Acme Inc — 2023 equipment lien"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
state: 'IL',
filing_number: 'P98172',
filing_name: 'Acme Inc — 2023 equipment lien'
})
};
fetch('https://api.baselayer.com/lien_submissions/import', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.baselayer.com/lien_submissions/import",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'state' => 'IL',
'filing_number' => 'P98172',
'filing_name' => 'Acme Inc — 2023 equipment lien'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.baselayer.com/lien_submissions/import"
payload := strings.NewReader("{\n \"state\": \"IL\",\n \"filing_number\": \"P98172\",\n \"filing_name\": \"Acme Inc — 2023 equipment lien\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.baselayer.com/lien_submissions/import")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"state\": \"IL\",\n \"filing_number\": \"P98172\",\n \"filing_name\": \"Acme Inc — 2023 equipment lien\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.baselayer.com/lien_submissions/import")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"state\": \"IL\",\n \"filing_number\": \"P98172\",\n \"filing_name\": \"Acme Inc — 2023 equipment lien\"\n}"
response = http.request(request)
puts response.read_body{
"reference_data": "Filing for a 1967 Ford Mustang",
"submission_filing_name": "My Lien Filing",
"search_to_reflect": true,
"email_contact": "<string>",
"real_estate_info": {
"type": "FILE_IN_REAL_ESTATE_RECORDS",
"covers_timber": true,
"covers_as_extracted_collateral": true,
"filed_as_fixture": true,
"real_estate_record_owner": {
"type": "ORGANIZATION",
"mailing_address": "123 Main St",
"city": "Springfield",
"state": "AL",
"postal_code": "62701",
"organization_name": "Acme Inc",
"organization_type": "SOLE_PROPRIETORSHIP"
},
"real_estate_description": "<string>"
},
"miscellaneous_info": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"filing_status": "Draft",
"filing_number": "UCC1-1234567890",
"filing_date": "2023-01-01",
"lapse_date": "2024-04-20",
"has_downloadable_document": false,
"origin": "filed_via_baselayer",
"filing_type": "UCC1",
"state": "IL",
"status": "Active",
"imported_unverified": false,
"debtors": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"role": "Debtor",
"name": "Louis Schneider",
"address": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"street": "913 Hendrix Gardens Suite 492",
"city": "Jasonfurt",
"state": "VA",
"zip": "19773",
"latitude": 38.03012,
"longitude": 78.47665,
"rdi": "Commercial",
"deliverable": false,
"cmra": false,
"url": "<string>",
"delivery_type": "STREET"
},
"type": "individual",
"mailing_address": "1 Market Street",
"city": "San Francisco",
"state": "CA",
"postal_code": "94105"
}
],
"secured_parties": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"role": "Debtor",
"name": "Louis Schneider",
"address": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"street": "913 Hendrix Gardens Suite 492",
"city": "Jasonfurt",
"state": "VA",
"zip": "19773",
"latitude": 38.03012,
"longitude": 78.47665,
"rdi": "Commercial",
"deliverable": false,
"cmra": false,
"url": "<string>",
"delivery_type": "STREET"
},
"type": "individual",
"mailing_address": "1 Market Street",
"city": "San Francisco",
"state": "CA",
"postal_code": "94105"
}
],
"amendments": [
{
"filing_number": "H76162",
"filing_type": "Notarized Letter",
"filing_date": "2023-11-27",
"number_of_pages": 4
}
]
}{
"code": 500,
"message": "Payment Required. Sandbox applications do not support this request.",
"metadata": {}
}{
"code": 1,
"message": "Could not locate the resource for the given URI.",
"metadata": {}
}{
"code": 489,
"message": "This lien filing is already held by the organization as a Baselayer filing.",
"metadata": {}
}{
"code": 490,
"message": "Only consensual lien filings can be imported. Statutory, judicial and tax liens are imposed on a debtor rather than granted by one, so they are not tracked as UCC financing statements.",
"metadata": {}
}Import Lien Filing Submission
Imports a lien that already exists in the public record, so an organization can track a filing it did not file through Baselayer alongside the ones it did.
The lien is identified by the state and filing number the filing office assigned it. An amendment’s filing number is accepted too and resolves to the initial financing statement it amends, because that is the filing the lien itself is identified by. Only consensual UCC filings can be imported: statutory, judicial and tax liens are imposed on a debtor rather than granted by one.
The filing number is matched against the spellings the filing is known to be ingested under (leading zeros, spacing), so the record returned carries the public record’s canonical filing number, which may differ from the one posted.
Nothing is filed and nothing is copied: the imported record links to the public filing, so its status, parties and amendment history are always the ones the jurisdiction currently reports. Imported filings cannot be updated, submitted, cancelled or amended — delete the import to give up the claim.
Importing the same lien twice is not an error: the existing record is
returned with a 200 OK instead of a 201 Created. A lien the
organization already filed through Baselayer is a 409 Conflict
instead — it is the same lien, and a second record would only drift
apart from the first.
Not available to sandbox applications: an import claims a filing that already exists in the public record, so there is nothing to simulate.
curl --request POST \
--url https://api.baselayer.com/lien_submissions/import \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"state": "IL",
"filing_number": "P98172",
"filing_name": "Acme Inc — 2023 equipment lien"
}
'import requests
url = "https://api.baselayer.com/lien_submissions/import"
payload = {
"state": "IL",
"filing_number": "P98172",
"filing_name": "Acme Inc — 2023 equipment lien"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
state: 'IL',
filing_number: 'P98172',
filing_name: 'Acme Inc — 2023 equipment lien'
})
};
fetch('https://api.baselayer.com/lien_submissions/import', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.baselayer.com/lien_submissions/import",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'state' => 'IL',
'filing_number' => 'P98172',
'filing_name' => 'Acme Inc — 2023 equipment lien'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.baselayer.com/lien_submissions/import"
payload := strings.NewReader("{\n \"state\": \"IL\",\n \"filing_number\": \"P98172\",\n \"filing_name\": \"Acme Inc — 2023 equipment lien\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.baselayer.com/lien_submissions/import")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"state\": \"IL\",\n \"filing_number\": \"P98172\",\n \"filing_name\": \"Acme Inc — 2023 equipment lien\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.baselayer.com/lien_submissions/import")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"state\": \"IL\",\n \"filing_number\": \"P98172\",\n \"filing_name\": \"Acme Inc — 2023 equipment lien\"\n}"
response = http.request(request)
puts response.read_body{
"reference_data": "Filing for a 1967 Ford Mustang",
"submission_filing_name": "My Lien Filing",
"search_to_reflect": true,
"email_contact": "<string>",
"real_estate_info": {
"type": "FILE_IN_REAL_ESTATE_RECORDS",
"covers_timber": true,
"covers_as_extracted_collateral": true,
"filed_as_fixture": true,
"real_estate_record_owner": {
"type": "ORGANIZATION",
"mailing_address": "123 Main St",
"city": "Springfield",
"state": "AL",
"postal_code": "62701",
"organization_name": "Acme Inc",
"organization_type": "SOLE_PROPRIETORSHIP"
},
"real_estate_description": "<string>"
},
"miscellaneous_info": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"filing_status": "Draft",
"filing_number": "UCC1-1234567890",
"filing_date": "2023-01-01",
"lapse_date": "2024-04-20",
"has_downloadable_document": false,
"origin": "filed_via_baselayer",
"filing_type": "UCC1",
"state": "IL",
"status": "Active",
"imported_unverified": false,
"debtors": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"role": "Debtor",
"name": "Louis Schneider",
"address": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"street": "913 Hendrix Gardens Suite 492",
"city": "Jasonfurt",
"state": "VA",
"zip": "19773",
"latitude": 38.03012,
"longitude": 78.47665,
"rdi": "Commercial",
"deliverable": false,
"cmra": false,
"url": "<string>",
"delivery_type": "STREET"
},
"type": "individual",
"mailing_address": "1 Market Street",
"city": "San Francisco",
"state": "CA",
"postal_code": "94105"
}
],
"secured_parties": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"role": "Debtor",
"name": "Louis Schneider",
"address": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"street": "913 Hendrix Gardens Suite 492",
"city": "Jasonfurt",
"state": "VA",
"zip": "19773",
"latitude": 38.03012,
"longitude": 78.47665,
"rdi": "Commercial",
"deliverable": false,
"cmra": false,
"url": "<string>",
"delivery_type": "STREET"
},
"type": "individual",
"mailing_address": "1 Market Street",
"city": "San Francisco",
"state": "CA",
"postal_code": "94105"
}
],
"amendments": [
{
"filing_number": "H76162",
"filing_type": "Notarized Letter",
"filing_date": "2023-11-27",
"number_of_pages": 4
}
]
}{
"code": 500,
"message": "Payment Required. Sandbox applications do not support this request.",
"metadata": {}
}{
"code": 1,
"message": "Could not locate the resource for the given URI.",
"metadata": {}
}{
"code": 489,
"message": "This lien filing is already held by the organization as a Baselayer filing.",
"metadata": {}
}{
"code": 490,
"message": "Only consensual lien filings can be imported. Statutory, judicial and tax liens are imposed on a debtor rather than granted by one, so they are not tracked as UCC financing statements.",
"metadata": {}
}Authorizations
Body
The request object identifying the lien filing to import.
The state abbreviation of the jurisdiction the lien is filed in.
AL, AK, AZ, AR, CA, CO, CT, DE, DC, FL, GA, HI, ID, IL, IN, IA, KS, KY, LA, ME, MD, MA, MI, MN, MS, MO, MT, NE, NV, NH, NJ, NM, NY, NC, ND, OH, OK, OR, PA, RI, SC, SD, TN, TX, UT, VT, VA, WA, WV, WI, WY, PR, VI, AE, AA, AP, GU, AS "IL"
The filing number assigned by the filing office. Both the initial financing statement and any of its amendments are accepted; an amendment resolves to the initial financing statement it amends.
1 - 64"P98172"
A custom name for the imported filing (only filer's reference).
128"Acme Inc — 2023 equipment lien"
Response
The organization had already imported this lien filing; the existing record is returned.