Almost every strange problem with the official API — a template that exists but is not found, an image that works on one number but fails on another, a queue that freezes with everything green — has the same root cause: confusion between the layers of Meta's structure. There are three layers, each holding different things, and what belongs to one does not cross over to the others. Understanding this design is what separates a predictable operation from a series of surprises in the middle of sending.
In this article
- The Three Layers
- Portfolio: Where the Company Lives
- The WhatsApp Business Account
- The Number and What Belongs to It
- What Does Not Cross from One Account to Another
- One Account or Several?
- Billing: The Most Silent Failure
- Company Verification and What It Unlocks
- Connecting a Client's Number
- Who Can Do What
- An Operation in Numbers
- Five Structural Errors
- Numbers to Monitor
- Frequently Asked Questions
The Three Layers
Meta's structure for business messaging has three nested levels, each responsible for different things:
- The Business Portfolio — the highest layer. Represents the organization. Holds people, permissions, payment methods, company verification, and all assets.
- The WhatsApp Business Account, known as WABA. It resides inside the portfolio. It holds templates and groups numbers.
- The Phone Number. It resides inside the business account. It owns the display name, photo, quality rating, and conversation limits.
The rule that explains almost all problems: each thing belongs to a specific layer and is not inherited by the others. Templates belong to the business account. Quality belongs to the number. Payment belongs to the portfolio. Those who treat all three as "the company's WhatsApp account" end up surprised.
Portfolio: Where the Company Lives
The portfolio is what Meta understands as the organization. It contains:
- People and permissions. Who manages, who operates, who has access to which asset.
- Company verification. The process where Meta checks documents and confirms the organization exists.
- Payment method. Where conversations are billed.
- Assets. Pages, Instagram accounts, ad accounts, apps, and WhatsApp business accounts.
- Integrity history. Restrictions and penalties applied to the organization.
This last item deserves attention because it is the heaviest: a restriction applied to the portfolio affects everything inside it. Changing numbers or creating another business account inside it does not help — the block is at the top layer.
The WhatsApp Business Account
The business account is the day-to-day working layer. It holds:
- Templates. Approved per account, not per number or company.
- Grouping of numbers. One account can have several.
- Event subscription. Where Meta notifies about received messages and statuses.
- Aggregate quality limit and most operational restrictions.
The phrase to memorize is this: a template is approved per business account. A template created in account A does not exist for a number in account B. This is by far the most common explanation for "the template was approved but the message failed to send."
Continue reading for free
Fill out once and unlock this and all other blog articles. We don’t charge anything — we just want to know who we’re writing for.
Takes 20 seconds. Prefer to talk directly on WhatsApp?
The Number and What Belongs to It
The number is the most concrete layer and what the customer sees. It owns:
- The display name, which requires approval and must correspond to the company.
- The photo and business profile.
- Quality rating, calculated from blocks and complaints.
- Limit of initiated conversations, which increases with volume and quality.
- Technical identifier, used in each send call.
This identifier holds a silent trap: it changes when the number is disconnected and reconnected. Systems that archive conversations by this identifier instead of by phone end up with orphaned history after reconnection — conversations remain in the database but cannot be found. Integrations must match history by phone, never by connection identifier.
What Does Not Cross from One Account to Another
The list of things tied to the business account explains most incidents:
- Templates. They must be submitted and approved in each account that will use them.
- Files sent to the platform. An image identifier belongs to the number that sent it; reusing it on another number fails.
- Limit and quality. A mature number does not lend reputation to a new number in the same account.
- Service window. It is between the client and a specific number. Responding from another number does not use the window opened by the first.
That is why rotating numbers requires preparation. Distributing sending among three numbers only works if all three have the template approved, media sent, and quota available. Missing any of these on one causes the queue to stop when it’s that number’s turn — the symptom is a mass failure mid-send that looks like a block but isn’t.
One Account or Several?
This question arises as soon as the company has more than one number. The answer depends on three criteria.
Combine in the same account when the numbers belong to the same brand, use the same templates, and serve the same audience. One account means one template library to maintain, one event subscription, and less duplicated configuration.
Separate into different accounts when there are distinct brands with their own display names, when content is very different — a collections operation and a sales operation should not share reputation — or when each unit needs its own billing and responsible parties.
One caution about isolation: separating accounts does not protect against everything. Restrictions at the portfolio level affect all accounts within it. Separation isolates templates, limits, and most operational restrictions — not organizational integrity.
Billing: The Most Silent Failure
This is the problem that consumes the most hours of technical investigation without being technical.
Each business account needs a valid payment method associated. When there is an outstanding invoice, sending can be blocked even with the number’s quality green, template approved, and quota available. And the failure returned does not say "there is a pending invoice" — it comes generic.
The classic scenario is a company with several numbers distributed across different business accounts: one has a pending invoice and the others do not. Sending works normally until the rotation reaches that number, then it freezes. From outside, it looks like an intermittent system defect.
The practical conclusion: before investigating code, check the financial status of each business account. It’s a two-minute check that saves a whole day.
Company Verification and What It Unlocks
Verification happens at the portfolio level and is Meta checking documents to confirm the organization exists and that the administrators are related to it. It usually requires incorporation documents, proof of address, and some form of verifiable public presence.
Without verification, the operation runs in limited mode: fewer allowed numbers, lower conversation caps, and restrictions on some features. With verification, limits open up according to usage.
Two points that save rework. First: the display name of the number must clearly relate to the verified company — a trade name without connection is the most common cause of rejection at this stage. Second: verification is at the portfolio level, so it applies to all business accounts within it, which is a good argument against spreading operations across different portfolios unnecessarily.
Connecting a Client's Number
For service providers, there is a checklist to avoid discovering problems on sending day:
- The number must be free. A phone already connected to the regular app must be unlinked first, and this migration erases the local device history — the client needs to know this beforehand, not afterward.
- The portfolio belongs to the client. The service company receives access; it should not own the client’s assets. This avoids disputes later and protects both sides.
- Verification before volume. Start the process early because it is not instant.
- Templates approved before the campaign. Analysis takes time and the first submission usually needs adjustment.
- Payment method configured and tested with a real send, not just registered.
- Warming up. A new number has a low limit. Gradually increasing volume builds quality instead of burning it out in the first week.
Who Can Do What
Permissions are the part of the structure that causes the most unexplained blocks because the error rarely says "this person lacks permission."
Roles are distributed by layer. In the portfolio, there are administrators who manage everything, including payment and verification, and employees with access only to granted assets. Permissions are assigned separately for each asset — the WhatsApp business account, a Page, an Instagram account — and having access to the portfolio does not mean access to everything inside it.
Three situations concentrate problems:
- The person who created everything left the company. If they were the only portfolio administrator, the organization loses control of its assets, and recovering this is a lengthy process with Meta. The rule is to always have at least two administrators, with at least one in a stable position.
- The integrated system lacks permission on that asset. The company grants portfolio access but forgets to grant access to the number, causing sending to fail with a generic permission error.
- App in restricted mode. While an integration lacks full approval, it works only for people with formal roles in the app. This causes tests to pass with the team but fail with the first real client — it’s not a defect, it’s the authorization stage.
It’s worth recording somewhere accessible who is administrator of each layer. It seems bureaucratic until someone leaves and no one can approve a template.
An Operation in Numbers
A company with three numbers serves as an example of what the structure costs when set up without a plan.
Improvised setup: each number was connected by a different person, in three separate business accounts, inside two portfolios. The campaign template was approved in only one account. The sending of 9,000 contacts was evenly distributed among the three numbers.
- 3,000 messages were sent by number A, which had the template — 96% delivery
- 3,000 failed on number B due to the template not existing in that account
- 3,000 failed on number C for the same reason, plus an outstanding invoice in that portfolio
Result: 33% of the sending delivered, two numbers with mass failure history, and a team convinced the problem was the sending system. The real cost was not the 6,000 lost messages — it was the day spent investigating a problem entirely on Meta’s dashboard.
The same operation with planned structure — one portfolio, one business account, all three numbers inside it, template approved once and valid for all three, single payment — delivers the same 9,000 without intervention. The difference between the two scenarios is neither technical nor costly: it’s one hour of organization before starting.
Five Structural Errors
- Assuming an approved template applies to all numbers. It applies only to the business account where it was approved, and rotation hits this in the middle of sending.
- Spreading numbers across accounts and portfolios unnecessarily. Multiplies template libraries, verification, and invoices — with no gain.
- Owning the client’s portfolio. Creates disputes over ownership and responsibility for assets that are not yours.
- Looking for technical defects before checking the invoice. Financial pending blocks sending with everything green and returns a generic error.
- Storing history by connection identifier. Reconnecting the number generates a new identifier and orphans conversations; the correct link is the phone number.
Numbers to Monitor
Five indicators keep the structure under control. The template coverage per number — how many of the operation’s models exist on each number — should be 100% before any sending with rotation. The portfolio verification status, which unlocks limits and is often remembered too late. The financial status of each business account, checked before a big campaign. The quality and limit per number, monitored individually because averages hide the number about to be restricted. And the number of active business accounts, which should be the minimum number that serves the operation — each extra account means a template library, event configuration, and an invoice someone forgets.
Frequently Asked Questions
What is the difference between portfolio, business account, and number in Meta?
They are three nested layers, each holding different things that are not inherited by the others. The business portfolio is the highest layer and represents the organization: it holds people and permissions, company verification, payment method, assets like pages and Instagram accounts, and integrity history — a restriction applied here affects everything inside. The WhatsApp Business Account, or WABA, resides inside the portfolio and is the working layer: it holds templates, groups numbers, and concentrates event subscriptions. The phone number resides inside the business account and owns the display name, photo, quality rating, and initiated conversation limit. The rule that explains almost all problems is that each thing belongs to a specific layer: templates belong to the account, quality belongs to the number, payment belongs to the portfolio.
Why does my approved template not work on another number?
Because templates are approved per business account, not per company or number. A template created in account A simply does not exist for a number in account B, and this is by far the most common explanation for "the template was approved but the message failed to send." The same applies to files: the identifier of an image sent to the platform belongs to the number that sent it, and reusing it on another number fails. Limits and quality also do not cross over — a mature number does not lend reputation to a new number in the same account. And the service window is between the client and a specific number, so responding from another number does not use the window opened by the first. That is why rotating numbers requires preparation: all three must have the template approved, media sent, and quota available, or the queue stops when it reaches the one missing any of these.
Should I use one business account or several?
Combine in the same account when the numbers belong to the same brand, use the same templates, and serve the same audience — one account means one template library to maintain, one event subscription, and less duplicated configuration. Separate into different accounts when there are distinct brands with their own display names, when content is very different since a collections operation and a sales operation should not share reputation, or when each unit needs its own billing and responsible parties. An important caution about isolation: separating accounts does not protect against everything. Restrictions at the portfolio level affect all accounts within it. Separation isolates templates, limits, and most operational restrictions, but not organizational integrity.
The sending freezes with the number green and the template approved. Why?
The most frequent and silent cause is financial. Each business account needs a valid payment method associated, and when there is an outstanding invoice, sending can be blocked even with green quality, approved template, and available quota — and the failure returned does not say "there is a pending invoice," it comes generic. The classic scenario is a company with several numbers distributed across different business accounts, one with a pending invoice and the others not: sending works normally until rotation reaches that number and then freezes, which from outside looks like an intermittent system defect. The practical conclusion is direct: before investigating code, check the financial status of each business account. It’s a two-minute check that saves a whole day.
What to check before connecting a client’s number?
Six points avoid discovering problems on sending day. The number must be free — a phone already connected to the regular app must be unlinked, and this migration erases the local device history, something the client needs to know beforehand, not afterward. The portfolio must belong to the client, with the service company receiving access instead of owning the assets, which avoids disputes and protects both sides. Company verification should start early because it is not instant and it unlocks limits. Templates must be approved before the campaign since analysis takes time and the first submission usually needs adjustment. The payment method must be configured and tested with a real send, not just registered. And the new number needs warming up: starting with low volume and gradually increasing builds quality instead of burning it out in the first week.
Organized structure means sending that doesn’t freeze mid-way
VeyloCRM shows which templates exist on each number before sending starts, warns when a number lacks the chosen model instead of failing mid-queue, matches conversation history by phone and not connection identifier, and keeps WhatsApp, Instagram, and Messenger in the same panel — with the entire operation in one place.