curl --request POST \
--url https://api.example.com/v1/cases/{case_id}/transfers \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"bank_account_id": "01K6BA01AJ9T66HRYE78AN7PQR",
"amount": 15230.5,
"estate_account_id": "01K6BA07XJ9T66HRYE78AN7EST",
"notes": "Requested after Letters Testamentary were accepted."
}
'import requests
url = "https://api.example.com/v1/cases/{case_id}/transfers"
payload = {
"bank_account_id": "01K6BA01AJ9T66HRYE78AN7PQR",
"amount": 15230.5,
"estate_account_id": "01K6BA07XJ9T66HRYE78AN7EST",
"notes": "Requested after Letters Testamentary were accepted."
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
bank_account_id: '01K6BA01AJ9T66HRYE78AN7PQR',
amount: 15230.5,
estate_account_id: '01K6BA07XJ9T66HRYE78AN7EST',
notes: 'Requested after Letters Testamentary were accepted.'
})
};
fetch('https://api.example.com/v1/cases/{case_id}/transfers', 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.example.com/v1/cases/{case_id}/transfers",
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([
'bank_account_id' => '01K6BA01AJ9T66HRYE78AN7PQR',
'amount' => 15230.5,
'estate_account_id' => '01K6BA07XJ9T66HRYE78AN7EST',
'notes' => 'Requested after Letters Testamentary were accepted.'
]),
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.example.com/v1/cases/{case_id}/transfers"
payload := strings.NewReader("{\n \"bank_account_id\": \"01K6BA01AJ9T66HRYE78AN7PQR\",\n \"amount\": 15230.5,\n \"estate_account_id\": \"01K6BA07XJ9T66HRYE78AN7EST\",\n \"notes\": \"Requested after Letters Testamentary were accepted.\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.example.com/v1/cases/{case_id}/transfers")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"bank_account_id\": \"01K6BA01AJ9T66HRYE78AN7PQR\",\n \"amount\": 15230.5,\n \"estate_account_id\": \"01K6BA07XJ9T66HRYE78AN7EST\",\n \"notes\": \"Requested after Letters Testamentary were accepted.\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/cases/{case_id}/transfers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"bank_account_id\": \"01K6BA01AJ9T66HRYE78AN7PQR\",\n \"amount\": 15230.5,\n \"estate_account_id\": \"01K6BA07XJ9T66HRYE78AN7EST\",\n \"notes\": \"Requested after Letters Testamentary were accepted.\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "01K9TR01AJ0T55HRYE78AN7TRF",
"case_id": "01K5WF06MJ6T99HRYE78AN7XM8",
"bank_account_id": "01K6BA01AJ9T66HRYE78AN7PQR",
"estate_account_id": "01K6BA07XJ9T66HRYE78AN7EST",
"method": "ach_debit",
"amount_requested": 15230.5,
"amount_settled": null,
"currency": "USD",
"status": "in_transit",
"status_reason": null,
"return_code": null,
"requested_by": "01K8PU01AJ0T77HRYE78AN7AAA",
"requested_at": "2026-08-24T14:10:00Z",
"submitted_at": "2026-08-24T21:00:00Z",
"expected_settlement_date": "2026-08-27",
"settled_at": null,
"trace_number": "021000020000001",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}{
"error": {
"code": "forbidden",
"message": "You do not have permission to access this resource."
}
}{
"error": {
"code": "not_found",
"message": "The requested resource was not found."
}
}{
"error": {
"code": "idempotency_conflict",
"message": "A different request body was sent with the same Idempotency-Key."
}
}{
"error": {
"code": "transfer_not_eligible",
"message": "This account is not approved for Instant Inheritance."
}
}Request a transfer
Request an Instant Inheritance transfer from an eligible bank account into the case’s estate account.
The bank account must already be eligible — read the instant_inheritance summary on the
bank account first. Requesting a transfer on an account that is not eligible returns 422.
Only one transfer may be in flight per bank account. Send an Idempotency-Key header so a retried
request never moves money twice.
curl --request POST \
--url https://api.example.com/v1/cases/{case_id}/transfers \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"bank_account_id": "01K6BA01AJ9T66HRYE78AN7PQR",
"amount": 15230.5,
"estate_account_id": "01K6BA07XJ9T66HRYE78AN7EST",
"notes": "Requested after Letters Testamentary were accepted."
}
'import requests
url = "https://api.example.com/v1/cases/{case_id}/transfers"
payload = {
"bank_account_id": "01K6BA01AJ9T66HRYE78AN7PQR",
"amount": 15230.5,
"estate_account_id": "01K6BA07XJ9T66HRYE78AN7EST",
"notes": "Requested after Letters Testamentary were accepted."
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
bank_account_id: '01K6BA01AJ9T66HRYE78AN7PQR',
amount: 15230.5,
estate_account_id: '01K6BA07XJ9T66HRYE78AN7EST',
notes: 'Requested after Letters Testamentary were accepted.'
})
};
fetch('https://api.example.com/v1/cases/{case_id}/transfers', 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.example.com/v1/cases/{case_id}/transfers",
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([
'bank_account_id' => '01K6BA01AJ9T66HRYE78AN7PQR',
'amount' => 15230.5,
'estate_account_id' => '01K6BA07XJ9T66HRYE78AN7EST',
'notes' => 'Requested after Letters Testamentary were accepted.'
]),
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.example.com/v1/cases/{case_id}/transfers"
payload := strings.NewReader("{\n \"bank_account_id\": \"01K6BA01AJ9T66HRYE78AN7PQR\",\n \"amount\": 15230.5,\n \"estate_account_id\": \"01K6BA07XJ9T66HRYE78AN7EST\",\n \"notes\": \"Requested after Letters Testamentary were accepted.\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.example.com/v1/cases/{case_id}/transfers")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"bank_account_id\": \"01K6BA01AJ9T66HRYE78AN7PQR\",\n \"amount\": 15230.5,\n \"estate_account_id\": \"01K6BA07XJ9T66HRYE78AN7EST\",\n \"notes\": \"Requested after Letters Testamentary were accepted.\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/cases/{case_id}/transfers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"bank_account_id\": \"01K6BA01AJ9T66HRYE78AN7PQR\",\n \"amount\": 15230.5,\n \"estate_account_id\": \"01K6BA07XJ9T66HRYE78AN7EST\",\n \"notes\": \"Requested after Letters Testamentary were accepted.\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "01K9TR01AJ0T55HRYE78AN7TRF",
"case_id": "01K5WF06MJ6T99HRYE78AN7XM8",
"bank_account_id": "01K6BA01AJ9T66HRYE78AN7PQR",
"estate_account_id": "01K6BA07XJ9T66HRYE78AN7EST",
"method": "ach_debit",
"amount_requested": 15230.5,
"amount_settled": null,
"currency": "USD",
"status": "in_transit",
"status_reason": null,
"return_code": null,
"requested_by": "01K8PU01AJ0T77HRYE78AN7AAA",
"requested_at": "2026-08-24T14:10:00Z",
"submitted_at": "2026-08-24T21:00:00Z",
"expected_settlement_date": "2026-08-27",
"settled_at": null,
"trace_number": "021000020000001",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}{
"error": {
"code": "forbidden",
"message": "You do not have permission to access this resource."
}
}{
"error": {
"code": "not_found",
"message": "The requested resource was not found."
}
}{
"error": {
"code": "idempotency_conflict",
"message": "A different request body was sent with the same Idempotency-Key."
}
}{
"error": {
"code": "transfer_not_eligible",
"message": "This account is not approved for Instant Inheritance."
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Unique key to ensure idempotent POST requests. If a request with the same key was already processed, the original response is returned. Keys expire after 24 hours.
255Path Parameters
Unique case identifier (ULID format).
Body
Bank account to pull from. Must have instant_inheritance.eligibility of eligible.
"01K6BA01AJ9T66HRYE78AN7PQR"
Amount to transfer. Omit to transfer the full confirmed available balance.
Must not exceed max_transfer_amount.
15230.5
Destination estate account. Defaults to the case's primary estate account.
"01K6BA07XJ9T66HRYE78AN7EST"
Internal note stored on the transfer record.
"Requested after Letters Testamentary were accepted."
Response
Transfer requested.
An Instant Inheritance transfer pulling funds from a deceased account holder's bank account into the case's estate account.
Show child attributes
Show child attributes

