Close the account
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.
Authorization
oauth2 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
Unique identifier of the account.
uuidResponse 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"}Get the caller's account GET
Returns one of the caller's accounts by its account ID. The response is a current, credit, Flex Credit, or loan account, discriminated by the `type` field. Requires an authenticated, active user. Returns 404 when the account does not exist or does not belong to the caller.
Update the account's tenure PATCH
Sets the account's tenure for future draws or billing cycles. For a revolving credit account, this changes the tenure for the next cycle. For a Flex Credit account, this changes the default tenure for future purchases; posted purchases are unchanged. The interest rate is resolved automatically from the account's rate schedule. Requires an authenticated, active user who owns the account. Returns 404 when the account does not exist, is not the caller's, or does not support a tenure update.