curl --request POST \
--url https://api.sandbox.lead.bank/v2/fundings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"user_credit_balance_id": "user_credit_balance_1HCpXwx2EK9oYluWbacgeCnFcLf",
"account_number_id": "account_number_xyz123",
"currency_code": "USD",
"amount": 1000000,
"metadata": {
"loan_id": "201681646780571"
}
}
'import requests
url = "https://api.sandbox.lead.bank/v2/fundings"
payload = {
"user_credit_balance_id": "user_credit_balance_1HCpXwx2EK9oYluWbacgeCnFcLf",
"account_number_id": "account_number_xyz123",
"currency_code": "USD",
"amount": 1000000,
"metadata": { "loan_id": "201681646780571" }
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
user_credit_balance_id: 'user_credit_balance_1HCpXwx2EK9oYluWbacgeCnFcLf',
account_number_id: 'account_number_xyz123',
currency_code: 'USD',
amount: 1000000,
metadata: {loan_id: '201681646780571'}
})
};
fetch('https://api.sandbox.lead.bank/v2/fundings', 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.sandbox.lead.bank/v2/fundings",
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([
'user_credit_balance_id' => 'user_credit_balance_1HCpXwx2EK9oYluWbacgeCnFcLf',
'account_number_id' => 'account_number_xyz123',
'currency_code' => 'USD',
'amount' => 1000000,
'metadata' => [
'loan_id' => '201681646780571'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Idempotency-Key: <idempotency-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.sandbox.lead.bank/v2/fundings"
payload := strings.NewReader("{\n \"user_credit_balance_id\": \"user_credit_balance_1HCpXwx2EK9oYluWbacgeCnFcLf\",\n \"account_number_id\": \"account_number_xyz123\",\n \"currency_code\": \"USD\",\n \"amount\": 1000000,\n \"metadata\": {\n \"loan_id\": \"201681646780571\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
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.sandbox.lead.bank/v2/fundings")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"user_credit_balance_id\": \"user_credit_balance_1HCpXwx2EK9oYluWbacgeCnFcLf\",\n \"account_number_id\": \"account_number_xyz123\",\n \"currency_code\": \"USD\",\n \"amount\": 1000000,\n \"metadata\": {\n \"loan_id\": \"201681646780571\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.lead.bank/v2/fundings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"user_credit_balance_id\": \"user_credit_balance_1HCpXwx2EK9oYluWbacgeCnFcLf\",\n \"account_number_id\": \"account_number_xyz123\",\n \"currency_code\": \"USD\",\n \"amount\": 1000000,\n \"metadata\": {\n \"loan_id\": \"201681646780571\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "funding_0o5Fs0EELR0fUjHjbCnEtdUwQe3",
"user_credit_balance_id": "user_credit_balance_1HCpXwx2EK9oYluWbacgeCnFcLf",
"account_number_id": "account_number_7Kq2Lm9PxR4sTvWyZaBcDeFgHiJk",
"currency_code": "USD",
"amount": 1000000,
"metadata": {
"loan_id": "201681646780571"
},
"core_transaction_id": null,
"status": "processing",
"rejection": {
"reason": "",
"details": ""
},
"created_at": "2026-09-17T11:01:36Z",
"updated_at": "2026-09-17T11:01:36Z"
}{
"code": "request_malformed",
"message": "The request is invalid and cannot be parsed by the server.",
"errors": [
{
"code": "payload_invalid",
"message": "The request body is not valid JSON."
}
]
}{
"code": "authentication_missing",
"message": "The request has no authentication credentials. Send your API token in the Authorization header.",
"errors": [
{
"code": "authentication_missing",
"message": "The Authorization header is missing. Send your API token as a bearer token.",
"parameters": [
"Authorization"
]
}
]
}{
"code": "object_not_found",
"message": "No object exists at the requested ID, or it is not visible to this caller."
}{
"code": "idempotency_key_in_use",
"message": "A concurrent request using this Idempotency-Key is still in flight."
}{
"code": "parameters_invalid",
"message": "One or more parameters are invalid.",
"errors": [
{
"code": "required",
"message": "account_number_id is required.",
"parameters": [
"account_number_id"
]
},
{
"code": "out_of_range",
"message": "amount must be greater than 0.",
"parameters": [
"amount"
]
}
]
}{
"code": "rate_limit_exceeded",
"message": "You have exceeded the rate limit for this endpoint. Retry with backoff."
}{
"code": "internal_server_error",
"message": "An unexpected error occurred. Contact support with the Request-Id header value."
}{
"code": "endpoint_disabled",
"message": "This endpoint is temporarily disabled. Retry after the interval given in the Retry-After header."
}{
"code": "gateway_timeout",
"message": "An upstream system did not respond in time. Retry with backoff."
}Create a Funding
Create a Funding to disburse principal from a User Credit Balance to an Account Number. The response returns the Funding with status: processing. See Funding Object for the checks Lead runs on create.
curl --request POST \
--url https://api.sandbox.lead.bank/v2/fundings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"user_credit_balance_id": "user_credit_balance_1HCpXwx2EK9oYluWbacgeCnFcLf",
"account_number_id": "account_number_xyz123",
"currency_code": "USD",
"amount": 1000000,
"metadata": {
"loan_id": "201681646780571"
}
}
'import requests
url = "https://api.sandbox.lead.bank/v2/fundings"
payload = {
"user_credit_balance_id": "user_credit_balance_1HCpXwx2EK9oYluWbacgeCnFcLf",
"account_number_id": "account_number_xyz123",
"currency_code": "USD",
"amount": 1000000,
"metadata": { "loan_id": "201681646780571" }
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
user_credit_balance_id: 'user_credit_balance_1HCpXwx2EK9oYluWbacgeCnFcLf',
account_number_id: 'account_number_xyz123',
currency_code: 'USD',
amount: 1000000,
metadata: {loan_id: '201681646780571'}
})
};
fetch('https://api.sandbox.lead.bank/v2/fundings', 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.sandbox.lead.bank/v2/fundings",
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([
'user_credit_balance_id' => 'user_credit_balance_1HCpXwx2EK9oYluWbacgeCnFcLf',
'account_number_id' => 'account_number_xyz123',
'currency_code' => 'USD',
'amount' => 1000000,
'metadata' => [
'loan_id' => '201681646780571'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Idempotency-Key: <idempotency-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.sandbox.lead.bank/v2/fundings"
payload := strings.NewReader("{\n \"user_credit_balance_id\": \"user_credit_balance_1HCpXwx2EK9oYluWbacgeCnFcLf\",\n \"account_number_id\": \"account_number_xyz123\",\n \"currency_code\": \"USD\",\n \"amount\": 1000000,\n \"metadata\": {\n \"loan_id\": \"201681646780571\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
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.sandbox.lead.bank/v2/fundings")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"user_credit_balance_id\": \"user_credit_balance_1HCpXwx2EK9oYluWbacgeCnFcLf\",\n \"account_number_id\": \"account_number_xyz123\",\n \"currency_code\": \"USD\",\n \"amount\": 1000000,\n \"metadata\": {\n \"loan_id\": \"201681646780571\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.lead.bank/v2/fundings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"user_credit_balance_id\": \"user_credit_balance_1HCpXwx2EK9oYluWbacgeCnFcLf\",\n \"account_number_id\": \"account_number_xyz123\",\n \"currency_code\": \"USD\",\n \"amount\": 1000000,\n \"metadata\": {\n \"loan_id\": \"201681646780571\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "funding_0o5Fs0EELR0fUjHjbCnEtdUwQe3",
"user_credit_balance_id": "user_credit_balance_1HCpXwx2EK9oYluWbacgeCnFcLf",
"account_number_id": "account_number_7Kq2Lm9PxR4sTvWyZaBcDeFgHiJk",
"currency_code": "USD",
"amount": 1000000,
"metadata": {
"loan_id": "201681646780571"
},
"core_transaction_id": null,
"status": "processing",
"rejection": {
"reason": "",
"details": ""
},
"created_at": "2026-09-17T11:01:36Z",
"updated_at": "2026-09-17T11:01:36Z"
}{
"code": "request_malformed",
"message": "The request is invalid and cannot be parsed by the server.",
"errors": [
{
"code": "payload_invalid",
"message": "The request body is not valid JSON."
}
]
}{
"code": "authentication_missing",
"message": "The request has no authentication credentials. Send your API token in the Authorization header.",
"errors": [
{
"code": "authentication_missing",
"message": "The Authorization header is missing. Send your API token as a bearer token.",
"parameters": [
"Authorization"
]
}
]
}{
"code": "object_not_found",
"message": "No object exists at the requested ID, or it is not visible to this caller."
}{
"code": "idempotency_key_in_use",
"message": "A concurrent request using this Idempotency-Key is still in flight."
}{
"code": "parameters_invalid",
"message": "One or more parameters are invalid.",
"errors": [
{
"code": "required",
"message": "account_number_id is required.",
"parameters": [
"account_number_id"
]
},
{
"code": "out_of_range",
"message": "amount must be greater than 0.",
"parameters": [
"amount"
]
}
]
}{
"code": "rate_limit_exceeded",
"message": "You have exceeded the rate limit for this endpoint. Retry with backoff."
}{
"code": "internal_server_error",
"message": "An unexpected error occurred. Contact support with the Request-Id header value."
}{
"code": "endpoint_disabled",
"message": "This endpoint is temporarily disabled. Retry after the interval given in the Retry-After header."
}{
"code": "gateway_timeout",
"message": "An upstream system did not respond in time. Retry with backoff."
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Idempotency key
5 - 255Body
ID of the User Credit Balance this funding draws against. The balance must be active; if it has an expected_maturity_date, that date must not be in the past.
64^user_credit_balance_\w+$"user_credit_balance_1HCpXwx2EK9oYluWbacgeCnFcLf"
The ID of the Lead Bank Account Number object.
^account_number_\w+$"account_number_xyz123"
A three-letter currency code as defined in ISO 4217.
USD "USD"
The total principal to disburse, in minor units. Must be greater than zero. For a non_revolving balance, the sum of this amount and all prior processing or posted fundings on the balance must not exceed its max_funding_amount.
x >= 11000000
Additional metadata associated with the funding.
{ "loan_id": "201681646780571" }
Response
The Funding object was accepted for processing.
Unique ID of the Funding object.
64^funding_\w+$"funding_0o5Fs0EELR0fUjHjbCnEtdUwQe3"
ID of the User Credit Balance this funding draws against.
64^user_credit_balance_\w+$"user_credit_balance_1HCpXwx2EK9oYluWbacgeCnFcLf"
The ID of the Lead Bank Account Number object.
^account_number_\w+$"account_number_xyz123"
A three-letter currency code as defined in ISO 4217.
USD "USD"
The total principal disbursed, in minor units.
x >= 11000000
ID of the Core Transaction that credited the destination balance. null until the funding is posted.
^core_transaction_.+~\d+$"core_transaction_5BIJT5QH8Qm2n1x~0"
The current status of the Funding object.
processing, posted, rejected "processing"
Object containing information relevant for cases where the Funding object is in a rejected status. When the object is not in a rejected status, fields will still be present with empty strings.
Show child attributes
Show child attributes
The ISO-8601 timestamp at which the Funding object was created.
"2026-09-17T11:01:36Z"
The ISO-8601 timestamp at which the Funding object was last updated.
"2026-09-17T11:05:00Z"
Additional metadata associated with the funding.
{ "loan_id": "201681646780571" }
Was this page helpful?

