# Create operation block **NOTE**: This v2 endpoint serves as a replacement for the v1 version. Creates an operation block for a division or program. This block prevents transactions from being executed within the specified division or program, unless certain operations are explicitly allowed to bypass the restriction. If neither `division_code` nor `program_id` is provided, the operation block is created for the whole organization. # OpenAPI definition ```json { "openapi": "3.0.0", "info": { "title": "Banking - Transaction banking", "version": "0.9.0", "description": "Transaction banking API", "contact": { "name": "API Support", "url": "https://developers.pismo.io/support/" }, "license": { "name": "Copyright Pismo" } }, "servers": [ { "url": "https://sandbox.pismolabs.io", "description": "Sandbox API server for testing" } ], "security": [ { "BearerAuth": [] } ], "tags": [ { "name": "Operations blocks", "description": "Operations blocks endpoints" } ], "components": { "schemas": { "AllowedOperations": { "type": "array", "description": "List of operations allowed to bypass the block enforcement logic.
\n- `EARMARK_RELEASE`: Release an earmark even when an operation block is active.\n- `EARMARK_UPDATE`: Update an earmark (set amount, increase, or decrease) while the account is blocked by an operation block.\n- `PAYMENT_DEBIT`: Execute a debit transaction while the account is blocked by an operation block.\n- `PAYMENT_CREDIT`: Execute a credit transaction while the account is blocked by an operation block.\n- `PAYMENT_CONFIRM`: Confirm a value transaction while the account is blocked by an operation block.\n- `PAYMENT_CANCEL`: Cancel an existing transaction while the account is blocked by an operation block.\n- `ACCOUNT_STATUS_UPDATE`: Change the account status and the associated status reason.\n- `CHECK_POST`: Post a check while the account is blocked by an operation block.\n- `CHECK_RELEASE`: Release an uncleared check or operation while the account is blocked by an operation block.\n- `CHECK_CANCEL`: Cancel an existing check while the account is blocked by an operation block.\n- `RESTRICTED_FUNDS_CREATE`: Hold a specified amount by transferring it from the available balance to restricted funds.\n- `RESTRICTED_FUNDS_RELEASE`: Release restricted funds from hold. This transfers funds from restricted funds back to available balance.\n", "items": { "$ref": "#/components/schemas/OperationsBlocksOperation" }, "example": [ "EARMARK_CREATE" ] }, "CreateOperationsBlockV2Request": { "description": "Create operations block request body", "type": "object", "properties": { "description": { "$ref": "#/components/schemas/OperationsBlockDescription" }, "division_code": { "$ref": "#/components/schemas/DivisionCode" }, "program_id": { "$ref": "#/components/schemas/ProgramID" }, "allowed_operations": { "$ref": "#/components/schemas/AllowedOperations" } }, "required": [ "description" ] }, "DivisionCode": { "type": "string", "maxLength": 36, "description": "Code used to identify your division within the organization. Division code should only contain letters, numbers, and hyphens.", "example": "US" }, "ErrorCode": { "description": "Error code\n`minLength: 1`\n`maxLength: 12`\n", "type": "string", "minLength": 1, "maxLength": 12, "example": "WPMT0017" }, "ErrorMessage": { "description": "Error message\n`minLength: 1`\n`maxLength: 1000`\n", "type": "string", "minLength": 1, "maxLength": 1000, "example": "Invalid JSON payload received: Error unmarshalling request" }, "ErrorResponse": { "type": "object", "properties": { "code": { "$ref": "#/components/schemas/ErrorCode" }, "message": { "$ref": "#/components/schemas/ErrorMessage" } } }, "OperationsBlocksOperation": { "type": "string", "description": "Operation name.
\nFinancial operations that are allowed to bypass the block enforcement logic.\n", "enum": [ "EARMARK_CREATE", "EARMARK_RELEASE", "EARMARK_UPDATE", "PAYMENT_DEBIT", "PAYMENT_CREDIT", "PAYMENT_CONFIRM", "PAYMENT_CANCEL", "ACCOUNT_STATUS_UPDATE", "CHECK_POST", "CHECK_RELEASE", "CHECK_CANCEL", "RESTRICTED_FUNDS_CREATE", "RESTRICTED_FUNDS_RELEASE" ], "example": "EARMARK_RELEASE" }, "OperationsBlockV2": { "type": "object", "description": "Operations block", "properties": { "block_id": { "$ref": "#/components/schemas/OperationsBlockV2ID" }, "description": { "$ref": "#/components/schemas/OperationsBlockDescription" }, "status": { "$ref": "#/components/schemas/OperationsBlockStatus" }, "created_at": { "$ref": "#/components/schemas/OperationBlockCreatedAt" }, "division_code": { "$ref": "#/components/schemas/DivisionCode" }, "program_id": { "$ref": "#/components/schemas/ProgramID" }, "allowed_operations": { "$ref": "#/components/schemas/AllowedOperations" }, "updated_at": { "$ref": "#/components/schemas/OperationBlockUpdatedAt" } }, "required": [ "block_id", "description", "status", "created_at" ] }, "OperationBlockCreatedAt": { "type": "string", "format": "date-time", "description": "Operation block creation timestamp (ISO 8601). Format = `YYYY-MM-DDTHH:mm:ss.sssssssssZ`.", "example": "2024-12-16T06:50:08.83861056Z" }, "OperationBlockUpdatedAt": { "type": "string", "format": "date-time", "description": "Operation block last update timestamp (ISO 8601). Format = `YYYY-MM-DDTHH:mm:ss.sssssssssZ`.", "example": "2024-12-17T07:50:08.83861056Z" }, "OperationsBlockDescription": { "type": "string", "maxLength": 100, "description": "Operations block description", "example": "FDIC operations block" }, "OperationsBlockStatus": { "type": "string", "description": "Status of the operations block.\n", "enum": [ "ACTIVE", "DEACTIVATED" ], "example": "ACTIVE" }, "OperationsBlockV2ID": { "type": "string", "format": "uuid", "description": "Operations block ID", "maxLength": 36, "example": "e4adf199-c925-4d11-b002-c5bfd5679030" }, "ProgramID": { "type": "integer", "format": "int64", "maximum": 99999999999, "description": "Program ID. The program must belong to the organization. Use [List programs](https://developers.pismo.io/pismo-docs/reference/programs-1) to view a list of the program IDs for the organization.\n\nThis program must be bound to the division. You can attach the program with either of the following endpoints:\n[Create division](https://developers.pismo.io/pismo-docs/reference/post-division-v2)\n[Patch division](https://developers.pismo.io/pismo-docs/reference/patch-division-v2)\n", "example": 8674 } }, "responses": { "401Unauthorized": { "description": "Access token is missing or invalid" }, "403Forbidden": { "description": "The request has been lost" }, "500InternalServer": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "examples": { "Generic internal error": { "value": { "code": "ECMN9999", "message": "Internal error" } } } } } } }, "securitySchemes": { "BearerAuth": { "type": "http", "scheme": "bearer", "bearerFormat": "JWT" } } }, "paths": { "/corporate/v2/operations-blocks": { "post": { "summary": "Create operation block", "description": "**NOTE**: This v2 endpoint serves as a replacement for the v1 version.\n\nCreates an operation block for a division or program. This block prevents transactions from being executed within the specified division or program, unless certain operations are explicitly allowed to bypass the restriction.\n\nIf neither `division_code` nor `program_id` is provided, the operation block is created for the whole organization.\n", "operationId": "corporate-post-v2-operation-blocks", "parameters": [], "tags": [ "Operations blocks" ], "requestBody": { "description": "Create operation block request body", "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateOperationsBlockV2Request" }, "examples": { "Operation block": { "value": { "description": "FDIC operation block", "division_code": "my-division-code", "program_id": 15, "allowed_operations": [ "EARMARK_RELEASE" ] } }, "Operation blocks for the whole organization": { "value": { "description": "FDIC operation block", "allowed_operations": [ "EARMARK_RELEASE" ] } } } } } }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OperationsBlockV2" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "examples": { "Invalid JSON payload": { "value": { "code": "WOBK0001", "message": "Invalid JSON payload received: Error unmarshalling request" } }, "description required": { "value": { "code": "WDOR0002", "message": "description is a required field" } }, "division not found": { "value": { "code": "WOBK0003", "message": "Division not found" } }, "program not found": { "value": { "code": "WOBK0004", "message": "Program not found" } } } } } }, "401": { "$ref": "#/components/responses/401Unauthorized" }, "403": { "$ref": "#/components/responses/403Forbidden" }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "examples": { "Operations block already exists": { "value": { "code": "WOBK0008", "message": "Operations block already exists" } } } } } }, "500": { "$ref": "#/components/responses/500InternalServer" } } } } } } ```