---
title: Withdraw CD funds early
slug: tutorials/api/accounts/withdraw-cd-funds-early
description: Demonstrates requesting an early withdrawal and determining how much to withdraw from the account after the penalty fee is deducted



docTags: 
createdAt: 2024-08-08T12:00:22.790Z
---

## What you will learn

✅ How to request early withdrawal

✅ How to etermine how much to withdraw from the account after the penalty fee is deducted

:::hint{type="info"}
This tutorial assumes you have a knowledge of APIs and how they work. For more information on sending API calls, see [API basics](docId\:pUTTCwQ5SKLzxYzIn5D1b).

Learn more about [CDs](docId\:waCTNKIkSMBfK0rigKvrC).&#x20;
:::

The tutorial uses these endpoints:

| API                                                                                                          | Description                                                         |
| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------- |
| [POST /core/v1/dda/accounts/&#x7B;accountNumber}/time-deposit/early-withdraw](docId\:bHeqF948uoL69C872O299)  | This endpoint requests early withdrawal from a time deposit account |
| GET /core/v1/accounts/&#x7B;accountNumber}                                                                   | This endpoint queries a specific account for information about it   |

## Before you begin

Make sure you have:

- [API credentials](docId\:wmg-1Fqwq3bj-D3c3HFfs)&#x20;
- Account number
- [Registered](docId\:BN5XtgkJogBe-CtwomCbS)  for the following webhook event:

| Webhook                       | Description                                                                  |
| ----------------------------- | ---------------------------------------------------------------------------- |
| `Core.TimeDeposit.Withdrawn ` | Shows information about the account the early withdrawal request was made to |

## Request time deposit early withdrawal

Before an account holder can actually withdraw funds from a time account that hasn't reached maturity, you have to make a request (for the account holder) to make that early withdrawal.

&#x20;In the request you also indicate if the withdrawal will trigger a penalty fee or not. Cross River charges a penalty fee for early withdrawal, although in some cases it can be waived. For example, Cross River time deposit accounts have no provisions for partial withdrawals. However, in certain circumstances, an account holder can be allowed to make an early withdrawal of the money in the account without penalty, which is similar to a partial withdrawal.

Note that a request for early withdrawal does not remove funds from the account. That is a separate call.

In this tutorial, you will request an early withdrawal with a penalty fee.

### To request early withdrawal

:::::WorkflowBlock
::::WorkflowBlockItem
Call `POST /v1/dda/accounts/{accountNumber}/time-deposit/early-withdraw`. For this call, some/all [attributes](docId\:bHeqF948uoL69C872O299) are required.&#x20;
Set the `waivePenaltyFee` attribute to **false**.

:::CodeblockTabs
POST /core/v1/dda/accounts/\{accountNumber}/time-deposit/early-withdraw request

```curl
): https://sandbox.crbcos.com/core/v1/dda/accounts/2434508988/time-deposit/early-withdraw
{
  "waivePenaltyFee": false
}
```
:::
::::

::::WorkflowBlockItem
A successful API call returns a JSON response with the details of account, including the total funds to be withdrawn and the amount of penalty fee charged. In our example, the total deposit amount is **1,000,000.00**. The penalty fee amount is **4,109.59**.

:::CodeblockTabs
POST /core/v1/dda/accounts/\{accountNumber}/time-deposit/early-withdraw response

```json
{
  "timeDeposit": {
    "masterAccountNumber": "2434508988",
    "status": "EarlyWithdrawal",
    "minFundingAmount": 50000000,
    "maxFundingAmount": 1000000000,
    "autoClose": true,
    "allowBumpUp": true,
    "waivePenaltyFee": false,
    "fundingDays": 2,
    "gracePeriodDays": 2,
    "currentRate": 0,
    "maturityMonths": 12,
    "rates": [
      {
        "months": 6,
        "rate": 5
      },
      {
        "months": 6,
        "rate": 2.5
      }
    ],
    "penalties": [
      {
        "months": 3,
        "feeDays": 30
      },
      {
        "months": 9,
        "feeDays": 90
      }
    ],
    "fundingExpDate": "2023-01-17T00:00:00-05:00",
    "fundingDate": "2023-01-12T00:00:00-05:00",
    "startDate": "2023-01-12T00:00:00-05:00",
    "depositAmount": 100000000,
    "depositCurrency": "usd",
    "maturityDate": "2024-01-11T00:00:00-05:00",
    "earlyWithdrawnAt": "2023-03-08T09:57:00.005123-05:00",
    "rolloverDate": "2024-01-16T00:00:00-05:00",
    "createdAt": "2023-01-12T16:45:45.96-05:00",
    "productId": "3c4e1c34-3544-4236-93a5-af110157167c",
    "partnerId": "1e5d3f04-ae24-4af6-9e30-aecf012b99dd",
    "lastModifiedAt": "2023-03-08T09:57:00.0208451-05:00"
  },
  "penaltyAccountNumber": "20020020028",
  "penaltyFeeAmount": 410959
}
```
:::
::::
:::::

### To see amount available

:::::WorkflowBlock
:::WorkflowBlockItem
Call `GET /core/v1/accounts/{accountNumber}` to see the balance that remains in the account after deducting the penalty. This is the sum you will withdraw. You must transfer the entire amount. Transfer the funds as you would any money transfer.
:::

::::WorkflowBlockItem
Withdrawal of the funds triggers the `Core.TimeDeposit.Withdrawn` webhook event.

:::CodeblockTabs
Core.TimeDeposit.Withdrawn webhook event

```json
{
  "id": "90cef2a8-f3e1-41ff-9394-afbf00f8a406",
  "eventName": "Core.TimeDeposit.Withdrawn",
  "status": "Pending",
  "partnerId": "1e5d3f04-ae24-4af6-9e30-aecf012b99dd",
  "createdAt": "2023-03-08T10:05:16.423-05:00",
  "resources": [
    "core/v1/dda/accounts/2434508988/time-deposit"
  ],
  "details": [
    {
      "masterAccountNumber": "2434508988",
      "status": "EarlyWithdrawal",
      "depositAmount": "100023362",
      "maturityDate": "3/14/2023",
      "rolloverDate": "3/19/2023",
      "currentRate": "0.0"
    }
  ]
}
```
:::
::::
:::::

