# Upload bulk file This endpoint enables you to manage the upload of bulk files along with their corresponding signature data in the request header. Detailed flow: 1. The client sends a request with the bulk file as the body and signature in the `Signature` header. The signature header is formatted as `keyId="{key_id}",signature="{signature_base64}"`. The parameters `key_id` and `signature_base64` are specified in the `parameters` section. 2. The server processes the request and responds with a `200 OK` status, indicating the file upload request is complete. For detailed instructions, refer to [File signature and encryption](doc:file-signature-and-encryption). Note: Pismo reserves the right to offer this endpoint only for single-tenant clients, reach out to your Pismo representative for more information. # 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": "Bulk payment files", "description": "Bulk payment file endpoints" } ], "components": { "schemas": { "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" } } }, "PutUploadBulkFile": { "type": "string", "description": "Ok", "example": "OK" } }, "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/v1/bulk-payments/{bulkId}": { "put": { "summary": "Upload bulk file", "description": "This endpoint enables you to manage the upload of bulk files along with their corresponding signature data in the request header.\n\nDetailed flow:\n1. The client sends a request with the bulk file as the body and signature in the\n `Signature` header. The signature header is formatted as `keyId=\"{key_id}\",signature=\"{signature_base64}\"`. The parameters `key_id` and `signature_base64` are specified in the `parameters` section.\n2. The server processes the request and responds with a `200 OK` status, indicating the file upload request is complete.\n\nFor detailed instructions, refer to [File signature and encryption](https://developers.pismo.io/pismo-docs/docs/file-signature-and-encryption).\n\nNote: Pismo reserves the right to offer this endpoint only for single-tenant clients, reach out to your Pismo representative for more information.\n", "operationId": "corporate-put-bulk-file", "parameters": [ { "name": "bulkId", "in": "path", "description": "ID of the bulk payment file. This ID is client-generated.", "schema": { "type": "string" }, "required": true, "example": "b6cdccc4-f6bf-4218-9e5e-7fb8f66008e3" }, { "name": "signature", "in": "header", "description": "The `Signature` header includes two fields: `keyId` and `signature`. The `keyId` represents the public key ID used to verify the request, while `signature` contains the the base64-encoded cryptographic signature of the request body, created using the private key associated with the `keyId`.", "schema": { "type": "string" }, "required": true, "example": "keyId=\"abcd1234\", signature=\"c2lnbmF0dXJlLWRhdGE=\"" } ], "tags": [ "Bulk payment files" ], "requestBody": { "description": "Bulk file data.", "content": { "application/octet-stream": { "schema": { "type": "string", "format": "binary" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PutUploadBulkFile" } } } }, "400": { "description": "A Bad Request validation error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "examples": { "keyId is required": { "value": { "code": "WBUP0001", "message": "'keyId' header: attribute is required" } }, "signature is required": { "value": { "code": "WBUP0001", "message": "'signature' header: attribute is required" } }, "signature is not a valid base64-encoded string": { "value": { "code": "WBUP0001", "message": "'signature' header: attribute must be a valid base64 encoded string" } }, "signature is malformed": { "value": { "code": "WBUP0001", "message": "'signature' header: header is malformed" } }, "invalid request header": { "value": { "code": "WBUP0004", "message": "Invalid request header" } }, "invalid JSON data in bulk header": { "value": { "code": "WBUP0005", "message": "Invalid JSON data in bulk header" } }, "authentication OrgID does not match bulk header": { "value": { "code": "WBUP0006", "message": "Authentication OrgID does not match Bulk Header" } }, "BulkID in URL does not match bulk header": { "value": { "code": "WBUP0007", "message": "BulkID in URL does not match Bulk Header" } }, "invalid operation type in bulk header": { "value": { "code": "WBUP0008", "message": "Invalid operation_type in Bulk Header" } } } } } }, "401": { "$ref": "#/components/responses/401Unauthorized" }, "403": { "$ref": "#/components/responses/403Forbidden" }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" }, "examples": { "duplicate bulk file uploaded": { "value": { "code": "WBUP0003", "message": "Duplicate bulk file uploaded" } } } } } }, "500": { "$ref": "#/components/responses/500InternalServer" } } } } } } ```