{"id":"de603896-a353-434f-b95d-426d607191d0","shortId":"gWcjQt","kind":"skill","title":"telnyx-whatsapp-go","tagline":">-","description":"# Telnyx WhatsApp Business API - Go\n\n## Installation\n\n```bash\ngo get github.com/team-telnyx/telnyx-go\n```\n\n## Setup\n\n```go\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"os\"\n\n\t\"github.com/team-telnyx/telnyx-go\"\n\t\"github.com/team-telnyx/telnyx-go/option\"\n)\n\nclient := telnyx.NewClient(option.WithAPIKey(os.Getenv(\"TELNYX_API_KEY\")))\n```\n\nAll examples below assume `client` is already initialized as shown above.\n\n## Error Handling\n\nAll API calls can fail with network errors, rate limits (429), validation errors (422),\nor authentication errors (401). Always handle errors in production code:\n\n```go\nctx := context.TODO()\n\nresponse, err := client.Messages.SendWhatsapp(ctx, telnyx.MessageSendWhatsappParams{\n\tFrom: telnyx.String(\"+19452940762\"),\n\tTo:   telnyx.String(\"+18005551234\"),\n\tType: telnyx.F(telnyx.MessageSendWhatsappParamsTypeWhatsapp),\n\tWhatsappMessage: telnyx.F(telnyx.MessageSendWhatsappParamsWhatsappMessage{\n\t\tType: telnyx.F(\"text\"),\n\t\tText: telnyx.F(map[string]interface{}{\n\t\t\t\"body\": \"Hello from Telnyx!\",\n\t\t}),\n\t}),\n})\nif err != nil {\n\tvar apiErr *telnyx.Error\n\tif errors.As(err, &apiErr) {\n\t\tfmt.Printf(\"API error: %d - %s\\n\", apiErr.StatusCode, apiErr.Message)\n\t}\n\treturn err\n}\nfmt.Println(response.Data.ID)\n```\n\nCommon error codes: `401` invalid API key, `403` insufficient permissions,\n`404` resource not found, `422` validation error (check field formats),\n`429` rate limited (retry with exponential backoff).\n\n### WhatsApp-Specific Errors\n\n- **40008** — Meta catch-all error. Check template parameters, phone number formatting, and 24-hour window rules.\n- **131047** — Message failed to send during the 24-hour window. The customer hasn't messaged you first (for non-template messages).\n- **131026** — Recipient phone number is not a WhatsApp user.\n- **132000** — Template parameter count mismatch. Ensure the number of parameters matches the template definition.\n- **132015** — Template paused or disabled by Meta due to quality issues.\n\n## Important Notes\n\n- **Phone numbers** must be in E.164 format (e.g., `+13125550001`). Include the `+` prefix and country code.\n- **Template messages** can be sent anytime. Free-form (session) messages can only be sent within a 24-hour window after the customer last messaged you.\n- **Template IDs**: You can reference templates by Telnyx UUID (`template_id`) instead of `name` + `language`. When `template_id` is provided, name and language are resolved automatically.\n- **Pagination:** List endpoints return paginated results. Use the auto-paging iterator: `iter.Next()` in a loop.\n\n## Operational Caveats\n\n- The sending phone number must be registered with a WhatsApp Business Account (WABA) and associated with a messaging profile.\n- Templates must be in `APPROVED` status before they can be used for sending.\n- Template names must be lowercase with underscores only (e.g., `order_confirmation`). No spaces, hyphens, or uppercase.\n- When creating templates, provide realistic sample values for body parameters — Meta reviewers check these during approval.\n- Category selection matters for billing: `AUTHENTICATION` templates get special pricing but must contain an OTP. `UTILITY` is for transactional messages. `MARKETING` for promotional content.\n- Meta may reclassify your template category (e.g., UTILITY to MARKETING) which affects billing.\n\n## Reference Use Rules\n\nDo not invent Telnyx parameters, enums, response fields, or webhook fields.\n\n- If the parameter, enum, or response field you need is not shown inline in this skill, read [references/api-details.md](references/api-details.md) before writing code.\n- Before using any operation in `## Additional Operations`, read [the optional-parameters section](references/api-details.md#optional-parameters) and [the response-schemas section](references/api-details.md#response-schemas).\n- Before reading or matching webhook fields beyond the inline examples, read [the webhook payload reference](references/api-details.md#webhook-payload-fields).\n\n## Core Tasks\n\n### Send a WhatsApp template message\n\nSend a pre-approved template message. Templates can be sent anytime — no 24-hour window restriction.\n\n`client.Messages.SendWhatsapp()` — `POST /messages/whatsapp`\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `From` | string (E.164) | Yes | WhatsApp-enabled phone number in +E.164 format |\n| `To` | string (E.164) | Yes | Recipient phone number in +E.164 format |\n| `Type` | string | No | Must be `WHATSAPP` |\n| `WhatsappMessage` | object | Yes | WhatsApp message object |\n| `MessagingProfileID` | string (UUID) | No | Messaging profile to use |\n| `WebhookURL` | string (URL) | No | Callback URL for delivery status updates |\n\n```go\n// Send by template name + language\nctx := context.TODO()\n\nresponse, err := client.Messages.SendWhatsapp(ctx, telnyx.MessageSendWhatsappParams{\n\tFrom: telnyx.String(\"+19452940762\"),\n\tTo:   telnyx.String(\"+18005551234\"),\n\tType: telnyx.F(telnyx.MessageSendWhatsappParamsTypeWhatsapp),\n\tWhatsappMessage: telnyx.F(telnyx.MessageSendWhatsappParamsWhatsappMessage{\n\t\tType: telnyx.F(\"template\"),\n\t\tTemplate: telnyx.F(telnyx.MessageSendWhatsappParamsWhatsappMessageTemplate{\n\t\t\tName:     telnyx.String(\"order_confirmation\"),\n\t\t\tLanguage: telnyx.F(telnyx.MessageSendWhatsappParamsWhatsappMessageTemplateLanguage{\n\t\t\t\tCode: telnyx.String(\"en_US\"),\n\t\t\t}),\n\t\t\tComponents: telnyx.F([]telnyx.MessageSendWhatsappParamsWhatsappMessageTemplateComponent{\n\t\t\t\t{\n\t\t\t\t\tType: telnyx.F(\"body\"),\n\t\t\t\t\tParameters: telnyx.F([]telnyx.MessageSendWhatsappParamsWhatsappMessageTemplateComponentParameter{\n\t\t\t\t\t\t{Type: telnyx.F(\"text\"), Text: telnyx.String(\"ORD-12345\")},\n\t\t\t\t\t\t{Type: telnyx.F(\"text\"), Text: telnyx.String(\"March 15, 2026\")},\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t}),\n\t\t}),\n\t}),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Println(response.Data.ID)\n```\n\n```go\n// Send by Telnyx template_id (no name/language needed)\nctx := context.TODO()\n\nresponse, err := client.Messages.SendWhatsapp(ctx, telnyx.MessageSendWhatsappParams{\n\tFrom: telnyx.String(\"+19452940762\"),\n\tTo:   telnyx.String(\"+18005551234\"),\n\tType: telnyx.F(telnyx.MessageSendWhatsappParamsTypeWhatsapp),\n\tWhatsappMessage: telnyx.F(telnyx.MessageSendWhatsappParamsWhatsappMessage{\n\t\tType: telnyx.F(\"template\"),\n\t\tTemplate: telnyx.F(telnyx.MessageSendWhatsappParamsWhatsappMessageTemplate{\n\t\t\tTemplateID: telnyx.String(\"019cd44b-3a1c-781b-956e-bd33e9fd2ac6\"),\n\t\t\tComponents: telnyx.F([]telnyx.MessageSendWhatsappParamsWhatsappMessageTemplateComponent{\n\t\t\t\t{\n\t\t\t\t\tType: telnyx.F(\"body\"),\n\t\t\t\t\tParameters: telnyx.F([]telnyx.MessageSendWhatsappParamsWhatsappMessageTemplateComponentParameter{\n\t\t\t\t\t\t{Type: telnyx.F(\"text\"), Text: telnyx.String(\"483291\")},\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t}),\n\t\t}),\n\t}),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Println(response.Data.ID)\n```\n\nPrimary response fields:\n- `response.Data.ID` — Message UUID\n- `response.Data.To[0].Status` — `queued`, `sent`, `delivered`, `failed`\n- `response.Data.From.PhoneNumber`\n- `response.Data.Type` — `WHATSAPP`\n\n### Send a free-form WhatsApp text message\n\nSend a text message within the 24-hour customer service window.\n\n`client.Messages.SendWhatsapp()` — `POST /messages/whatsapp`\n\n```go\nctx := context.TODO()\n\nresponse, err := client.Messages.SendWhatsapp(ctx, telnyx.MessageSendWhatsappParams{\n\tFrom: telnyx.String(\"+19452940762\"),\n\tTo:   telnyx.String(\"+18005551234\"),\n\tType: telnyx.F(telnyx.MessageSendWhatsappParamsTypeWhatsapp),\n\tWhatsappMessage: telnyx.F(telnyx.MessageSendWhatsappParamsWhatsappMessage{\n\t\tType: telnyx.F(\"text\"),\n\t\tText: telnyx.F(map[string]interface{}{\n\t\t\t\"body\": \"Your order has shipped!\",\n\t\t}),\n\t}),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Println(response.Data.ID)\n```\n\n### List WhatsApp Business Accounts\n\n`client.Whatsapp.BusinessAccounts.List()` — `GET /v2/whatsapp/business_accounts`\n\n```go\nctx := context.TODO()\n\nresponse, err := client.Whatsapp.BusinessAccounts.List(ctx, telnyx.WhatsappBusinessAccountListParams{})\nif err != nil {\n\tlog.Fatal(err)\n}\nfor _, waba := range response.Data {\n\tfmt.Printf(\"%s: %s (%s)\\n\", waba.ID, waba.Name, waba.Status)\n}\n```\n\nPrimary response fields:\n- `waba.ID` — Telnyx WABA UUID\n- `waba.WabaID` — Meta WABA ID\n- `waba.Name` — Business name\n- `waba.Status` — Account status\n- `waba.Country` — WABA country\n\n### List templates for a WABA\n\n`client.Whatsapp.Templates.List()` — `GET /v2/whatsapp/message_templates`\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `WabaID` | string (UUID) | Yes | Telnyx WABA UUID |\n| `Category` | string | No | Filter: `AUTHENTICATION`, `MARKETING`, `UTILITY` |\n| `Status` | string | No | Filter: `APPROVED`, `PENDING`, `REJECTED`, `DISABLED` |\n\n```go\nctx := context.TODO()\n\nresponse, err := client.Whatsapp.Templates.List(ctx,\n\ttelnyx.WhatsappTemplateListParams{\n\t\tWabaID: telnyx.String(\"019c1ff0-5c30-7f36-8436-730b1d0b0e56\"),\n\t\tStatus: telnyx.String(\"APPROVED\"),\n\t},\n)\nif err != nil {\n\tlog.Fatal(err)\n}\nfor _, tmpl := range response.Data {\n\tfmt.Printf(\"%s: %s (%s) - %s\\n\", tmpl.ID, tmpl.Name, tmpl.Category, tmpl.Status)\n}\n```\n\nPrimary response fields:\n- `tmpl.ID` — Telnyx template UUID (use as `template_id` when sending)\n- `tmpl.Name` — Template name\n- `tmpl.Category` — `AUTHENTICATION`, `MARKETING`, or `UTILITY`\n- `tmpl.Language` — Language code\n- `tmpl.Status` — `APPROVED`, `PENDING`, `REJECTED`, `DISABLED`\n- `tmpl.Components` — Template components\n\n### Create a message template\n\n`client.Whatsapp.Templates.Create()` — `POST /v2/whatsapp/message_templates`\n\n```go\nctx := context.TODO()\n\nresponse, err := client.Whatsapp.Templates.Create(ctx,\n\ttelnyx.WhatsappTemplateCreateParams{\n\t\tWabaID:   telnyx.String(\"019c1ff0-5c30-7f36-8436-730b1d0b0e56\"),\n\t\tName:     telnyx.String(\"order_shipped\"),\n\t\tCategory: telnyx.String(\"UTILITY\"),\n\t\tLanguage: telnyx.String(\"en_US\"),\n\t\tComponents: telnyx.F([]telnyx.WhatsappTemplateCreateParamsComponent{\n\t\t\t{\n\t\t\t\tType: telnyx.F(\"BODY\"),\n\t\t\t\tText: telnyx.String(\"Your order {{1}} has been shipped and will arrive by {{2}}.\"),\n\t\t\t\tExample: telnyx.F(telnyx.WhatsappTemplateCreateParamsComponentExample{\n\t\t\t\t\tBodyText: telnyx.F([][]string{{\"ORD-12345\", \"March 20, 2026\"}}),\n\t\t\t\t}),\n\t\t\t},\n\t\t}),\n\t},\n)\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"Template created: %s (status: %s)\\n\", response.Data.ID, response.Data.Status)\n```\n\n### List phone numbers for a WABA\n\n`client.Whatsapp.PhoneNumbers.List()` — `GET /v2/whatsapp/phone_numbers`\n\n```go\nctx := context.TODO()\n\nresponse, err := client.Whatsapp.PhoneNumbers.List(ctx,\n\ttelnyx.WhatsappPhoneNumberListParams{\n\t\tWabaID: telnyx.String(\"019c1ff0-5c30-7f36-8436-730b1d0b0e56\"),\n\t},\n)\nif err != nil {\n\tlog.Fatal(err)\n}\nfor _, pn := range response.Data {\n\tfmt.Printf(\"%s - quality: %s\\n\", pn.PhoneNumber, pn.QualityRating)\n}\n```\n\n---\n\n### Webhook Verification\n\nTelnyx signs webhooks with Ed25519. Always verify signatures in production:\n\n```go\nimport \"github.com/team-telnyx/telnyx-go/webhook\"\n\nevent, err := webhook.ConstructEvent(\n\tpayload,                                 // []byte — raw request body\n\trequest.Header.Get(\"telnyx-signature-ed25519\"),\n\trequest.Header.Get(\"telnyx-timestamp\"),\n\ttelnyxPublicKey,\n)\nif err != nil {\n\tlog.Printf(\"Webhook verification failed: %v\", err)\n\thttp.Error(w, \"Invalid signature\", http.StatusForbidden)\n\treturn\n}\n```\n\n## Webhooks\n\nThese webhook payload fields are inline because they are part of the primary integration path.\n\n### Message Delivery Update\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `data.event_type` | enum: message.sent, message.finalized | Delivery status event |\n| `data.payload.id` | uuid | Message ID |\n| `data.payload.to[0].status` | string | `queued`, `sent`, `delivered`, `read`, `failed` |\n| `data.payload.template_id` | string | Telnyx template UUID (if template message) |\n| `data.payload.template_name` | string | Template name (if template message) |\n\n### Template Status Change\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `event_type` | string | `whatsapp.template.approved`, `whatsapp.template.rejected`, `whatsapp.template.disabled` |\n| `payload.template_id` | string | Telnyx template UUID |\n| `payload.template_name` | string | Template name |\n| `payload.status` | string | New template status |\n| `payload.reason` | string | Rejection/disable reason |\n\n## Template Best Practices\n\n- **Naming**: Use lowercase with underscores. Be descriptive (e.g., `appointment_reminder`, not `msg1`).\n- **Sample values**: Provide realistic examples in the `example` field — Meta reviewers check these.\n- **Category selection**:\n  - `AUTHENTICATION` — OTP/verification codes only. Gets special pricing.\n  - `UTILITY` — Transactional (order updates, shipping, account alerts).\n  - `MARKETING` — Promotional content, offers, newsletters.\n- **Keep it concise**: Meta prefers shorter templates. Avoid unnecessary formatting.\n- **Parameters**: Use `{{1}}`, `{{2}}`, etc. for variable content. Always provide the correct number of parameters when sending.\n\n## Important Supporting Operations\n\n| Operation | SDK Method | Use Case |\n|-----------|-----------|----------|\n| Get template details | `client.WhatsappMessageTemplates.Retrieve()` | Check template status |\n| Get business profile | `client.Whatsapp.PhoneNumbers.Profile.Retrieve()` | View business profile |\n| Configure webhooks | `client.Whatsapp.BusinessAccounts.Settings.Update()` | Subscribe to events |\n\n## Additional Operations\n\n| Operation | SDK Method | Endpoint | Required Params |\n|-----------|-----------|----------|-----------------|\n| Send WhatsApp message | `client.Messages.SendWhatsapp()` | `POST /messages/whatsapp` | `From`, `To`, `WhatsappMessage` |\n| List WABAs | `client.Whatsapp.BusinessAccounts.List()` | `GET /v2/whatsapp/business_accounts` | — |\n| Get WABA | `client.Whatsapp.BusinessAccounts.Retrieve()` | `GET /v2/whatsapp/business_accounts/:id` | `WabaID` |\n| List templates | `client.Whatsapp.Templates.List()` | `GET /v2/whatsapp/message_templates` | `WabaID` |\n| Get template | `client.WhatsappMessageTemplates.Retrieve()` | `GET /v2/whatsapp_message_templates/:id` | `TemplateID` |\n| Create template | `client.Whatsapp.Templates.Create()` | `POST /v2/whatsapp/message_templates` | `WabaID`, `Name`, `Category`, `Language`, `Components` |\n| List phone numbers | `client.Whatsapp.PhoneNumbers.List()` | `GET /v2/whatsapp/phone_numbers` | `WabaID` |\n| Configure webhooks | `client.Whatsapp.BusinessAccounts.Settings.Update()` | `PATCH /v2/whatsapp/business_accounts/:id/settings` | `WabaID` |","tags":["telnyx","whatsapp","team-telnyx","agent-skills","ai-coding-agent","claude-code","cpaas","cursor","iot","llm","sdk","sip"],"capabilities":["skill","source-team-telnyx","skill-telnyx-whatsapp-go","topic-agent-skills","topic-ai-coding-agent","topic-claude-code","topic-cpaas","topic-cursor","topic-iot","topic-llm","topic-sdk","topic-sip","topic-sms","topic-speech-to-text","topic-telephony"],"categories":["ai"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/team-telnyx/ai/telnyx-whatsapp-go","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add team-telnyx/ai","source_repo":"https://github.com/team-telnyx/ai","install_from":"skills.sh"}},"qualityScore":"0.533","qualityRationale":"deterministic score 0.53 from registry signals: · indexed on github topic:agent-skills · 167 github stars · SKILL.md body (14,466 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T00:54:56.640Z","embedding":null,"createdAt":"2026-04-18T22:08:51.956Z","updatedAt":"2026-04-22T00:54:56.640Z","lastSeenAt":"2026-04-22T00:54:56.640Z","tsv":"'+13125550001':241 '+18005551234':86,603,679,773 '+19452940762':83,600,676,770 '-12345':642,1018 '-730':901,979,1060 '/messages/whatsapp':528,759,1337 '/team-telnyx/telnyx-go':16,25 '/team-telnyx/telnyx-go/option':28 '/team-telnyx/telnyx-go/webhook':1094 '/v2/whatsapp/business_accounts':806,1345,1350,1387 '/v2/whatsapp/message_templates':859,963,1357,1370 '/v2/whatsapp/phone_numbers':1044,1381 '/v2/whatsapp_message_templates':1363 '0':729,1163 '019c1ff0':897,975,1056 '019c1ff0-5c30-7f36':896,974,1055 '019cd44b':695 '019cd44b-3a1c-781b-956e-bd33e9fd2ac6':694 '1':1002,1281 '131026':197 '131047':175 '132000':206 '132015':220 '15':649 '2':1010,1282 '20':1020 '2026':650,1021 '24':171,182,265,522,752 '3a1c':696 '40008':158 '401':66,130 '403':134 '404':137 '422':62,141 '429':59,147 '483291':714 '5c30':898,976,1057 '781b':697 '7f36':899,977,1058 '8436':900,978,1059 '956e':698 'account':329,803,847,1262 'addit':460,1324 'affect':417 'alert':1263 'alreadi':42 'alway':67,1085,1287 'anytim':253,520 'api':8,34,50,116,132 'apierr':109,114 'apierr.message':122 'apierr.statuscode':121 'appoint':1231 'approv':341,381,513,882,905,950 'arriv':1008 'associ':332 'assum':39 'authent':64,387,875,942,1250 'auto':309 'auto-pag':308 'automat':299 'avoid':1276 'b1d0b0e56':902,980,1061 'backoff':153 'bash':11 'bd33e9fd2ac6':699 'best':1221 'beyond':488 'bill':386,418 'bodi':101,374,632,705,788,997,1102 'bodytext':1014 'busi':7,328,802,844,1312,1316 'byte':1099 'call':51 'callback':579 'case':1303 'catch':161 'catch-al':160 'categori':382,411,871,985,1248,1373 'caveat':317 'chang':1190 'check':144,164,378,1246,1308 'client':29,40 'client.messages.sendwhatsapp':78,526,595,671,757,765,1335 'client.whatsapp.businessaccounts.list':804,812,1343 'client.whatsapp.businessaccounts.retrieve':1348 'client.whatsapp.businessaccounts.settings.update':1320,1385 'client.whatsapp.phonenumbers.list':1042,1050,1379 'client.whatsapp.phonenumbers.profile.retrieve':1314 'client.whatsapp.templates.create':961,969,1368 'client.whatsapp.templates.list':857,891,1355 'client.whatsappmessagetemplates.retrieve':1307,1361 'code':72,129,247,454,623,948,1252 'common':127 'compon':627,700,956,992,1375 'concis':1271 'configur':1318,1383 'confirm':360,619 'contain':394 'content':405,1266,1286 'context':20 'context.todo':75,592,668,762,809,888,966,1047 'core':502 'correct':1290 'count':209 'countri':246,851 'creat':367,957,1029,1366 'ctx':74,79,591,596,667,672,761,766,808,813,887,892,965,970,1046,1051 'custom':186,270,754 'd':118 'data.event':1150 'data.payload.id':1158 'data.payload.template':1171,1180 'data.payload.to':1162 'definit':219 'deliv':733,1168 'deliveri':582,1145,1155 'descript':532,863,1149,1193,1229 'detail':1306 'disabl':224,885,953 'due':227 'e.164':238,535,543,547,553 'e.g':240,358,412,1230 'ed25519':1084,1107 'en':625,990 'enabl':539 'endpoint':302,1329 'ensur':211 'enum':427,436,1152 'err':77,106,113,124,594,652,655,670,716,719,764,794,797,811,816,819,890,907,910,968,1023,1026,1049,1063,1066,1096,1114,1121 'error':47,56,61,65,69,117,128,143,157,163 'errors.as':112 'etc':1283 'event':1095,1157,1194,1323 'exampl':37,491,1011,1239,1242 'exponenti':152 'fail':53,177,734,1119,1170 'field':145,429,432,439,487,501,724,834,927,1132,1147,1191,1243 'filter':874,881 'first':191 'fmt':21 'fmt.printf':115,824,915,1027,1071 'fmt.println':125,656,720,798 'form':256,742 'format':146,169,239,544,554,1278 'found':140 'free':255,741 'free-form':254,740 'get':13,389,805,858,1043,1254,1304,1311,1344,1346,1349,1356,1359,1362,1380 'github.com':15,24,27,1093 'github.com/team-telnyx/telnyx-go':14,23 'github.com/team-telnyx/telnyx-go/option':26 'github.com/team-telnyx/telnyx-go/webhook':1092 'go':4,9,12,18,73,585,658,760,807,886,964,1045,1090 'handl':48,68 'hasn':187 'hello':102 'hour':172,183,266,523,753 'http.error':1122 'http.statusforbidden':1126 'hyphen':363 'id':275,284,291,663,842,935,1161,1172,1201,1351,1364 'id/settings':1388 'import':19,231,1091,1296 'includ':242 'initi':43 'inlin':445,490,1134 'instal':10 'instead':285 'insuffici':135 'integr':1142 'interfac':100,787 'invalid':131,1124 'invent':424 'issu':230 'iter':311 'iter.next':312 'keep':1269 'key':35,133 'languag':288,296,590,620,947,988,1374 'last':271 'limit':58,149 'list':301,800,852,1036,1341,1353,1376 'log.fatal':654,718,796,818,909,1025,1065 'log.printf':1116 'loop':315 'lowercas':354,1225 'map':98,785 'march':648,1019 'market':402,415,876,943,1264 'match':216,485 'matter':384 'may':407 'messag':176,189,196,249,258,272,335,401,508,515,565,571,726,745,749,959,1144,1160,1179,1187,1334 'message.finalized':1154 'message.sent':1153 'messagingprofileid':567 'meta':159,226,376,406,840,1244,1272 'method':1301,1328 'mismatch':210 'msg1':1234 'must':235,322,338,352,393,558 'n':120,828,920,1033,1075 'name':287,294,351,589,616,845,940,981,1181,1184,1207,1210,1223,1372 'name/language':665 'need':441,666 'network':55 'new':1213 'newslett':1268 'nil':107,653,717,795,817,908,1024,1064,1115 'non':194 'non-templ':193 'note':232 'number':168,200,213,234,321,541,551,1038,1291,1378 'object':562,566 'offer':1267 'oper':316,458,461,1298,1299,1325,1326 'option':465,470 'option.withapikey':31 'optional-paramet':464,469 'ord':641,1017 'order':359,618,790,983,1001,1259 'os':22 'os.getenv':32 'otp':396 'otp/verification':1251 'page':310 'pagin':300,304 'param':1331 'paramet':166,208,215,375,426,435,466,471,529,633,706,860,1279,1293 'part':1138 'patch':1386 'path':1143 'paus':222 'payload':495,500,1098,1131 'payload.reason':1216 'payload.status':1211 'payload.template':1200,1206 'pend':883,951 'permiss':136 'phone':167,199,233,320,540,550,1037,1377 'pn':1068 'pn.phonenumber':1076 'pn.qualityrating':1077 'post':527,758,962,1336,1369 'practic':1222 'pre':512 'pre-approv':511 'prefer':1273 'prefix':244 'price':391,1256 'primari':722,832,925,1141 'product':71,1089 'profil':336,572,1313,1317 'promot':404,1265 'provid':293,369,1237,1288 'qualiti':229,1073 'queu':731,1166 'rang':822,913,1069 'rate':57,148 'raw':1100 'read':449,462,483,492,1169 'realist':370,1238 'reason':1219 'recipi':198,549 'reclassifi':408 'refer':278,419,496 'references/api-details.md':450,451,468,478,497 'regist':324 'reject':884,952 'rejection/disable':1218 'remind':1232 'request':1101 'request.header.get':1103,1108 'requir':531,862,1330 'resolv':298 'resourc':138 'respons':76,428,438,475,480,593,669,723,763,810,833,889,926,967,1048 'response-schema':474,479 'response.data':823,914,1070 'response.data.from.phonenumber':735 'response.data.id':126,657,721,725,799,1034 'response.data.status':1035 'response.data.to':728 'response.data.type':736 'restrict':525 'result':305 'retri':150 'return':123,303,1127 'review':377,1245 'rule':174,421 'sampl':371,1235 'schema':476,481 'sdk':1300,1327 'section':467,477 'select':383,1249 'send':179,319,349,504,509,586,659,738,746,937,1295,1332 'sent':252,262,519,732,1167 'servic':755 'session':257 'setup':17 'ship':792,984,1005,1261 'shorter':1274 'shown':45,444 'sign':1081 'signatur':1087,1106,1125 'skill':448 'skill-telnyx-whatsapp-go' 'source-team-telnyx' 'space':362 'special':390,1255 'specif':156 'status':342,583,730,848,878,903,1031,1156,1164,1189,1215,1310 'string':99,534,546,556,568,576,786,865,872,879,1016,1165,1173,1182,1196,1202,1208,1212,1217 'subscrib':1321 'support':1297 'task':503 'telnyx':2,5,33,104,281,425,661,836,868,929,1080,1105,1110,1174,1203 'telnyx-signature-ed25519':1104 'telnyx-timestamp':1109 'telnyx-whatsapp-go':1 'telnyx.error':110 'telnyx.f':88,91,94,97,605,608,611,614,621,628,631,634,637,644,681,684,687,690,701,704,707,710,775,778,781,784,993,996,1012,1015 'telnyx.messagesendwhatsappparams':80,597,673,767 'telnyx.messagesendwhatsappparamstypewhatsapp':89,606,682,776 'telnyx.messagesendwhatsappparamswhatsappmessage':92,609,685,779 'telnyx.messagesendwhatsappparamswhatsappmessagetemplate':615,691 'telnyx.messagesendwhatsappparamswhatsappmessagetemplatecomponent':629,702 'telnyx.messagesendwhatsappparamswhatsappmessagetemplatecomponentparameter':635,708 'telnyx.messagesendwhatsappparamswhatsappmessagetemplatelanguage':622 'telnyx.newclient':30 'telnyx.string':82,85,599,602,617,624,640,647,675,678,693,713,769,772,895,904,973,982,986,989,999,1054 'telnyx.whatsappbusinessaccountlistparams':814 'telnyx.whatsappphonenumberlistparams':1052 'telnyx.whatsapptemplatecreateparams':971 'telnyx.whatsapptemplatecreateparamscomponent':994 'telnyx.whatsapptemplatecreateparamscomponentexample':1013 'telnyx.whatsapptemplatelistparams':893 'telnyxpublickey':1112 'templat':165,195,207,218,221,248,274,279,283,290,337,350,368,388,410,507,514,516,588,612,613,662,688,689,853,930,934,939,955,960,1028,1175,1178,1183,1186,1188,1204,1209,1214,1220,1275,1305,1309,1354,1360,1367 'templateid':692,1365 'text':95,96,638,639,645,646,711,712,744,748,782,783,998 'timestamp':1111 'tmpl':912 'tmpl.category':923,941 'tmpl.components':954 'tmpl.id':921,928 'tmpl.language':946 'tmpl.name':922,938 'tmpl.status':924,949 'topic-agent-skills' 'topic-ai-coding-agent' 'topic-claude-code' 'topic-cpaas' 'topic-cursor' 'topic-iot' 'topic-llm' 'topic-sdk' 'topic-sip' 'topic-sms' 'topic-speech-to-text' 'topic-telephony' 'transact':400,1258 'type':87,93,530,555,604,610,630,636,643,680,686,703,709,774,780,861,995,1148,1151,1192,1195 'underscor':356,1227 'unnecessari':1277 'updat':584,1146,1260 'uppercas':365 'url':577,580 'us':626,991 'use':306,347,420,456,574,932,1224,1280,1302 'user':205 'util':397,413,877,945,987,1257 'uuid':282,569,727,838,866,870,931,1159,1176,1205 'v':1120 'valid':60,142 'valu':372,1236 'var':108 'variabl':1285 'verif':1079,1118 'verifi':1086 'view':1315 'w':1123 'waba':330,821,837,841,850,856,869,1041,1342,1347 'waba.country':849 'waba.id':829,835 'waba.name':830,843 'waba.status':831,846 'waba.wabaid':839 'wabaid':864,894,972,1053,1352,1358,1371,1382,1389 'webhook':431,486,494,499,1078,1082,1117,1128,1130,1319,1384 'webhook-payload-field':498 'webhook.constructevent':1097 'webhookurl':575 'whatsapp':3,6,155,204,327,506,538,560,564,737,743,801,1333 'whatsapp-en':537 'whatsapp-specif':154 'whatsapp.template.approved':1197 'whatsapp.template.disabled':1199 'whatsapp.template.rejected':1198 'whatsappmessag':90,561,607,683,777,1340 'window':173,184,267,524,756 'within':263,750 'write':453 'yes':536,548,563,867","prices":[{"id":"82d7c69f-7f09-4da8-b019-56de67497944","listingId":"de603896-a353-434f-b95d-426d607191d0","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"team-telnyx","category":"ai","install_from":"skills.sh"},"createdAt":"2026-04-18T22:08:51.956Z"}],"sources":[{"listingId":"de603896-a353-434f-b95d-426d607191d0","source":"github","sourceId":"team-telnyx/ai/telnyx-whatsapp-go","sourceUrl":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-whatsapp-go","isPrimary":false,"firstSeenAt":"2026-04-18T22:08:51.956Z","lastSeenAt":"2026-04-22T00:54:56.640Z"}],"details":{"listingId":"de603896-a353-434f-b95d-426d607191d0","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"team-telnyx","slug":"telnyx-whatsapp-go","github":{"repo":"team-telnyx/ai","stars":167,"topics":["agent-skills","ai","ai-coding-agent","claude-code","cpaas","cursor","iot","llm","sdk","sip","sms","speech-to-text","telephony","telnyx","tts","twilio-migration","voice-agents","voice-ai","webrtc","windsurf"],"license":"mit","html_url":"https://github.com/team-telnyx/ai","pushed_at":"2026-04-21T22:09:49Z","description":"Official one-stop shop for AI Agents and developers building with Telnyx.","skill_md_sha":"d249214c88c405d4f49adb4dba2ab87d2cb6c2c3","skill_md_path":"skills/telnyx-whatsapp-go/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-whatsapp-go"},"layout":"multi","source":"github","category":"ai","frontmatter":{"name":"telnyx-whatsapp-go","description":">-"},"skills_sh_url":"https://skills.sh/team-telnyx/ai/telnyx-whatsapp-go"},"updatedAt":"2026-04-22T00:54:56.640Z"}}