> ## Documentation Index
> Fetch the complete documentation index at: https://docs.digifist.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Compliance Checks

> The pre-launch validations Galantis runs before any campaign can be sent.

Before a campaign can be launched — whether immediately or on a schedule — Galantis runs a set of pre-launch compliance checks. These validations exist to prevent policy violations, protect your phone number's quality rating, and ensure the campaign has everything it needs to deliver successfully. A campaign that fails any check cannot be sent until the issue is resolved.

## What this covers

* The four pre-launch checks and what each validates
* What a failed check means and how to resolve it
* The relationship between compliance checks and campaign status

## Pre-launch checks

<Tabs>
  <Tab title="Template Status">
    **What is checked:** The template assigned to the campaign must have `APPROVED` status in Meta's template system.

    **Why it matters:** WhatsApp does not accept messages using templates in `DRAFT`, `PENDING_APPROVAL`, or `REJECTED` status. A campaign using an unapproved template would fail at the API level for every recipient.

    **How to resolve:** If your template is `PENDING_APPROVAL`, wait for Meta to complete the review — approval typically takes minutes to a few hours. If the template is `REJECTED`, review the rejection reason in **Templates → \[Template Name] → Status**, fix the issue, and resubmit. Do not launch the campaign until the template reaches `APPROVED` status.

    <Note>
      Template approval status is checked at launch time, not at the time the template is selected during campaign configuration. A template that was approved when you built the campaign may have since been paused by Meta — always confirm status before sending.
    </Note>
  </Tab>

  <Tab title="Audience Consent">
    **What is checked:** The final audience — after applying include/exclude rules and deduplication — must contain only customers with `marketing_state = SUBSCRIBED`.

    **Why it matters:** Sending to non-opted-in customers violates WhatsApp's Business Policy and can trigger quality degradation on your phone number. Galantis enforces this automatically by filtering the audience at send time, but the check confirms the audience is not entirely empty after filtering.

    **How to resolve:** If the check fails because no `SUBSCRIBED` customers remain after filtering, review your audience selection. The most likely causes are: your selected lists or segments contain no opted-in customers, or all opted-in customers are removed by an exclusion rule. Adjust your targeting and re-estimate reach before attempting to launch again.

    See [Opt-in & Consent](/whatsapp/compliance/opt-in-consent) for how consent states are assigned and managed.
  </Tab>

  <Tab title="Template Category">
    **What is checked:** The selected template's category must accurately reflect the message content and intended purpose.

    **Why it matters:** Meta monitors category compliance both during template approval and after templates are live. Using a `UTILITY` template to send `MARKETING` content is a policy violation — it misrepresents the message purpose to both Meta and the recipient.

    **How to resolve:** If your message content is promotional in nature (offers, discounts, product launches), ensure the template uses the `MARKETING` category. If the template's category does not match your intended use, you will need to create a new template with the correct category and obtain approval before launching.

    See [Campaign Types](./campaign-types) for how template category maps to campaign type, and [Templates — Categories](/whatsapp/templates/template-categories) for category definitions.
  </Tab>

  <Tab title="Credit Balance">
    **What is checked:** Your current credit balance must be sufficient to cover the estimated send volume for the campaign.

    **Why it matters:** Credits are consumed per message sent. If your balance runs out partway through a campaign dispatch, remaining messages will fail with an `INSUFFICIENT_CREDITS` error. The pre-launch check catches this before dispatch begins to prevent partial sends.

    **How to resolve:** If your balance is insufficient, top up credits or upgrade your plan before launching. The credit requirement is calculated from the estimated audience size — a larger audience requires more credits. Review your estimated reach in **Campaigns → \[Campaign] → Audience** and compare it against your current balance in **Billing → Overview**.

    See [Billing Overview](/whatsapp/billing/overview) for credit management, and [Billing — Conversations](/whatsapp/billing/conversations) for how per-message costs are calculated.
  </Tab>
</Tabs>

## Check summary

| Check             | Blocks launch if...                                     |
| ----------------- | ------------------------------------------------------- |
| Template status   | Template is not `APPROVED`                              |
| Audience consent  | No `SUBSCRIBED` customers remain after filtering        |
| Template category | Category does not match message content purpose         |
| Credit balance    | Balance is insufficient for the estimated audience size |

## When checks run

Pre-launch checks run at the moment you click **Send** or confirm a scheduled campaign. They are not run during campaign configuration — you can build and save a campaign in `DRAFT` status regardless of template approval state or credit balance. The checks gate the transition from `DRAFT` to `PENDING` or `SCHEDULED`.

For scheduled campaigns, checks run at the time of scheduling, not at the scheduled send time. This means a campaign that passes checks at scheduling time could encounter an issue by the time it actually sends — for example, if a template is paused by Meta or credits are depleted between scheduling and dispatch.

<Warning>
  For scheduled campaigns, we recommend reviewing template status and credit balance shortly before the scheduled send time to catch any issues that arose after scheduling.
</Warning>

## Related guides

* [Templates — Approval Lifecycle](/whatsapp/templates/approval-lifecycle) — Template status states and the review process
* [Audience Targeting](./audience-targeting) — Building consent-compliant audiences
* [Campaign Types](./campaign-types) — Matching template category to message purpose
* [Billing Overview](/whatsapp/billing/overview) — Managing and monitoring your credit balance
