Skip to content

Register one sent communication

POST
/v1/communications
curl --request POST \
--url https://api.fromenance.com/v1/communications \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "channel": "email", "recipient_hash": "example", "message_id": "example", "from_address": "example", "sent_at": "2026-04-15T12:00:00Z", "subject_fingerprint": "example", "content_fingerprint": { "simhash": "0x9a4d3c2b1f0e8d7c", "sha256": "example" }, "link_domains": [ "example" ], "template_id": "example", "campaign_id": "example", "provider": "api", "expires_at": "2026-04-15T12:00:00Z", "verify_code": "example" }'

Call at send time. Send only the recipient HMAC and the content fingerprint; never the address or the body. Returns the verify code to place in the footer. Supports Idempotency-Key.

Media typeapplication/json
object
channel
string
Allowed values: email
recipient_hash
required

HMAC-SHA256 of the lowercased, trimmed recipient address keyed with your tenant secret.

string
/^hmac-sha256:[0-9a-f]{64}$/
message_id
required
string
>= 1 characters <= 998 characters
from_address
required
string
>= 3 characters <= 320 characters
sent_at
required
string format: date-time
subject_fingerprint
string
/^[0-9a-f]{64}$/
content_fingerprint
object
simhash
required
string
/^0x[0-9a-fA-F]{1,16}$/
Example
0x9a4d3c2b1f0e8d7c
sha256
required
string
/^[0-9a-f]{64}$/
link_domains
Array<string>
<= 50 items
template_id
string | null
<= 120 characters
campaign_id
string | null
<= 120 characters
provider
string
Allowed values: api sendgrid ses resend postmark mailgun sfmc braze relay journal generic
expires_at
string format: date-time
verify_code

Only when completing a reserved code; otherwise omit and one is issued.

string
<= 9 characters

Registered

Media typeapplication/json
object
id
required
string
verify_code
required
string
expires_at
required
string
sandbox
required
boolean
Example
{
"verify_code": "KX73-PQ9G"
}

Validation

Media typeapplication/problem+json
object
type
required
string
title
required
string
status
required
integer
detail
string
instance
string
errors

Present on validation problems.

Array<object>
object
path
required
string
message
required
string
request_id
string
Example
{
"type": "https://docs.fromenance.com/api/errors#validation",
"title": "Validation failed",
"status": 400,
"detail": "recipient_hash must start with hmac-sha256:",
"instance": "/v1/communications"
}

Rate limited

Media typeapplication/problem+json
object
type
required
string
title
required
string
status
required
integer
detail
string
instance
string
errors

Present on validation problems.

Array<object>
object
path
required
string
message
required
string
request_id
string
Example
{
"type": "https://docs.fromenance.com/api/errors#validation",
"title": "Validation failed",
"status": 400,
"detail": "recipient_hash must start with hmac-sha256:",
"instance": "/v1/communications"
}