curl --request PUT \
--url https://api.lendflow.com/api/applications/{application_id}/placements/status \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"placement_id": "architecto",
"status": 1,
"stage_id": "a4855dc5-0acb-33c3-b921-f4291f719ca0",
"decline_reason_id": 16,
"decline_subreason_id": 16,
"decline_reason": "architecto"
}
'import requests
url = "https://api.lendflow.com/api/applications/{application_id}/placements/status"
payload = {
"placement_id": "architecto",
"status": 1,
"stage_id": "a4855dc5-0acb-33c3-b921-f4291f719ca0",
"decline_reason_id": 16,
"decline_subreason_id": 16,
"decline_reason": "architecto"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
placement_id: 'architecto',
status: 1,
stage_id: 'a4855dc5-0acb-33c3-b921-f4291f719ca0',
decline_reason_id: 16,
decline_subreason_id: 16,
decline_reason: 'architecto'
})
};
fetch('https://api.lendflow.com/api/applications/{application_id}/placements/status', 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.lendflow.com/api/applications/{application_id}/placements/status",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'placement_id' => 'architecto',
'status' => 1,
'stage_id' => 'a4855dc5-0acb-33c3-b921-f4291f719ca0',
'decline_reason_id' => 16,
'decline_subreason_id' => 16,
'decline_reason' => 'architecto'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.lendflow.com/api/applications/{application_id}/placements/status"
payload := strings.NewReader("{\n \"placement_id\": \"architecto\",\n \"status\": 1,\n \"stage_id\": \"a4855dc5-0acb-33c3-b921-f4291f719ca0\",\n \"decline_reason_id\": 16,\n \"decline_subreason_id\": 16,\n \"decline_reason\": \"architecto\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.put("https://api.lendflow.com/api/applications/{application_id}/placements/status")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"placement_id\": \"architecto\",\n \"status\": 1,\n \"stage_id\": \"a4855dc5-0acb-33c3-b921-f4291f719ca0\",\n \"decline_reason_id\": 16,\n \"decline_subreason_id\": 16,\n \"decline_reason\": \"architecto\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lendflow.com/api/applications/{application_id}/placements/status")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"placement_id\": \"architecto\",\n \"status\": 1,\n \"stage_id\": \"a4855dc5-0acb-33c3-b921-f4291f719ca0\",\n \"decline_reason_id\": 16,\n \"decline_subreason_id\": 16,\n \"decline_reason\": \"architecto\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"placement_id": null,
"application_id": "c3046b91-3ed2-4766-923a-89b9bf613380",
"tracking": "",
"status": null,
"decline_reason": null,
"decline_reason_id": null,
"decline_subreason_id": null,
"method": 1,
"product_id": 1,
"created_at": null,
"updated_at": null,
"resubmitted_at": null,
"is_client_funded": null,
"can_send_files": false,
"can_resubmit": false,
"via_automation": false,
"submission_path": null,
"reference_workflow_status": null,
"reference_workflow_sub_status": null,
"reference_workflow_status_color": null,
"origin_offer_template_id": "01958b10-0d3c-73d4-99a1-148aece7409d",
"origin_offer_template": {
"id": "01958b10-0d3c-73d4-99a1-148aece7409d",
"name": "ARLOC",
"description": null,
"product": "arloc",
"is_enabled": true,
"is_default": true,
"is_fallback": true,
"funder_id": null,
"client_id": null,
"created_at": "2025-03-12T15:53:59.000000Z",
"updated_at": "2026-10-08T15:42:24.000000Z"
},
"destinations": [
{
"workflow_template_id": null,
"offer_template_id": "01958b10-0d3c-73d4-99a1-148aece7409d",
"offer_template": {
"id": "01958b10-0d3c-73d4-99a1-148aece7409d",
"name": "ARLOC",
"description": null,
"product": "arloc",
"is_enabled": true,
"is_default": true,
"is_fallback": true,
"funder_id": null,
"client_id": null,
"created_at": "2025-03-12T15:53:59.000000Z",
"updated_at": "2026-10-08T15:42:24.000000Z"
}
}
],
"url": null
}
}Update Lender Placement Status
Moves a placement to a new status. Declining a placement records the decline reason and retracts any offers the funder extended.
curl --request PUT \
--url https://api.lendflow.com/api/applications/{application_id}/placements/status \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"placement_id": "architecto",
"status": 1,
"stage_id": "a4855dc5-0acb-33c3-b921-f4291f719ca0",
"decline_reason_id": 16,
"decline_subreason_id": 16,
"decline_reason": "architecto"
}
'import requests
url = "https://api.lendflow.com/api/applications/{application_id}/placements/status"
payload = {
"placement_id": "architecto",
"status": 1,
"stage_id": "a4855dc5-0acb-33c3-b921-f4291f719ca0",
"decline_reason_id": 16,
"decline_subreason_id": 16,
"decline_reason": "architecto"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
placement_id: 'architecto',
status: 1,
stage_id: 'a4855dc5-0acb-33c3-b921-f4291f719ca0',
decline_reason_id: 16,
decline_subreason_id: 16,
decline_reason: 'architecto'
})
};
fetch('https://api.lendflow.com/api/applications/{application_id}/placements/status', 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.lendflow.com/api/applications/{application_id}/placements/status",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'placement_id' => 'architecto',
'status' => 1,
'stage_id' => 'a4855dc5-0acb-33c3-b921-f4291f719ca0',
'decline_reason_id' => 16,
'decline_subreason_id' => 16,
'decline_reason' => 'architecto'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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.lendflow.com/api/applications/{application_id}/placements/status"
payload := strings.NewReader("{\n \"placement_id\": \"architecto\",\n \"status\": 1,\n \"stage_id\": \"a4855dc5-0acb-33c3-b921-f4291f719ca0\",\n \"decline_reason_id\": 16,\n \"decline_subreason_id\": 16,\n \"decline_reason\": \"architecto\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.put("https://api.lendflow.com/api/applications/{application_id}/placements/status")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"placement_id\": \"architecto\",\n \"status\": 1,\n \"stage_id\": \"a4855dc5-0acb-33c3-b921-f4291f719ca0\",\n \"decline_reason_id\": 16,\n \"decline_subreason_id\": 16,\n \"decline_reason\": \"architecto\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lendflow.com/api/applications/{application_id}/placements/status")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"placement_id\": \"architecto\",\n \"status\": 1,\n \"stage_id\": \"a4855dc5-0acb-33c3-b921-f4291f719ca0\",\n \"decline_reason_id\": 16,\n \"decline_subreason_id\": 16,\n \"decline_reason\": \"architecto\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"placement_id": null,
"application_id": "c3046b91-3ed2-4766-923a-89b9bf613380",
"tracking": "",
"status": null,
"decline_reason": null,
"decline_reason_id": null,
"decline_subreason_id": null,
"method": 1,
"product_id": 1,
"created_at": null,
"updated_at": null,
"resubmitted_at": null,
"is_client_funded": null,
"can_send_files": false,
"can_resubmit": false,
"via_automation": false,
"submission_path": null,
"reference_workflow_status": null,
"reference_workflow_sub_status": null,
"reference_workflow_status_color": null,
"origin_offer_template_id": "01958b10-0d3c-73d4-99a1-148aece7409d",
"origin_offer_template": {
"id": "01958b10-0d3c-73d4-99a1-148aece7409d",
"name": "ARLOC",
"description": null,
"product": "arloc",
"is_enabled": true,
"is_default": true,
"is_fallback": true,
"funder_id": null,
"client_id": null,
"created_at": "2025-03-12T15:53:59.000000Z",
"updated_at": "2026-10-08T15:42:24.000000Z"
},
"destinations": [
{
"workflow_template_id": null,
"offer_template_id": "01958b10-0d3c-73d4-99a1-148aece7409d",
"offer_template": {
"id": "01958b10-0d3c-73d4-99a1-148aece7409d",
"name": "ARLOC",
"description": null,
"product": "arloc",
"is_enabled": true,
"is_default": true,
"is_fallback": true,
"funder_id": null,
"client_id": null,
"created_at": "2025-03-12T15:53:59.000000Z",
"updated_at": "2026-10-08T15:42:24.000000Z"
}
}
],
"url": null
}
}Authorizations
You can register for a new Lendflow API key on our client portal in less than 60 seconds. The Bearer Token needs to be included in all API requests made to the API Service in the following form:
Path Parameters
The ID of the application.
Body
Placement ID. Must match an existing stored value.
"architecto"
Status numeric value: 1 (Pending), 2 (Declined), 3 (Approved), 4 (Error), 5 (Queued), 6 (Duplicate), 7 (Pending - Review), 8 (Pending - Missing Info or Docs).
1, 2, 3, 4, 5, 6, 7, 8 1
Workflow placement stage ID. list_application_workflow_stages returns the application's stages with their types, and this is the id of the one whose type is "placement". The placement must belong to an application whose workflow has a placement stage. Must be a valid UUID.
"a4855dc5-0acb-33c3-b921-f4291f719ca0"
Decline reason ID. Required when the status is Declined. This field is required when status is 2. Must match an existing stored value.
16
Optional decline subreason ID. Must match an existing stored value.
16
Optional decline reason.
"architecto"
Response
Show child attributes
Show child attributes
Was this page helpful?