transactional
PATCH
https://hermeticor.com /v1/transactional/definitions/{id} Parameters
idstringpathrequiredRequest body
application/json
namestringdescriptionstringtemplateIdstringsettingsobjectShow child parameters
subjectstringfromEmailstringfromNamestringreplyTostringccstring[]bccstring[]tagsstring[]trackingobjectShow child parameters
opensbooleanclicksbooleanrouteobjectShow child parameters
connectionIdstringpoolIdstringroutePolicyIdstringstatusstring{
"name": "string",
"description": "string",
"templateId": "string",
"settings": {
"subject": "string",
"fromEmail": "string",
"fromName": "string",
"replyTo": "string",
"cc": [
"string"
],
"bcc": [
"string"
],
"tags": [
"string"
],
"tracking": {
"opens": true,
"clicks": true
},
"route": {
"connectionId": "string",
"poolId": "string",
"routePolicyId": "string"
}
},
"status": "active"
}Code samples
cURL
curl -X PATCH "https://hermeticor.com/v1/transactional/definitions/{id}" \
-H "Authorization: Bearer $HERMETICOR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"string","description":"string","templateId":"string","settings":{"subject":"string","fromEmail":"string","fromName":"string","replyTo":"string","cc":["string"],"bcc":["string"],"tags":["string"],"tracking":{"opens":true,"clicks":true},"route":{"connectionId":"string","poolId":"string","routePolicyId":"string"}},"status":"active"}'TypeScript
Python
Go
PHP
Ruby
Java
Responses
200 Default Response
Example
{
"id": "string",
"name": "string",
"description": "string",
"channel": "email",
"templateId": "string",
"settings": {
"subject": "string",
"fromEmail": "string",
"fromName": "string",
"replyTo": "string",
"cc": [
"string"
],
"bcc": [
"string"
],
"tags": [
"string"
],
"tracking": {
"opens": true,
"clicks": true
},
"route": {
"connectionId": "string",
"poolId": "string",
"routePolicyId": "string"
}
},
"status": "string",
"createdAt": "2024-01-01T00:00:00Z",
"updatedAt": "2024-01-01T00:00:00Z"
}Schema
idstringrequirednamestringrequireddescriptionstringrequiredchannelstringrequiredtemplateIdstringrequiredsettingsobjectrequiredShow child parameters
subjectstringfromEmailstringfromNamestringreplyTostringccstring[]bccstring[]tagsstring[]trackingobjectShow child parameters
opensbooleanclicksbooleanrouteobjectShow child parameters
connectionIdstringpoolIdstringroutePolicyIdstringstatusstringrequiredcreatedAtstringrequiredupdatedAtstringrequired4XX Default Response
Example
{
"error": {
"code": "string",
"message": "string",
"details": {}
}
}Schema
errorobjectrequiredShow child parameters
codestringrequiredmessagestringrequireddetailsobjectPOST
https://hermeticor.com /v1/transactional/definitions/{id}/send Send a transactional definition by id: recipients and data in, template and settings from the definition. Merge tags (Liquid, strict): `{{ vars.<key> }}` reads the call-level `vars` merged with the recipient's own `vars`; `{{ vars.recipient.email }}`, `{{ vars.recipient.phone }}` and `{{ vars.recipient.name }}` are the recipient as given; `{{ profile.<field> }}` is the contact (firstName, lastName, emailPrimary, phonePrimary, timezone, locale, country, city, region, or a custom attribute). Bare names such as `{{ name }}` are not defined (except with mergeLanguage handlebars). A `vars.*` tag the send does not supply comes back per recipient as `invalid` before anything is queued. Transactional stream: this route still reaches people who unsubscribed from marketing, so it refuses (400) marketing content: a template in a preference topic or used by a campaign, and copy with `{{ unsubscribe_url }}` (or `*|UNSUB|*`). Send those through /v1/messages/send with purpose marketing.
Parameters
idstringpathrequiredRequest body
application/json
toToItem[]requiredShow child parameters
profileIdstringexternalIdstringemailstringphonestringnamestringvarsobjectconsentstringvarsobjecttagsstring[]metadataobjectscheduledForstringbatchIdstringattachmentsAttachmentsItem[]Show child parameters
filenamestringrequiredcontentTypestringrequiredcontentBase64stringrequiredcidstringidempotencyKeystring{
"to": [
{
"profileId": "string",
"externalId": "string",
"email": "string",
"phone": "string",
"name": "string",
"vars": {},
"consent": "record_optin"
}
],
"vars": {},
"tags": [
"string"
],
"metadata": {},
"scheduledFor": "2024-01-01T00:00:00Z",
"batchId": "string",
"attachments": [
{
"filename": "string",
"contentType": "string",
"contentBase64": "string",
"cid": "string"
}
],
"idempotencyKey": "string"
}Code samples
cURL
curl -X POST "https://hermeticor.com/v1/transactional/definitions/{id}/send" \
-H "Authorization: Bearer $HERMETICOR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"to":[{"profileId":"string","externalId":"string","email":"string","phone":"string","name":"string","vars":{},"consent":"record_optin"}],"vars":{},"tags":["string"],"metadata":{},"scheduledFor":"2024-01-01T00:00:00Z","batchId":"string","attachments":[{"filename":"string","contentType":"string","contentBase64":"string","cid":"string"}],"idempotencyKey":"string"}'TypeScript
Python
Go
PHP
Ruby
Java
Responses
202 Default Response
Example
{
"results": [
{
"recipient": "string",
"jobId": "string",
"status": "queued",
"reason": "string"
}
]
}Schema
resultsResultsItem[]requiredShow child parameters
recipientstringrequiredjobIdstringrequiredstatusstringrequiredreasonstringGET
https://hermeticor.com /v1/transactional/definitions/{id}/deliveries Messages sent through this definition
Parameters
limitintegerquerycursorstringquerysortstringqueryprofileIdstringquerystatusstringqueryqstringqueryobjectTypestringqueryobjectIdstringqueryorderstringquerytagstringquerymetadatastringquerysenderIdentityIdstringquerytemplateIdstringquerychannelstringqueryfromstringquerytostringqueryvarsstringqueryeventKindstringqueryidstringpathrequiredCode samples
cURL
curl -X GET "https://hermeticor.com/v1/transactional/definitions/{id}/deliveries" \
-H "Authorization: Bearer $HERMETICOR_API_KEY"TypeScript
Python
Go
PHP
Ruby
Java
Responses
200 Default Response
Example
{
"items": [
{
"id": "string",
"idempotencyKey": "string",
"purpose": "marketing",
"channel": "email",
"profileId": "string",
"destination": "string",
"connectionId": "string",
"senderIdentityId": "string",
"sourceKind": "campaign",
"sourceId": "string",
"stepKey": "string",
"templateVersionId": "string",
"variantKey": "string",
"status": "queued",
"blockReason": "string",
"errorClass": "string",
"decisionLog": [
{
"stage": "string",
"outcome": "allow",
"reason": "string",
"at": "2024-01-01T00:00:00Z"
}
],
"scheduledFor": "2024-01-01T00:00:00Z",
"sentAt": "2024-01-01T00:00:00Z",
"providerMessageId": "string",
"subject": "string",
"tags": [
"string"
],
"metadata": {},
"createdAt": "2024-01-01T00:00:00Z",
"updatedAt": "2024-01-01T00:00:00Z"
}
],
"nextCursor": "string"
}Schema
itemsItemsItem42[]requiredShow child parameters
idstringrequiredidempotencyKeystringrequiredpurposestringrequiredchannelstringrequiredprofileIdstringrequireddestinationstringrequiredconnectionIdstringrequiredsenderIdentityIdstringrequiredsourceKindstringrequiredsourceIdstringrequiredstepKeystringrequiredtemplateVersionIdstringrequiredvariantKeystringrequiredstatusstringrequiredblockReasonstringrequirederrorClassstringrequireddecisionLogDecisionLogItem[]requiredShow child parameters
stagestringrequiredoutcomestringrequiredreasonstringatstringscheduledForstringrequiredsentAtstringrequiredproviderMessageIdstringrequiredsubjectstringrequiredtagsstring[]requiredmetadataobjectrequiredcreatedAtstringrequiredupdatedAtstringrequirednextCursorstringrequiredGET
https://hermeticor.com /v1/transactional/definitions/{id}/links Parameters
limitintegerqueryPage size; omitted returns the whole list
cursorstringqueryOpaque: the
nextCursor of the previous pageidstringpathrequiredCode samples
cURL
curl -X GET "https://hermeticor.com/v1/transactional/definitions/{id}/links" \
-H "Authorization: Bearer $HERMETICOR_API_KEY"TypeScript
Python
Go
PHP
Ruby
Java
Responses
200 Default Response
Example
{
"items": [
{
"url": "string",
"clicks": 0,
"uniqueClickers": 0
}
],
"nextCursor": "string"
}Schema
itemsobject[]requiredShow child parameters
urlstringrequiredclicksintegerrequireduniqueClickersintegerrequirednextCursorstringrequiredGET
https://hermeticor.com /v1/transactional/definitions/{id}/translations Parameters
limitintegerqueryPage size; omitted returns the whole list
cursorstringqueryOpaque: the
nextCursor of the previous pageidstringpathrequiredCode samples
cURL
curl -X GET "https://hermeticor.com/v1/transactional/definitions/{id}/translations" \
-H "Authorization: Bearer $HERMETICOR_API_KEY"TypeScript
Python
Go
PHP
Ruby
Java
Responses
200 Default Response
Example
{
"items": [
{
"id": "string",
"locale": "string",
"status": "string",
"content": {}
}
],
"nextCursor": "string"
}Schema
itemsItemsItem49[]requiredShow child parameters
idstringrequiredlocalestringrequiredstatusstringrequiredcontentobjectrequirednextCursorstringrequiredUpdated