Skip to main content

WhatsApp Cloud API - WhatsApp Business QR Code API

Copy for LLM View as Markdown Version v23.0 API for managing individual WhatsApp Business Account message QR codes by their unique identifier. Provides endpoints for retrieving and deleting specific message QR codes. Message QR codes generate WhatsApp deep links with pre-filled messages that customers can use to start conversations. Each QR code has a unique 14-character identifier. Requirements: WhatsApp Business Account with whatsapp_business_management permission, verified phone number, valid system user access token, and valid QR code identifier.

Base URL

| https://graph.facebook.com |

Endpoints

| GET | ///message_qrdls/ | | DELETE | ///message_qrdls/ |

GET ///message_qrdls/

Retrieve details for a specific QR code by its unique identifier. Supports field selection and QR image generation. Response returns QR code in data array for consistency.

Request Syntax

GET///message_qrdls/ Try it Select language cURLJavaScriptPython
curl --request GET \
  --url 'https://graph.facebook.com/{Version}/{Phone-Number-ID}/message_qrdls/{QR-Code-ID}' \
  --header 'Authorization: Bearer <Token>' \
  --header 'Content-Type: application/json' \
  --data '{}'
Select status code 200400401403404429500
\{
  "default_fields": {
    "summary": "Default fields response",
    "description": "Response with default fields (code, prefilled_message, deep_link_url)",
    "value": {
      "data": [\
        {\
          "code": "ANED2T5QRU7HG1",\
          "prefilled_message": "Show me Cyber Monday deals!",\
          "deep_link_url": "https://wa.me/message/ANED2T5QRU7HG1"\
        }\
      ]
    }
  },
  "with_qr_image_svg": {
    "summary": "Response with SVG QR code image",
    "description": "Response including QR code image URL in SVG format",
    "value": {
      "data": [\
        {\
          "code": "ANED2T5QRU7HG1",\
          "prefilled_message": "Show me Cyber Monday deals!",\
          "deep_link_url": "https://wa.me/message/ANED2T5QRU7HG1",\
          "qr_image_url": "https://scontent-iad3-1.xx.fbcdn.net/m1/v/t6/An-H7T8OyTqO07lcRGHlKteuPMKDnx07nua3dGb4i560bVxDscweOV4KoKD_4wCDFoHR_C5LyVjxQISKPxwora1bbFhUEo2nA19ZPLBUVoQSmV12l1x-nuu312jKty-5rmojmde_a0g?ccb=10-5&oh=00_AfASq_vjojFza_9A-HDeRgHM3wZ8yjNprpYBjNKOn8RkSg&oe=64550A9E&_nc_sid=f36290"\
        }\
      ]
    }
  },
  "with_creation_time": {
    "summary": "Response with creation time (first-party apps only)",
    "description": "Response including creation timestamp for first-party applications",
    "value": {
      "data": [\
        {\
          "code": "ANED2T5QRU7HG1",\
          "prefilled_message": "Show me Cyber Monday deals!",\
          "deep_link_url": "https://wa.me/message/ANED2T5QRU7HG1",\
          "creation_time": 1672531200\
        }\
      ]
    }
  }
}
Header Parameters
User-Agentstring The user agent string identifying the client software making the request. Authorizationstring·required Bearer token for API authentication. This should be a valid access token obtained through the appropriate OAuth flow or system user token. Path Parameters
Versionstring·required Graph API version to use for this request. Determines the API behavior and available features. Phone-Number-IDstring·required The WhatsApp Business Account phone number ID that owns the QR code. This ID is provided when you add a phone number to your WhatsApp Business Account. QR-Code-IDstring·required The unique 14-character identifier of the QR code to retrieve. This is the code value returned when the QR code was created. Query Parameters
fieldsstring Comma-separated list of fields to include in the response. Available fields: code: QR code identifier (always included) prefilled_message: Pre-filled message text (always included) deep_link_url: WhatsApp deep link URL (always included) creation_time: Unix timestamp when QR code was created (first-party apps only) qr_image_url.format(FORMAT): QR code image URL where FORMAT is SVG or PNG Example: “code,prefilled_message,qr_image_url.format(SVG)” Responses
Retrieve details for a specific QR code by its unique identifier. Supports field selection and QR image generation. Response returns QR code in data array for consistency. 200 Successfully retrieved the message QR code details Content Type: application/json Schema: QrCodeResponse Show child attributes
QrCodeResponse
dataarray of QrCodeDetails·required Array containing the single QR code object (maintains consistency with collection endpoint) Show child attributes
data[]QrCodeDetails Complete details of a message QR code Show child attributes
codestring·required Unique 14-character QR code identifier
prefilled_messagestring·required Pre-filled message text that appears in customer chat
deep_link_urlstring (uri)·required WhatsApp deep link URL for direct conversation initiation
creation_timeinteger Unix timestamp when QR code was created (first-party apps only)
qr_image_urlstring (uri) QR code image download URL (when format specified in fields) 400 Bad Request - Invalid QR code ID format or parameters Content Type: application/json Schema: GraphAPIError Show child attributes
GraphAPIError
errorobject·required Show child attributes
messagestring·required Human-readable error message
typestring·required Error category type
codeinteger·required Numeric error code
error_subcodeinteger More specific error subcode when available
fbtrace_idstring Unique identifier for debugging and support requests with Meta
is_transientboolean Indicates whether this error is temporary and the request should be retried
error_user_titlestring User-friendly error title for display purposes
error_user_msgstring User-friendly error message for display purposes 401 Unauthorized - Invalid or missing access token Content Type: application/json Schema: GraphAPIError Show child attributes
GraphAPIError
errorobject·required Show child attributes
messagestring·required Human-readable error message
typestring·required Error category type
codeinteger·required Numeric error code
error_subcodeinteger More specific error subcode when available
fbtrace_idstring Unique identifier for debugging and support requests with Meta
is_transientboolean Indicates whether this error is temporary and the request should be retried
error_user_titlestring User-friendly error title for display purposes
error_user_msgstring User-friendly error message for display purposes 403 Forbidden - Insufficient permissions or access denied Content Type: application/json Schema: GraphAPIError Show child attributes
GraphAPIError
errorobject·required Show child attributes
messagestring·required Human-readable error message
typestring·required Error category type
codeinteger·required Numeric error code
error_subcodeinteger More specific error subcode when available
fbtrace_idstring Unique identifier for debugging and support requests with Meta
is_transientboolean Indicates whether this error is temporary and the request should be retried
error_user_titlestring User-friendly error title for display purposes
error_user_msgstring User-friendly error message for display purposes 404 Not Found - Phone number ID or QR code does not exist Content Type: application/json Schema: GraphAPIError Show child attributes
GraphAPIError
errorobject·required Show child attributes
messagestring·required Human-readable error message
typestring·required Error category type
codeinteger·required Numeric error code
error_subcodeinteger More specific error subcode when available
fbtrace_idstring Unique identifier for debugging and support requests with Meta
is_transientboolean Indicates whether this error is temporary and the request should be retried
error_user_titlestring User-friendly error title for display purposes
error_user_msgstring User-friendly error message for display purposes 429 Too Many Requests - Rate limit exceeded Content Type: application/json Schema: GraphAPIError Show child attributes
GraphAPIError
errorobject·required Show child attributes
messagestring·required Human-readable error message
typestring·required Error category type
codeinteger·required Numeric error code
error_subcodeinteger More specific error subcode when available
fbtrace_idstring Unique identifier for debugging and support requests with Meta
is_transientboolean Indicates whether this error is temporary and the request should be retried
error_user_titlestring User-friendly error title for display purposes
error_user_msgstring User-friendly error message for display purposes 500 Internal Server Error - Unexpected server error Content Type: application/json Schema: GraphAPIError Show child attributes
GraphAPIError
errorobject·required Show child attributes
messagestring·required Human-readable error message
typestring·required Error category type
codeinteger·required Numeric error code
error_subcodeinteger More specific error subcode when available
fbtrace_idstring Unique identifier for debugging and support requests with Meta
is_transientboolean Indicates whether this error is temporary and the request should be retried
error_user_titlestring User-friendly error title for display purposes
error_user_msgstring User-friendly error message for display purposes Select language cURLJavaScriptPython
curl --request GET \
  --url 'https://graph.facebook.com/{Version}/{Phone-Number-ID}/message_qrdls/{QR-Code-ID}' \
  --header 'Authorization: Bearer <Token>' \
  --header 'Content-Type: application/json' \
  --data '{}'
Select status code 200400401403404429500
\{
  "default_fields": {
    "summary": "Default fields response",
    "description": "Response with default fields (code, prefilled_message, deep_link_url)",
    "value": {
      "data": [\
        {\
          "code": "ANED2T5QRU7HG1",\
          "prefilled_message": "Show me Cyber Monday deals!",\
          "deep_link_url": "https://wa.me/message/ANED2T5QRU7HG1"\
        }\
      ]
    }
  },
  "with_qr_image_svg": {
    "summary": "Response with SVG QR code image",
    "description": "Response including QR code image URL in SVG format",
    "value": {
      "data": [\
        {\
          "code": "ANED2T5QRU7HG1",\
          "prefilled_message": "Show me Cyber Monday deals!",\
          "deep_link_url": "https://wa.me/message/ANED2T5QRU7HG1",\
          "qr_image_url": "https://scontent-iad3-1.xx.fbcdn.net/m1/v/t6/An-H7T8OyTqO07lcRGHlKteuPMKDnx07nua3dGb4i560bVxDscweOV4KoKD_4wCDFoHR_C5LyVjxQISKPxwora1bbFhUEo2nA19ZPLBUVoQSmV12l1x-nuu312jKty-5rmojmde_a0g?ccb=10-5&oh=00_AfASq_vjojFza_9A-HDeRgHM3wZ8yjNprpYBjNKOn8RkSg&oe=64550A9E&_nc_sid=f36290"\
        }\
      ]
    }
  },
  "with_creation_time": {
    "summary": "Response with creation time (first-party apps only)",
    "description": "Response including creation timestamp for first-party applications",
    "value": {
      "data": [\
        {\
          "code": "ANED2T5QRU7HG1",\
          "prefilled_message": "Show me Cyber Monday deals!",\
          "deep_link_url": "https://wa.me/message/ANED2T5QRU7HG1",\
          "creation_time": 1672531200\
        }\
      ]
    }
  }
}

DELETE ///message_qrdls/

Permanently delete a specific QR code. Once deleted, the QR code and deep link become invalid. Deletion cannot be undone and affects any existing marketing materials using the QR code.

Request Syntax

DELETE///message_qrdls/ Try it Select language cURLJavaScriptPython
curl --request DELETE \
  --url 'https://graph.facebook.com/{Version}/{Phone-Number-ID}/message_qrdls/{QR-Code-ID}' \
  --header 'Authorization: Bearer <Token>' \
  --header 'Content-Type: application/json' \
  --data '{}'
Select status code 200400401403404429500
\{
  "successful_deletion": {
    "summary": "QR code successfully deleted",
    "description": "Confirmation that the QR code has been permanently deleted",
    "value": {
      "success": true
    }
  }
}
Header Parameters
User-Agentstring The user agent string identifying the client software making the request. Authorizationstring·required Bearer token for API authentication. This should be a valid access token obtained through the appropriate OAuth flow or system user token. Path Parameters
Versionstring·required Graph API version to use for this request. Determines the API behavior and available features. Phone-Number-IDstring·required The WhatsApp Business Account phone number ID that owns the QR code to be deleted. This ID is provided when you add a phone number to your WhatsApp Business Account. QR-Code-IDstring·required The unique 14-character identifier of the QR code to delete. This is the code value returned when the QR code was created. Responses
Permanently delete a specific QR code. Once deleted, the QR code and deep link become invalid. Deletion cannot be undone and affects any existing marketing materials using the QR code. 200 Successfully deleted the message QR code Content Type: application/json Schema: DeleteQrCodeResponse Show child attributes
DeleteQrCodeResponse
successboolean·required Indicates whether the QR code was successfully deleted 400 Bad Request - Invalid QR code ID format Content Type: application/json Schema: GraphAPIError Show child attributes
GraphAPIError
errorobject·required Show child attributes
messagestring·required Human-readable error message
typestring·required Error category type
codeinteger·required Numeric error code
error_subcodeinteger More specific error subcode when available
fbtrace_idstring Unique identifier for debugging and support requests with Meta
is_transientboolean Indicates whether this error is temporary and the request should be retried
error_user_titlestring User-friendly error title for display purposes
error_user_msgstring User-friendly error message for display purposes 401 Unauthorized - Invalid or missing access token Content Type: application/json Schema: GraphAPIError Show child attributes
GraphAPIError
errorobject·required Show child attributes
messagestring·required Human-readable error message
typestring·required Error category type
codeinteger·required Numeric error code
error_subcodeinteger More specific error subcode when available
fbtrace_idstring Unique identifier for debugging and support requests with Meta
is_transientboolean Indicates whether this error is temporary and the request should be retried
error_user_titlestring User-friendly error title for display purposes
error_user_msgstring User-friendly error message for display purposes 403 Forbidden - Insufficient permissions or access denied Content Type: application/json Schema: GraphAPIError Show child attributes
GraphAPIError
errorobject·required Show child attributes
messagestring·required Human-readable error message
typestring·required Error category type
codeinteger·required Numeric error code
error_subcodeinteger More specific error subcode when available
fbtrace_idstring Unique identifier for debugging and support requests with Meta
is_transientboolean Indicates whether this error is temporary and the request should be retried
error_user_titlestring User-friendly error title for display purposes
error_user_msgstring User-friendly error message for display purposes 404 Not Found - Phone number ID or QR code does not exist Content Type: application/json Schema: GraphAPIError Show child attributes
GraphAPIError
errorobject·required Show child attributes
messagestring·required Human-readable error message
typestring·required Error category type
codeinteger·required Numeric error code
error_subcodeinteger More specific error subcode when available
fbtrace_idstring Unique identifier for debugging and support requests with Meta
is_transientboolean Indicates whether this error is temporary and the request should be retried
error_user_titlestring User-friendly error title for display purposes
error_user_msgstring User-friendly error message for display purposes 429 Too Many Requests - Rate limit exceeded Content Type: application/json Schema: GraphAPIError Show child attributes
GraphAPIError
errorobject·required Show child attributes
messagestring·required Human-readable error message
typestring·required Error category type
codeinteger·required Numeric error code
error_subcodeinteger More specific error subcode when available
fbtrace_idstring Unique identifier for debugging and support requests with Meta
is_transientboolean Indicates whether this error is temporary and the request should be retried
error_user_titlestring User-friendly error title for display purposes
error_user_msgstring User-friendly error message for display purposes 500 Internal Server Error - Unexpected server error Content Type: application/json Schema: GraphAPIError Show child attributes
GraphAPIError
errorobject·required Show child attributes
messagestring·required Human-readable error message
typestring·required Error category type
codeinteger·required Numeric error code
error_subcodeinteger More specific error subcode when available
fbtrace_idstring Unique identifier for debugging and support requests with Meta
is_transientboolean Indicates whether this error is temporary and the request should be retried
error_user_titlestring User-friendly error title for display purposes
error_user_msgstring User-friendly error message for display purposes Select language cURLJavaScriptPython
curl --request DELETE \
  --url 'https://graph.facebook.com/{Version}/{Phone-Number-ID}/message_qrdls/{QR-Code-ID}' \
  --header 'Authorization: Bearer <Token>' \
  --header 'Content-Type: application/json' \
  --data '{}'
Select status code 200400401403404429500
\{
  "successful_deletion": {
    "summary": "QR code successfully deleted",
    "description": "Confirmation that the QR code has been permanently deleted",
    "value": {
      "success": true
    }
  }
}

Authentication

| Scheme | Type | Location | | bearerAuth | HTTP Bearer | Header: Authorization |

Usage Examples

bearerAuth: Include Authorization: Bearer your-token-here in request headers

Global Authentication Requirements

All endpoints require: bearerAuth Did you find this page helpful? Thumbs up icon Thumbs down icon