1MSG

Детали WhatsApp Flow

GET
/flows/{flowId}

Один WhatsApp Flow: статус, категории и ошибки валидации (если запрошены через fields).

Authorization

JWT token
querytoken<token>

Path Parameters

flowId*string

Идентификатор Flow

Query Parameters

fields?string

Список полей через запятую (id,name,status,categories,preview,validation_errors,json_version,data_api_version,endpoint_uri,data_channel_uri,whatsapp_business_account)

Response Body

Детали Flow

application/json
  1. response
id?string
name?string
status?FlowStatus

Статус сценария

Value in"DRAFT""PUBLISHED""DEPRECATED"
categories?array<>
validationErrors?array<>
jsonVersion?string
dataApiVersion?string
endpointUri?string

HTTPS-адрес вашего сервера для data channel этого Flow. Это не маршрут 1msg, и эти вызовы не приходят на webhookUrl канала.

WhatsApp отправляет POST JSON с полями encrypted_flow_data, encrypted_aes_key и initial_vector. Расшифруйте encrypted_aes_key приватным RSA-ключом от загруженного business_public_key (RSA-OAEP, SHA-256), затем encrypted_flow_data через AES-128-GCM (initial_vector — IV, последние 16 байт ciphertext — auth tag). Ответ — эта ciphertext-строка в base64 и заголовок Content-Type: text/plain. Шифруйте ответ тем же AES-ключом и IV, у которого инвертирован каждый байт. Если расшифровать запрос не удалось, ответьте HTTP 421: приложение WhatsApp заново запросит публичный ключ.

Тот же URL получает служебный ping. Ответьте в том же зашифрованном виде; расшифрованное тело — {"data":{"status":"active"}}. ping и обмены экранами не приходят в webhook канала. Когда пользователь отправляет форму, итог приходит на webhookUrl канала: messages[].interactive.type = nfm_reply.

Сначала загрузите публичный ключ через POST /whatsapp_business_encryption и вызывайте GET /whatsapp_business_encryption, пока business_public_key_signature_status не станет VALID.

Formaturi
dataChannelUri?string
Formaturi
preview?
whatsappBusinessAccount?
curl -X GET 'https://api.1msg.io/123/flows/string'
{  "id": "string",  "name": "string",  "status": "DRAFT",  "categories": [    "SIGN_UP"  ],  "validationErrors": [    {      "error": "string",      "errorType": "string",      "message": "string",      "lineStart": 0,      "lineEnd": 0,      "columnStart": 0,      "columnEnd": 0,      "pointers": [        {          "lineStart": 0,          "lineEnd": 0,          "columnStart": 0,          "columnEnd": 0,          "path": "string"        }      ]    }  ],  "jsonVersion": "string",  "dataApiVersion": "string",  "endpointUri": "http://example.com",  "dataChannelUri": "http://example.com",  "preview": {    "previewUrl": "http://example.com",    "expiresAt": "2019-08-24T14:15:22Z",    "id": "string"  },  "whatsappBusinessAccount": {}}