Skip to main content
WhatsApp Guides

Fix WhatsApp Template Rejections for PII in Sample Payloads

Sarah Jenkins
11 min read
Views 1
Featured image for Fix WhatsApp Template Rejections for PII in Sample Payloads

Understanding Why Meta Rejects Sensitive Data in Templates

When you submit a WhatsApp template for approval, you must provide sample values for every variable in your message. These samples help Meta reviewers understand how you intend to use the template. A common mistake involves using real customer information in these samples. Meta classifies this as a violation of data privacy policies. If your sample payload contains a real phone number, a specific home address, or a full name from your database, the template faces immediate rejection.

Meta uses automated scanners and manual reviewers to check these payloads. Their goal is to prevent the exposure of Personally Identifiable Information (PII). They do not want real data sitting in their approval queues or being visible to reviewers who do not have a relationship with your customers. This policy exists to protect user privacy and reduce the risk of data leaks during the administrative phase of template management.

The Definition of PII in the Context of WhatsApp Templates

Personally Identifiable Information includes any data that identifies a specific person. In a WhatsApp message template, variables like {{1}} or {{2}} represent dynamic content. When you define the example field in your API request, you are telling Meta what that content looks like.

Items Meta flags as sensitive PII include:

  • Full names of real individuals.
  • Residential or private business addresses.
  • Credit card numbers or partial bank account details.
  • Government ID numbers like Social Security or Tax IDs.
  • Real phone numbers that are not for testing purposes.
  • Specific medical records or appointment details involving a patient name.

To pass the review process, you must replace these with generic, synthetic data that follows the same format but contains no real value.

Prerequisites for Successful Template Submission

Before you fix your rejected templates, ensure you have the following components ready. You need access to the Meta Business Suite or the WhatsApp Business API via a developer token. You also need a clear mapping of your variables.

  1. A Meta Developer App: Connected to your WhatsApp Business Account (WABA).
  2. A Permanent Access Token: With whatsapp_business_management permissions.
  3. The Template ID: For the rejected template if you are updating it.
  4. A Clean Payload Strategy: A list of synthetic values to use for your variables.

Step-by-Step Implementation: Cleaning Your Sample Payloads

Follow these milestones to strip PII from your submissions and move toward a successful approval status.

Milestone 1: Identify All Dynamic Variables

Review your template body text. Look for every instance of double curly braces. Each one needs a corresponding sample in the components array of your API call.

Example Body: Hello {{1}}, your order {{2}} is ready for pickup at {{3}}.

In this example, you have three variables. You must provide three non-sensitive samples.

Milestone 2: Replace Real Data with Generic Placeholders

Instead of using "Sarah Jenkins", use "John Doe" or "Valued Customer". Instead of a real order ID like "TXN-9928374", use "ORDER-12345". For addresses, use a generic format like "123 Business Road, Suite 100".

Milestone 3: Structure the API Request Correctly

When using the WhatsApp Cloud API, the sample values sit inside the example object within the parameter_name or the text array. Here is how you should format a request for a utility template that avoids PII rejections.

{
  "name": "order_update_status",
  "language": "en_US",
  "category": "UTILITY",
  "components": [
    {
      "type": "BODY",
      "text": "Hello {{1}}, your order {{2}} is confirmed.",
      "example": {
        "header_text": [
          "Order Confirmation"
        ],
        "body_text": [
          [
            "John Doe",
            "12345"
          ]
        ]
      }
    }
  ]
}

Milestone 4: Submit via Postman or cURL

Send your request to the message_templates endpoint. Ensure your authorization header includes your Bearer token. Using a tool like Postman allows you to see the exact error response if the structure is wrong.

Practical Example: Handling Media Templates

Media templates are trickier. They often require a sample image or document URL in addition to text variables. Meta reviewers check the content of the image too. If the sample image shows a real invoice with a real person's data, the template gets rejected.

Use a generic document template or a blurred placeholder image for the header.

{
  "name": "shipping_label_ready",
  "category": "UTILITY",
  "language": "en_US",
  "components": [
    {
      "type": "HEADER",
      "format": "DOCUMENT",
      "example": {
        "header_handle": [
          "https://www.example.com/generic-shipping-label-sample.pdf"
        ]
      }
    },
    {
      "type": "BODY",
      "text": "Hi {{1}}, your shipping label is ready.",
      "example": {
        "body_text": [
          [
            "Jane Doe"
          ]
        ]
      }
    }
  ]
}

Edge Cases: When Generic Data Still Fails

Sometimes Meta rejects a template even if you think the data is generic. This usually happens for three reasons.

1. The Phone Number Pattern

If you use a real-looking phone number like +1 212 555 1212, the system might flag it if it belongs to a real person. Use the officially designated test numbers or a sequence like +1 555 555 5555. These are recognized globally as non-working numbers for documentation.

2. Overly Specific Locations

Providing a very specific coordinates or a niche address in a small town might trigger a privacy flag. Stick to major city names or completely fictional street names.

3. Financial String Patterns

Variables meant for credit card last four digits should only ever contain 1234 or 0000 in the sample. Any other pattern that resembles a valid card sequence based on Luhn algorithm checks might get caught by automated filters.

Comparison: Official API Templates vs. Unofficial Methods

If the official Meta approval process is too restrictive for your specific use case, you might consider how the WASenderApi handles messaging. The WASenderApi functions as a developer-focused alternative that connects your WhatsApp account via a QR session.

Unlike the official Meta Cloud API, the WASenderApi does not require pre-approved templates for every message. This removes the PII sample review hurdle entirely. You send messages directly through your connected session without a middleman checking your variable samples.

This approach offers more flexibility for rapid prototyping or internal tools where template management is an unnecessary overhead. However, using an unofficial API requires you to manage your own sending rates to avoid account bans. It is a trade-off between the strict compliance of Meta's approval system and the technical freedom of a session-based API.

Troubleshooting Common Rejection Codes

If your template is rejected, check the quality_score and rejection_reason in the Meta Business Suite.

  • Policy: Data Privacy: This is the most common code for PII issues. It means your samples look like real customer data. Solution: Use more generic names and numbers.
  • Policy: Abusive Content: This happens if your samples include placeholders that sound like spam or include offensive dummy text. Solution: Keep your samples professional.
  • Incorrect Category: If your sample data looks like a marketing offer (e.g., "Get 20% off") but you chose the UTILITY category, Meta will reject it. Solution: Change the category or the sample text.

Best Practices for Faster Approvals

  • Use Faker Libraries for Scripts: If you are generating many templates via script, use a library like Faker to produce names like "John Smith" or "Jane Doe" consistently.
  • Document Your Mapping: Keep a spreadsheet of which variable number corresponds to which data type. This prevents confusion when you are filling out the example array.
  • Keep Samples Minimal: Do not write a paragraph of sample text. Use the minimum amount of text needed to demonstrate the variable type.
  • Review Before Submission: Double-check that no real customer logs accidentally made it into your JSON payload.

Frequently Asked Questions

Do I need to update my template if I change the sample data? Yes. You must resubmit the template for approval if you change the sample values. The review process will start again.

Does Meta check the actual data I send to customers after the template is approved? Meta does not review every individual message sent through the API for PII in the same way they review templates. However, they monitor for spam and policy violations. Your templates must stay within the bounds of the approved category.

Why does Meta care about sample data if it is never sent to a user? Meta reviewers are human beings or third-party contractors. Meta has a legal obligation to ensure their employees and contractors do not see real customer PII during the administrative review process. It is a safety measure for your customers.

Can I use variables in the header of a template? Yes. Headers allow one variable. You must provide a sample for this variable just like you do for the body variables.

How long does the approval process take after fixing PII issues? Most templates are reviewed within a few minutes to two hours. If it takes longer than 24 hours, check if there are other policy violations or if your account is in good standing.

Conclusion and Next Steps

Fixing WhatsApp template rejections for PII is a straightforward task once you understand Meta's perspective on data safety. By replacing real user data with generic, synthetic placeholders, you remove the primary friction point in the approval process.

Your next step is to audit your current template list. Identify any templates marked as "Rejected" and look for the privacy policy flag. Use the structured JSON examples provided above to update your templates with clean sample payloads. Once you master the art of synthetic data submission, your template approval rate will improve significantly.

If you find the official template system too cumbersome for your workflow, you can explore session-based alternatives like the WASenderApi to manage your messaging without the need for Meta's manual review process. Choose the path that fits your project requirements for speed and compliance.

Share this guide

Share it on social media or copy the article URL to send it anywhere.

Use the share buttons or copy the article URL. Link copied to clipboard. Could not copy the link. Please try again.