Skip to main content

/member/deliveryLogs

Overview​

Fetch communication delivery logs (SMS, email, push, etc.) for a specific member. Results are scoped to the authenticated business and the resolved member. Defaults to the last 90 days when no date filter is provided.

When to Use This Endpoint​

Use this endpoint to:

  • View delivery logs for a specific member's communications
  • Track member engagement metrics (opens, clicks, bounces)
  • Troubleshoot delivery issues for individual members
  • Audit communication history for a member
  • Generate member-specific delivery reports

Key Considerations​

  • The member object must contain at least one identifier to resolve the member
  • Results are always sorted by createdAt descending (newest first)
  • When neither fromDate nor toDate is provided, the endpoint automatically uses a 90-day window ending at the current time
  • The database stores status values capitalized but the API returns them in lowercase for consistency
  • Use limit and offset together for cursor-free pagination

Request Details​

Method & URL​

POST /member/deliveryLogs

See API Servers for the base URL to use in place of {{server}}.

Headers​

HeaderTypeRequiredDescription
x-api-keystringYesBusiness API key used to identify and authorize the caller
x-source-typestringYesType of the calling system (e.g., pos, kiosk)
x-source-namestringYesName of the calling application
x-pos-idstringYesUnique identifier of the POS terminal
x-branch-idstringYesIdentifier of the branch making the request

Request Body​

Member Identifier (required, one of)​

The member object must contain at least one of the following identifiers:

FieldTypeDescription
membershipKeystringLoyalty membership key
commonExtIdstringExternal system identifier
phoneNumberstringMember's phone number
emailstringMember's email address
shortCodestringTemporary short code
temporaryTokenstringTemporary authentication token
cardNumberstringPhysical card number
customIdentifierstringCustom business-specific identifier

Pagination & Filters​

FieldTypeRequiredDefaultDescription
typestringNo—Filter by message type (e.g., sms, email, push)
statusstringNo—Filter by delivery status: sent, failed, bounce complaint, delivered, open, or clicked
fromDateISO 8601 dateNo90 days agoStart of the date range (createdAt >= fromDate)
toDateISO 8601 dateNonowEnd of the date range (createdAt <= toDate)
limitinteger (1–100)No40Maximum number of records to return
offsetinteger (≥ 0)No0Number of records to skip (for pagination)

Request Example​

curl --location --request POST 'https://{{server}}/v1/member/deliveryLogs' \
--header 'Content-Type: application/json' \
--header 'x-api-key: {{api-key}}' \
--header 'x-source-type: POS' \
--header 'x-source-name: pos-terminal-01' \
--header 'x-pos-id: POS001' \
--header 'x-branch-id: BR001' \
--data-raw '{
"member": {
"membershipKey": "0fe31b8b-5ad5-48af-81e9-4adc7d596042"
},
"type": "email",
"status": "delivered",
"fromDate": "2026-03-01T00:00:00.000Z",
"toDate": "2026-04-30T23:59:59.999Z",
"limit": 10,
"offset": 0
}'

Success Response​

200 OK​

{
"status": "success",
"deliveryLogs": [
{
"messageId": "msgabc123",
"type": "email",
"status": "click",
"destination": "member@example.com",
"membershipKey": "0fe31b8b-5ad5-48af-81e9-4adc7d596042",
"templateId": "tmplxyz",
"campaignId": "camp456",
"provider": "ses",
"source": "noreply@company.com",
"createdAt": "2026-04-15T10:23:00.000Z"
}
]
}

Response Fields​

FieldTypeDescription
messageIdstringUnique identifier of the message
typestringCommunication channel (sms, email, push, etc.)
statusstringDelivery status in lowercase: sent, failed, bounce complaint, delivered, open, or clicked
destinationstring | nullRecipient address (phone number or email)
membershipKeystringLoyalty membership key of the recipient
templateIdstring | nullIdentifier of the message template used
campaignIdstring | nullIdentifier of the campaign that triggered the message
providerstringDelivery provider (e.g., verimor, ses and notification)
sourcestring | nullSource identifier (e.g., SMS sender name or email "from" field)
createdAtISO 8601 dateTimestamp when the log entry was created

Error Response Examples​

Missing Member Object​

{
"status": "error",
"error": {
"code": "301",
"message": "member is required"
}
}

No Member Identifiers Provided​

{
"status": "error",
"error": {
"code": "202",
"message": "None of the member identifier fields were provided"
}
}

Member Not Found​

{
"status": "error",
"error": {
"code": "302",
"message": "Member not found for the given identifier"
}
}

Invalid Status Value​

{
"status": "error",
"error": {
"code": "1005",
"message": "Invalid status value"
}
}

Invalid Date Format​

{
"status": "error",
"error": {
"code": "1002",
"message": "Invalid fromDate format (must be ISO 8601)"
}
}

Internal Server Error​

{
"status": "error",
"error": {
"code": "1030",
"message": "Internal server error while fetching delivery logs"
}
}

Error Codes​

HTTP StatusCodeDescription
400101Missing or invalid x-api-key header
400102Missing x-source-type header
400103Missing x-source-name header
400104Missing x-pos-id header
400105Missing x-branch-id header
400301Missing or invalid member object
400202None of the member identifier fields were provided
4001004Invalid type value
4001005Invalid status value
4001002Invalid fromDate format (must be ISO 8601)
4001003Invalid toDate format (must be ISO 8601)
4001011Invalid limit (must be an integer between 1 and 100)
4001012Invalid offset (must be an integer of 0 or more)
404302Member not found for the given identifier
5001030Internal server error while fetching delivery logs

Field Reference​

FieldTypeDescription
memberobjectRequired. Member identifier object (must contain at least one identifier field)
typestringCommunication channel type (e.g., sms, email, push)
statusstringDelivery status (sent, failed, bounce complaint, delivered, open, or clicked)
fromDateISO 8601 dateStart date for filtering log entries
toDateISO 8601 dateEnd date for filtering log entries
limitintegerMaximum records to return (1–100)
offsetintegerNumber of records to skip for pagination
  • Viewing member communication history for support inquiries
  • Monitoring individual member engagement metrics
  • Debugging failed messages for specific members
  • Verifying delivery of important communications
  • Building member-specific engagement dashboards
  • Compliance audit trails for member communications