{
  "openapi": "3.0.1",
  "info": {
    "title": "Hi Broker API",
    "description": "API pública para operações da plataforma Cloud API.",
    "version": "v1"
  },
  "paths": {
    "/api/public/business_profiles/{wabaId}/{phoneNumberId}": {
      "get": {
        "tags": [
          "BusinessProfiles"
        ],
        "summary": "Buscar um Perfil de Negócios do WhatsApp",
        "description": "Recupere informações abrangentes sobre um Perfil de Negócios do WhatsApp, incluindo detalhes do negócio, informações de contato e configurações do perfil.\r\n\r\nSintaxe de requisição:\r\n`GET /api/public/business_profiles/{wabaId}/{phoneNumberId}?fields=about,address,description,email,profile_picture_url,websites,vertical`\r\n\r\nParâmetros:\r\n- `fields`: opcional. Lista separada por vírgula com os campos do perfil que devem ser retornados\r\n- `messaging_product`: O serviço de mensagens usado para a solicitação\r\n- `about`: O texto a ser exibido na seção Sobre do perfil da empresa\r\n- `address`: O endereço do negócio\r\n- `description`: Descrição do negócio\r\n- `email`: O endereço de e-mail de contato da empresa\r\n- `profile_picture_url`: URL da foto de perfil da empresa\r\n- `websites`: URLs associados ao negócio\r\n- `vertical`: O tipo de indústria da empresa\r\n\r\nCasos de Uso:\r\n- Recuperar informações atuais do perfil do negócio\r\n- Verificar detalhes de contato e configurações do negócio\r\n- Verificar informações do setor e site do negócio\r\n- Obter URL da foto do perfil e seção sobre\r\n\r\nDocumentação oficial da Meta:\r\n- [Buscar Perfil de Negócios](https://developers.facebook.com/documentation/business-messaging/whatsapp/reference/whatsapp-business-phone-number/whatsapp-business-profile-api#get-version-phone-number-id-whatsapp-business-profile)",
        "parameters": [
          {
            "name": "wabaId",
            "in": "path",
            "description": "ID da WABA proprietária do número de telefone.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "phoneNumberId",
            "in": "path",
            "description": "Seu ID de número de telefone do WhatsApp Business. Esse ID representa a entidade de status do número de telefone e pode ser obtido na lista de números de telefone da sua conta do WhatsApp Business.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Opcional. Lista separada por vírgula com os campos a serem retornados, como `about,address,description,email,profile_picture_url,websites,vertical`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileDetailsResult"
                },
                "example": {"data":[{"about":"Atendimento todos os dias das 8h às 20h","address":"Av. Paulista, 1000 - Bela Vista, São Paulo/SP, 01310-100","description":"Canal oficial de atendimento, vendas e suporte da empresa.","email":"contato@empresa.com","profile_picture_url":"https://lookaside.fbsbx.com/whatsapp_business_profile_photo.jpg","websites":["https://www.empresa.com","https://instagram.com/empresa"],"vertical":"PROF_SERVICES","messaging_product":"whatsapp"}]}
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileDetailsResult"
                },
                "example": {"data":[{"about":"Atendimento todos os dias das 8h às 20h","address":"Av. Paulista, 1000 - Bela Vista, São Paulo/SP, 01310-100","description":"Canal oficial de atendimento, vendas e suporte da empresa.","email":"contato@empresa.com","profile_picture_url":"https://lookaside.fbsbx.com/whatsapp_business_profile_photo.jpg","websites":["https://www.empresa.com","https://instagram.com/empresa"],"vertical":"PROF_SERVICES","messaging_product":"whatsapp"}]}
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileDetailsResult"
                },
                "example": {"data":[{"about":"Atendimento todos os dias das 8h às 20h","address":"Av. Paulista, 1000 - Bela Vista, São Paulo/SP, 01310-100","description":"Canal oficial de atendimento, vendas e suporte da empresa.","email":"contato@empresa.com","profile_picture_url":"https://lookaside.fbsbx.com/whatsapp_business_profile_photo.jpg","websites":["https://www.empresa.com","https://instagram.com/empresa"],"vertical":"PROF_SERVICES","messaging_product":"whatsapp"}]}
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "BusinessProfiles"
        ],
        "summary": "Atualizar um Perfil de Negócios do WhatsApp",
        "description": "Atualize as informações do perfil do WhatsApp Business, incluindo detalhes da empresa, informações de contato e configurações do perfil.\r\n\r\nSintaxe da solicitação:\r\n`POST /api/public/{wabaId}/{phoneNumberId}`\r\n\r\nCasos de Uso:\r\n- Atualizar a descrição da empresa e as informações de contato\r\n- Modificar o endereço da empresa e as informações do site\r\n- Alterar a classificação vertical da empresa\r\n- Atualizar a foto do perfil usando a API de upload resumível\r\n- Atualizar a foto do perfil e a seção sobre\r\n\r\nParâmetros:\r\n- `messaging_product`: obrigatório. Sempre `whatsapp`\r\n- `address`: opcional. Endereço do negócio. Limite máximo de 256 caracteres\r\n- `description`: opcional. Descrição do negócio. Limite máximo de 256 caracteres\r\n- `vertical`: opcional. Tipo de indústria do negócio\r\n- `about`: opcional. Texto da seção \"Sobre\". Mínimo de 1 e máximo de 139 caracteres. Emojis renderizados são suportados, mas valores unicode precisam estar codificados com escape Java ou JavaScript\r\n- `email`: opcional. E-mail de contato do negócio em formato válido. Limite máximo de 128 caracteres\r\n- `websites`: opcional. URLs associadas ao negócio. Devem incluir `http://` ou `https://`. Máximo de 2 URLs com até 256 caracteres cada\r\n- `profile_picture_handle`: opcional. Identificador do arquivo da foto de perfil. Esse identificador é gerado quando você carrega o arquivo binário da foto de perfil na Meta usando a API de Upload.\r\n\r\nDocumentação oficial da Meta:\r\n- [Atualizar Perfil de Negócios](https://developers.facebook.com/documentation/business-messaging/whatsapp/reference/whatsapp-business-phone-number/whatsapp-business-profile-api#post-version-phone-number-id-whatsapp-business-profile)",
        "parameters": [
          {
            "name": "wabaId",
            "in": "path",
            "description": "ID da WABA proprietária do número de telefone.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "phoneNumberId",
            "in": "path",
            "description": "Seu ID de número de telefone do WhatsApp Business. \\nEsse ID representa a entidade de status do número de telefone e pode ser obtido na lista de números de telefone da sua conta do WhatsApp Business.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Campos do perfil comercial a serem atualizados na Meta.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProfileRequest"
              },
              "example": {"about":"Atendimento todos os dias das 8h às 20h","address":"Av. Paulista, 1000 - Bela Vista, São Paulo/SP, 01310-100","description":"Canal oficial de atendimento, vendas e suporte da empresa.","email":"contato@empresa.com","messaging_product":"whatsapp","profile_picture_handle":"4::aW1hZ2UvanBlZw==::ARaExampleHandle","vertical":"PROF_SERVICES","websites":["https://www.empresa.com","https://instagram.com/empresa"]}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaGenericSuccessApiResponse"
                },
                "example": {"success":true}
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaGenericSuccessApiResponse"
                },
                "example": {"success":true}
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaGenericSuccessApiResponse"
                },
                "example": {"success":true}
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          }
        }
      }
    },
    "/api/public/marketing_messages/{wabaId}/{phoneNumberId}": {
      "post": {
        "tags": [
          "MarketingMessages"
        ],
        "summary": "Enviar Mensagem de Marketing",
        "description": "Envie uma mensagem de template para usuários do WhatsApp usando um número comercial.\r\n\r\nSintaxe da solicitação:\r\n`POST /api/public/marketing_messages/{wabaId}/{phoneNumberId}`\r\n\r\nCampos do corpo da solicitação:\r\n- `messaging_product`: obrigatório. Serviço de mensageria usado para a solicitação. Sempre `whatsapp`\r\n- `recipient_type`: opcional. Tipo de destinatário\r\n- `to`: obrigatório. Número do destinatário\r\n- `type`: obrigatório. Sempre `template`\r\n- `template`: obrigatório. Objeto do template contendo `name`, `language` e `components`\r\n\r\nDocumentação oficial da Meta:\r\n- [Mensagens](https://developers.facebook.com/docs/whatsapp/cloud-api/reference/messages/?locale=pt_BR)\r\n- [Templates de Mensagem](https://developers.facebook.com/docs/whatsapp/business-management-api/message-templates/?locale=pt_BR)",
        "parameters": [
          {
            "name": "wabaId",
            "in": "path",
            "description": "ID da WABA proprietária do número de telefone comercial.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "phoneNumberId",
            "in": "path",
            "description": "ID do número de telefone do WhatsApp Business que enviará a mensagem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Corpo da mensagem de template.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MarketingMessageSendRequest"
              },
              "example": {"messaging_product":"whatsapp","recipient_type":"individual","to":"5511999999999","type":"template","template":{"name":"marketing_template","language":{"code":"en_US"},"components":[{"type":"body","parameters":[{"type":"text","text":"Jessica","parameter_name":"first_name"},{"type":"text","text":"SKBUP2-4CPIG9","parameter_name":"order_number"}]}]}}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MessageSendResponse"
                },
                "example": {"messaging_product":"whatsapp","contacts":[{"input":"5511999999999","wa_id":"5511999999999"}],"messages":[{"id":"wamid.HBgMNTUxMTk5OTk5OTk5FQIAERgSMkY4QTY4Q0I0QzQxRUI0AA==","message_status":"accepted"}]}
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageSendResponse"
                },
                "example": {"messaging_product":"whatsapp","contacts":[{"input":"5511999999999","wa_id":"5511999999999"}],"messages":[{"id":"wamid.HBgMNTUxMTk5OTk5OTk5FQIAERgSMkY4QTY4Q0I0QzQxRUI0AA==","message_status":"accepted"}]}
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageSendResponse"
                },
                "example": {"messaging_product":"whatsapp","contacts":[{"input":"5511999999999","wa_id":"5511999999999"}],"messages":[{"id":"wamid.HBgMNTUxMTk5OTk5OTk5FQIAERgSMkY4QTY4Q0I0QzQxRUI0AA==","message_status":"accepted"}]}
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          }
        }
      }
    },
    "/api/public/media/{wabaId}/{phoneNumberId}": {
      "post": {
        "tags": [
          "Media"
        ],
        "summary": "Enviar Mídia",
        "description": "Faça upload de mídia para uso em mensagens do WhatsApp.\r\n\r\nSintaxe da solicitação:\r\n`POST /api/public/media/{wabaId}/{phoneNumberId}`\r\n\r\nCampos do corpo da solicitação:\r\n- `file`: obrigatório. Arquivo binário enviado como `multipart/form-data`\r\n\r\nDocumentação oficial da Meta:\r\n- [Mídia](https://developers.facebook.com/docs/whatsapp/cloud-api/reference/media/?locale=pt_BR)",
        "parameters": [
          {
            "name": "wabaId",
            "in": "path",
            "description": "ID da WABA proprietária do número de telefone comercial.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "phoneNumberId",
            "in": "path",
            "description": "ID do número de telefone do WhatsApp Business que fará o upload.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "description": "Obrigat�rio. Arquivo bin�rio a ser enviado para a Meta. O tipo MIME � inferido a partir do Content-Type do upload quando dispon�vel.",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MediaIdUploadResponse"
                },
                "example": {"id":"4490709327384033"}
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaIdUploadResponse"
                },
                "example": {"id":"4490709327384033"}
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaIdUploadResponse"
                },
                "example": {"id":"4490709327384033"}
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          }
        }
      }
    },
    "/api/public/media/{wabaId}/{phoneNumberId}/{mediaId}": {
      "get": {
        "tags": [
          "Media"
        ],
        "summary": "Buscar URL da Mídia",
        "description": "Obtenha informações de mídia usando um media ID.\r\n\r\nSintaxe da solicitação:\r\n`GET /api/public/media/{wabaId}/{phoneNumberId}/{mediaId}`\r\n\r\nO retorno pode incluir campos como:\r\n- `url`\r\n- `mime_type`\r\n- `sha256`\r\n- `file_size`\r\n- `id`\r\n- `messaging_product`\r\n\r\nDocumentação oficial da Meta:\r\n- [Mídia](https://developers.facebook.com/docs/whatsapp/cloud-api/reference/media/?locale=pt_BR)",
        "parameters": [
          {
            "name": "wabaId",
            "in": "path",
            "description": "ID da WABA proprietária do número de telefone comercial.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "phoneNumberId",
            "in": "path",
            "description": "ID do número de telefone do WhatsApp Business usado na autorização.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "mediaId",
            "in": "path",
            "description": "ID da mídia.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MediaFileResponse"
                },
                "example": {"id":"129387123987123","url":"https://lookaside.fbsbx.com/whatsapp_business/attachments/?mid=129387123987123","mime_type":"image/jpeg","sha256":"e3b0c44298fc1c149afbf4c8996fb924","file_size":245612,"messaging_product":"whatsapp"}
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaFileResponse"
                },
                "example": {"id":"129387123987123","url":"https://lookaside.fbsbx.com/whatsapp_business/attachments/?mid=129387123987123","mime_type":"image/jpeg","sha256":"e3b0c44298fc1c149afbf4c8996fb924","file_size":245612,"messaging_product":"whatsapp"}
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaFileResponse"
                },
                "example": {"id":"129387123987123","url":"https://lookaside.fbsbx.com/whatsapp_business/attachments/?mid=129387123987123","mime_type":"image/jpeg","sha256":"e3b0c44298fc1c149afbf4c8996fb924","file_size":245612,"messaging_product":"whatsapp"}
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Media"
        ],
        "summary": "Excluir Mídia",
        "description": "Exclua uma mídia usando um media ID.\r\n\r\nSintaxe da solicitação:\r\n`DELETE /api/public/media/{wabaId}/{phoneNumberId}/{mediaId}`\r\n\r\nDocumentação oficial da Meta:\r\n- [Mídia](https://developers.facebook.com/docs/whatsapp/cloud-api/reference/media/?locale=pt_BR)",
        "parameters": [
          {
            "name": "wabaId",
            "in": "path",
            "description": "ID da WABA proprietária do número de telefone comercial.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "phoneNumberId",
            "in": "path",
            "description": "ID do número de telefone do WhatsApp Business usado na autorização.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "mediaId",
            "in": "path",
            "description": "ID da mídia.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaGenericSuccessApiResponse"
                },
                "example": {"success":true}
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaGenericSuccessApiResponse"
                },
                "example": {"success":true}
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaGenericSuccessApiResponse"
                },
                "example": {"success":true}
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          }
        }
      }
    },
    "/api/public/messages/{wabaId}/{phoneNumberId}": {
      "post": {
        "tags": [
          "Messages"
        ],
        "summary": "Enviar Mensagem",
        "description": "Envie mensagens para usuários do WhatsApp usando um número comercial.\r\n\r\nSintaxe da solicitação:\r\n`POST /api/public/messages/{wabaId}/{phoneNumberId}`\r\n\r\nCampos do corpo da solicitação:\r\n- `messaging_product`: obrigatório. Serviço de mensageria usado para a solicitação. Sempre `whatsapp`\r\n- `recipient_type`: opcional. Tipo de destinatário\r\n- `to`: obrigatório. Número do destinatário\r\n- `type`: obrigatório. Tipo de mensagem. Valores comuns: `text`, `template`, `image`, `document`, `video`, `audio`, `sticker`, `contacts`, `reaction`, `interactive` e `location`\r\n- `context`: opcional. Objeto de contexto usado em respostas a mensagens anteriores\r\n- `text`: obrigatório quando `type=text`\r\n- `template`: obrigatório quando `type=template`\r\n- `image`: obrigatório quando `type=image`\r\n- `document`: obrigatório quando `type=document`\r\n- `video`: obrigatório quando `type=video`\r\n- `audio`: obrigatório quando `type=audio`\r\n- `sticker`: obrigatório quando `type=sticker`\r\n- `contacts`: obrigatório quando `type=contacts`\r\n- `reaction`: obrigatório quando `type=reaction`\r\n- `interactive`: obrigatório quando `type=interactive`\r\n- `location`: obrigatório quando `type=location`\r\n\r\nDocumentação oficial da Meta:\r\n- [Mensagens](https://developers.facebook.com/docs/whatsapp/cloud-api/reference/messages/?locale=pt_BR)",
        "parameters": [
          {
            "name": "wabaId",
            "in": "path",
            "description": "ID da WABA proprietária do número de telefone comercial.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "phoneNumberId",
            "in": "path",
            "description": "ID do número de telefone do WhatsApp Business que enviará a mensagem.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Corpo da mensagem com os campos exigidos pelo tipo informado.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MessageSendRequest"
              },
              "example": {"messaging_product":"whatsapp","recipient_type":"individual","to":"+16505551234","type":"text","text":{"body":"Hello from Hi Platform","preview_url":false}}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MessageSendResponse"
                },
                "example": {"messaging_product":"whatsapp","contacts":[{"input":"5511999999999","wa_id":"5511999999999"}],"messages":[{"id":"wamid.HBgMNTUxMTk5OTk5OTk5FQIAERgSMkY4QTY4Q0I0QzQxRUI0AA==","message_status":"accepted"}]}
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageSendResponse"
                },
                "example": {"messaging_product":"whatsapp","contacts":[{"input":"5511999999999","wa_id":"5511999999999"}],"messages":[{"id":"wamid.HBgMNTUxMTk5OTk5OTk5FQIAERgSMkY4QTY4Q0I0QzQxRUI0AA==","message_status":"accepted"}]}
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageSendResponse"
                },
                "example": {"messaging_product":"whatsapp","contacts":[{"input":"5511999999999","wa_id":"5511999999999"}],"messages":[{"id":"wamid.HBgMNTUxMTk5OTk5OTk5FQIAERgSMkY4QTY4Q0I0QzQxRUI0AA==","message_status":"accepted"}]}
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          }
        }
      }
    },
    "/api/public/message_templates/{wabaId}": {
      "get": {
        "tags": [
          "MessageTemplates"
        ],
        "parameters": [
          {
            "name": "wabaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "language",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "category",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "after",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "before",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MessageTemplateResponse"
                },
                "example": {"data":[{"name":"reservation_confirmation","parameter_format":"NAMED","components":[{"type":"HEADER","format":"IMAGE","example":{"header_handle":["https://scontent.whatsapp.net/v/t61..."]}},{"type":"BODY","text":"*You're all set!*\n\nYour reservation for {{number_of_guests}} at Lucky Shrub Eatery on {{day}}, {{date}}, at {{time}}, is confirmed. See you then!","example":{"body_text_named_params":[{"param_name":"number_of_guests","example":"4"},{"param_name":"day","example":"Saturday"},{"param_name":"date","example":"August 30th, 2025"},{"param_name":"time","example":"7:30 pm"}]}},{"type":"FOOTER","text":"Lucky Shrub Eatery: The Luckiest Eatery in Town!"},{"type":"BUTTONS","buttons":[{"type":"URL","text":"Change reservation","url":"https://www.luckyshrubeater.com/reservations"},{"type":"PHONE_NUMBER","text":"Call us","phone_number":"+16467043595"},{"type":"QUICK_REPLY","text":"Cancel reservation"}]}],"language":"en_US","status":"APPROVED","category":"UTILITY","id":"1387372356726668"},{"name":"coupon_expiration_reminder_number_vars","parameter_format":"POSITIONAL","components":[{"type":"HEADER","format":"TEXT","text":"Act fast, {{1}}!","example":{"header_text":["Pablo"]}},{"type":"BODY","text":"Just a quick reminder—your exclusive coupon code, {{1}}, *expires in only {{2}} days!* Don’t miss out on our special deals. Use your code at checkout before it’s too late.\n\nHappy shopping! \uD83D\uDE03","example":{"body_text":[["SUMMER20","10"]]}},{"type":"FOOTER","text":"Lucky Shrub Succulents"},{"type":"BUTTONS","buttons":[{"type":"URL","text":"See deals","url":"https://www.luckyshrub.com/deals"},{"type":"QUICK_REPLY","text":"Unsubscribe"}]}],"language":"en","status":"APPROVED","category":"MARKETING","sub_category":"CUSTOM","id":""}],"paging":{"cursors":{"before":"QVFIU...","after":"QVFIU..."},"next":"https://...","previous":"https://..."}}
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageTemplateResponse"
                },
                "example": {"data":[{"name":"reservation_confirmation","parameter_format":"NAMED","components":[{"type":"HEADER","format":"IMAGE","example":{"header_handle":["https://scontent.whatsapp.net/v/t61..."]}},{"type":"BODY","text":"*You're all set!*\n\nYour reservation for {{number_of_guests}} at Lucky Shrub Eatery on {{day}}, {{date}}, at {{time}}, is confirmed. See you then!","example":{"body_text_named_params":[{"param_name":"number_of_guests","example":"4"},{"param_name":"day","example":"Saturday"},{"param_name":"date","example":"August 30th, 2025"},{"param_name":"time","example":"7:30 pm"}]}},{"type":"FOOTER","text":"Lucky Shrub Eatery: The Luckiest Eatery in Town!"},{"type":"BUTTONS","buttons":[{"type":"URL","text":"Change reservation","url":"https://www.luckyshrubeater.com/reservations"},{"type":"PHONE_NUMBER","text":"Call us","phone_number":"+16467043595"},{"type":"QUICK_REPLY","text":"Cancel reservation"}]}],"language":"en_US","status":"APPROVED","category":"UTILITY","id":"1387372356726668"},{"name":"coupon_expiration_reminder_number_vars","parameter_format":"POSITIONAL","components":[{"type":"HEADER","format":"TEXT","text":"Act fast, {{1}}!","example":{"header_text":["Pablo"]}},{"type":"BODY","text":"Just a quick reminder—your exclusive coupon code, {{1}}, *expires in only {{2}} days!* Don’t miss out on our special deals. Use your code at checkout before it’s too late.\n\nHappy shopping! \uD83D\uDE03","example":{"body_text":[["SUMMER20","10"]]}},{"type":"FOOTER","text":"Lucky Shrub Succulents"},{"type":"BUTTONS","buttons":[{"type":"URL","text":"See deals","url":"https://www.luckyshrub.com/deals"},{"type":"QUICK_REPLY","text":"Unsubscribe"}]}],"language":"en","status":"APPROVED","category":"MARKETING","sub_category":"CUSTOM","id":""}],"paging":{"cursors":{"before":"QVFIU...","after":"QVFIU..."},"next":"https://...","previous":"https://..."}}
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageTemplateResponse"
                },
                "example": {"data":[{"name":"reservation_confirmation","parameter_format":"NAMED","components":[{"type":"HEADER","format":"IMAGE","example":{"header_handle":["https://scontent.whatsapp.net/v/t61..."]}},{"type":"BODY","text":"*You're all set!*\n\nYour reservation for {{number_of_guests}} at Lucky Shrub Eatery on {{day}}, {{date}}, at {{time}}, is confirmed. See you then!","example":{"body_text_named_params":[{"param_name":"number_of_guests","example":"4"},{"param_name":"day","example":"Saturday"},{"param_name":"date","example":"August 30th, 2025"},{"param_name":"time","example":"7:30 pm"}]}},{"type":"FOOTER","text":"Lucky Shrub Eatery: The Luckiest Eatery in Town!"},{"type":"BUTTONS","buttons":[{"type":"URL","text":"Change reservation","url":"https://www.luckyshrubeater.com/reservations"},{"type":"PHONE_NUMBER","text":"Call us","phone_number":"+16467043595"},{"type":"QUICK_REPLY","text":"Cancel reservation"}]}],"language":"en_US","status":"APPROVED","category":"UTILITY","id":"1387372356726668"},{"name":"coupon_expiration_reminder_number_vars","parameter_format":"POSITIONAL","components":[{"type":"HEADER","format":"TEXT","text":"Act fast, {{1}}!","example":{"header_text":["Pablo"]}},{"type":"BODY","text":"Just a quick reminder—your exclusive coupon code, {{1}}, *expires in only {{2}} days!* Don’t miss out on our special deals. Use your code at checkout before it’s too late.\n\nHappy shopping! \uD83D\uDE03","example":{"body_text":[["SUMMER20","10"]]}},{"type":"FOOTER","text":"Lucky Shrub Succulents"},{"type":"BUTTONS","buttons":[{"type":"URL","text":"See deals","url":"https://www.luckyshrub.com/deals"},{"type":"QUICK_REPLY","text":"Unsubscribe"}]}],"language":"en","status":"APPROVED","category":"MARKETING","sub_category":"CUSTOM","id":""}],"paging":{"cursors":{"before":"QVFIU...","after":"QVFIU..."},"next":"https://...","previous":"https://..."}}
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "MessageTemplates"
        ],
        "summary": "Criar Template de Mensagem",
        "description": "Crie um template de mensagem.\r\n\r\nSintaxe da solicitação:\r\n`POST /api/public/message_templates/{wabaId}`\r\n\r\nCampos do corpo da solicitação:\r\n- `name`: obrigatório. Nome do template\r\n- `language`: obrigatório. Idioma do template\r\n- `category`: obrigatório. Categoria do template\r\n- `components`: obrigatório. Componentes do template\r\n- `parameter_format`: opcional. Formato de parametrização do template\r\n\r\nDocumentação oficial da Meta:\r\n- [Templates de Mensagem](https://developers.facebook.com/docs/whatsapp/business-management-api/message-templates/?locale=pt_BR)\r\n- [Componentes de Template](https://developers.facebook.com/docs/whatsapp/business-management-api/message-templates/components/?locale=pt_BR)",
        "parameters": [
          {
            "name": "wabaId",
            "in": "path",
            "description": "ID da WABA onde o template será criado.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Corpo da solicitação de criação do template compatível com a Meta.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MessageTemplateCreateRequest"
              },
              "example": {"name":"coupon_expiration_reminder_number_vars","parameter_format":"POSITIONAL","components":[{"type":"HEADER","format":"TEXT","text":"Act fast, {{1}}!","example":{"header_text":["Pablo"]}},{"type":"BODY","text":"Just a quick reminder—your exclusive coupon code, {{1}}, *expires in only {{2}} days!* Don’t miss out on our special deals. Use your code at checkout before it’s too late.\n\nHappy shopping! \uD83D\uDE03","example":{"body_text":[["SUMMER20","10"]]}},{"type":"FOOTER","text":"Lucky Shrub Succulents"},{"type":"BUTTONS","buttons":[{"type":"URL","text":"See deals","url":"https://www.luckyshrub.com/deals"},{"type":"QUICK_REPLY","text":"Unsubscribe"}]}],"language":"en","category":"MARKETING"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MessageTemplateCreatedResponse"
                },
                "example": {"id":"1387372356726668","status":"PENDING","category":"UTILITY"}
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageTemplateCreatedResponse"
                },
                "example": {"id":"1387372356726668","status":"PENDING","category":"UTILITY"}
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageTemplateCreatedResponse"
                },
                "example": {"id":"1387372356726668","status":"PENDING","category":"UTILITY"}
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "MessageTemplates"
        ],
        "summary": "Excluir Template de Mensagem por ID",
        "description": "Exclua um template de mensagem usando seu nome.\r\n\r\nSintaxe da solicitação:\r\n`DELETE /api/public/message_templates/{wabaId}?name={name}`\r\n\r\nDocumentação oficial da Meta:\r\n- [Templates de Mensagem](https://developers.facebook.com/docs/whatsapp/business-management-api/message-templates/?locale=pt_BR)",
        "parameters": [
          {
            "name": "wabaId",
            "in": "path",
            "description": "ID da WABA proprietária do template.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Nome do template a ser removido.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MessageTemplateGenericResponse"
                },
                "example": {"success":true}
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageTemplateGenericResponse"
                },
                "example": {"success":true}
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageTemplateGenericResponse"
                },
                "example": {"success":true}
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          }
        }
      }
    },
    "/api/public/message_templates/{wabaId}/{id}": {
      "get": {
        "tags": [
          "MessageTemplates"
        ],
        "summary": "Buscar Template de Mensagem por ID",
        "description": "Obtenha informações de um template de mensagem específico usando seu ID.\r\n\r\nSintaxe da solicitação:\r\n`GET /api/public/message_templates/{wabaId}/{id}`\r\n\r\nDocumentação oficial da Meta:\r\n- [Templates de Mensagem](https://developers.facebook.com/docs/whatsapp/business-management-api/message-templates/?locale=pt_BR)",
        "parameters": [
          {
            "name": "wabaId",
            "in": "path",
            "description": "ID da WABA usado como contexto de autorização.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID do template na Meta.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MessageTemplateData"
                },
                "example": {"name":"reservation_confirmation","parameter_format":"NAMED","components":[{"type":"HEADER","format":"IMAGE","example":{"header_handle":["https://scontent.whatsapp.net/v/t61..."]}},{"type":"BODY","text":"*You're all set!*\n\nYour reservation for {{number_of_guests}} at Lucky Shrub Eatery on {{day}}, {{date}}, at {{time}}, is confirmed. See you then!","example":{"body_text_named_params":[{"param_name":"number_of_guests","example":"4"},{"param_name":"day","example":"Saturday"},{"param_name":"date","example":"August 30th, 2025"},{"param_name":"time","example":"7:30 pm"}]}},{"type":"FOOTER","text":"Lucky Shrub Eatery: The Luckiest Eatery in Town!"},{"type":"BUTTONS","buttons":[{"type":"URL","text":"Change reservation","url":"https://www.luckyshrubeater.com/reservations"},{"type":"PHONE_NUMBER","text":"Call us","phone_number":"+16467043595"},{"type":"QUICK_REPLY","text":"Cancel reservation"}]}],"language":"en_US","status":"APPROVED","category":"UTILITY","id":"1387372356726668"}
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageTemplateData"
                },
                "example": {"name":"reservation_confirmation","parameter_format":"NAMED","components":[{"type":"HEADER","format":"IMAGE","example":{"header_handle":["https://scontent.whatsapp.net/v/t61..."]}},{"type":"BODY","text":"*You're all set!*\n\nYour reservation for {{number_of_guests}} at Lucky Shrub Eatery on {{day}}, {{date}}, at {{time}}, is confirmed. See you then!","example":{"body_text_named_params":[{"param_name":"number_of_guests","example":"4"},{"param_name":"day","example":"Saturday"},{"param_name":"date","example":"August 30th, 2025"},{"param_name":"time","example":"7:30 pm"}]}},{"type":"FOOTER","text":"Lucky Shrub Eatery: The Luckiest Eatery in Town!"},{"type":"BUTTONS","buttons":[{"type":"URL","text":"Change reservation","url":"https://www.luckyshrubeater.com/reservations"},{"type":"PHONE_NUMBER","text":"Call us","phone_number":"+16467043595"},{"type":"QUICK_REPLY","text":"Cancel reservation"}]}],"language":"en_US","status":"APPROVED","category":"UTILITY","id":"1387372356726668"}
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageTemplateData"
                },
                "example": {"name":"reservation_confirmation","parameter_format":"NAMED","components":[{"type":"HEADER","format":"IMAGE","example":{"header_handle":["https://scontent.whatsapp.net/v/t61..."]}},{"type":"BODY","text":"*You're all set!*\n\nYour reservation for {{number_of_guests}} at Lucky Shrub Eatery on {{day}}, {{date}}, at {{time}}, is confirmed. See you then!","example":{"body_text_named_params":[{"param_name":"number_of_guests","example":"4"},{"param_name":"day","example":"Saturday"},{"param_name":"date","example":"August 30th, 2025"},{"param_name":"time","example":"7:30 pm"}]}},{"type":"FOOTER","text":"Lucky Shrub Eatery: The Luckiest Eatery in Town!"},{"type":"BUTTONS","buttons":[{"type":"URL","text":"Change reservation","url":"https://www.luckyshrubeater.com/reservations"},{"type":"PHONE_NUMBER","text":"Call us","phone_number":"+16467043595"},{"type":"QUICK_REPLY","text":"Cancel reservation"}]}],"language":"en_US","status":"APPROVED","category":"UTILITY","id":"1387372356726668"}
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "MessageTemplates"
        ],
        "summary": "Atualizar Template de Mensagem por ID",
        "description": "Atualize um template de mensagem.\r\n\r\nSintaxe da solicitação:\r\n`PATCH /api/public/message_templates/{wabaId}/{id}`\r\n\r\nCampos do corpo da solicitação:\r\n- `category`: opcional. Categoria do template\r\n- `components`: opcional. Componentes do template\r\n\r\nDocumentação oficial da Meta:\r\n- [Templates de Mensagem](https://developers.facebook.com/docs/whatsapp/business-management-api/message-templates/?locale=pt_BR)",
        "parameters": [
          {
            "name": "wabaId",
            "in": "path",
            "description": "ID da WABA usado como contexto de autorização.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID do template na Meta que será atualizado.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Corpo da solicitação de atualização do template.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MessageTemplateUpdateRequest"
              },
              "example": {"components":[{"type":"HEADER","format":"TEXT","text":"Our {{1}} is on!","example":{"header_text":["Spring Sale"]}},{"type":"BODY","text":"Shop now through {{1}} and use code {{2}} to get {{3}} off of all merchandise.","example":{"body_text":[["the end of April","25OFF","25%"]]}},{"type":"FOOTER","text":"Use the buttons below to manage your marketing subscriptions"},{"type":"BUTTONS","buttons":[{"type":"QUICK_REPLY","text":"Unsubscribe from Promos"},{"type":"URL","text":"QUICK_REPLY","url":"Unsubscribe from All"}]}]}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MessageTemplateGenericResponse"
                },
                "example": {"success":true}
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageTemplateGenericResponse"
                },
                "example": {"success":true}
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageTemplateGenericResponse"
                },
                "example": {"success":true}
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "MessageTemplates"
        ],
        "summary": "Excluir Template de Mensagem",
        "description": "Exclua um template de mensagem usando seu ID.\r\n\r\nSintaxe da solicitação:\r\n`DELETE /api/public/message_templates/{wabaId}/{id}?name={name}`\r\n\r\nDocumentação oficial da Meta:\r\n- [Templates de Mensagem](https://developers.facebook.com/docs/whatsapp/business-management-api/message-templates/?locale=pt_BR)",
        "parameters": [
          {
            "name": "wabaId",
            "in": "path",
            "description": "ID da WABA proprietária do template.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID do template a ser removido.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Nome do template associado ao ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MessageTemplateGenericResponse"
                },
                "example": {"success":true}
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageTemplateGenericResponse"
                },
                "example": {"success":true}
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageTemplateGenericResponse"
                },
                "example": {"success":true}
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          }
        }
      }
    },
    "/api/public/migrate_message_templates/{wabaId}": {
      "post": {
        "tags": [
          "MigrateMessageTemplates"
        ],
        "summary": "Migrar Templates de Mensagem",
        "description": "Migre templates de mensagem de uma conta do WhatsApp Business de origem para uma conta de destino.\r\n\r\nSintaxe da solicitação:\r\n`POST /api/public/migrate_message_templates/{wabaId}`\r\n\r\nCampos do corpo da solicitação:\r\n- `source_waba_id`: obrigatório. ID da conta do WhatsApp Business de origem\r\n- `page_number`: opcional. Número da página a ser migrada\r\n- `count`: opcional. Quantidade de templates a serem processados\r\n- `template_ids`: opcional. IDs dos templates a serem migrados\r\n\r\nDocumentação oficial da Meta:\r\n- [Migração de Templates](https://developers.facebook.com/docs/whatsapp/business-management-api/message-templates/template-migration/?locale=pt_BR)",
        "parameters": [
          {
            "name": "wabaId",
            "in": "path",
            "description": "ID da WABA de destino que receberá os templates migrados.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Parâmetros da WABA de origem e da seleção de templates para migração.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MigrateMessageTemplatesRequest"
              },
              "example": {"source_waba_id":"102290129340398","page_number":0,"count":2,"template_ids":["1473688840035974","6162904357082268"]}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MigrateMessageTemplatesResponse"
                },
                "example": {"migrated_templates":["1473688840035974","6162904357082268"],"failed_templates":{"572279198452421":"Incorrect category"}}
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MigrateMessageTemplatesResponse"
                },
                "example": {"migrated_templates":["1473688840035974","6162904357082268"],"failed_templates":{"572279198452421":"Incorrect category"}}
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MigrateMessageTemplatesResponse"
                },
                "example": {"migrated_templates":["1473688840035974","6162904357082268"],"failed_templates":{"572279198452421":"Incorrect category"}}
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          }
        }
      }
    },
    "/api/public/phone_numbers/{wabaId}": {
      "get": {
        "tags": [
          "PhoneNumber"
        ],
        "parameters": [
          {
            "name": "wabaId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 25
            }
          },
          {
            "name": "after",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "before",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PhoneNumberResponse"
                },
                "example": {"data":[{"id":"105981245678901","display_phone_number":"+55 11 99999-9999","verified_name":"Minha Empresa LTDA","quality_rating":"GREEN","code_verification_status":"VERIFIED","status":"CONNECTED","name_status":"APPROVED"},{"id":"112345678901234","display_phone_number":"+1 650 555-0123","verified_name":"My Company US","quality_rating":"YELLOW","code_verification_status":"NOT_VERIFIED","status":"OFFLINE","name_status":"PENDING_REVIEW"}],"paging":{"cursors":{"before":"QVFIUjh...","after":"QVFIUjh..."},"next":null,"previous":null}}
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PhoneNumberResponse"
                },
                "example": {"data":[{"id":"105981245678901","display_phone_number":"+55 11 99999-9999","verified_name":"Minha Empresa LTDA","quality_rating":"GREEN","code_verification_status":"VERIFIED","status":"CONNECTED","name_status":"APPROVED"},{"id":"112345678901234","display_phone_number":"+1 650 555-0123","verified_name":"My Company US","quality_rating":"YELLOW","code_verification_status":"NOT_VERIFIED","status":"OFFLINE","name_status":"PENDING_REVIEW"}],"paging":{"cursors":{"before":"QVFIUjh...","after":"QVFIUjh..."},"next":null,"previous":null}}
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PhoneNumberResponse"
                },
                "example": {"data":[{"id":"105981245678901","display_phone_number":"+55 11 99999-9999","verified_name":"Minha Empresa LTDA","quality_rating":"GREEN","code_verification_status":"VERIFIED","status":"CONNECTED","name_status":"APPROVED"},{"id":"112345678901234","display_phone_number":"+1 650 555-0123","verified_name":"My Company US","quality_rating":"YELLOW","code_verification_status":"NOT_VERIFIED","status":"OFFLINE","name_status":"PENDING_REVIEW"}],"paging":{"cursors":{"before":"QVFIUjh...","after":"QVFIUjh..."},"next":null,"previous":null}}
              }
            }
          }
        }
      }
    },
    "/api/public/phone_numbers/{wabaId}/{id}": {
      "get": {
        "tags": [
          "PhoneNumber"
        ],
        "summary": "Buscar Número de Telefone Comercial por ID",
        "description": "Obtenha informações de um número de telefone comercial usando seu ID.\r\n\r\nSintaxe da solicitação:\r\n`GET /api/public/phone_numbers/{wabaId}/{id}`\r\n\r\nDocumentação oficial da Meta:\r\n- [Números de Telefone](https://developers.facebook.com/docs/whatsapp/cloud-api/reference/phone-numbers/?locale=pt_BR)",
        "parameters": [
          {
            "name": "wabaId",
            "in": "path",
            "description": "ID da WABA proprietária do número.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "ID do número de telefone comercial a ser buscado.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PhoneNumberData"
                },
                "example": {"id":"105981245678901","display_phone_number":"+55 11 99999-9999","verified_name":"Minha Empresa LTDA","quality_rating":"GREEN","code_verification_status":"VERIFIED","status":"CONNECTED","name_status":"APPROVED"}
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PhoneNumberData"
                },
                "example": {"id":"105981245678901","display_phone_number":"+55 11 99999-9999","verified_name":"Minha Empresa LTDA","quality_rating":"GREEN","code_verification_status":"VERIFIED","status":"CONNECTED","name_status":"APPROVED"}
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PhoneNumberData"
                },
                "example": {"id":"105981245678901","display_phone_number":"+55 11 99999-9999","verified_name":"Minha Empresa LTDA","quality_rating":"GREEN","code_verification_status":"VERIFIED","status":"CONNECTED","name_status":"APPROVED"}
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          }
        }
      }
    },
    "/api/public/phone_numbers/{wabaId}/{phoneNumberId}/display_name": {
      "post": {
        "tags": [
          "PhoneNumber"
        ],
        "summary": "Atualizar Nome de Exibição",
        "description": "Atualize o nome de exibição de um número de telefone comercial.\r\n\r\nSintaxe da solicitação:\r\n`POST /api/public/phone_numbers/{wabaId}/{phoneNumberId}/display_name`\r\n\r\nCampos do corpo da solicitação:\r\n- `name`: obrigatório. Nome de exibição do número comercial\r\n\r\nDocumentação oficial da Meta:\r\n- [Números de Telefone](https://developers.facebook.com/docs/whatsapp/cloud-api/reference/phone-numbers/?locale=pt_BR)\r\n- [Gerenciar Números de Telefone](https://developers.facebook.com/docs/whatsapp/business-management-api/manage-phone-numbers/?locale=pt_BR)",
        "parameters": [
          {
            "name": "wabaId",
            "in": "path",
            "description": "ID da WABA proprietária do número.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "phoneNumberId",
            "in": "path",
            "description": "ID do número de telefone comercial cujo display name deve ser atualizado.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Corpo da solicitação de atualização do nome de exibição.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PhoneNumberDisplayNameRequest"
              },
              "example": {"name":"Minha Empresa Oficial"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaGenericSuccessApiResponse"
                },
                "example": {"success":true}
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaGenericSuccessApiResponse"
                },
                "example": {"success":true}
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaGenericSuccessApiResponse"
                },
                "example": {"success":true}
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          }
        }
      }
    },
    "/api/public/uploads/{wabaId}/{phoneNumberId}": {
      "post": {
        "tags": [
          "Upload"
        ],
        "summary": "Carregar arquivo de mídia",
        "description": "Cria uma sessão de upload na Meta e carrega o arquivo usando a Graph API.\r\n            \r\nSintaxe da solicitação:\r\n`POST /api/public/uploads/{wabaId}/{phoneNumberId}`\r\n            \r\nCampos do corpo da solicitação:\r\n- `file`: obrigatório. Arquivo binário enviado como `multipart/form-data`\r\n            \r\nDocumentação oficial da Meta:\r\n- [Upload Guide](https://developers.facebook.com/docs/graph-api/guides/upload)",
        "parameters": [
          {
            "name": "wabaId",
            "in": "path",
            "description": "ID da WABA proprietária do número de telefone comercial.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "phoneNumberId",
            "in": "path",
            "description": "ID do número de telefone do WhatsApp Business usado na autorização.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "description": "Obrigat�rio. Arquivo bin�rio a ser enviado para a Meta. O tipo MIME � inferido a partir do Content-Type do upload quando dispon�vel.",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MediaFileUploadResult"
                },
                "example": {"h":"4::aW1hZ2UvanBlZw==::ARaExampleHandle"}
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaFileUploadResult"
                },
                "example": {"h":"4::aW1hZ2UvanBlZw==::ARaExampleHandle"}
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaFileUploadResult"
                },
                "example": {"h":"4::aW1hZ2UvanBlZw==::ARaExampleHandle"}
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          }
        }
      }
    },
    "/api/public/usernames/{wabaId}/{phoneNumberId}": {
      "post": {
        "tags": [
          "Usernames"
        ],
        "summary": "Adicionar um Username",
        "description": "Associe um username a um número de telefone comercial.\r\n\r\nSintaxe da solicitação:\r\n`POST /api/public/usernames/{wabaId}/{phoneNumberId}`\r\n\r\nCampos do corpo da solicitação:\r\n- `username`: obrigatório. Username a ser associado ao número\r\n\r\nDocumentação oficial da Meta:\r\n- [Visão geral da Cloud API](https://developers.facebook.com/docs/whatsapp/cloud-api/overview/?locale=pt_BR)",
        "parameters": [
          {
            "name": "wabaId",
            "in": "path",
            "description": "ID da WABA proprietária do número de telefone.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "phoneNumberId",
            "in": "path",
            "description": "ID do número de telefone comercial que receberá o username.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Requisição de reserva de username.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UsernameCreateRequest"
              },
              "example": {"username":"minhaempresa.oficial"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UsernameStatusResult"
                },
                "example": {"status":"approved"}
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UsernameStatusResult"
                },
                "example": {"status":"approved"}
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UsernameStatusResult"
                },
                "example": {"status":"approved"}
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Usernames"
        ],
        "summary": "Excluir um Username",
        "description": "Remova o username associado a um número de telefone comercial.\r\n\r\nSintaxe da solicitação:\r\n`DELETE /api/public/usernames/{wabaId}/{phoneNumberId}`\r\n\r\nDocumentação oficial da Meta:\r\n- [Visão geral da Cloud API](https://developers.facebook.com/docs/whatsapp/cloud-api/overview/?locale=pt_BR)",
        "parameters": [
          {
            "name": "wabaId",
            "in": "path",
            "description": "ID da WABA proprietária do número de telefone.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "phoneNumberId",
            "in": "path",
            "description": "ID do número de telefone comercial cujo username deve ser removido.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "boolean"
                },
                "example": true
              },
              "application/json": {
                "schema": {
                  "type": "boolean"
                },
                "example": true
              },
              "text/json": {
                "schema": {
                  "type": "boolean"
                },
                "example": true
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          }
        }
      }
    },
    "/api/public/usernames/{wabaId}/{phoneNumberId}/suggestions": {
      "post": {
        "tags": [
          "Usernames"
        ],
        "summary": "Buscar Sugestões de Username",
        "description": "Obtenha sugestões de username para um número de telefone comercial.\r\n\r\nSintaxe da solicitação:\r\n`POST /api/public/usernames/{wabaId}/{phoneNumberId}/suggestions`\r\n\r\nDocumentação oficial da Meta:\r\n- [Visão geral da Cloud API](https://developers.facebook.com/docs/whatsapp/cloud-api/overview/?locale=pt_BR)",
        "parameters": [
          {
            "name": "wabaId",
            "in": "path",
            "description": "ID da WABA proprietária do número de telefone.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "phoneNumberId",
            "in": "path",
            "description": "ID do número de telefone comercial para o qual as sugestões devem ser geradas.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UserNameSuggestionsResult"
                },
                "example": {"data":[{"reserved_username":["minhaempresa.oficial","minhaempresa.br","minhaempresa.suporte"]}]}
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserNameSuggestionsResult"
                },
                "example": {"data":[{"reserved_username":["minhaempresa.oficial","minhaempresa.br","minhaempresa.suporte"]}]}
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserNameSuggestionsResult"
                },
                "example": {"data":[{"reserved_username":["minhaempresa.oficial","minhaempresa.br","minhaempresa.suporte"]}]}
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          }
        }
      }
    },
    "/api/public/wabas/{wabaId}": {
      "get": {
        "tags": [
          "Waba"
        ],
        "summary": "Buscar uma Conta do WhatsApp Business",
        "description": "Obtenha informações de uma conta do WhatsApp Business usando seu ID.\r\n\r\nSintaxe da solicitação:\r\n`GET /api/public/wabas/{wabaId}`\r\n\r\nDocumentação oficial da Meta:\r\n- [API de Gerenciamento de Negócios](https://developers.facebook.com/docs/whatsapp/business-management-api/?locale=pt_BR)\r\n- [Primeiros Passos](https://developers.facebook.com/docs/whatsapp/business-management-api/get-started/?locale=pt_BR#whatsapp-business-account-control)",
        "parameters": [
          {
            "name": "wabaId",
            "in": "path",
            "description": "ID da conta WABA a ser consultada.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/WabaData"
                },
                "example": {"id":"123455667710","name":"WABA Name","currency":"USD","marketing_messages_lite_api_status":"ONBOARDED"}
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WabaData"
                },
                "example": {"id":"123455667710","name":"WABA Name","currency":"USD","marketing_messages_lite_api_status":"ONBOARDED"}
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/WabaData"
                },
                "example": {"id":"123455667710","name":"WABA Name","currency":"USD","marketing_messages_lite_api_status":"ONBOARDED"}
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetaApiGenericError"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "IMessageSendPayload": {
        "type": "object",
        "additionalProperties": false
      },
      "IndustryType": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20
        ],
        "type": "integer",
        "format": "int32"
      },
      "MarketingMessageSendRequest": {
        "type": "object",
        "properties": {
          "messaging_product": {
            "type": "string",
            "description": "Produto de mensageria. O padr�o � `whatsapp`.",
            "nullable": true
          },
          "recipient_type": {
            "type": "string",
            "description": "Tipo de destinat�rio. O padr�o � `individual`.",
            "nullable": true
          },
          "to": {
            "type": "string",
            "description": "N�mero de telefone de destino ou WhatsApp ID.",
            "nullable": true
          },
          "type": {
            "type": "string",
            "description": "Tipo de envio de marketing. Este proxy espera `template`.",
            "nullable": true
          },
          "template": {
            "$ref": "#/components/schemas/MessageTemplateRequest"
          }
        },
        "additionalProperties": false
      },
      "MediaFileResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "ID da m�dia na plataforma da Meta.",
            "nullable": true
          },
          "url": {
            "type": "string",
            "description": "URL tempor�ria de download retornada pela Meta para a m�dia enviada.",
            "nullable": true
          },
          "mime_type": {
            "type": "string",
            "description": "Tipo MIME detectado ou armazenado pela Meta.",
            "nullable": true
          },
          "sha256": {
            "type": "string",
            "description": "Hash SHA-256 retornado pela Meta para valida��o de integridade.",
            "nullable": true
          },
          "file_size": {
            "type": "integer",
            "description": "Tamanho opcional do arquivo em bytes.",
            "format": "int64",
            "nullable": true
          },
          "messaging_product": {
            "type": "string",
            "description": "Produto de mensageria, normalmente `whatsapp`.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MediaFileUploadResult": {
        "type": "object",
        "properties": {
          "h": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MediaIdUploadResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MessageContactResponse": {
        "type": "object",
        "properties": {
          "input": {
            "type": "string",
            "description": "Valor original do destinat�rio recebido pela Meta.",
            "nullable": true
          },
          "wa_id": {
            "type": "string",
            "description": "WhatsApp ID resolvido.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MessageContextRequest": {
        "type": "object",
        "properties": {
          "message_id": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MessageMediaRequest": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "link": {
            "type": "string",
            "nullable": true
          },
          "caption": {
            "type": "string",
            "nullable": true
          },
          "filename": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MessageResultResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Identificador da mensagem na Meta (`wamid`).",
            "nullable": true
          },
          "message_status": {
            "type": "string",
            "description": "Status opcional de aceita��o da mensagem retornado pela Meta.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MessageSendRequest": {
        "type": "object",
        "properties": {
          "messaging_product": {
            "type": "string",
            "description": "Produto de mensageria. O padr�o � `whatsapp`.",
            "nullable": true
          },
          "recipient_type": {
            "type": "string",
            "description": "Tipo de destinat�rio. O padr�o � `individual`.",
            "nullable": true
          },
          "to": {
            "type": "string",
            "description": "N�mero de telefone de destino ou WhatsApp ID, conforme o caso de uso.",
            "nullable": true
          },
          "type": {
            "type": "string",
            "description": "Tipo de mensagem suportado pelo proxy, como `text`, `template`, `image`, `document`, `video`, `audio`, `sticker`, `contacts`, `reaction`, `interactive` ou `location`.",
            "nullable": true
          },
          "context": {
            "$ref": "#/components/schemas/MessageContextRequest"
          },
          "payload": {
            "$ref": "#/components/schemas/IMessageSendPayload"
          }
        },
        "additionalProperties": false
      },
      "MessageSendResponse": {
        "type": "object",
        "properties": {
          "messaging_product": {
            "type": "string",
            "description": "Produto de mensageria, normalmente `whatsapp`.",
            "nullable": true
          },
          "contacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MessageContactResponse"
            },
            "description": "Contatos resolvidos pela Meta para a opera��o de envio.",
            "nullable": true
          },
          "messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MessageResultResponse"
            },
            "description": "Mensagens aceitas pela Meta, incluindo o `wamid` gerado.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MessageTemplateCategory": {
        "enum": [
          "UTILITY",
          "MARKETING",
          "AUTHENTICATION"
        ],
        "type": "string"
      },
      "MessageTemplateComponent": {
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/MessageTemplateComponentType"
          }
        },
        "additionalProperties": false
      },
      "MessageTemplateComponentType": {
        "enum": [
          "HEADER",
          "BODY",
          "FOOTER",
          "BUTTONS"
        ],
        "type": "string"
      },
      "MessageTemplateCreateRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "message_send_ttl_seconds": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "parameter_format": {
            "$ref": "#/components/schemas/MessageTemplateParameterFormat"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MessageTemplateComponent"
            },
            "nullable": true
          },
          "language": {
            "type": "string",
            "nullable": true
          },
          "category": {
            "$ref": "#/components/schemas/MessageTemplateCategory"
          }
        },
        "additionalProperties": false
      },
      "MessageTemplateCreatedResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/MessageTemplateStatus"
          },
          "category": {
            "$ref": "#/components/schemas/MessageTemplateCategory"
          }
        },
        "additionalProperties": false
      },
      "MessageTemplateData": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "parameter_format": {
            "$ref": "#/components/schemas/MessageTemplateParameterFormat"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MessageTemplateComponent"
            },
            "nullable": true
          },
          "language": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/MessageTemplateStatus"
          },
          "category": {
            "$ref": "#/components/schemas/MessageTemplateCategory"
          },
          "display_format": {
            "type": "string",
            "nullable": true
          },
          "sub_category": {
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MessageTemplateGenericResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "MessageTemplateLanguageRequest": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "nullable": true
          },
          "policy": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MessageTemplateParameterFormat": {
        "enum": [
          "NAMED",
          "POSITIONAL"
        ],
        "type": "string"
      },
      "MessageTemplateRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "language": {
            "$ref": "#/components/schemas/MessageTemplateLanguageRequest"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MessageTemplateSendComponentRequest"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MessageTemplateResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MessageTemplateData"
            },
            "nullable": true
          },
          "paging": {
            "$ref": "#/components/schemas/MetaApiPaging"
          }
        },
        "additionalProperties": false
      },
      "MessageTemplateSendComponentRequest": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "sub_type": {
            "type": "string",
            "nullable": true
          },
          "index": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "parameters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MessageTemplateSendParameterRequest"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MessageTemplateSendParameterRequest": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "text": {
            "type": "string",
            "nullable": true
          },
          "parameter_name": {
            "type": "string",
            "nullable": true
          },
          "payload": {
            "type": "string",
            "nullable": true
          },
          "image": {
            "$ref": "#/components/schemas/MessageMediaRequest"
          },
          "document": {
            "$ref": "#/components/schemas/MessageMediaRequest"
          },
          "video": {
            "$ref": "#/components/schemas/MessageMediaRequest"
          }
        },
        "additionalProperties": false
      },
      "MessageTemplateStatus": {
        "enum": [
          "APPROVED",
          "ARCHIVED",
          "DELETED",
          "DISABLED",
          "FLAGGED",
          "IN_APPEAL",
          "LIMIT_EXCEEDED",
          "LOCKED",
          "PAUSED",
          "PENDING",
          "REINSTATED",
          "PENDING_DELETION",
          "REJECTED"
        ],
        "type": "string"
      },
      "MessageTemplateUpdateRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "parameter_format": {
            "$ref": "#/components/schemas/MessageTemplateParameterFormat"
          },
          "components": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MessageTemplateComponent"
            },
            "nullable": true
          },
          "language": {
            "type": "string",
            "nullable": true
          },
          "category": {
            "$ref": "#/components/schemas/MessageTemplateCategory"
          }
        },
        "additionalProperties": false
      },
      "MetaApiCursors": {
        "type": "object",
        "properties": {
          "before": {
            "type": "string",
            "nullable": true
          },
          "after": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MetaApiGenericError": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "code": {
            "type": "integer",
            "format": "int32"
          },
          "error_subcode": {
            "type": "integer",
            "format": "int32"
          },
          "is_transient": {
            "type": "boolean"
          },
          "error_user_title": {
            "type": "string",
            "nullable": true
          },
          "error_user_msg": {
            "type": "string",
            "nullable": true
          },
          "fbtrace_id": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MetaApiPaging": {
        "type": "object",
        "properties": {
          "cursors": {
            "$ref": "#/components/schemas/MetaApiCursors"
          },
          "next": {
            "type": "string",
            "nullable": true
          },
          "previous": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MetaGenericSuccessApiResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "MigrateMessageTemplatesRequest": {
        "type": "object",
        "properties": {
          "source_waba_id": {
            "type": "string",
            "description": "Obrigat�rio. ID da WABA de origem que possui os templates a serem migrados.",
            "nullable": true
          },
          "page_number": {
            "type": "integer",
            "description": "Opcional. P�gina ou lote nativo da migra��o da Meta. Use quando a requisi��o for delegada diretamente para a Meta em lotes de templates aprovados.",
            "format": "int32",
            "nullable": true
          },
          "count": {
            "type": "integer",
            "description": "Opcional. Extens�o do proxy para limitar quantos templates ser�o migrados quando o consumidor quiser um fluxo seletivo.",
            "format": "int32",
            "nullable": true
          },
          "template_ids": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Opcional. Extens�o do proxy com a lista expl�cita de IDs de template a migrar. Quando informado, o proxy executa migra��o seletiva em vez de delegar a requisi��o completa para a Meta.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MigrateMessageTemplatesResponse": {
        "type": "object",
        "properties": {
          "migrated_templates": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Lista de IDs de templates migrados ou criados com sucesso na WABA de destino.",
            "nullable": true
          },
          "failed_templates": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Dicion�rio indexado pelo ID do template de origem contendo o motivo da falha de migra��o.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PhoneNumberData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "display_phone_number": {
            "type": "string",
            "nullable": true
          },
          "verified_name": {
            "type": "string",
            "nullable": true
          },
          "quality_rating": {
            "type": "string",
            "nullable": true
          },
          "code_verification_status": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "name_status": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PhoneNumberDisplayNameRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Obrigat�rio. Novo display name a ser revisado ou aplicado ao n�mero de telefone comercial de acordo com as pol�ticas da Meta.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PhoneNumberResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PhoneNumberData"
            },
            "nullable": true
          },
          "paging": {
            "$ref": "#/components/schemas/MetaApiPaging"
          }
        },
        "additionalProperties": false
      },
      "ProfileDetailsResult": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProfileResult"
            },
            "description": "Lista com os dados atuais do perfil comercial associados ao número de telefone consultado.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProfileRequest": {
        "type": "object",
        "properties": {
          "about": {
            "type": "string",
            "description": "Opcional. Texto exibido na seção 'Sobre' do perfil comercial. O tamanho máximo é 139 caracteres e o mínimo é 1 caractere. Emojis renderizados são suportados, mas valores unicode precisam estar codificados com escape Java ou JavaScript.",
            "nullable": true
          },
          "address": {
            "type": "string",
            "description": "Opcional. Endereço do negócio. O tamanho máximo é 256 caracteres.",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Opcional. Descrição do negócio. O tamanho máximo é 256 caracteres.",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Opcional. Endereço de e-mail de contato do negócio em formato válido. O tamanho máximo é 128 caracteres.",
            "nullable": true
          },
          "messaging_product": {
            "type": "string",
            "description": "Obrigatório. Serviço de mensageria usado na requisição. Sempre defina como `whatsapp`.",
            "nullable": true,
            "readOnly": true
          },
          "profile_picture_handle": {
            "type": "string",
            "description": "Opcional. Handle da foto de perfil gerado a partir da API de Upload Resumível da Meta.",
            "nullable": true
          },
          "vertical": {
            "$ref": "#/components/schemas/IndustryType"
          },
          "websites": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Opcional. URLs associadas ao negócio, como site, página do Facebook ou Instagram. É obrigatório incluir `http://` ou `https://`. Há um máximo de 2 URLs com até 256 caracteres cada.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProfileResult": {
        "type": "object",
        "properties": {
          "about": {
            "type": "string",
            "description": "Texto exibido na seção 'Sobre' do perfil comercial.",
            "nullable": true
          },
          "address": {
            "type": "string",
            "description": "Endereço do negócio.",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Descrição do negócio.",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Endereço de e-mail de contato do negócio.",
            "nullable": true
          },
          "profile_picture_url": {
            "type": "string",
            "description": "URL pública da foto de perfil comercial atual.",
            "nullable": true
          },
          "websites": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "URLs públicas associadas ao negócio.",
            "nullable": true
          },
          "vertical": {
            "$ref": "#/components/schemas/IndustryType"
          },
          "messaging_product": {
            "type": "string",
            "description": "Serviço de mensageria usado na requisição, normalmente `whatsapp`.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UserNameSuggestionsResult": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UsernameSuggestions"
            },
            "description": "Cole��o de grupos de sugest�es de username retornados pela Meta.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UsernameCreateRequest": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string",
            "description": "Obrigat�rio. Username a ser reservado para o n�mero de telefone, como um identificador oficial da marca.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UsernameStatusResult": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/UsernameStatusType"
          }
        },
        "additionalProperties": false
      },
      "UsernameStatusType": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "UsernameSuggestions": {
        "type": "object",
        "properties": {
          "reserved_username": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Lista de usernames reservados ou sugeridos dispon�veis para o n�mero de telefone.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "WabaData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "currency": {
            "type": "string",
            "nullable": true
          },
          "marketing_messages_lite_api_status": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "DT-Fenix-Token": {
        "type": "apiKey",
        "description": "Autenticação DT-Fenix-Token via header Authorization",
        "name": "Authorization",
        "in": "header"
      },
      "Basic": {
        "type": "http",
        "description": "Autenticação Basic usando usuário e senha.",
        "scheme": "basic"
      }
    }
  },
  "security": [
    {
      "DT-Fenix-Token": [ ]
    },
    {
      "Basic": [ ]
    }
  ]
}