Update account (restricted fields)
Handler: UpdateAccountRestricted. Body AccountUpdateRestricted (description required). Returns AccountResponse. If the account is currently inactive (active=false), the caller must hold the Internal role to update it; otherwise the row is treated as not found and the request returns 404 Not Found. This check is enforced atomically inside the update transaction via a row lock (SELECT ... FOR UPDATE).
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X PUT "https://example.com/v1/accounts/497f6eca-6276-4993-bfeb-53cbbbba6f08/restricted" \ -H "Content-Type: application/json" \ -d '{ "description": "string" }'{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"active": true,
"customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
"currency": "string",
"balance": {
"amount": "123456",
"currency": "EUR",
"precision": 2
},
"iban": "string",
"country_code": "string",
"country": "string",
"country_id": "b42f7153-60f9-4aff-a5b5-21576be4161e",
"check_digits": "string",
"bban": "string",
"bank": "string",
"bic": "string",
"description": "string",
"metadata": {},
"status": "active"
}{
"status": 400,
"message": "string",
"code": "transfers_m.account_not_found",
"class": "validation",
"retryable": false,
"details": [
{
"field": "amount",
"rule": "gt",
"param": "0",
"message": "amount must be greater than 0"
}
]
}Handler: UpdateAccount. Body UpdateAccountInput (note: customer_id is NOT accepted here). Returns AccountResponse. If the account is currently inactive (active=false), the caller must hold the Internal role to update it; otherwise the row is treated as not found and the request returns 404 Not Found. This check is enforced atomically inside the update transaction via a row lock (SELECT ... FOR UPDATE).
Handler: DeleteAccount. Deactivates the account (active=false); the row is preserved. Public reads and balance endpoints exclude inactive accounts. Deactivating an account that is already inactive requires the caller to hold the Internal role; otherwise the row is treated as not found and returns 404 Not Found. This check is enforced atomically inside the transaction via a row lock (SELECT ... FOR UPDATE). NOTE: handler responds 200 (apireply.Ok200).