Get a WhatsApp Business Account
/v1/whatsapp/business-accounts/{business_account_ref}const account = await bird.whatsapp.businessAccounts.get("waa_01krdgeqcxet5s7t44vh8rt9mg");
console.log(account.account_review_status, account.business_verification_status);account = client.whatsapp.business_accounts.get("waa_01krdgeqcxet5s7t44vh8rt9mg")
print(account.account_review_status, account.business_verification_status)account, err := client.Whatsapp.BusinessAccounts.Get(context.Background(), "waa_01krdgeqcxet5s7t44vh8rt9mg")
if err != nil {
log.Fatal(err)
}
fmt.Println(account.Name, account.Status)$account = $bird->whatsapp->businessAccounts->get('waa_01krdgeqcxet5s7t44vh8rt9mg');
echo $account->getAccountReviewStatus(), ' ', $account->getBusinessVerificationStatus(), "\n";bird whatsapp business-accounts get <business-account-ref>curl -X GET "https://us1.platform.bird.com/v1/whatsapp/business-accounts/{business_account_ref}" \
-H "Authorization: Bearer $TOKEN"{
"id": "waa_01krdgeqcxet5s7t44vh8rt9mg",
"waba": "102290129340398",
"name": "Acme Inc",
"status": "active",
"account_review_status": "approved",
"business_verification_status": "verified",
"marketing_messages_onboarding_status": "onboarded",
"portfolio": {
"meta_id": "178563218361309",
"name": "Acme Holdings",
"marketing_messages_onboarding_status": "not_started"
},
"ban": {
"state": "disabled",
"occurred_at": "2026-04-10T09:12:00Z",
"appeal_url": "https://business.facebook.com/business-support-home/178563218361309/102290129340398"
},
"meta_health_status": {
"can_send_message": "blocked",
"entities": [
{
"entity_type": "waba",
"meta_id": "1028574859896003",
"can_send_message": "blocked",
"errors": [
{
"error_code": 141006,
"error_description": "There is an error with the payment method. This will block business initiated conversations.",
"possible_solution": "There was an error with your payment method. Please add a new payment method to the account."
}
]
},
{
"entity_type": "business",
"meta_id": "4392746181043198",
"can_send_message": "limited",
"errors": [
{
"error_code": 141010,
"error_description": "The Business has not passed business verification.",
"possible_solution": "Visit business settings and start or resolve the business verification request."
}
]
},
{
"entity_type": "app",
"meta_id": "497937228432800",
"can_send_message": "available"
}
]
}
}
Returns one WhatsApp Business Account your workspace has connected, addressed
by either the id the account list reports (waa_ prefix) or the waba value
WhatsApp reports for it. Both forms resolve to the same account.
Only accounts whose setup finished can be read: an account is readable once
WhatsApp has reported its name and at least one of its phone numbers has
finished connecting. An account the list hides is 404 here too, in either form.
The account carries the state WhatsApp last reported for it: its own status, how far WhatsApp's review of it has got, whether Meta has verified the business behind it, and the Meta business portfolio that owns it.
An account WhatsApp has banned carries ban, with an appeal_url to Meta Business
Support once Bird knows the account's portfolio. ban is what WhatsApp announced on
its own notification, not part of the reading meta_synced_at dates, because WhatsApp
reports a ban's state and timing nowhere else. It is absent on an account in good
standing and on one whose ban Bird was never told about, so status is what says
whether an account can send.
Parameters
business_account_refstringWhatsApp Business Account ID (waa_ prefix) or the WhatsApp Business Account ID Meta reports in waba. A value that parses as a valid ID resolves by ID; any other value resolves as Meta's ID.
Response Payload
idUnique identifier for the WhatsApp Business Account.
wabaMeta's own identifier for this WhatsApp Business Account. This is the value to send when creating a template on the account.
nameThe account's name, as WhatsApp reports it.
statusWhatsApp's own state for this account as of meta_synced_at. The status is active until WhatsApp reports otherwise. WhatsApp already considers an account usable if Bird could connect a number under it. The absence of a reading is therefore not evidence of another state.
account_review_statusHow far WhatsApp's review of this account had got as of meta_synced_at. Absent until WhatsApp has reported it.
business_verification_statusWhether Meta had verified the business behind this account as of meta_synced_at. Absent until Meta has reported it.
marketing_messages_onboarding_statusWhether this account can use WhatsApp's Marketing Messages API, as of meta_synced_at. Absent until WhatsApp has reported it. Distinct from the owning portfolio's marketing_messages_onboarding_status (portfolio.marketing_messages_onboarding_status), which Meta gives the same field name but a different vocabulary: this one is the account's own eligibility, that one is the portfolio's Terms-of-Service progress.
portfolioThe Meta business portfolio that owns this account. Absent until Meta has reported it. The portfolio is where a messaging limit is set, so every account it owns shares one.
Show child attributes
portfolio.meta_idMeta's identifier for the portfolio. Treat it as an opaque string.
portfolio.nameThe portfolio's name, as Meta reports it. Absent when Meta returned none.
portfolio.marketing_messages_onboarding_statusHow far this portfolio has got through Meta's Marketing Messages terms of service. Absent until Meta has reported it. Distinct from the account's own marketing_messages_onboarding_status, which Meta gives the same field name but a different vocabulary: that one is the account's own eligibility, this one is the portfolio's Terms-of-Service progress.
banWhatsApp's ban on this account, absent unless Bird was told of one. status is what the account said when Bird last read it; this is what WhatsApp announced, which arrives only on the webhook that announces it and is never re-read.
Show child attributes
ban.stateban.occurred_atWhen WhatsApp reported the ban, by WhatsApp's own clock. Bird can learn of a ban later than this, so it is not when Bird recorded it.
ban.appeal_urlWhere to appeal WhatsApp's decision with Meta Business Support, because neither Bird nor this API can lift one. Absent when Bird does not know the account's Meta business portfolio, since there is no support-home path to build without one.
meta_health_statusMeta's own messaging health for this account as of meta_synced_at. Absent until Bird has read it, and absent again when the stored reading did not parse at all. An entity whose verdict falls outside this vocabulary is dropped on its own and the rest of the report still ships, so entities can be shorter than Meta's. A blocked verdict on the waba entity is why template sends fail with Meta's #200 even though the number reads active: for example error_code 141006 names a payment method Meta rejected on the account.
Show child attributes
meta_health_status.can_send_messagemeta_health_status.entitiesOne entry per node Meta evaluated. Order is Meta's.
Show child attributes
meta_health_status.entities.entity_typemeta_health_status.entities.meta_idMeta's identifier for the node. Treat it as an opaque string.
meta_health_status.entities.can_send_messageWhether this node lets messages through.
meta_health_status.entities.can_receive_call_sipWhether this node can receive a WhatsApp call over SIP, which Meta reports on phone_number and app entities. Absent on an account read: Meta reports it only when a phone number or template is the node asked about.
meta_health_status.entities.additional_infoMeta's own notes on a limited verdict. Absent on an account read: Meta reports it only when a phone number or template is the node asked about.
meta_health_status.entities.errorsWhy this node is not available. Absent when Meta gave no reason.
Show child attributes
meta_health_status.entities.errors.error_codeMeta's numeric health error code, for example 141006 (payment method error), 141010 (business not verified), 141014 (account banned).
meta_health_status.entities.errors.error_descriptionMeta's own sentence describing the block.
meta_health_status.entities.errors.possible_solutionMeta's own suggested remedy. Absent when Meta gave none.
meta_synced_atWhen Bird last read this account's state from WhatsApp. status, account_review_status, business_verification_status, marketing_messages_onboarding_status, portfolio and meta_health_status are all that reading rather than live values; Bird re-reads roughly hourly. Absent for an account Bird has never read back.
created_atWhen this account was connected.
updated_atWhen this account was last changed.
Related resources
Continue with the documentation, guides and examples for this topic.