Send ZNS with Journey Token
POST /SendZNSJourney HTTP/1.1
Host: $BASE_URL.Zalo
Content-Type: application/json
Accept: */*
Content-Length: 139
{
"journey_id": "text",
"oa_id": "text",
"phone": "text",
"template_data": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"template_id": 1,
"tracking_id": "text"
}
A successful response
{
"campaign_id": "text",
"created_at": "2025-08-03T04:14:05.159Z",
"delivery_status": "unknown",
"delivery_time": "2025-08-03T04:14:05.159Z",
"enable_sms_on_zns_failure": true,
"error_code": 1,
"error_message": "text",
"fee_main": 1,
"fee_token": 1,
"feedback": [
"text"
],
"id": "text",
"is_charged": true,
"journey_id": "text",
"msg_id": "text",
"note": "text",
"oa_id": "text",
"phone": "text",
"rate": 1,
"sent_time": "2025-08-03T04:14:05.159Z",
"shop_id": "text",
"sms": {
"brandname": "text",
"code": "text",
"description": "text",
"message": "text",
"request_time": "2025-08-03T04:14:05.159Z",
"send_time": "2025-08-03T04:14:05.159Z",
"status": "text",
"status_description": "text",
"unicode": true
},
"status": "Z",
"submit_time": "2025-08-03T04:14:05.159Z",
"template_data": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"template_id": 1,
"timeout": 1,
"tracking_id": "text",
"type": "unknown",
"updated_at": "2025-08-03T04:14:05.159Z",
"user_id": "text",
"zl_user_id": "text"
}
Request:
curl --location '$BASE_URL.Zalo/SendZNSJourney' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer $API_KEY' \
--data '{
"journey_id": "<int64>",
"oa_id": "<int64>",
"phone": "<string>",
"template_data": {
"property1": "string",
"property2": "string"
},
"template_id": "<int>",
"tracking_id": "<string>"
}'
Response:
{
"created_at": "<dateTime>",
"delivery_time": "<dateTime>",
"id": "<int64>",
"is_charged": "<boolean>",
"journey_id": "<string>",
"msg_id": "<string>",
"msg_type": "journey",
"phone": "<string>",
"price": "<integer>",
"sent_time": "<dateTime>",
"template_id": "<integer>",
"timeout": "<integer>",
"tracking_id": "<string>",
"updated_at": "<dateTime>"
}
Request body structure
id
int64
OA ID
journey_id
int64
ID journey token
template_id
int
ID of the message
phone
string
Recipient phone number
template_data
object
Properties of the message you registered with Zalo
Note: The template_data structure is specified separately for each message.
tracking_id
string
Your API call tracking number, defined by you. You can use tracking_id for reconciliation without depending on the message_id provided by eTelecom.
Return data attribute structure
id
int64
Message ID on eTelecom system
shop_id
int64
Store ID on eTelecom system
user_id
int64
Sender ID on eTelecom system
campaign_id
int64
Campaign ID
delivery_status
string
Unkown
: Unknown
Received
: Received
Seen
: Viewed
delivery_time
string<date-time>
Time the user's device receives the ZNS notification
error_code
int
Error code
error_message
string
Error message
fee_main
int
Main fee
fee_token
int
Token Creation Fee
is_charged
boolean
True
: ZNS News is charged
False
: ZNS news is free of charge
journey_id
string
Journey ID
msg_id
string
ZNS message ID
type
string
template
: ZNS usually
journey
: ZNS journey
status
string
Status
Z
: Newly created
P
: Enable
N
: Disable
template_data
object
Message parameters
phone
string
Recipient phone number
sent_time
string<date-time>
ZNS notification sending time
template_id
integer
ID of the message
timeout
integer
Maximum time required by the system to process the request
tracking_id
string
Your API call tracking number, defined by you. You can use tracking_id for reconciliation without depending on the message_id provided by eTelecom.
updated_at
string<date-time>
Update date
created_at
string<date-time>
Date created
Last updated