UNPKG

@warriorteam/redai-zalo-sdk

Version:

Comprehensive TypeScript/JavaScript SDK for Zalo APIs - Official Account, ZNS, Consultation Service, Group Messaging, and Social APIs

514 lines 12.8 kB
/** * ZNS (Zalo Notification Service) Type Definitions */ export declare enum ZNSTemplateType { /** ZNS tùy chỉnh */ CUSTOM = 1, /** ZNS xác thực */ AUTHENTICATION = 2, /** ZNS yêu cầu thanh toán */ PAYMENT_REQUEST = 3, /** ZNS voucher */ VOUCHER = 4, /** ZNS Đánh giá dịch vụ */ SERVICE_RATING = 5 } export declare enum ZNSTemplateTag { /** Transaction */ TRANSACTION = "1", /** Customer care */ CUSTOMER_CARE = "2", /** Promotion */ PROMOTION = "3" } export declare enum ZNSButtonType { /** URL */ URL = 1, /** Phone */ PHONE = 2, /** SMS */ SMS = 3, /** App */ APP = 4, /** Deeplink */ DEEPLINK = 5, /** Map */ MAP = 6, /** Calendar */ CALENDAR = 7, /** Copy */ COPY = 8 } export declare enum ZNSParamType { /** Tên khách hàng (30) */ CUSTOMER_NAME = "1", /** Số điện thoại (15) */ PHONE_NUMBER = "2", /** Địa chỉ (200) */ ADDRESS = "3", /** Mã số (30) */ CODE = "4", /** Nhãn tùy chỉnh (30) */ CUSTOM_LABEL = "5", /** Trạng thái giao dịch (30) */ TRANSACTION_STATUS = "6", /** Thông tin liên hệ (50) */ CONTACT_INFO = "7", /** Giới tính / Danh xưng (5) */ GENDER_TITLE = "8", /** Tên sản phẩm / Thương hiệu (200) */ PRODUCT_BRAND = "9", /** Số lượng / Số tiền (20) */ QUANTITY_AMOUNT = "10", /** Thời gian (20) */ TIME = "11", /** OTP (10) */ OTP = "12", /** URL (200) */ URL = "13", /** Tiền tệ (VNĐ) (12) */ CURRENCY = "14", /** Bank transfer note (90) */ BANK_TRANSFER_NOTE = "15" } export interface ZNSMessage { phone: string; template_id: string; template_data: Record<string, any>; tracking_id?: string; } export interface ZNSHashPhoneMessage { phone_hash: string; template_id: string; template_data: Record<string, any>; tracking_id?: string; } export interface ZNSDevModeMessage { phone: string; template_id: string; template_data: Record<string, any>; tracking_id?: string; mode: "development"; } export interface ZNSRsaMessage { phone_rsa: string; template_id: string; template_data: Record<string, any>; tracking_id?: string; } export interface ZNSJourneyMessage { phone: string; template_id: string; template_data: Record<string, any>; tracking_id?: string; journey_id: string; } export interface ZNSSendResult { error: number; message: string; data?: { msg_id: string; sent_time: string; quota?: { remainingQuota: number; dailyQuota: number; }; }; } export interface ZNSTemplate { templateId: string; templateName: string; status: "PENDING_REVIEW" | "ENABLE" | "REJECT" | "DISABLE"; listParams: Array<{ name: string; require: boolean; type: "STRING" | "NUMBER" | "DATE"; maxLength?: number; minLength?: number; }>; timeout?: number; previewUrl?: string; templateQuality?: "HIGH" | "MEDIUM" | "LOW"; templateTag?: string; price?: number; applyTemplateQuota?: boolean; templateDailyQuota?: number; templateRemainingQuota?: number; } export interface ZNSTemplateDetails { error: number; message: string; data: { templateId: string; templateName: string; status: "ENABLE" | "PENDING_REVIEW" | "DELETE" | "REJECT" | "DISABLE"; reason?: string; listParams: Array<{ name: string; require: boolean; type: string; maxLength: number; minLength: number; acceptNull: boolean; }>; listButtons: Array<{ type: number; title: string; content: string; }>; timeout: number; previewUrl: string; templateQuality: string; templateTag: "TRANSACTION" | "CUSTOMER_CARE" | "PROMOTION"; price: string; }; } export interface ZNSTemplateList { error: number; message: string; data: Array<{ templateId: string; templateName: string; createdTime: number; status: "PENDING_REVIEW" | "DISABLE" | "ENABLE" | "REJECT"; templateQuality: "HIGH" | "MEDIUM" | "LOW" | "UNDEFINED"; }>; metadata: { total: number; }; } /** * ZNS Template Create Request - theo chuẩn Zalo API * API: POST https://business.openapi.zalo.me/template/create */ export interface ZNSCreateTemplateRequest { /** Tên mẫu tin (10-60 ký tự) */ template_name: string; /** Loại mẫu tin */ template_type: 1 | 2 | 3 | 4 | 5; /** Tag mẫu tin */ tag: "1" | "2" | "3"; /** Layout của template */ layout: ZNSTemplateLayout; /** Thông tin về param (optional) */ params?: ZNSTemplateParam[]; /** Ghi chú kiểm duyệt (1-400 ký tự, optional) */ note?: string; /** Mã tracking do đối tác tự định nghĩa */ tracking_id: string; } /** * ZNS Template Edit Request - theo chuẩn Zalo API * API: POST https://business.openapi.zalo.me/template/edit * Chỉ có thể chỉnh sửa template có trạng thái REJECT */ export interface ZNSUpdateTemplateRequest { /** Template ID được hệ thống tự tạo */ template_id: string; /** Tên mẫu tin (10-60 ký tự) */ template_name: string; /** Loại mẫu tin */ template_type: 1 | 2 | 3 | 4 | 5; /** Tag mẫu tin */ tag: "1" | "2" | "3"; /** Layout của template */ layout: ZNSTemplateLayout; /** Thông tin về param (optional) */ params?: ZNSTemplateParam[]; /** Ghi chú kiểm duyệt (1-400 ký tự, optional) */ note?: string; /** Mã tracking do đối tác tự định nghĩa */ tracking_id: string; } /** * Layout của ZNS Template */ export interface ZNSTemplateLayout { /** Header components (optional) */ header?: { components: ZNSLayoutComponent[]; }; /** Body components (required) */ body: { components: ZNSLayoutComponent[]; }; /** Footer components (optional) */ footer?: { components: ZNSLayoutComponent[]; }; } /** * Component trong layout */ export interface ZNSLayoutComponent { /** Logo component */ LOGO?: { light: { type: "IMAGE"; media_id: string; }; dark: { type: "IMAGE"; media_id: string; }; }; /** Images component */ IMAGES?: { items: Array<{ type: "IMAGE"; media_id: string; }>; }; /** Title component */ TITLE?: { value: string; }; /** Paragraph component */ PARAGRAPH?: { value: string; }; /** OTP component */ OTP?: { value: string; }; /** Table component */ TABLE?: { rows: Array<{ value: string; title: string; row_type?: number; }>; }; /** Voucher component */ VOUCHER?: { name: string; condition: string; voucher_code: string; start_date: string; end_date: string; display_code: 0 | 1; }; /** Payment component */ PAYMENT?: { bank_code: string; account_name: string; account_number: string; amount: string; note: string; }; /** Buttons component */ BUTTONS?: { items: Array<{ content: string; type: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8; title: string; }>; }; } /** * Template parameter theo chuẩn Zalo API */ export interface ZNSTemplateParam { /** Loại param */ type: "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11" | "12" | "13" | "14" | "15"; /** Tên của param */ name: string; /** Dữ liệu mẫu của param */ sample_value: string; } /** * Response từ API create/edit template */ export interface ZNSTemplateCreateEditResponse { error: number; message: string; data: { /** Template ID */ template_id: string; /** Tên template */ template_name: string; /** Loại template */ template_type: number; /** Trạng thái template sau khi submit */ status: "PENDING_REVIEW"; /** Template tag */ tag: number; /** App ID của template */ app_id: string; /** OA ID của template */ oa_id: string; /** Giá của template */ price: string; /** Timeout của template */ timeout: number; /** Link preview template */ preview_url: string; }; } export interface ZNSUploadImageResult { error: number; message: string; data?: { attachment_id: string; url: string; }; } export interface ZNSStatusInfo { error: number; message: string; data?: { status: "PENDING" | "SENT" | "RECEIVED" | "FAILED"; sent_time?: string; received_time?: string; fail_reason?: string; }; } export interface ZNSMessageStatusInfo { error: number; message: string; data?: { delivery_time: string; message: string; status: number; }; } export interface ZNSQuotaInfo { error: number; message: string; data?: { dailyQuota: string; remainingQuota: string; dailyQuotaPromotion: string | null; remainingQuotaPromotion: string | null; monthlyPromotionQuota: number; remainingMonthlyPromotionQuota: number; estimatedNextMonthPromotionQuota: number; }; } export interface ZNSAllowedContentTypes { error: number; message: string; data?: string[]; } export interface ZNSTemplateSampleData { error: number; message: string; data: Record<string, any>; } export interface ZNSCustomerRatingResponse { error: number; data: { total: number; data: Array<{ note: string; rate: number; submitDate: string; msgId: string; feedbacks: string[]; trackingId: string; }>; }; } export interface ZNSOAQualityInfo { error: number; message: string; data: { oaCurrentQuality: "HIGH" | "MEDIUM" | "LOW" | "UNDEFINED"; oa7dayQuality: "HIGH" | "MEDIUM" | "LOW" | "UNDEFINED"; }; } export interface ZNSQualityHistoryList { error: number; message: string; data?: { history: Array<{ date: string; quality: "HIGH" | "MEDIUM" | "LOW"; qualityScore: number; metrics: { sent: number; delivered: number; read: number; responded: number; complained: number; }; }>; }; } export interface ZNSTemplateStatus { templateId: string; status: "PENDING_REVIEW" | "ENABLE" | "REJECT" | "DISABLE"; rejectReason?: string; enabledTime?: string; disabledTime?: string; } export interface ZNSComponent { type: "HEADER" | "BODY" | "FOOTER"; format?: "TEXT" | "IMAGE" | "VIDEO"; text?: string; url?: string; example?: { header_text?: string[]; body_text?: string[][]; header_handle?: string[]; }; } export interface ZNSTemplateComponent { type: "TITLE" | "PARAGRAPH" | "TABLE" | "LOGO" | "IMAGE" | "BUTTONS"; content?: string; url?: string; buttons?: Array<{ title: string; type: "PHONE_NUMBER" | "URL"; payload: string; }>; table?: { headers: string[]; rows: string[][]; }; } export interface ZNSError { error: number; message: string; details?: { field?: string; code?: string; description?: string; }; } export interface ZNSAnalytics { templateId: string; period: { from: string; to: string; }; metrics: { sent: number; delivered: number; read: number; clicked: number; failed: number; deliveryRate: number; readRate: number; clickRate: number; }; breakdown?: { daily?: Array<{ date: string; sent: number; delivered: number; read: number; clicked: number; failed: number; }>; hourly?: Array<{ hour: number; sent: number; delivered: number; read: number; clicked: number; failed: number; }>; }; } //# sourceMappingURL=zns.d.ts.map