DEV Community

unifyport for UnifyPort

Posted on Originally published at unifyport.ai

WhatsApp October 2026 Pricing: Build a Cost Model Before You Migrate

WhatsApp pricing changes on October 1, 2026.

For teams using the official WhatsApp Business Platform, ordinary customer-service replies will no longer always have a zero Meta message charge.

The first 1,000 delivered Service messages per business phone number each month remain free. Deliveries after that allowance use the Service rate for the recipient’s market.

That sounds like a simple formula:

Service charge
  = (messages − 1,000)
  × market rate
Enter fullscreen mode Exit fullscreen mode

In practice, a useful cost model must also account for:

  • multiple business phone numbers;
  • recipients in several markets;
  • message categories;
  • free entry-point traffic;
  • provider fees;
  • support software;
  • AI usage;
  • account-based subscription alternatives.

This article builds that model and compares it with UnifyPort’s messaging-account subscription structure without treating the two products as equivalent.

What changes on October 1, 2026?

Meta’s updated pricing documentation describes a new charge for Service messages delivered through the official WhatsApp Business Platform.

Message or situation From October 1, 2026
Incoming customer message No Meta message charge
Service reply within the 24-hour window First 1,000 per business number each month are free; later deliveries use the recipient-market rate
Utility template inside the 24-hour window Charged under Utility rules
Eligible 72-hour free entry-point window Message-delivery exception remains
Meta Business Agent usage Separate token-based pricing model

The 24-hour customer-service window is still a sending restriction.

It does not mean every message inside that window belongs to the same billing category.

An ordinary Service reply, Utility template and eligible free-entry-point message must be classified separately.

The allowance belongs to each phone number

The 1,000-message monthly allowance applies to each business phone number.

It is not one shared workspace allowance.

Suppose a business operates two numbers:

Number A: 1,600 delivered Service messages
Number B: 0 delivered Service messages
Enter fullscreen mode Exit fullscreen mode

The billable quantity is:

Number A: 1,600 − 1,000 = 600
Number B: 0
Enter fullscreen mode Exit fullscreen mode

You cannot transfer Number B’s unused allowance to Number A.

Compare that with:

Number A: 800 delivered Service messages
Number B: 800 delivered Service messages
Enter fullscreen mode Exit fullscreen mode

Both numbers remain within their individual allowances, so the Meta Service charge is zero.

The distribution of traffic matters—not only the total volume.

The allowance is also shared across recipient markets

A single business number may send Service messages to customers in several markets.

Do not subtract 1,000 separately from every market.

Incorrect:

Brazil deliveries − 1,000
Germany deliveries − 1,000
United Kingdom deliveries − 1,000
Enter fullscreen mode Exit fullscreen mode

Correct:

First 1,000 Service deliveries for the number are free
Later deliveries use the rate for each recipient’s market
Enter fullscreen mode Exit fullscreen mode

This means an accurate implementation should retain:

  • business phone number;
  • delivery timestamp;
  • recipient market;
  • delivered message category;
  • free-entry-point status;
  • billing eligibility.

Aggregating only by market can apply the allowance incorrectly.

October Service rates used in this example

The following USD rates come from the October 1, 2026 rate card cited by Meta’s pricing documentation.

Recipient market Service rate per delivered message
India $0.0014
North America $0.0034
Brazil $0.0068
Singapore $0.0160
United Kingdom $0.0220
Germany $0.0550

For one phone number sending only one-to-one Service messages to one market:

Monthly Service charge
  = max(delivered Service messages − 1,000, 0)
  × recipient-market rate
Enter fullscreen mode Exit fullscreen mode

The estimated charges are:

Recipient market 10,000 deliveries 100,000 deliveries
India $12.60 $138.60
North America $30.60 $336.60
Brazil $61.20 $673.20
Singapore $144.00 $1,584.00
United Kingdom $198.00 $2,178.00
Germany $495.00 $5,445.00

These are estimates, not measured customer bills.

They assume:

  • one business number;
  • one recipient market;
  • one-to-one Service messages;
  • no eligible free-entry-point traffic;
  • no other message categories;
  • an unchanged rate for the entire month.

They exclude provider fees, support software, AI, staffing, taxes and currency conversion.

A two-number Brazil example

Assume a support team operates two WhatsApp numbers.

Each number delivers 10,000 ordinary Service replies to customers in Brazil during one month.

The free allowance is deducted separately:

Billable messages per number
  = 10,000 − 1,000
  = 9,000
Enter fullscreen mode Exit fullscreen mode

The monthly charge for both numbers is:

2 × 9,000 × $0.0068
  = $122.40
Enter fullscreen mode Exit fullscreen mode

At 100,000 replies per number:

2 × 99,000 × $0.0068
  = $1,346.40
Enter fullscreen mode Exit fullscreen mode

At 800 replies per number:

Both numbers remain below 1,000
Meta Service charge = $0
Enter fullscreen mode Exit fullscreen mode

The low-volume row is important.

If every number stays inside its allowance, avoiding Service charges alone is not a reason to migrate to another integration.

Model delivered messages, not API requests

A successful send request is not necessarily a delivered, billable message.

Your cost pipeline should distinguish:

Request accepted
Message sent
Message delivered
Message failed
Message classified
Message billed
Enter fullscreen mode Exit fullscreen mode

Do not estimate charges by counting HTTP 200 responses from the send endpoint.

Use delivery and billing evidence from the platform or provider.

A simplified record might look like this:

const delivery = {
  businessNumberId: "number_br_01",
  recipientMarket: "BR",
  category: "service",
  deliveredAt: "2026-10-12T08:31:04Z",
  freeEntryPoint: false,
  deliveryStatus: "delivered",
};
Enter fullscreen mode Exit fullscreen mode

Keep the original classification inputs so the calculation can be audited later.

An illustrative calculator

For a single number, process Service deliveries in chronological order.

The first 1,000 eligible deliveries consume the monthly allowance. Later deliveries use their market rates.

const serviceRatesUsd = {
  IN: 0.0014,
  NORTH_AMERICA: 0.0034,
  BR: 0.0068,
  SG: 0.016,
  GB: 0.022,
  DE: 0.055,
};

function calculateNumberServiceCharge(deliveries) {
  const eligible = deliveries
    .filter((delivery) => {
      return (
        delivery.status === "delivered" &&
        delivery.category === "service" &&
        delivery.freeEntryPoint !== true
      );
    })
    .sort((a, b) => {
      return new Date(a.deliveredAt) - new Date(b.deliveredAt);
    });

  let remainingAllowance = 1000;
  let totalUsd = 0;

  for (const delivery of eligible) {
    if (remainingAllowance > 0) {
      remainingAllowance -= 1;
      continue;
    }

    const rate = serviceRatesUsd[delivery.recipientMarket];

    if (rate === undefined) {
      throw new Error(
        `Missing rate for market: ${delivery.recipientMarket}`,
      );
    }

    totalUsd += rate;
  }

  return totalUsd;
}
Enter fullscreen mode Exit fullscreen mode

This is an explanatory example, not production billing code.

A real billing system should:

  • avoid binary floating-point arithmetic for money;
  • use versioned rate cards;
  • preserve the billing timezone and period;
  • support corrected delivery classifications;
  • distinguish every applicable message category;
  • reconcile estimates against actual billing exports.

Store rates as versioned data

Do not hardcode one permanent price table into business logic.

Rates can change.

A versioned model could include:

const rateCard = {
  currency: "USD",
  effectiveFrom: "2026-10-01",
  effectiveTo: null,
  category: "service",
  rates: {
    IN: "0.0014",
    NORTH_AMERICA: "0.0034",
    BR: "0.0068",
    SG: "0.0160",
    GB: "0.0220",
    DE: "0.0550",
  },
};
Enter fullscreen mode Exit fullscreen mode

When calculating October traffic, select the rate card effective on the delivery date.

This also makes later audits reproducible after pricing changes again.

Compare the correct cost components

The official API and UnifyPort use different commercial models.

Official WhatsApp Business Platform

Costs may include:

  • Meta message charges;
  • integration engineering;
  • webhook and delivery monitoring;
  • support inbox software;
  • provider or BSP charges;
  • seats;
  • AI usage;
  • operations;
  • taxes.

UnifyPort

UnifyPort uses monthly messaging-account subscriptions rather than Meta’s Service-message rate card for traffic sent through its unofficial interface.

Its current graduated pricing includes one messaging account per workspace, followed by paid account bands:

Paid account positions Monthly price per account
1–5 $10.00
6–10 $8.00
11–200 $5.00
201–1,000 $4.50
1,001 onward $4.00

The pricing is graduated.

For ten paid accounts:

First 5 × $10 = $50
Next 5 × $8 = $40
Total = $90/month
Enter fullscreen mode Exit fullscreen mode

Reaching the second band does not reprice all ten accounts at $8.

Together with the included account, ten paid accounts provide eleven messaging accounts in the workspace.

Why the comparison is not apples to apples

Meta Service charges and UnifyPort subscriptions represent different line items.

The official example measures:

Delivered Service messages
× recipient-market rates
Enter fullscreen mode Exit fullscreen mode

The UnifyPort example measures:

Connected paid messaging accounts
× graduated subscription prices
Enter fullscreen mode Exit fullscreen mode

They do not provide identical authorization, capabilities or guarantees.

For the two-number Brazil example:

Meta Service estimate:
$122.40/month
Enter fullscreen mode Exit fullscreen mode
UnifyPort account subscription estimate:
1 included account
+ 1 paid account × $10
= $10/month
Enter fullscreen mode Exit fullscreen mode

The difference between those listed charges is:

$122.40 − $10
= $112.40/month
Enter fullscreen mode Exit fullscreen mode

That is not proof of a $112.40 reduction in total operating cost.

The calculation excludes:

  • implementation;
  • monitoring;
  • staff;
  • support software;
  • AI;
  • taxes;
  • throughput requirements;
  • failure handling;
  • account continuity;
  • provider-specific capabilities.

Use the difference as one input to a broader architecture decision.

Capability differences matter

Evaluate the official path when your product depends on:

  • official templates;
  • Meta-native workflows;
  • official authorization;
  • formal Business Platform capabilities;
  • provider or BSP support;
  • contractual requirements.

Evaluate an account-based interface when your priority is:

  • connecting an existing operational account;
  • ordinary-account messaging;
  • multi-platform intake;
  • one API and webhook model across channels;
  • account-based subscription pricing.

An unofficial interface is not a drop-in equivalent to the official Cloud API.

Include access changes, account restrictions, reauthorization and continuity in any production trial.

A lower estimated message-related charge is not useful if the alternative cannot support a required workflow.

Low-volume and high-volume teams reach different conclusions

Low-volume example

Two numbers each send 800 Service replies:

Meta Service charge: $0
UnifyPort subscription estimate: $10/month
Enter fullscreen mode Exit fullscreen mode

The official message charge is lower in this narrow comparison.

Higher-volume example

Two Brazil numbers each send 10,000 Service replies:

Meta Service charge: $122.40
UnifyPort subscription estimate: $10/month
Enter fullscreen mode Exit fullscreen mode

The account subscription is lower than the selected Meta line item, but capability and operational differences still need evaluation.

Distribution example

One number sends 1,600 replies and the second sends none:

Billable messages: 600
Charge: 600 × $0.0068 = $4.08
Enter fullscreen mode Exit fullscreen mode

If the same 1,600 replies are evenly split:

Number A: 800
Number B: 800
Charge: $0
Enter fullscreen mode Exit fullscreen mode

The account topology changes the result even when total traffic is identical.

AI creates another cost layer

An AI support workflow can include:

Model or agent usage
+ message-delivery charges
+ orchestration
+ retrieval
+ human escalation
Enter fullscreen mode Exit fullscreen mode

Do not assume that changing the messaging integration makes third-party AI free.

For a useful AI cost model, measure:

  • model tokens per conversation;
  • replies required to resolve an issue;
  • tool calls;
  • retrieval cost;
  • human handoff rate;
  • message-delivery category;
  • delivery success rate.

Optimize for resolved customer issues, not merely the cost of one generated reply.

Build a pre-October worksheet

Export one representative month and group records by:

Business phone number
Recipient market
Delivery timestamp
Delivered message category
Free-entry-point eligibility
Delivery status
Provider
Enter fullscreen mode Exit fullscreen mode

Then calculate:

  1. The 1,000-message allowance independently for each number.
  2. Recipient-market rates after each number exhausts its allowance.
  3. Utility and other categories separately.
  4. Free-entry-point exceptions separately.
  5. Provider, software, AI and operational fees.
  6. Account-subscription alternatives by paid account position.
  7. Capability gaps and migration costs.

A final comparison should resemble:

Cost or requirement Official API Account-based alternative
Service message charges Calculated from delivered traffic Not the same billing model
Messaging account subscription Provider-specific Graduated account pricing
Support inbox Add if required Add if required
AI Add if required Add if required
Engineering Estimate Estimate
Monitoring Estimate Estimate
Official templates Supported according to official product Verify before considering migration
Account continuity risk Evaluate Evaluate
Cross-channel normalization Build or buy Evaluate available provider support

Takeaway

The October 2026 WhatsApp pricing change should not trigger an automatic migration.

It should trigger a better cost model.

Calculate using:

Delivered messages
Business phone number
Recipient market
Message category
Free-entry-point status
Current rate card
Enter fullscreen mode Exit fullscreen mode

Then compare the complete operating model—not one message charge against one subscription fee.

For low-volume numbers, the official Service charge may remain zero.

For higher-volume numbers, recipient-market rates can become material.

In every case, capability, authorization, reliability and operational ownership belong in the same decision as price.

Sources

Pricing figures were checked on September 28, 2026. Recheck the official documentation and your applicable agreement before making a production or purchasing decision.


This article was adapted from an original UnifyPort technical guide with AI-assisted editing.

Top comments (0)