Skip to main content
POST
Send a new message from the recipient to a donor

Authorizations

session_id
string
header
required

Legacy session-id header retained for backwards compatibility with older first-party clients. New integrations should prefer bearerAuth or apiKeyAuth.

Path Parameters

client_id
integer<int64>
required
Example:

207

session_id
string
required

Body

application/json
donor_id
integer<int64>
required

Recipient must be authorized to message this donor (the donor must be in their donor_options list). Validator rule: required|integer.

Example:

12345

subject
string
required

Validator rule: required|string|max:255.

Example:

"Thank you!"

message
string
required

Body. Validator rule: required|string|max:20000.

Example:

"Dear sponsor, ..."

fileName
string | null

Display filename of the attached file. Validator rule: nullable|string|max:255.

Example:

"thank-you.pdf"

fileStorageKey
string | null

S3 storage key returned by the recipient-portal upload endpoint. Validator rule: nullable|string|max:255.

Example:

"recipient-portal/2026/04/abcd-ef01.pdf"

uploadReceipt
string<uuid> | null

Scoped receipt returned with the attachment upload. Required with fileStorageKey.

Response

Message created (delivered or pending approval).

status
string
Example:

"success"

message
object