How to Batch Check WhatsApp Numbers in Batches? Three Quota Calculations

2026-08-28 20 0

How to batch WhatsApp number checks depends on the queue throughput and retry allowance on the detection side, not the sending quota. The sending rhythm has a separate pairing rate limit budget, and the two must be calculated separately. In Meta's official WhatsApp Business Platform documentation from 2026-08-04, the pairing rate limit is specified as 1 message per 6 seconds per user (about 10 messages per minute), with a burst of up to 45 messages but borrowing from future quota.

Two Rate Lines Must Be Separated: Detection Batch Throttling and Sending Batch Pairing Rate Limits

The most common scheduling mistake is treating detection concurrency as the sending budget. The detection side is constrained by the task concurrency and backoff strategy of the detection service you use, while the sending side is constrained by the platform's official pairing rate limit for the "business number—individual user" relationship. The units, triggering targets, and penalties are completely different: Multi-platform number detection rate limit comparison can be used as a reference:

DimensionDetection BatchSending Batch
UnitTask concurrency, single-batch completion timePer-message interval, burst limit
Trigger TargetThe API limit of the detection serviceThe pairing relationship between the same business number and the same user
PenaltyDetection API returns rate-limit response, requiring backoff and retryDirectly triggers error code 131056, persistent violations lead to downgrade
Budget SourceThe task queue throughput of the chosen servicePlatform pairing rate limit (1 per 6 seconds, burst 45)

Concurrency refers to the number of tasks in flight, while throughput refers to the actual completion rate per second. Use throughput for batching calculations and concurrency for backoff control. Keeping this distinction clear makes the three calculations below solid.

Calculation 1: How to Batch WhatsApp Number Checks—Batch Size, Concurrency Limit, and Retry Allowance

The batching criteria for WhatsApp number checks is not "the more the better," but rather derive the batch size from "acceptable single-batch completion time × stable throughput," while mandatorily reserving a retry allowance for failures. It is recommended to reserve 5%–10% of the batch size for retries rather than running the quota to the max.

  • Batch size = (stable throughput × desired single-batch completion time) × (1 − retry allowance ratio)
  • For example: stable throughput is 10 tasks/second, desired completion time is 10 minutes, retry allowance is 10%, then the batch size is about 10 × 600 × 0.9 = 5,400 records. The remaining 10% capacity is reserved for retries after failures, to avoid retries blowing through the batch quota.

Avoid making batches too large, as the combined load of callback aggregation and database writes can stress the processing pipeline. Avoid making them too small, as scheduling overhead may dominate and reduce overall throughput. The specific concurrency and throughput limits depend on the actual rate-limit responses from the detection service you use; this article does not provide unverified fixed values.

![排产计算流程图:名单量到发信窗口](https://static.nexkj.net/nodeseo/sites/11/articles/363/inline-1-b24377ee8759112b.webp)

Calculation 2 (Key Section): Pairing Rate of 1 per 6 Seconds and Burst of 45 Borrowing Future Quota

This is the most commonly miscalculated item. The official Meta documentation from 2026-08-04 states that the pairing rate limit for a business number sending messages to the same WhatsApp user is 1 message per 6 seconds (about 10 per minute), with a burst of up to 45 messages but borrowing from future quota. Exceeding the limit triggers error code 131056.

"Borrowing from future quota" means that after using the burst, the available rate for that user is overdrawn in advance. In other words, the burst cannot be planned as normal throughput; the faster you send within that window, the longer you must wait afterward. The formula for the sending window is:

  • Per-user sending window = (planned number of messages ÷ 10 messages/min) × 60 seconds
  • If you plan to send 3 messages to a single user, you need at least an 18-second window, and you cannot send all 3 messages consecutively immediately after the first (the burst includes these 3 messages, but after using it, you must wait for future quota to recover).

Remember, the pairing rate limit applies to the "business number—individual user" relationship, which is different from the total list size. So even if your list has 50,000 users, the sending rhythm for each user is independent and does not accelerate overall just because of the total volume.

Calculation 3: What 131026, 131056, and 131048 Penalize and Which Parameter to Change

Three error codes correspond to three different parameter adjustments; do not mix them up:

Error CodeTrigger ScenarioParameter to Change
131026Sending to non-WhatsApp users or users who have not accepted the privacy policyList quality and front-end detection coverage
131056Pairing rate exceededSending pace and burst usage
131048Account sending behavior is generally restricted by the platform (officially classified as a restriction, with no public detailed criteria)Overall sending volume pace, template compliance, and opt-in coverage; need to investigate with the WABA backend status

Meta explicitly states that frequent invalid sending directly downgrades the WABA Quality Rating. This is the starting point for troubleshooting "detection passed but quality rating dropped": detection only solves the 131026 category, not the rate and compliance categories.

Compile a Production Schedule: How to Derive List Size, Detection Window, and Sending Window

Combine the three calculations into a practical production schedule: the window for WhatsApp number batch checking can be computed directly. The derivation order is to set the sending window first, then the detection deadline, rather than starting to think about sending rhythm after detection is complete.

InputExample ValueOutputCalculated Value
Total list size50,000 recordsBatch size5,400 records/batch
Batch size5,400 recordsNumber of batches10 batches (rounded up)
Stable throughput10 tasks/secDetection window10 batches × 10 minutes = 100 minutes
Retry allowance10%Time to start sending100 minutes after detection starts
Planned messages per user3 messagesPer-user sending window18 seconds (3 messages ÷ 10 messages/min)
Valid users (assume 80% pass)40,000Full sending windowValid users ÷ actual parallel sending capacity × per-user window

The full window depends on parallel sending capacity, not simply adding per-user windows; the pairing rate limit does not tighten with a larger list. If your sending window is only 2 hours, you need to reduce the planned messages per user to 1 or extend the overall sending period, rather than increasing detection concurrency.

Result Storage: Why the "Unknown" Category Must Be Kept and Retries Go to the Next Batch, Not Immediate Retry

Batch detection results cannot be treated as a binary boolean. The article Three-tier results for social account registration detection explains that registration detection results should be divided into "registered," "not registered," and "unknown." The Telegram official protocol (2026-05-15) provides cross-platform corroboration: contacts.resolvePhone requires a debounce of at least 1 request every 3 seconds, and unregistered users and those with inputPrivacyKeyAddedByPhone privacy protection enabled return exactly the same PHONE_NOT_OCCUPIED, making them indistinguishable.

The resulting general engineering conclusion is that uncertainties due to rate limiting and privacy must be stored as an independent "unknown" category; immediate retries within the same batch will just hit backoff again, so they should be scheduled into the next batch window. Also remember that "number is registered" does not mean "reachable," let alone "authorized."

Implementing Decoupled Detection and Sending Batches: Queues, Batch IDs, Timestamps, and Idempotency Keys

In engineering implementation, it is recommended to use an asynchronous queue for detection tasks, form an idempotency key from the batch ID plus the normalized number, and record submission and callback timestamps to recalculate actual throughput. This way, detection throughput and sending-side pairing rate are two independent budgets that do not interfere.

The detection queue can be built in-house or you can use a detection API that supports batch submission and webhook callbacks, such as NexCheck's RESTful API. The specific steps are:

  1. Submit the number list by batch ID and record the submission timestamp.
  2. Receive each result via webhook, and write to the result table using the batch ID plus the normalized number as the idempotency key.
  3. After callbacks complete, write back to the CRM by batch ID, marking the batch status (completed / partially unknown). After NexCheck's callback results are written back to the CRM by batch ID, detection throughput and sending pairing rate are two separate budgets.

This way, the concurrency pressure from detection is not mistakenly included in the sending budget. For choosing a detection service, see How to choose a WhatsApp number screening platform, and the integration for batch number detection API is similar; the core is decoupling.

![检测队列与发信队列解耦的任务流图](https://static.nexkj.net/nodeseo/sites/11/articles/363/inline-2-3cb45bcd76e3e1f6.webp)

Two Prerequisites Before Running: Opt-in Authorization and Template Compliance Cannot Be Replaced by Detection Results

Sending success rate and anti-blocking depend on opt-in authorization, template compliance, pairing rate limits, and user block rate. Registration detection only confirms the number's status on the platform and cannot replace authorization and quality rating control. So the claim that "passing screening allows unlimited mass sending with anti-blocking" is not valid.

FAQ

How many numbers can be batch checked at once?

It depends on the task concurrency and single-batch completion time of the detection service you use. Derive the batch size using "stable throughput × expected time," and it is recommended to reserve a 5%–10% retry allowance. For example, with a throughput of 10 tasks/second, expected time of 10 minutes, and 10% retry allowance, the batch size is about 5,400 records. There is no fixed limit; it depends on the service's actual rate-limit responses.

How to fix WhatsApp Cloud API 131056?

131056 is a pairing rate limit exceeded, meaning you are sending to the same user too quickly. Immediately stop sending to that user and wait for the rate to recover at 1 per 6 seconds. If you triggered the burst of 45, you need to wait for future quota to recover, usually by increasing the interval, and check if you were treating burst as normal.

What is error 131026?

131026 means you sent to a non-WhatsApp user or a user who has not accepted the privacy policy. The solution is to improve the list quality and increase front-end detection coverage, filtering out such numbers from the sending list. This is the main error code that detection can solve.

What is the interval between messages to the same person on WhatsApp to avoid rate limiting?

The official rule is 1 message per 6 seconds, i.e., about 10 per minute. For sending to the same person, it is recommended to interval at least 6 seconds, with a maximum burst of 45, but borrowing future quota, so you cannot sustain burst frequency.

How long after batch detection can I start mass sending?

After detection is complete, first confirm the results are stored and filter for "registered and authorized" numbers, then derive the sending window based on the pairing rate. If you plan 3 messages per user, you need at least 18 seconds per person, so the actual wait time depends on your planned reach rhythm, not the detection completion itself.

What happens when the WhatsApp burst of 45 is used up?

Using up the burst of 45 does not mean the daily quota is exhausted; instead, it borrows from future quota, which reduces the sending rate for that user afterward and may trigger 131056. It is recommended to treat burst as an emergency measure, not as normal throughput.

How to troubleshoot if detection passes but quality rating drops?

First, look at the distribution of recent error codes: if 131026 is high, detection coverage is insufficient; if 131056 is high, sending pace is too fast; if 131048 is high, overall behavior is restricted. Detection only solves the 131026 category; rate and compliance need to be adjusted through sending strategy and opt-in management.

Last updated on 2026-08-28 11:20:04

Related Posts

Why Is Telegram Phone Number Detection Hit Rate So Low? Three Layers: API Bou...
How to Set Throttling Parameters for Social Platform Number Screening? Interv...
How to Screen WhatsApp Numbers? 5 Pre-Contact Self-Checks and Handling Error ...
WhatsApp CSV Number Screening: 6 File Preparation Points Before Upload
How to Clean Your WhatsApp Contact List: 5-Step Process and Limit Reverse Eng...

Comments(0)

No comments yet

Leave a Comment