curl --request POST \
--url https://api.casexchange.com/api/public/v1/referrals/{id}/begin-closing \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"reason": "<string>",
"closureReason": "<string>",
"settlementAmount": 500000000,
"clientFeeAgreementPercentage": 0.5,
"attorneyFees": 500000000,
"estimatedDistributionDate": "2023-12-25"
}
'import requests
url = "https://api.casexchange.com/api/public/v1/referrals/{id}/begin-closing"
payload = {
"reason": "<string>",
"closureReason": "<string>",
"settlementAmount": 500000000,
"clientFeeAgreementPercentage": 0.5,
"attorneyFees": 500000000,
"estimatedDistributionDate": "2023-12-25"
}
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({
reason: '<string>',
closureReason: '<string>',
settlementAmount: 500000000,
clientFeeAgreementPercentage: 0.5,
attorneyFees: 500000000,
estimatedDistributionDate: '2023-12-25'
})
};
fetch('https://api.casexchange.com/api/public/v1/referrals/{id}/begin-closing', 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.casexchange.com/api/public/v1/referrals/{id}/begin-closing",
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([
'reason' => '<string>',
'closureReason' => '<string>',
'settlementAmount' => 500000000,
'clientFeeAgreementPercentage' => 0.5,
'attorneyFees' => 500000000,
'estimatedDistributionDate' => '2023-12-25'
]),
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.casexchange.com/api/public/v1/referrals/{id}/begin-closing"
payload := strings.NewReader("{\n \"reason\": \"<string>\",\n \"closureReason\": \"<string>\",\n \"settlementAmount\": 500000000,\n \"clientFeeAgreementPercentage\": 0.5,\n \"attorneyFees\": 500000000,\n \"estimatedDistributionDate\": \"2023-12-25\"\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.casexchange.com/api/public/v1/referrals/{id}/begin-closing")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"reason\": \"<string>\",\n \"closureReason\": \"<string>\",\n \"settlementAmount\": 500000000,\n \"clientFeeAgreementPercentage\": 0.5,\n \"attorneyFees\": 500000000,\n \"estimatedDistributionDate\": \"2023-12-25\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.casexchange.com/api/public/v1/referrals/{id}/begin-closing")
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 \"reason\": \"<string>\",\n \"closureReason\": \"<string>\",\n \"settlementAmount\": 500000000,\n \"clientFeeAgreementPercentage\": 0.5,\n \"attorneyFees\": 500000000,\n \"estimatedDistributionDate\": \"2023-12-25\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"referenceNumber": "<string>",
"status": "draft",
"closingStatus": "won_settled",
"payoutType": "lump_sum",
"closureReason": "<string>",
"referringFirmId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"referentFirmId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"settlementAmount": 500000000,
"attorneyFees": 500000000,
"projectedSettlementAmount": 500000000,
"estimatedDateOfResolution": "2023-11-07T05:31:56Z",
"estimatedDistributionDate": "2023-11-07T05:31:56Z",
"statuteOfLimitationsExpiration": "2023-11-07T05:31:56Z",
"clientFeeAgreementPercentage": 0.5,
"sendingFirmPercentage": 50,
"netFeeToSendingFirm": 123,
"netFeeToHandlingFirm": 123,
"resolutionDate": "2023-11-07T05:31:56Z",
"closedDate": "2023-11-07T05:31:56Z",
"leadAttorneyName": "<string>",
"warmTransferSuccessful": true,
"warmTransferUnsuccessfulReason": "<string>",
"warmTransferUnsuccessfulReasonType": "FIRM_UNABLE_TO_ANSWER",
"phase": "<string>",
"notes": "<string>",
"isRetainerSigned": true,
"customFields": [
{
"fieldId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"fieldName": "<string>",
"displayName": "<string>",
"fieldType": "<string>",
"value": "<string>"
}
],
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
},
"meta": {
"requestId": "req_f2dbe1d3f6ad4a7bb5b4c9f2",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"meta": {
"requestId": "req_f2dbe1d3f6ad4a7bb5b4c9f2",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"meta": {
"requestId": "req_f2dbe1d3f6ad4a7bb5b4c9f2",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"meta": {
"requestId": "req_f2dbe1d3f6ad4a7bb5b4c9f2",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"meta": {
"requestId": "req_f2dbe1d3f6ad4a7bb5b4c9f2",
"timestamp": "2023-11-07T05:31:56Z"
}
}Begin closing
Transitions a SIGNED or IN_LITIGATION referral to CLOSING and records the outcome. reason is stored as the status-history note. When both are supplied, attorneyFees must not exceed settlementAmount. Only the receiving firm may do this. Requires STANDARD tier.
curl --request POST \
--url https://api.casexchange.com/api/public/v1/referrals/{id}/begin-closing \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"reason": "<string>",
"closureReason": "<string>",
"settlementAmount": 500000000,
"clientFeeAgreementPercentage": 0.5,
"attorneyFees": 500000000,
"estimatedDistributionDate": "2023-12-25"
}
'import requests
url = "https://api.casexchange.com/api/public/v1/referrals/{id}/begin-closing"
payload = {
"reason": "<string>",
"closureReason": "<string>",
"settlementAmount": 500000000,
"clientFeeAgreementPercentage": 0.5,
"attorneyFees": 500000000,
"estimatedDistributionDate": "2023-12-25"
}
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({
reason: '<string>',
closureReason: '<string>',
settlementAmount: 500000000,
clientFeeAgreementPercentage: 0.5,
attorneyFees: 500000000,
estimatedDistributionDate: '2023-12-25'
})
};
fetch('https://api.casexchange.com/api/public/v1/referrals/{id}/begin-closing', 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.casexchange.com/api/public/v1/referrals/{id}/begin-closing",
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([
'reason' => '<string>',
'closureReason' => '<string>',
'settlementAmount' => 500000000,
'clientFeeAgreementPercentage' => 0.5,
'attorneyFees' => 500000000,
'estimatedDistributionDate' => '2023-12-25'
]),
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.casexchange.com/api/public/v1/referrals/{id}/begin-closing"
payload := strings.NewReader("{\n \"reason\": \"<string>\",\n \"closureReason\": \"<string>\",\n \"settlementAmount\": 500000000,\n \"clientFeeAgreementPercentage\": 0.5,\n \"attorneyFees\": 500000000,\n \"estimatedDistributionDate\": \"2023-12-25\"\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.casexchange.com/api/public/v1/referrals/{id}/begin-closing")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"reason\": \"<string>\",\n \"closureReason\": \"<string>\",\n \"settlementAmount\": 500000000,\n \"clientFeeAgreementPercentage\": 0.5,\n \"attorneyFees\": 500000000,\n \"estimatedDistributionDate\": \"2023-12-25\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.casexchange.com/api/public/v1/referrals/{id}/begin-closing")
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 \"reason\": \"<string>\",\n \"closureReason\": \"<string>\",\n \"settlementAmount\": 500000000,\n \"clientFeeAgreementPercentage\": 0.5,\n \"attorneyFees\": 500000000,\n \"estimatedDistributionDate\": \"2023-12-25\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"referenceNumber": "<string>",
"status": "draft",
"closingStatus": "won_settled",
"payoutType": "lump_sum",
"closureReason": "<string>",
"referringFirmId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"referentFirmId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"settlementAmount": 500000000,
"attorneyFees": 500000000,
"projectedSettlementAmount": 500000000,
"estimatedDateOfResolution": "2023-11-07T05:31:56Z",
"estimatedDistributionDate": "2023-11-07T05:31:56Z",
"statuteOfLimitationsExpiration": "2023-11-07T05:31:56Z",
"clientFeeAgreementPercentage": 0.5,
"sendingFirmPercentage": 50,
"netFeeToSendingFirm": 123,
"netFeeToHandlingFirm": 123,
"resolutionDate": "2023-11-07T05:31:56Z",
"closedDate": "2023-11-07T05:31:56Z",
"leadAttorneyName": "<string>",
"warmTransferSuccessful": true,
"warmTransferUnsuccessfulReason": "<string>",
"warmTransferUnsuccessfulReasonType": "FIRM_UNABLE_TO_ANSWER",
"phase": "<string>",
"notes": "<string>",
"isRetainerSigned": true,
"customFields": [
{
"fieldId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"fieldName": "<string>",
"displayName": "<string>",
"fieldType": "<string>",
"value": "<string>"
}
],
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
},
"meta": {
"requestId": "req_f2dbe1d3f6ad4a7bb5b4c9f2",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"meta": {
"requestId": "req_f2dbe1d3f6ad4a7bb5b4c9f2",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"meta": {
"requestId": "req_f2dbe1d3f6ad4a7bb5b4c9f2",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"meta": {
"requestId": "req_f2dbe1d3f6ad4a7bb5b4c9f2",
"timestamp": "2023-11-07T05:31:56Z"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
},
"meta": {
"requestId": "req_f2dbe1d3f6ad4a7bb5b4c9f2",
"timestamp": "2023-11-07T05:31:56Z"
}
}Authorizations
Public API key: cxp_<hex> (firm-scoped) or cxpp_<hex> (provider-scoped). Required on every request.
Path Parameters
Resource UUID
Body
Outcome type (case-insensitive)
won_settled, lost, no_longer_pursuing Optional note recorded on the resulting status-history entry. Line breaks are collapsed to spaces.
1 - 5000Narrative closure reason stored on the referral
1 - 5000Final settlement amount in dollars; must be greater than zero when supplied
0 < x <= 1000000000Client fee agreement as a FRACTION of the settlement, 0–1 (0.3333 = 33.33%). Not a whole percent — contrast with sendingFirmPercentage.
0 <= x <= 1Attorney fees in dollars
0 <= x <= 1000000000YYYY-MM-DD
lump_sum, structured, hybrid, other Response
Updated referral
A referral as seen by either party. Referral-level fields only (financials, resolution, workflow) — client and case details live on the parent case. When the caller is the receiving firm and the referral is still SENT (not yet acknowledged), leadAttorneyName, warmTransferUnsuccessfulReason, warmTransferUnsuccessfulReasonType and notes are null and customFields is empty.
Show child attributes
Show child attributes
Show child attributes
Show child attributes

