Messaging
WhatsApp, SMS and in-app notifications, their templates and delivery records.
26 endpoints
bearer driver_app beneficiary_app messaging.send device credential
Request body Field Type Constraints student_idstring (uuid) required — template_idstring (uuid) required — channelstring required sms whatsapp push emailvariablesarray | null optional max items 20 trip_idstring | null optional —
Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
bearer driver_app beneficiary_app parent_app admin_web device credential
Response Returns { "data": [NotificationRow ] } with meta.next_cursor for the next page.
Field Type Constraints idstring (uuid) required — kindstring required — titlestring required — bodystring | null required — payloadobject required — read_atstring | null required — created_atstring (date-time) required —
POST
/v3/notification/read
#
bearer driver_app beneficiary_app parent_app admin_web device credential
Request body Field Type Constraints idsstring (uuid) [] optional min items 1 · max items 200 allboolean optional —
Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
bearer admin_web device credential
Query parameters Name Type Constraints trip_idstring | null optional — fromstring | null optional — tostring | null optional — cursorstring | null optional max length 200 per_pageinteger | null optional min 1 · max 500
Response Returns { "data": [WebAlert ] } with meta.next_cursor for the next page.
Field Type Constraints idstring (uuid) required — kindstring required — severitystring | null required — messagestring | null required — detailsstring | null optional — trip_idstring | null required — routestring | null required — raised_byany required — occurred_atstring (date-time) required —
bearer admin_web messaging.view device credential
Query parameters Name Type Constraints fromstring | null optional — tostring | null optional — qstring | null optional max length 40 channelstring | null optional sms whatsapp push emailstatestring | null optional queued sent delivered failed expiredcursorstring | null optional max length 200 per_pageinteger | null optional min 1 · max 500
Response Returns { "data": [WebMessage ] } with meta.next_cursor for the next page.
Field Type Constraints idstring (uuid) required — channelstring required — to_msisdnstring | null required — student_idstring | null required — trip_idstring | null required — bodystring | null required — statestring required — errorstring | null required — school_idstring | null required — school_namestring | null required — created_atstring (date-time) required —
POST
/v3/portal/message
#
bearer admin_web messaging.send device credential
Request body Field Type Constraints kindstring | null optional message app_invitetemplate_idstring | null optional — channelstring required sms whatsapp push emailvariablesarray | null optional max items 20 student_idsstring (uuid) [] optional max items 500 route_idstring | null optional — gradestring | null optional max length 32 tag_idstring | null optional — guardian_idsstring (uuid) [] optional max items 500 user_idsstring (uuid) [] optional max items 500
Response Returns { "data": MessageSendResult }.
Field Type Constraints studentsinteger required — queuedinteger required —
GET
/v3/portal/notification-settings
#
bearer admin_web device credential
Response Returns { "data": PlatformNotificationSettings }.
Field Type Constraints sms_enabledboolean required — whatsapp_enabledboolean required — suffix_enabledboolean required — suffix_textstring | null required — suffix_scopestring required — suffix_school_idsstring (uuid) [] required — templatesobject required — row_versioninteger required —
PATCH
/v3/portal/notification-settings
#
bearer admin_web device credential
Request body Field Type Constraints update_maskstring[] required min items 1 expected_row_versioninteger required min 1 sms_enabledboolean | null optional — whatsapp_enabledboolean | null optional — suffix_enabledboolean | null optional — suffix_textstring | null optional max length 160 suffix_scopestring | null optional all selectedsuffix_school_idsstring (uuid) [] optional — templatesarray[] optional —
Response Returns { "data": PlatformNotificationSettings }.
Field Type Constraints sms_enabledboolean required — whatsapp_enabledboolean required — suffix_enabledboolean required — suffix_textstring | null required — suffix_scopestring required — suffix_school_idsstring (uuid) [] required — templatesobject required — row_versioninteger required —
bearer admin_web device credential
Response Returns { "data": [WebSurvey ] } with meta.next_cursor for the next page.
Field Type Constraints idstring (uuid) required — namestring required — statusstring required — template_namestring required — template_languagestring required — closing_messagestring | null required — sentinteger required — completedinteger required — created_atstring (date-time) required — updated_atstring (date-time) required —
bearer admin_web device credential
Request body Field Type Constraints namestring required max length 120 template_namestring required max length 120 template_languagestring | null optional max length 10 closing_messagestring | null optional max length 1024 questionsobject[] required min items 1 · max items 20
Response Returns { "data": WebSurveyDetail }.
Field Type Constraints idstring (uuid) required — namestring required — statusstring required — template_namestring required — template_languagestring required — closing_messagestring | null required — sentinteger required — completedinteger required — created_atstring (date-time) required — updated_atstring (date-time) required — questionsWebSurveyQuestion []optional —
GET
/v3/portal/survey/template
#
bearer admin_web device credential
Response Returns { "data": [WabaTemplate ] } with meta.next_cursor for the next page.
Field Type Constraints namestring required — languagestring required — statusstring required — categorystring required — bodystring | null required — buttonsstring[] required —
POST
/v3/portal/survey/template
#
bearer admin_web device credential
Request body Field Type Constraints namestring required max length 120 languagestring | null optional max length 10 bodystring required max length 1024 buttonsstring[] optional max items 3 example_paramsstring[] optional max items 5
Response Returns { "data": WabaTemplate }.
Field Type Constraints namestring required — languagestring required — statusstring required — categorystring required — bodystring | null required — buttonsstring[] required —
PATCH
/v3/portal/survey/{id}
#
bearer admin_web device credential
Edits are draft-only for the wording that Meta approved: an active survey's template is already live with parents, and a mid-flight change would make two parents' answers mean different things.
Path parameters Request body Field Type Constraints namestring optional max length 120 statusstring optional draft active archivedclosing_messagestring | null optional max length 1024
Response Returns { "data": WebSurveyDetail }.
Field Type Constraints idstring (uuid) required — namestring required — statusstring required — template_namestring required — template_languagestring required — closing_messagestring | null required — sentinteger required — completedinteger required — created_atstring (date-time) required — updated_atstring (date-time) required — questionsWebSurveyQuestion []optional —
GET
/v3/portal/survey/{id}/response
#
bearer admin_web device credential
The review screen (PS-5): one row per parent, with their answers.
Path parameters Response Returns { "data": [WebSurveyResponseRow ] } with meta.next_cursor for the next page.
Field Type Constraints idstring (uuid) required — phonestring required — statestring required — started_atstring | null required — completed_atstring | null required — answersobject[] required —
POST
/v3/portal/survey/{id}/send
#
bearer admin_web device credential
The trigger Faith asked for: name the school, pick the audience, send now.
Path parameters Request body Field Type Constraints school_idstring (uuid) required — audiencestring required all accountsaccount_idsstring (uuid) [] optional min items 1 · max items 2000
Response Returns { "data": WebSurveyRun }.
Field Type Constraints idstring (uuid) required — survey_idstring (uuid) required — school_idstring | null required — audiencestring required — recipientsinteger required — created_atstring (date-time) required —
GET
/v3/portal/survey/{id}/summary
#
bearer admin_web device credential
Per-question tallies — what the pilot report reads (PS-5).
Path parameters Response Returns { "data": WebSurveySummary }.
Field Type Constraints sentinteger required — completedinteger required — questionsobject[] required —
GET
/v3/portal/template
#
bearer admin_web device credential
Response Returns { "data": [WebTemplate ] } with meta.next_cursor for the next page.
Field Type Constraints idstring (uuid) required — namestring required — channelstring required — localestring | null required — subjectstring | null required — bodystring required — provider_templatestring | null required — is_activeboolean required — is_platformboolean required —
POST
/v3/portal/template
#
bearer admin_web messaging.template_manage device credential
Request body Field Type Constraints namestring required max length 120 channelstring required sms whatsapp push emaillocalestring | null optional max length 10 subjectstring | null optional max length 200 bodystring required max length 2000 provider_templatestring | null optional max length 120 is_activeboolean | null optional —
Response Returns { "data": WebTemplate }.
Field Type Constraints idstring (uuid) required — namestring required — channelstring required — localestring | null required — subjectstring | null required — bodystring required — provider_templatestring | null required — is_activeboolean required — is_platformboolean required —
DELETE
/v3/portal/template/{id}
#
bearer admin_web messaging.template_manage device credential
Path parameters Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
PATCH
/v3/portal/template/{id}
#
bearer admin_web messaging.template_manage device credential
Path parameters Request body Field Type Constraints update_maskstring[] required min items 1 · max items 7 namestring | null optional max length 120 channelstring | null optional sms whatsapp push emaillocalestring | null optional max length 10 subjectstring | null optional max length 200 bodystring | null optional max length 2000 provider_templatestring | null optional max length 120 is_activeboolean | null optional —
Response Returns { "data": WebTemplate }.
Field Type Constraints idstring (uuid) required — namestring required — channelstring required — localestring | null required — subjectstring | null required — bodystring required — provider_templatestring | null required — is_activeboolean required — is_platformboolean required —
POST
/v3/webhook/sms/{provider}
#
public 300,1
Path parameters Name Type Notes providerstring
Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
GET
/v3/webhook/whatsapp
#
public 120,1
Meta webhook subscription handshake: echo hub.challenge when the caller presents the configured verify token. PHP maps the dotted query keys (hub.mode) to underscores.
Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
POST
/v3/webhook/whatsapp
#
public 120,1
Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.
POST
/v3/webhook/whatsapp/flow
#
public 300,1
Response Returns { "data": … }; this endpoint's payload is not yet
pinned to a named shape.