Skip to content

Create templates with media header from public URL

Released: June 17, 2026

POST /v1/{phone_number_id}/templates now resolves IMAGE / VIDEO / DOCUMENT header samples from a public https:// URL:

  • Preferred: example.header_url: ["https://…"]
  • Compatible: the same URL in example.header_handle (existing integrations that already sent a Supabase/CDN link)

Kirimdev downloads the file, uploads it to Meta’s Resumable Upload API using the connected account’s credentials, and submits the resulting asset handle to Meta. No Meta access token or manual upload step is required on the integrator side.

Pass-through of an existing Meta handle (4::…) in example.header_handle is unchanged.

When Meta rejects template content or the header media URL is invalid, the API now returns 400 invalid_field_value (param: "components") instead of a generic 502 whatsapp_upstream_error. Transient upstream failures still map to 502.

New guide: Create templates — distinguishes creation (example.header_url) from send-time header media (image.link).