Cowdidocs

Update the account's tenure

PATCH
/v1/accounts/{accountId}/tenure

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.

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

Request Body

application/json

Request to update the account tenure. For Flex Credit, this sets the default for future draws. Posted purchases and agreements do not change.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PATCH "https://example.com/v1/accounts/550e8400-e29b-41d4-a716-446655440000/tenure" \  -H "Content-Type: application/json" \  -d '{    "tenure": {}  }'
{  "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"}