Do not build on this endpoint. To send attachments, put them in the POST /deliverrequest asattachmentName+content(base64). One call, nothing to upload, nothing to store.
attachmentId. Integrations built that way keep working and nothing is being removed, but there is no reason to start that way.attachmentId is valid for 24 hours (see expiresUtc)..bmp .csv .doc .docx .gif .jpeg .jpg .odp .ods .odt .pdf .png .ppt .pptx .rtf .txt .webp .xls .xlsx .zipcurl --location 'https://api.trucontact.co/attachments' \
--header 'X-API-KEY: <api-key>' \
--form 'file=@""'{
"attachmentId": "7f3a9c21e4b04d6f9a1c8e5b2d70f431",
"originalName": "invoice-2026-04.pdf",
"sizeBytes": 248193,
"expiresUtc": "2026-08-22T03:14:07Z"
}