# WhatsApp Business Account Phone Number Verification - Verify Code API | Developer Documentation

<div id="bkmrk-whatsapp-business-ac"><div><div>## WhatsApp Business Account Phone Number Verification - Verify Code API

<div><div><div><span>Copy for LLM</span></div></div><div>[<span>View as Markdown</span>](/books/meta-whatsapp/page/whatsapp-business-account-phone-number-verification-verify-code-api-developer-documentation)</div></div></div><div><div>Version</div></div><div><div><div><div><div><div><span><span>API for verifying phone number verification codes for WhatsApp Business Account phone numbers.</span></span></div></div><div><div><span><span>This endpoint allows businesses to verify phone number verification codes sent during the</span></span></div></div><div><div><span><span>phone number registration or verification process.</span></span></div></div></div></div></div></div></div><div><div>---

<div><div><div id="bkmrk-post-%2F%7Bversion%7D%2F%7Bpho"><div id="bkmrk-post-%2F%7Bversion%7D%2F%7Bpho-1"><div>### POST /{Version}/{Phone-Number-ID}/verify\_code

</div></div></div><div><div><div><div><div><div><span><span>Verify a phone number verification code for a WhatsApp Business Account phone number.</span></span></div></div><div><div><span><span>This endpoint is used to complete the phone number verification process by submitting</span></span></div></div><div><div><span><span>the verification code received via SMS or voice call.</span></span></div></div><div><div><span><span>Use Cases:</span></span></div></div><div><span><span>Complete phone number verification during initial setup</span></span></div><div><span><span>Verify phone number ownership for messaging capabilities</span></span></div><div><span><span>Finalize phone number registration process</span></span></div><div><span><span>Complete phone number migration verification</span></span></div><div><div><span><span>Rate Limiting:</span></span></div></div><div><div><span><span>Verification attempts are rate-limited to prevent abuse. Failed attempts may result</span></span></div></div><div><div><span><span>in temporary blocking. Use appropriate retry logic with exponential backoff.</span></span></div></div><div><div><span><span>Security:</span></span></div></div><div><div><span><span>Verification codes are time-limited (typically 10 minutes) and single-use.</span></span></div></div><div><div><span><span>Multiple failed attempts may trigger additional security measures.</span></span></div></div></div></div></div></div>#### Request Syntax

<div><div><div><div><div><div><span>Try it</span></div></div></div></div></div></div><div><div><div><div><div><div><div>Select language</div></div></div></div>---

</div><div><div><div><div><div><div>Select status code</div></div></div></div>---

</div></div></div></div><div><span>Header Parameters</span>---

<div><div><span>User-Agent</span><span>string</span></div><div><div><div><div><div><div><span><span>The user agent string identifying the client software making the request.</span></span></div></div></div></div></div></div></div><div><div><span>Authorization</span><span>string</span><span>·</span><span>required</span></div><div><div><div><div><div><div><span><span>Bearer token for API authentication. This should be a valid access token obtained through the appropriate OAuth flow or system user token.</span></span></div></div></div></div></div></div></div><div><div><span>Content-Type</span><span>One of "application/json", "application/x-www-form-urlencoded", "multipart/form-data"</span><span>·</span><span>required</span></div></div></div><div><span>Path Parameters</span>---

<div><div><span>Version</span><span>string</span><span>·</span><span>required</span></div><div><div><div><div><div><div><span><span>Graph API version to use for this request. Determines the API behavior and available features.</span></span></div></div></div></div></div></div></div><div><div><span>Phone-Number-ID</span><span>string</span><span>·</span><span>required</span></div><div><div><div><div><div><div><span><span>The WhatsApp Business Account phone number ID that needs verification.</span></span></div></div><div><div><span><span>This ID is provided when you add a phone number to your WhatsApp Business Account.</span></span></div></div></div></div></div></div></div></div><div><span>Required</span>---

<div><div><span>Content Type: </span><span>application/json</span></div><div><div><span>Schema: </span><span>VerifyCodeRequest</span></div><div><div><div id="bkmrk-show-child-attribute"><div><span>Show child attributes</span></div></div><div id="bkmrk-verifycoderequestcod"><div>---

<div><span>VerifyCodeRequest</span></div><div>---

<div><div><span>code</span><span>string</span><span>·</span><span>required</span></div><div><div><div><div><div><div><span><span>The verification code received via SMS or voice call</span></span></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div><div><span>Responses</span>---

<div><div><div><div><div><div><span><span>Verify a phone number verification code for a WhatsApp Business Account phone number.</span></span></div></div><div><div><span><span>This endpoint is used to complete the phone number verification process by submitting</span></span></div></div><div><div><span><span>the verification code received via SMS or voice call.</span></span></div></div><div><div><span><span>Use Cases:</span></span></div></div><div><span><span>Complete phone number verification during initial setup</span></span></div><div><span><span>Verify phone number ownership for messaging capabilities</span></span></div><div><span><span>Finalize phone number registration process</span></span></div><div><span><span>Complete phone number migration verification</span></span></div><div><div><span><span>Rate Limiting:</span></span></div></div><div><div><span><span>Verification attempts are rate-limited to prevent abuse. Failed attempts may result</span></span></div></div><div><div><span><span>in temporary blocking. Use appropriate retry logic with exponential backoff.</span></span></div></div><div><div><span><span>Security:</span></span></div></div><div><div><span><span>Verification codes are time-limited (typically 10 minutes) and single-use.</span></span></div></div><div><div><span><span>Multiple failed attempts may trigger additional security measures.</span></span></div></div></div></div></div></div><div><span>200</span><div><div><div><div><div><div><span><span>Successfully verified the phone number verification code</span></span></div></div></div></div></div></div><div><div><span>Content Type: </span><span>application/json</span></div><div><div><span>Schema: </span><span>VerifyCodeResponse</span></div><div><div><div id="bkmrk-show-child-attribute-1"><div><span>Show child attributes</span></div></div><div id="bkmrk-verifycoderesponsesu"><div>---

<div><span>VerifyCodeResponse</span></div><div>---

<div><div><span>success</span><span>boolean</span><span>·</span><span>required</span></div><div><div><div><div><div><div><span><span>Indicates whether the verification code was successfully verified</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>id</span><span>string</span></div><div><div><div><div><div><div><span><span>The phone number ID that was verified</span></span></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div><div><span>400</span><div><div><div><div><div><div><span><span>Bad Request - Invalid parameters or malformed request</span></span></div></div></div></div></div></div><div><div><span>Content Type: </span><span>application/json</span></div><div><div><span>Schema: </span><span>GraphAPIError</span></div><div><div><div id="bkmrk-show-child-attribute-2"><div><span>Show child attributes</span></div></div><div id="bkmrk-graphapierrorerrorob"><div>---

<div><span>GraphAPIError</span></div><div>---

<div><div><span>error</span><span>object</span><span>·</span><span>required</span></div></div><div><div><div id="bkmrk-show-child-attribute-3"><div><span>Show child attributes</span></div></div><div id="bkmrk-messagestring%C2%B7requir"><div><div>---

<div><div><span>message</span><span>string</span><span>·</span><span>required</span></div><div><div><div><div><div><div><span><span>Human-readable error message</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>type</span><span>string</span><span>·</span><span>required</span></div><div><div><div><div><div><div><span><span>Error category type</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>code</span><span>integer</span><span>·</span><span>required</span></div><div><div><div><div><div><div><span><span>Numeric error code</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>error\_subcode</span><span>integer</span></div><div><div><div><div><div><div><span><span>More specific error subcode when available</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>fbtrace\_id</span><span>string</span></div><div><div><div><div><div><div><span><span>Unique identifier for debugging and support requests with Meta</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>is\_transient</span><span>boolean</span></div><div><div><div><div><div><div><span><span>Indicates whether this error is temporary and the request should be retried</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>error\_user\_title</span><span>string</span></div><div><div><div><div><div><div><span><span>User-friendly error title for display purposes</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>error\_user\_msg</span><span>string</span></div><div><div><div><div><div><div><span><span>User-friendly error message for display purposes</span></span></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div><div><span>401</span><div><div><div><div><div><div><span><span>Unauthorized - Invalid or missing access token</span></span></div></div></div></div></div></div><div><div><span>Content Type: </span><span>application/json</span></div><div><div><span>Schema: </span><span>GraphAPIError</span></div><div><div><div id="bkmrk-show-child-attribute-4"><div><span>Show child attributes</span></div></div><div id="bkmrk-graphapierrorerrorob-1"><div>---

<div><span>GraphAPIError</span></div><div>---

<div><div><span>error</span><span>object</span><span>·</span><span>required</span></div></div><div><div><div id="bkmrk-show-child-attribute-5"><div><span>Show child attributes</span></div></div><div id="bkmrk-messagestring%C2%B7requir-1"><div><div>---

<div><div><span>message</span><span>string</span><span>·</span><span>required</span></div><div><div><div><div><div><div><span><span>Human-readable error message</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>type</span><span>string</span><span>·</span><span>required</span></div><div><div><div><div><div><div><span><span>Error category type</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>code</span><span>integer</span><span>·</span><span>required</span></div><div><div><div><div><div><div><span><span>Numeric error code</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>error\_subcode</span><span>integer</span></div><div><div><div><div><div><div><span><span>More specific error subcode when available</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>fbtrace\_id</span><span>string</span></div><div><div><div><div><div><div><span><span>Unique identifier for debugging and support requests with Meta</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>is\_transient</span><span>boolean</span></div><div><div><div><div><div><div><span><span>Indicates whether this error is temporary and the request should be retried</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>error\_user\_title</span><span>string</span></div><div><div><div><div><div><div><span><span>User-friendly error title for display purposes</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>error\_user\_msg</span><span>string</span></div><div><div><div><div><div><div><span><span>User-friendly error message for display purposes</span></span></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div><div><span>403</span><div><div><div><div><div><div><span><span>Forbidden - Insufficient permissions or access denied</span></span></div></div></div></div></div></div><div><div><span>Content Type: </span><span>application/json</span></div><div><div><span>Schema: </span><span>GraphAPIError</span></div><div><div><div id="bkmrk-show-child-attribute-6"><div><span>Show child attributes</span></div></div><div id="bkmrk-graphapierrorerrorob-2"><div>---

<div><span>GraphAPIError</span></div><div>---

<div><div><span>error</span><span>object</span><span>·</span><span>required</span></div></div><div><div><div id="bkmrk-show-child-attribute-7"><div><span>Show child attributes</span></div></div><div id="bkmrk-messagestring%C2%B7requir-2"><div><div>---

<div><div><span>message</span><span>string</span><span>·</span><span>required</span></div><div><div><div><div><div><div><span><span>Human-readable error message</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>type</span><span>string</span><span>·</span><span>required</span></div><div><div><div><div><div><div><span><span>Error category type</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>code</span><span>integer</span><span>·</span><span>required</span></div><div><div><div><div><div><div><span><span>Numeric error code</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>error\_subcode</span><span>integer</span></div><div><div><div><div><div><div><span><span>More specific error subcode when available</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>fbtrace\_id</span><span>string</span></div><div><div><div><div><div><div><span><span>Unique identifier for debugging and support requests with Meta</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>is\_transient</span><span>boolean</span></div><div><div><div><div><div><div><span><span>Indicates whether this error is temporary and the request should be retried</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>error\_user\_title</span><span>string</span></div><div><div><div><div><div><div><span><span>User-friendly error title for display purposes</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>error\_user\_msg</span><span>string</span></div><div><div><div><div><div><div><span><span>User-friendly error message for display purposes</span></span></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div><div><span>404</span><div><div><div><div><div><div><span><span>Not Found - Phone number ID does not exist or is not accessible</span></span></div></div></div></div></div></div><div><div><span>Content Type: </span><span>application/json</span></div><div><div><span>Schema: </span><span>GraphAPIError</span></div><div><div><div id="bkmrk-show-child-attribute-8"><div><span>Show child attributes</span></div></div><div id="bkmrk-graphapierrorerrorob-3"><div>---

<div><span>GraphAPIError</span></div><div>---

<div><div><span>error</span><span>object</span><span>·</span><span>required</span></div></div><div><div><div id="bkmrk-show-child-attribute-9"><div><span>Show child attributes</span></div></div><div id="bkmrk-messagestring%C2%B7requir-3"><div><div>---

<div><div><span>message</span><span>string</span><span>·</span><span>required</span></div><div><div><div><div><div><div><span><span>Human-readable error message</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>type</span><span>string</span><span>·</span><span>required</span></div><div><div><div><div><div><div><span><span>Error category type</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>code</span><span>integer</span><span>·</span><span>required</span></div><div><div><div><div><div><div><span><span>Numeric error code</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>error\_subcode</span><span>integer</span></div><div><div><div><div><div><div><span><span>More specific error subcode when available</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>fbtrace\_id</span><span>string</span></div><div><div><div><div><div><div><span><span>Unique identifier for debugging and support requests with Meta</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>is\_transient</span><span>boolean</span></div><div><div><div><div><div><div><span><span>Indicates whether this error is temporary and the request should be retried</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>error\_user\_title</span><span>string</span></div><div><div><div><div><div><div><span><span>User-friendly error title for display purposes</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>error\_user\_msg</span><span>string</span></div><div><div><div><div><div><div><span><span>User-friendly error message for display purposes</span></span></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div><div><span>422</span><div><div><div><div><div><div><span><span>Unprocessable Entity - Invalid or expired verification code</span></span></div></div></div></div></div></div><div><div><span>Content Type: </span><span>application/json</span></div><div><div><span>Schema: </span><span>GraphAPIError</span></div><div><div><div id="bkmrk-show-child-attribute-10"><div><span>Show child attributes</span></div></div><div id="bkmrk-graphapierrorerrorob-4"><div>---

<div><span>GraphAPIError</span></div><div>---

<div><div><span>error</span><span>object</span><span>·</span><span>required</span></div></div><div><div><div id="bkmrk-show-child-attribute-11"><div><span>Show child attributes</span></div></div><div id="bkmrk-messagestring%C2%B7requir-4"><div><div>---

<div><div><span>message</span><span>string</span><span>·</span><span>required</span></div><div><div><div><div><div><div><span><span>Human-readable error message</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>type</span><span>string</span><span>·</span><span>required</span></div><div><div><div><div><div><div><span><span>Error category type</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>code</span><span>integer</span><span>·</span><span>required</span></div><div><div><div><div><div><div><span><span>Numeric error code</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>error\_subcode</span><span>integer</span></div><div><div><div><div><div><div><span><span>More specific error subcode when available</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>fbtrace\_id</span><span>string</span></div><div><div><div><div><div><div><span><span>Unique identifier for debugging and support requests with Meta</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>is\_transient</span><span>boolean</span></div><div><div><div><div><div><div><span><span>Indicates whether this error is temporary and the request should be retried</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>error\_user\_title</span><span>string</span></div><div><div><div><div><div><div><span><span>User-friendly error title for display purposes</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>error\_user\_msg</span><span>string</span></div><div><div><div><div><div><div><span><span>User-friendly error message for display purposes</span></span></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div><div><span>429</span><div><div><div><div><div><div><span><span>Too Many Requests - Rate limit exceeded</span></span></div></div></div></div></div></div><div><div><span>Content Type: </span><span>application/json</span></div><div><div><span>Schema: </span><span>GraphAPIError</span></div><div><div><div id="bkmrk-show-child-attribute-12"><div><span>Show child attributes</span></div></div><div id="bkmrk-graphapierrorerrorob-5"><div>---

<div><span>GraphAPIError</span></div><div>---

<div><div><span>error</span><span>object</span><span>·</span><span>required</span></div></div><div><div><div id="bkmrk-show-child-attribute-13"><div><span>Show child attributes</span></div></div><div id="bkmrk-messagestring%C2%B7requir-5"><div><div>---

<div><div><span>message</span><span>string</span><span>·</span><span>required</span></div><div><div><div><div><div><div><span><span>Human-readable error message</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>type</span><span>string</span><span>·</span><span>required</span></div><div><div><div><div><div><div><span><span>Error category type</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>code</span><span>integer</span><span>·</span><span>required</span></div><div><div><div><div><div><div><span><span>Numeric error code</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>error\_subcode</span><span>integer</span></div><div><div><div><div><div><div><span><span>More specific error subcode when available</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>fbtrace\_id</span><span>string</span></div><div><div><div><div><div><div><span><span>Unique identifier for debugging and support requests with Meta</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>is\_transient</span><span>boolean</span></div><div><div><div><div><div><div><span><span>Indicates whether this error is temporary and the request should be retried</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>error\_user\_title</span><span>string</span></div><div><div><div><div><div><div><span><span>User-friendly error title for display purposes</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>error\_user\_msg</span><span>string</span></div><div><div><div><div><div><div><span><span>User-friendly error message for display purposes</span></span></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div><div><span>500</span><div><div><div><div><div><div><span><span>Internal Server Error - Unexpected server error</span></span></div></div></div></div></div></div><div><div><span>Content Type: </span><span>application/json</span></div><div><div><span>Schema: </span><span>GraphAPIError</span></div><div><div><div id="bkmrk-show-child-attribute-14"><div><span>Show child attributes</span></div></div><div id="bkmrk-graphapierrorerrorob-6"><div>---

<div><span>GraphAPIError</span></div><div>---

<div><div><span>error</span><span>object</span><span>·</span><span>required</span></div></div><div><div><div id="bkmrk-show-child-attribute-15"><div><span>Show child attributes</span></div></div><div id="bkmrk-messagestring%C2%B7requir-6"><div><div>---

<div><div><span>message</span><span>string</span><span>·</span><span>required</span></div><div><div><div><div><div><div><span><span>Human-readable error message</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>type</span><span>string</span><span>·</span><span>required</span></div><div><div><div><div><div><div><span><span>Error category type</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>code</span><span>integer</span><span>·</span><span>required</span></div><div><div><div><div><div><div><span><span>Numeric error code</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>error\_subcode</span><span>integer</span></div><div><div><div><div><div><div><span><span>More specific error subcode when available</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>fbtrace\_id</span><span>string</span></div><div><div><div><div><div><div><span><span>Unique identifier for debugging and support requests with Meta</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>is\_transient</span><span>boolean</span></div><div><div><div><div><div><div><span><span>Indicates whether this error is temporary and the request should be retried</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>error\_user\_title</span><span>string</span></div><div><div><div><div><div><div><span><span>User-friendly error title for display purposes</span></span></div></div></div></div></div></div></div></div><div>---

<div><div><span>error\_user\_msg</span><span>string</span></div><div><div><div><div><div><div><span><span>User-friendly error message for display purposes</span></span></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div><div><div><div><div><div><div><div>Select language</div></div></div></div>---

</div><div><div><div><div><div><div>Select status code</div></div></div></div>---

</div></div></div></div></div></div></div><div><div id="bkmrk-authentication"><div id="bkmrk-authentication-1"><div>### Authentication

</div></div></div><div><table><tbody><tr><td><div>**Scheme**</div></td><td><div>**Type**</div></td><td><div>**Location**</div></td></tr><tr><td><div><div><div><div><div><div><div><span><span>bearerAuth</span></span></div></div></div></div></div></div></div></td><td><div><div><div><div><div><div><div><span><span>HTTP Bearer</span></span></div></div></div></div></div></div></div></td><td><div><div><div><div><div><div><div><span><span>Header: </span></span>`<span><span>Authorization</span></span>`</div></div></div></div></div></div></div></td></tr></tbody></table>

</div><div>#### Usage Examples

<div><span>bearerAuth:</span><div><div><div><div><div><div><span><span>Include </span></span>`<span><span>Authorization: Bearer your-token-here</span></span>`<span><span> in request headers</span></span></div></div></div></div></div></div></div></div><div>#### Global Authentication Requirements

<div><span>All endpoints require:</span><div><div><div><div><div><div><span><span>bearerAuth</span></span></div></div></div></div></div></div></div></div></div></div>