Skip to main content

WhatsApp Cloud API - Media Upload API | Developer Documentation

Prepare a file before sending it through ChatArchitect

Start with the file types and attachment controls supported by your connected application. The media workflow guide helps you choose an image, document, audio or video route. These options depend on the integration and the application's own capabilities.

Prepare the actual file

  1. Open or play the source file. Confirm the intended version, complete contents and recipient before uploading it.
  2. Check its actual type and size against the limits shown by your tool and the relevant image, document, audio or video guide.
  3. If conversion or compression is needed, export a new file and open that output again. Changing a filename extension does not convert its contents.
  4. Choose a meaningful filename and select the final output in the intended conversation. Check any accompanying text and caption controls available in that integration.

Send one test and examine the result

Check the business number and WhatsApp service window using the first-message guide. For a test, receive a message from a separate account and send a small ordinary attachment reply in that open window. Outside it, follow the approved-template workflow rather than treating a file upload as a new service window.

After sending, check the result in the tool and open the received file in the test account. A successful upload in the CRM and the final WhatsApp delivery result are separate stages.

If the upload or send fails

Record the integration and application version, business number, file type and size, time and exact error. Identify whether the tool rejected the upload, accepted the file but failed to send, or sent something the recipient could not open. Use a non-confidential test file when reproducing the issue with support.

For API work, use the documented ChatArchitect contract. The Quick Start covers text, templates and callbacks; it does not specify a media-upload request. Obtain the media contract for your connection before implementing one. This page does not substitute a Meta Graph upload endpoint for that contract.