diff --git a/sqs/sqs.go b/sqs/sqs.go
index e9fa2f6f3554f5011923d64c01d0912c4770c057..be6deb7cc036ff7ffa2f43aedf6d150d35ca476d 100644
--- a/sqs/sqs.go
+++ b/sqs/sqs.go
@@ -7,7 +7,6 @@ import (
 	"fmt"
 	"github.com/google/uuid"
 	"gitlab.com/uafrica/go-utils/s3"
-	"gitlab.com/uafrica/go-utils/string_utils"
 	"io/ioutil"
 	"time"
 
@@ -29,6 +28,7 @@ type Messenger struct {
 	S3Session          *s3.SessionWithHelpers
 	S3BucketName       string
 	MessageGroupID     *string
+	DelaySeconds       *int64
 	RequestIDHeaderKey string
 }
 
@@ -79,22 +79,21 @@ func (m *Messenger) SendSQSMessage(headers map[string]string, body string, curre
 		StringValue: aws.String(sqsType),
 	}
 
+	// SQS has max of 15 minutes delay
+	// https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html
+	if m.DelaySeconds != nil && aws.Int64Value(m.DelaySeconds) > 900 {
+		m.DelaySeconds = aws.Int64(900)
+	}
+
 	var res *sqs.SendMessageOutput
 	var err error
-	if string_utils.UnwrapString(m.MessageGroupID) == "" {
-		res, err = sqsClient.SendMessage(&sqs.SendMessageInput{
-			MessageAttributes: msgAttrs,
-			MessageBody:       aws.String(body),
-			QueueUrl:          &m.QueueURL,
-		})
-	} else {
-		res, err = sqsClient.SendMessage(&sqs.SendMessageInput{
-			MessageAttributes: msgAttrs,
-			MessageBody:       aws.String(body),
-			QueueUrl:          &m.QueueURL,
-			MessageGroupId:    m.MessageGroupID,
-		})
-	}
+	res, err = sqsClient.SendMessage(&sqs.SendMessageInput{
+		MessageAttributes: msgAttrs,
+		MessageBody:       aws.String(body),
+		QueueUrl:          &m.QueueURL,
+		MessageGroupId:    m.MessageGroupID,
+		DelaySeconds:      m.DelaySeconds,
+	})
 
 	if err != nil {
 		return "", err