Secured Email/SMS Gateway

The primary goal of this API is to allow Smartico.ai sending of emails and SMS messages without any exposure to the personal and identifiable information (PII) such as phone numbers and email addresses of the end users.

Sending Emails via custom HTTP API supplied by customer:

The service should be accessible from provided IP addresses only.

The API should accept the following parameters as HTTP POST JSON Body and protected by "Authorization" header with secret value generated by the customer:

  1. ext_user_id / String / platform user id the way it’s reported to Smartico.ai via integration

  2. from_email_address / String / from email address that should be used in the outgoing email

  3. reply_to_email_address / String / replyTo email address that should be used in the outgoing email

  4. subject / String / Email subject

  5. body / String / HTML email body content

  6. text_body / String / Text variation on the email

  7. email_uid / String / unique email ID on Smartico.ai platform

  8. callback_url / String / HTTP API endpoint to be called when email status is changed

{
  "ext_user_id": "hhu234556",
  "from_email_address": "Amazing <noreply@amazing.co>",
  "reply_to_email_address": "Amazing <noreply@amazing.co>",
  "subject": "The best offer your can find on the market",
  "body": "<html>..........</html>",
  "text_body": "Get the offer.....",
  "email_uid": "ksjhdf3428yqwr8fhjhfkdj",
  "callback_url" : "https://api.smartico.ai/......callback"
}

Response as JSON message, always with 200 code:

  • If mail was accepted

    • error_code = 0

    • ext_message_id - unique SMS id from the gateway (MUST Have)

  • If failed

    • error_code > 0

    • error_message - explain why the request to send email failed

{
  "error_code": 0,
  "ext_message_id": "a540f662-45b3-11ee-be56-0242ac120002"
}

{
  "error_code": 1,
  "error_message": "User was not found"
}

Sending SMS/IM via custom API supplied by customer:

The service should be accessible from provided IP addresses only.

The API should accept the following parameters as HTTP POST JSON Body:

  1. ext_user_id / String / platform user id the way it’s reported to Smartico

  2. from_number / String / Optional, if integration supports

  3. body / String / text body content of the message

  4. im_uid / String / unique instant message ID on Smartico platform

  5. callback_url / String / HTTP API endpoint to be called when message status is changed

{
  "ext_user_id": "hhu234556",
  "from_number": "Amazing",
  "body": "Best offer ever",
  "im_uid": "ksjhdf3428yqwr8fhjhfkdj",
  "callback_url" : "https://api.smartico.ai/......callback"
}

Response as JSON message, always with 200 code:

  • If SMS was accepted

    • error_code = 0

    • ext_message_id - unique SMS id from the gateway

  • If failed

    • error_code > 0

    • error_message - describe what is the problem

{
  "error_code": 0,
  "ext_message_id": "a540f662-45b3-11ee-be56-0242ac120002"
}

{
  "error_code": 1,
  "error_message": "User was not found"
}

Upon customer getting any status update regarding email/sms deliverability, it should call Smartico.ai API, the API is simple HTTP GET call to an endpoint that will be provided by your Success Manager.

Example:

https://api.smartico.ai/...../?type=email&ext_message_id=71e92bca-48a8-11ee-be56-0242ac120002&status=delivered&api_key=48a8-11ee-be56-0242

The following parameters should be included:

  • api_key = api key provided for a customer

  • type = email/sms ONLY those values are supported

  • ext_message_id = same ext_message_id that was provided to Smartico.ai when sending the communication

  • status = at text ONLY the following values:

    • accepted

    • delivered

    • failed

    • rejected

    • complained

    • opened

    • unsubscribed

Response as JSON message, always with 200 code:

{
  "error_code": 0,
}

{
  "error_code": 1,
  "error_message": "email was not found"
}

Last updated