---
updatedAt: 2026-04-20T19:56:08.000Z
---

Fetch the complete documentation index at: https://developers.pismo.io/pismo-docs/llms.txt. Use this file to discover all available pages before exploring further.

# Upload bulk file

This endpoint enables you to manage the upload of bulk files along with their corresponding signature data in the request header.

<b>Detailed flow:</b>
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).

<b>Note</b>: 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.1.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\n<b>Detailed flow:</b>\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\n<b>Note</b>: 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"
          }
        }
      }
    }
  }
}
```