Every phone number registered with WhatsApp will be allotted a WhatsApp ID. Typically, the WhatsApp ID of a phone number is the dialable format of that number. For example, if your phone number is '+198765343210', then your WhatsApp ID will be '+1-987-654-3210'. However, this case is slightly different for some phone numbers in Brazil and Mexico.
Initially, WhatsApp used 8-digit phone numbers for user accounts. However, due to the shortage of unique phone numbers in Brazil and Mexico, these countries added a digit to their existing mobile numbers. On December 10, 2010, ANATEL (the Brazilian telecommunications regulator) announced the inclusion of a ninth digit, the number '9' (in the format 9NNNN-NNNN) to mobile phone numbers. For example, post this change, if your phone number was +55 (21) 8765-4321, it became +55 (21) 98765-4321.
However, phone numbers registered outside 11-19 (São Paulo), 21, 22, and 24 (Rio de Janeiro), and 27-28 (Espírito Santo) areas are displayed on WhatsApp with the old 8-digit number, since WhatsApp IDs were already present for those numbers before the inclusion of the digit '9'.
Similarly, there are discrepancies between phone numbers and their WhatsApp IDs in Mexico. This is because the additional digit '1' after the country code is no longer required when calling Mexican numbers from outside Mexico. As a result, WhatsApp IDs created before this change still include '1', causing inconsistencies.
How does this impact WhatsApp's Business API solution?
WhatsApp is unable to recognize which numbers are impacted by these modifications. As a result, the phone numbers' WhatsApp IDs remain to be the old 8-digit numbers. This can affect the outbound messages while using WhatsApp's Business API.
For example, when you send a WhatsApp message to a user with the phone number +55 (21) 98765-4321, your message will not be delivered. The reason for failure will be marked as "Number does not exist on WhatsApp." However, in reality, it is because the WhatsApp ID of that contact is +55 (21) 8763-4321 (without the digit '9') and not because the number doesn't exist. This mismatch is unavoidable due to the asynchronous nature of the events.
Solution
Unfortunately, there is currently no solution for this issue from the API provider's end. We'll have to wait for WhatsApp to come up with a fix.