Early funds withdrawal
Relevant webhooks
For this endpoint be sure you have registered for this webhook:
- Core.TimeDeposit.Withdrawn
API reference
Requests to withdraw the funds from a time deposit (CD) account before the account reaches maturity. Depending on the setting of the waivePenaltyFee attribute, the penalty fee is either waived or not. If the penalty fee for early withdrawal is waived, it is as if the account owner performs a partial withdrawal of funds.
Actual withdrawal of the funds requires a transaction call, which will in turn trigger the Core.TimeDeposit.Withdrawn webhook event.
Endpoint: /core/v1/dda/accounts/{accountNumber}/time-deposit/early-withdraw
POST
https://sandbox.crbcos.com/core/v1/dda/accounts/{accountNumber}/time-deposit/early-withdraw
Path Parameters
- accountNumberstringrequiredDescription
Body Parameters
- waivePenaltyFeebooleanrequiredDescription
Response
- masterAccountNumberstringDescription
- statusstringDescription
- minFundingAmountintegerDescription
- maxFundingAmountintegerDescription
- autoClosebooleanDescription
- allowBumpUpbooleanDescription
- waivePenaltyFeebooleanDescription
- fundingDaysintegerDescription
- gracePeriodDaysintegerDescription
- currentRatenumberDescription
- maturityMonthsintegerDescription
- ratesobjectDescription
- monthsintegerDescription
- ratenumberDescription
- penaltiesobjectDescription
- monthsintegerDescription
- feeDaysintegerDescription
- fundingExpDatestringDescription
- fundingDatestringDescription
- startDatestringDescription
- depositAmountintegerDescription
- depositCurrencystringDescription
- maturityDatestringDescription
- earlyWithdrawnAtstringDescription
- rolloverDatestringDescription
- createdAtstringDescription
- productIdstringDescription
- partnerIdstringDescription
- lastModifiedAtstringDescription
curl
curl --location 'https://sandbox.crbcos.com/core/v1/dda/accounts/190432130358/time-deposit/early-withdraw' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"waivePenaltyFee": true
}'nodejs
var https = require('follow-redirects').https;
var fs = require('fs');
var options = {
'method': 'POST',
'hostname': 'sandbox.crbcos.com',
'path': '/core/v1/dda/accounts/190432130358/time-deposit/early-withdraw',
'headers': {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json'
},
'maxRedirects': 20
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
var postData = JSON.stringify({
"waivePenaltyFee": true
});
req.write(postData);
req.end();python
import http.client
import json
conn = http.client.HTTPSConnection("sandbox.crbcos.com")
payload = json.dumps({
"waivePenaltyFee": True
})
headers = {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json'
}
conn.request("POST", "/core/v1/dda/accounts/190432130358/time-deposit/early-withdraw", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))ruby
require "uri"
require "json"
require "net/http"
url = URI("https://sandbox.crbcos.com/core/v1/dda/accounts/190432130358/time-deposit/early-withdraw")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer <token>"
request["Content-Type"] = "application/json"
request.body = JSON.dump({
"waivePenaltyFee": true
})
response = https.request(request)
puts response.read_body
go
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.crbcos.com/core/v1/dda/accounts/190432130358/time-deposit/early-withdraw"
method := "POST"
payload := strings.NewReader(`{
"waivePenaltyFee": true
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := io.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}200
{
"timeDeposit": {
"masterAccountNumber": "190432130358",
"status": "EarlyWithdrawal",
"minFundingAmount": 50000,
"maxFundingAmount": 5000000,
"autoClose": false,
"allowBumpUp": false,
"waivePenaltyFee": true,
"fundingDays": 3,
"gracePeriodDays": 6,
"currentRate": 0.0,
"maturityMonths": 12,
"rates": [
{
"months": 3,
"rate": 4.00000
},
{
"months": 3,
"rate": 6.00000
},
{
"months": 3,
"rate": 8.00000
},
{
"months": 3,
"rate": 10.00000
}
],
"penalties": [
{
"months": 6,
"feeDays": 3
},
{
"months": 6,
"feeDays": 3
}
],
"fundingExpDate": "2025-07-03T00:00:00-04:00",
"fundingDate": "2025-07-01T00:00:00-04:00",
"startDate": "2025-07-01T00:00:00-04:00",
"depositAmount": 1000000,
"depositCurrency": "usd",
"maturityDate": "2026-06-30T00:00:00-04:00",
"earlyWithdrawnAt": "2025-07-02T03:21:07.3293384-04:00",
"rolloverDate": "2026-07-03T00:00:00-04:00",
"createdAt": "2025-06-30T03:57:49.4-04:00",
"productId": "be8300b4-1206-4cf9-8800-b30100b7a867",
"partnerId": "cd9c12f4-7691-424a-b38b-af5b0134c611",
"lastModifiedAt": "2025-07-02T03:21:07.3293384-04:00"
},
"penaltyAccountNumber": "00000098764",
"penaltyFeeAmount": 329
}