Sign inGet Started

Get a WhatsApp Business Account

GET
/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);
प्रतिक्रिया200
{
  "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.

पैरामीटर

business_account_refstring

WhatsApp 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

id
string
आवश्यक

Unique identifier for the WhatsApp Business Account.

waba
string
आवश्यक

Meta's own identifier for this WhatsApp Business Account. This is the value to send when creating a template on the account.

name
string
आवश्यक

The account's name, as WhatsApp reports it.

status
string
आवश्यक

WhatsApp'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.

Possible values (may grow over time): active

account_review_status
string

How far WhatsApp's review of this account had got as of meta_synced_at. Absent until WhatsApp has reported it.

Possible values (may grow over time): approved, deferred, pending, rejected

business_verification_status
string

Whether Meta had verified the business behind this account as of meta_synced_at. Absent until Meta has reported it.

Possible values (may grow over time): expired, failed, ineligible, not_verified, pending, pending_need_more_info, pending_submission, rejected, revoked, verified

marketing_messages_onboarding_status
string

Whether 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.

Possible values (may grow over time): eligible, onboarded

portfolio
object

The 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.

चाइल्ड एट्रिब्यूट दिखाएँ
ban
object

WhatsApp'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.

चाइल्ड एट्रिब्यूट दिखाएँ
meta_health_status
object

Meta'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.

चाइल्ड एट्रिब्यूट दिखाएँ
meta_health_status.can_send_message
string
आवश्यक

Meta's health verdict for one entity, or for the whole chain when read at the top level. Values are Meta's own tokens, lower-cased:

  • available: the entity meets every messaging or calling requirement.
  • limited: it can be used, but with a limitation Meta describes in additional_info when it gave one.
  • blocked: it cannot be used. errors says why when Meta named a reason, and each error carries possible_solution when Meta suggested one.

Possible values: available, limited, blocked

meta_health_status.entities
array of object
आवश्यक

One entry per node Meta evaluated. Order is Meta's.

चाइल्ड एट्रिब्यूट दिखाएँ
meta_health_status.entities.entity_type
string
आवश्यक

Which node in Meta's messaging chain an entry describes. Values are Meta's own tokens, lower-cased.

  • waba: the WhatsApp Business Account.
  • business: the Meta business portfolio that owns the account.
  • app: the app the account messages through.
  • phone_number: a business phone number. An account read never carries one: Meta reports it only when a phone number is the node asked about.
  • message_template: a message template. An account read never carries one: Meta reports it only when a template is the node asked about.

Possible values (may grow over time): waba, business, app, phone_number, message_template

meta_health_status.entities.meta_id
string
आवश्यक

Meta's identifier for the node. Treat it as an opaque string.

meta_health_status.entities.can_send_message
string
आवश्यक

Whether this node lets messages through.

Possible values: available, limited, blocked

meta_health_status.entities.can_receive_call_sip
string

Whether 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.

Possible values: available, limited, blocked

meta_health_status.entities.additional_info
array of string

Meta'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.errors
array of object

Why this node is not available. Absent when Meta gave no reason.

चाइल्ड एट्रिब्यूट दिखाएँ
meta_health_status.entities.errors.error_code
integer
आवश्यक

Meta's numeric health error code, for example 141006 (payment method error), 141010 (business not verified), 141014 (account banned).

meta_health_status.entities.errors.error_description
string
आवश्यक

Meta's own sentence describing the block.

meta_health_status.entities.errors.possible_solution
string

Meta's own suggested remedy. Absent when Meta gave none.

meta_synced_at
string

When 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_at
string
आवश्यक

When this account was connected.

updated_at
string
आवश्यक

When this account was last changed.

इस विषय के लिए दस्तावेज़, गाइड और उदाहरणों के साथ आगे बढ़ें।