---
title: "Update Account Status to Restricted"
method: PUT
path: "/programs/{programCode}/accounts/{accountIdentifier}/close"
tags: ["Account"]
---

# Update Account Status to Restricted

`PUT /programs/{programCode}/accounts/{accountIdentifier}/close`

This endpoint provides the ability to close accounts without the assistance of the Green Dot Care team. 
- Close an Account 
- To set an account to restricted customer initiated spend down: 
	- Submit a request to close the account by calling PUT /programs/{programCode}/accounts/{accountIdentifier}/close 
	- Once the request is processed by the system, the partner will receive a response containing the following account status information: 
		- The account status will be changed to restricted 
		- The account status reason will be customerInitiatedSpendDown 
		- There will not be a kycPendingGate (cure) (i.e. kycPendingGate: none) 
	- All funds currently in the spend purses will be moved back to the primary purse automatically. 
		- Note: For an account to be closed, it must be set to a restricted customer initiated spend down state. 
	- The current status of the account must be normal. 
	- An account with a negative balance cannot be closed using the API

## Path parameters

- `programCode` string, required
- `accountIdentifier` string, required

## Headers

- `X-GD-RequestId` string, required

## Request body

- CloseAccountRequest — Represents a request to close an account, including the reason and source of the closure. Inherits standard request metadata from Gd.Bos.DataTransfer.Request.RequestBase.
  - `reason` string, nullable — The reason for closing the account. Must be provided and should match allowed values (e.g., "customerInitiatedSpendDown").
  - `source` string, nullable — The source system or party initiating the account closure (e.g., "Partner"). Optional; if not provided, may be set by the API.

## Response `200`

OK

- CloseAccountResponse — Represents the response for a close account operation.
  - `account` CloseAccount — Contains details about the closed account after a close operation.
    - `status` string, nullable — The final status of the account after closure (e.g., "restricted", "closed").
    - `statusReason` string, nullable — The reason for the account's final status (e.g., "customerInitiatedSpendDown").
    - `kycPendingGate` string, nullable — The name or code of any pending KYC gate, or "none" if no gates are pending.
  - `responseDetails` ResponseDetail[], nullable — Required: A list of response details providing status codes, descriptions, and additional information about the result of the operation.
    - `code` integer — The primary status or error code for the response (e.g., 200 for success, 400 for validation error).
    - `subCode` integer, nullable — An optional subcode providing more granular detail about the response or error.
    - `description` string, nullable — A human-readable description of the response, error, or status.
    - `url` string, nullable — A URL linking to documentation or a web page with more information about the response code.

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `500` — Internal Server Error
- `503` — Service Unavailable

---

[API](https://skmtc.net/greendot/apis/baas-apis.md) · [All operations](https://skmtc.net/greendot/apis/baas-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/greendot/baas-apis/versions/666553766b78/schema)
