---
title: "Update Account Status and Reason"
method: PUT
path: "/programs/{programCode}/accounts/{accountIdentifier}/status"
tags: ["Account"]
---

# Update Account Status and Reason

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

Structure of API Call: PUT /programs/{programCode}/accounts/{accountIdentifier}/status 
- Update account status and status reason 

 This endpoint allows Partners to update account statuses, account status reasons, and cures under certain conditions. When a valid request is submitted and completed successfully, the updated status, status reason, and kycPendingGate will be returned in GET /accounts/{accountIdentifier} and GET /enrollments/accounts/{accountIdentifier} responses. An Account Updated Webhook will also be published. 

 Note: This endpoint can only be used if the Partner is configured to change statuses.

## Path parameters

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

## Headers

- `X-GD-RequestId` string, required

## Request body

- SetPartnerAccountStatusRequest — Represents a request to update the status and status reason of a partner account, including notes, source, and cure information. Used for status transitions such as locking, restricting, or normalizing an account, with detailed fraud or operational reasons.
  - `reason` 'unknown' | 'healthy' | 'potentialFraud' | 'spendDown' | 'confirmedFraud' | 'potentialFirstPartyFraud' | 'confirmedFirstPartyFraud' | 'potentialThirdPartyFraud' | 'confirmedThirdPartyFraud' | 'potentialAccountTakeover' | 'confirmedAccountTakeover' | 'potentialIdentityTheft' | 'confirmedIdentityTheft' | 'potentialOtherFraud' | 'confirmedOtherFraud' — The reason for the status change. Specifies the type of fraud, operational, or health reason. See Gd.Bos.DataTransfer.Request.SetPartnerAccountStatusReason for allowed values.
  - `status` 'unknown' | 'normal' | 'restricted' | 'locked' — The new status to be set for the account. See Gd.Bos.DataTransfer.Request.SetPartnerAccountStatus for allowed values.
  - `notes` string, nullable — Required. Notes or comments explaining the reason for the status change.
  - `source` string, nullable — Optional. The source system or party initiating the status change (e.g., "Partner").
  - `cure` string, nullable — Optional. The cure or remediation action associated with the status change, if applicable.

## Response `200`

OK

- SetPartnerAccountStatusResponse — Represents the response for a partner account status update operation.
  - `statusReasons` string[], nullable — The list of reasons for the current account status (e.g., compliance, fraud, or operational reasons).
  - `status` string, nullable — The current status or required cure action for the partner account (e.g., "restricted", "normal", "none").
  - `kycPendingGate` string, nullable — The name or code of any pending KYC (Know Your Customer) 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)
