# Create status reason Create an account status reason on the platform. This endpoint generates a [Reason created](https://developers.pismo.io/events/docs/account-reason-creation-1) event. For more information, refer to the [Account status](doc:accounts-overview#account-status) guide section. # OpenAPI definition ```json { "openapi": "3.1.0", "info": { "title": "Core platform - Accounts", "version": "1.0.0", "description": "API used to manage accounts domain", "contact": { "name": "API Support", "url": "https://developers.pismo.io/support/" }, "license": { "name": "Copyright Pismo" } }, "servers": [ { "url": "https://sandbox.pismolabs.io", "description": "API server for testing" } ], "tags": [ { "name": "Statuses and reasons", "description": "Endpoints to configure accounts, statuses, and reasons." } ], "components": { "schemas": { "AccountExternalId": { "type": "string", "description": "\nClient-created ID from an external system or application. **REQUIRED** for `VIRTUAL` accounts.\n", "maxLength": 60, "example": "8c8a4dd7-e48f-4c15-85b7-9d12f401057f" }, "AllowedOperations": { "type": "string", "description": "Allowed operations for this status.\n\nPossible values:\n* `ALL_OPERATIONS`—Both credit and debit operations are allowed.\n* `CREDIT_ONLY`—Only credit operations allowed.\n* `DEBIT_ONLY`—Only debit operations allowed.\n* `NO_OPERATIONS`—Neither account credit nor debit operations allowed.\n", "enum": [ "ALL_OPERATIONS", "CREDIT_ONLY", "DEBIT_ONLY", "NO_OPERATIONS" ], "example": "ALL_OPERATIONS" }, "CreateAccountReasonDescription": { "type": "string", "description": "Reason description", "maxLength": 80, "example": "Unblocked account after settling the account." }, "CreateAccountReasonID": { "type": "integer", "format": "int64", "description": "Reason ID", "example": 1234567890 }, "CreateAccountReasonName": { "type": "string", "description": "Reason name", "maxLength": 60, "example": "Unblocked" }, "ExternalServiceCode": { "type": "string", "description": "Code returned from the external service" }, "MessageDetailsResponse": { "type": "object", "description": "Object response for a user message", "properties": { "payload": { "type": "array", "description": "Details for the request payload errors", "items": { "$ref": "#/components/schemas/MessagePayloadResponse" } }, "parameters": { "type": "array", "description": "Details for the query parameter errors", "items": { "$ref": "#/components/schemas/MessageParameterResponse" } }, "external": { "type": "array", "description": "Details for the external service error", "items": { "$ref": "#/components/schemas/MessageExternalResponse" } } } }, "MessageExternalResponse": { "type": "object", "description": "Object response for detailing external errors for a user message", "properties": { "code": { "$ref": "#/components/schemas/ExternalServiceCode" }, "message": { "type": "string", "description": "Message description from the external service" } } }, "MessageParameterResponse": { "type": "object", "description": "Object response for detailing query parameters errors for a user message", "properties": { "field": { "$ref": "#/components/schemas/ValidationErrorField" }, "message": { "$ref": "#/components/schemas/ValidationErrorMessage" } } }, "MessagePayloadResponse": { "type": "object", "description": "Object response for detailing request payload errors for a user message", "properties": { "field": { "$ref": "#/components/schemas/ValidationErrorField" }, "message": { "$ref": "#/components/schemas/ValidationErrorMessage" } } }, "UserMessageCode": { "type": "string", "description": "Code that identifies the user message", "example": "EACC0000" }, "UserMessage": { "type": "string", "description": "User message", "example": "Timeout while executing the request" }, "MessageResponse": { "type": "object", "description": "Object response for user message", "properties": { "code": { "$ref": "#/components/schemas/UserMessageCode" }, "message": { "$ref": "#/components/schemas/UserMessage" }, "details": { "$ref": "#/components/schemas/MessageDetailsResponse" } } }, "ReasonCreate": { "type": "object", "description": "Object to create an account reason", "required": [ "name" ], "properties": { "name": { "$ref": "#/components/schemas/CreateAccountReasonName" }, "description": { "$ref": "#/components/schemas/CreateAccountReasonDescription" }, "allowed_operations": { "$ref": "#/components/schemas/AllowedOperations" }, "external_id": { "$ref": "#/components/schemas/AccountExternalId" } } }, "ReasonResponse": { "type": "object", "description": "Object response for account reason", "properties": { "reason_id": { "$ref": "#/components/schemas/CreateAccountReasonID" }, "name": { "$ref": "#/components/schemas/CreateAccountReasonName" }, "description": { "$ref": "#/components/schemas/CreateAccountReasonDescription" }, "allowed_operations": { "$ref": "#/components/schemas/AllowedOperations" }, "state": { "$ref": "#/components/schemas/ReasonState" }, "external_id": { "$ref": "#/components/schemas/AccountExternalId" } } }, "ReasonState": { "type": "string", "description": "Reason state", "enum": [ "ACTIVE", "INACTIVE" ], "example": "ACTIVE" }, "ValidationErrorField": { "type": "string", "description": "Non-valid field" }, "ValidationErrorMessage": { "type": "string", "description": "Validation error description" } }, "securitySchemes": { "BearerAuth": { "type": "http", "scheme": "bearer", "bearerFormat": "JWT" } } }, "security": [ { "BearerAuth": [] } ], "x-readme": { "explorer-enabled": true, "proxy-enabled": true, "samples-enabled": true }, "paths": { "/accounts/v4/reasons": { "post": { "operationId": "v4-post-account-reason", "summary": "Create status reason", "description": "Create an account status reason on the platform.\n\nThis endpoint generates a [Reason created](https://developers.pismo.io/events/docs/account-reason-creation-1) event.\n\nFor more information, refer to the [Account status](https://developers.pismo.io/pismo-docs/docs/accounts-overview#account-status) guide section.\n", "tags": [ "Statuses and reasons" ], "parameters": [], "requestBody": { "description": "Account reason details", "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReasonCreate" }, "examples": { "Required Payload": { "value": { "name": "Unblocked" } }, "Full Payload": { "value": { "name": "Unblocked", "description": "Unblocked account after settling the account." } } } } } }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReasonResponse" }, "examples": { "Default response": { "value": { "reason_id": 1, "name": "Unblocked", "description": "Unblocked account after settling the account.", "state": "ACTIVE" } } } } } }, "400": { "description": "Bad request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageResponse" }, "examples": { "Invalid payload": { "value": { "code": "EACC0004", "message": "Failed during validation of request payload", "detail": { "payload": [ { "field": "name", "message": "Field is required" } ] } } } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageResponse" }, "examples": { "Duplicated name": { "value": { "code": "EACC0018", "message": "Account reason already exists with key(s): 'Unblocked'" } } } } } }, "500": { "description": "Internal server error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MessageResponse" }, "examples": { "Timeout execution": { "value": { "code": "EACC0000", "message": "Timeout while executing the request" } }, "Invalid payload": { "value": { "code": "EACC0003", "message": "Failed to parse request payload" } }, "Generic message": { "value": { "code": "EACC9999", "message": "Something went wrong, please try again later" } } } } } } } } } } } ```