How to integrate status with third-party apps

Copy link
Android
iOS
You can use WhatsApp’s Share to Status API to integrate status with your apps and allow your users to share content directly to their status. Your app can use Android Intents and iOS Custom URL Schemes to send photos, videos, and stickers to WhatsApp Status. WhatsApp receives this content and loads it in the status composer, allowing your user to edit and publish it like a regular status.
By accessing and using this functionality, you acknowledge and agree to be bound by the Meta Developer Terms. Additionally, you represent and warrant:
  • Any content made available through your application or website, or shared to WhatsApp from your application or website, does not infringe upon the intellectual property rights of any third party and that you own, control or have otherwise secured all rights necessary to distribute, copy, publicly perform and display, or otherwise use the content via this functionality, including as uploaded and shared on WhatsApp.
  • You have the authority to make the foregoing representations on behalf of your organization.
  • If you do not have such authority or are otherwise unable to make the foregoing representations, you are not authorized to continue and should not do so.

Overview

WhatsApp's status composer consists of a background layer and a foreground layer.
  • Background layer: Fills the screen and can be customized with a photo, video, solid color, or color gradient.
  • Foreground layer: Contains an image and can be customized within the status composer.

Implement Share to Status API

Android implementation uses implicit intents to launch WhatsApp Status and pass it content.
Your sharing flow should:
  1. Instantiate an implicit intent with the content you want to pass to the WhatsApp app
  2. Start an activity for result and check that it can resolve the implicit intent
  3. Resolve the activity if it is able to

Data

You send the following data when you Share to Status.
Parameter nameTypeDescription
source_app_package_nameStringRequired
The unique identifier of your app on a device
share_typeStringRequired
Sharing type to be used for composer flow

Always pass: “SHARE_TO_STATUS”
android.intent.extra.STREAMStringOptional
URI to background media asset that is a local file on the device

Images
Supported formats: JPG, PNG
Recommended Minimum dimensions: 720px x 1280px

Videos
Supported formats: MOV, MP4, WebM
Supported resolutions: 720p, 1080p
Duration: Up to 60 seconds
Recommended aspect ratio: 9:16
foreground_mediaStringOptional
URI to foreground media asset that is a local file on the device

Supported formats: JPG, PNG

Additional media to show in the foreground. This can only be an image.

You must pass WhatsApp a background asset, a foreground asset, or both.
background_colorStringOptional
hex_color

A solid background based on the color is applied to the status.

If both color and background asset are defined, the asset takes precedence.
color_gradient_top
color_gradient_bottom
StringOptional
hex_color

A gradient background based on the two colors is applied to the status.

If both gradient and color are defined, the gradient takes precedence.

If both gradient and background asset are defined, the asset takes precedence.

Share background and foreground media

This example sends a background layer image asset and a foreground layer image asset to WhatsApp Status.
val shareIntent: Intent = Intent(Intent.ACTION_VIEW).apply {
data = Uri.parse("https://wa.me/status")

putExtra("source_app_package_name", app_package_name)
setPackage("com.whatsapp")

//Decides on which media composition flow
putExtra("share_type", "SHARE_TO_STATUS")


//Background media
//Uri must be granted FLAG_GRANT_READ_URI_PERMISSION
putExtra(Intent.EXTRA_STREAM, Uri.parse("uriToImage"))

//Foreground media
//Uri must be granted FLAG_GRANT_READ_URI_PERMISSION
putExtra("foreground_media", Uri.parse("uriToImage"))

context.grantUriPermission(packageName, Uri.parse("uriToImage"), Intent.FLAG_GRANT_READ_URI_PERMISSION)

flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
}


// Verify that the activity resolves the intent and start it
startActivityForResult(shareIntent, 0)

Share background assets

The code example sends an image as background to WhatsApp Status.
val shareIntent: Intent = Intent(Intent.ACTION_VIEW).apply {
data = Uri.parse("https://wa.me/status")

putExtra("source_app_package_name", app_package_name)
setPackage("com.whatsapp")

//Decides on which media composition flow
putExtra("share_type", "SHARE_TO_STATUS")

//Background media
//Uri must be granted FLAG_GRANT_READ_URI_PERMISSION
putExtra(Intent.EXTRA_STREAM, Uri.parse("uriToImage"))



flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
}



// Verify that the activity resolves the intent and start it
startActivityForResult(shareIntent, 0)

Share foreground assets

This example sends a foreground layer image asset and a set of background layer colors to WhatsApp Status. If you don't specify the background layer colors, the background layer color defaults to the most dominant color.
val shareIntent: Intent = Intent(Intent.ACTION_VIEW).apply
{ data = Uri.parse("https://wa.me/status")

putExtra("source_app_package_name", app_package_name)
setPackage("com.whatsapp")

//Decides on which media composition flow
putExtra("share_type", "SHARE_TO_STATUS")

//Foreground media
//Uri must be granted FLAG_GRANT_READ_URI_PERMISSION
putExtra("foreground_media", Uri.parse("uriToImage"))

context.grantUriPermission(packageName, Uri.parse("uriToImage"),
Intent.FLAG_GRANT_READ_URI_PERMISSION)

//Background color
putExtra("background_color", "hex_color")
//OR
putExtra("color_gradient_top", "hex_color")
putExtra("color_gradient_bottom", "hex_color")


flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
}



// Verify that the activity resolves the intent and start it startActivityForResult(shareIntent, 0)

Does this answer your question?

Yes
No