POST api/communication/attachment?communicationType={communicationType}&templateId={templateId}

Uploads one or more email attachment files for a communication template. Validation behavior is controlled by the fileUploadValidationEnabled feature flag: - Flag ON: Full magic-bytes content validation via FileUploadValidator. Rejects files whose binary content does not match the claimed extension, and enforces the intersection of ConfigCat allowed types with the code-defined hard ceiling (excludes text-based types like .html, .csv). - Flag OFF: Legacy extension-only validation via CommunicationSettings.ValidateFileType. Preserves existing behavior during feature rollout. Files are read as byte[] (rather than Stream) because FileUploadValidator needs the full content for magic-bytes inspection. Memory impact is negligible since MultipartMemoryStreamProvider already buffers fully and files are capped by ValidateMaxBytes.

Request Information

URI Parameters

NameDescriptionTypeAdditional information
communicationType

string

Required

templateId

string

Required

Body Parameters

None.

Response Information

Resource Description

WebMethodResultOfListOfAttachment
NameDescriptionTypeAdditional information
Result

Collection of Attachment

None.

Success

boolean

None.

ErrorText

string

None.

Response Formats

application/json, text/json

Sample:
{
  "Result": [
    {
      "Id": "sample string 1",
      "TemplateId": "sample string 2",
      "CommunicationType": "Undefined",
      "OriginalFileName": "sample string 4",
      "NewFileName": "sample string 5",
      "RelativePath": "sample string 6",
      "Url": "sample string 7",
      "FileSize": 8,
      "FileType": "sample string 9",
      "IsEditorDocument": true
    },
    {
      "Id": "sample string 1",
      "TemplateId": "sample string 2",
      "CommunicationType": "Undefined",
      "OriginalFileName": "sample string 4",
      "NewFileName": "sample string 5",
      "RelativePath": "sample string 6",
      "Url": "sample string 7",
      "FileSize": 8,
      "FileType": "sample string 9",
      "IsEditorDocument": true
    }
  ],
  "Success": true,
  "ErrorText": "sample string 2"
}

application/javascript

Sample:
{"Result":[{"Id":"sample string 1","TemplateId":"sample string 2","CommunicationType":"Undefined","OriginalFileName":"sample string 4","NewFileName":"sample string 5","RelativePath":"sample string 6","Url":"sample string 7","FileSize":8,"FileType":"sample string 9","IsEditorDocument":true},{"Id":"sample string 1","TemplateId":"sample string 2","CommunicationType":"Undefined","OriginalFileName":"sample string 4","NewFileName":"sample string 5","RelativePath":"sample string 6","Url":"sample string 7","FileSize":8,"FileType":"sample string 9","IsEditorDocument":true}],"Success":true,"ErrorText":"sample string 2"}

application/xml, text/xml

Sample:
<WebMethodResultOfListOfAttachment xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Success>true</Success>
  <ErrorText>sample string 2</ErrorText>
  <Result>
    <Attachment>
      <Id>sample string 1</Id>
      <TemplateId>sample string 2</TemplateId>
      <CommunicationTypeFlag>Undefined</CommunicationTypeFlag>
      <CommunicationType>Undefined</CommunicationType>
      <OriginalFileName>sample string 4</OriginalFileName>
      <NewFileName>sample string 5</NewFileName>
      <RelativePath>sample string 6</RelativePath>
      <Url>sample string 7</Url>
      <FileSize>8</FileSize>
      <FileType>sample string 9</FileType>
      <IsEditorDocument>true</IsEditorDocument>
    </Attachment>
    <Attachment>
      <Id>sample string 1</Id>
      <TemplateId>sample string 2</TemplateId>
      <CommunicationTypeFlag>Undefined</CommunicationTypeFlag>
      <CommunicationType>Undefined</CommunicationType>
      <OriginalFileName>sample string 4</OriginalFileName>
      <NewFileName>sample string 5</NewFileName>
      <RelativePath>sample string 6</RelativePath>
      <Url>sample string 7</Url>
      <FileSize>8</FileSize>
      <FileType>sample string 9</FileType>
      <IsEditorDocument>true</IsEditorDocument>
    </Attachment>
  </Result>
</WebMethodResultOfListOfAttachment>