Cowdidocs

Close the account

POST
/v1/accounts/{accountId}/close

Closes the caller's own revolving credit account. Allowed only when nothing has been disbursed in the current cycle, no balance is outstanding, no transfer is pending, and the previous cycle is settled. Requires an authenticated, active user who owns the account. Returns 404 when the account does not exist, is not the caller's, or is not a revolving credit account. Returns 400 when the account fails a closing precondition.

AuthorizationBearer <token>

Create a client with POST /v1/oauth/clients, then exchange its credentials for an access token. AUTHORIZATION_CODE clients act on behalf of a signed-in user and always use PKCE; CLIENT_CREDENTIALS clients act as themselves. A client may only be granted scopes its creator already holds — read the grantable list from GET /v1/oauth/clients/scopes.

In: header

Path Parameters

accountId*string

Unique identifier of the account.

Formatuuid

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/accounts/550e8400-e29b-41d4-a716-446655440000/close"
{  "id": "550e8400-e29b-41d4-a716-446655440000",  "resource_id": "acc_2n1t201rmv87aae5j4csam8000",  "account_number": "29384756",  "user_id": "660e8400-e29b-41d4-a716-446655440111",  "type": "CREDIT",  "credit_limit": -5000000,  "available_limit": -2000000,  "available_balance": -3000000,  "balance": {    "total_charged": -3000000,    "principal_used": -2500000,    "total_outstanding": -3000000,    "total_paid": 0,    "breakdown": {      "principal_outstanding": -2500000,      "interest_outstanding": -500000,      "arrears_outstanding": 0,      "penalty_outstanding": 0    }  },  "currency": "KES",  "due_date": "2025-10-31",  "final_payment_due_date": "2025-10-31",  "status": "ACTIVE",  "fee_basis_points": 300,  "interest_rate": {    "basis_points": 300,    "period_value": 1,    "period_unit": "WEEKS"  },  "tenure": {    "duration": 4,    "unit": "WEEKS"  },  "billing_period": {    "value": 1,    "unit": "WEEKS"  },  "limits": {    "overdraft_limit": 500000,    "minimum_transfer_amount": 1000,    "maximum_transfer_amount": 5000000,    "daily_transfer_limit": 10000000  },  "auto_renews": true,  "paid_at": "2025-10-31T14:30:00",  "can_transact": true,  "created_at": "2025-09-01T10:15:30Z",  "updated_at": "2025-10-15T14:22:00Z"}
{  "code": "BAD_REQUEST",  "description": "Bad Request"}
{  "code": "UNAUTHORISED",  "description": "Unauthorised"}
{  "code": "FORBIDDEN",  "description": "Forbidden"}
{  "code": "BAD_REQUEST",  "description": "Invalid input"}
{  "code": "RATE_LIMIT_EXCEEDED",  "description": "Too Many Requests"}
{  "code": "INTERNAL_ERROR",  "description": "Internal Server Error"}