# 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"
}
}
}
}
}
}
```