Acesso à conta e ao projeto
Use uma conta de API habilitada por meio de HTTPS a partir de um endereço IP permitido. O projeto deve pertencer a essa conta e não pode estar excluído. Use o identificador único do projeto obtido no fluxo de solicitação de portabilidade, não o identificador numérico do banco de dados nem um número de telefone. Aplique a codificação de URL ao identificador do projeto ao montar uma requisição.
Requisição
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
"https://api.multitel.net/v3/lnp/project/$PROJECT_ID"Trate esta resposta como confidencial
A resposta completa inclui informações de faturamento da operadora doadora, incluindo o valor armazenado de billing_pin, além dos dados da conta de faturamento, telefone, endereço, empresa e contato autorizado. A API não mascara esses campos. Solicite apenas o estado ou a lista de números quando isso for tudo de que o seu fluxo de trabalho precisar. Não armazene a resposta completa de detalhes no armazenamento do navegador, em sistemas de análise, registros públicos ou capturas de tela para suporte, e exponha apenas os campos de que um cliente autorizado precisa.
Estrutura da resposta
Exemplo fictício com campos selecionados; campos adicionais podem ser retornados.
{
"status": {
"code": 200,
"msg": "Project Detail"
},
"response": {
"project": {
"id": 11,
"uniqueid": "PROJECT_EXAMPLE",
"project_name": "Example transfer",
"location": "US",
"status": 0,
"status_str": "Pending"
},
"counts": {
"total": 0,
"pending": 0,
"in_progress": 0,
"completed": 0,
"rejected": 0
},
"numbers": [],
"events": [],
"uploads": []
}
}Este exemplo deliberadamente parcial omite todas as credenciais de faturamento e os valores dos dados pessoais de contato. A omissão desses dados no exemplo não significa que a resposta real os oculte.
| Seção | Conteúdo |
|---|---|
| project | Identificador numérico da linha, identificador único do projeto, nome do projeto, localização, dados armazenados de faturamento, contato e endereço, horário de criação e estado derivado. O campo legado da operadora doadora é escrito como loosing_carrier. |
| counts | Total de linhas de números e contadores de Pending, In Progress, Completed e Rejected. |
| numbers | A mesma projeção de dados dos números usada pelo ponto de acesso da lista de números do projeto, incluindo comentários do cliente e valores de agendamento armazenados. |
| events | Linhas de eventos armazenadas e campos da carga útil em formato bruto e analisado, sujeitos aos limites de visibilidade e formato do ponto de acesso de eventos. |
| uploads | Metadados dos documentos: identificador numérico, upload_type, file_name, file_extension, date_created e um valor relativo de download_url. A URL continua exigindo autenticação da conta. |
Interprete o resumo e os metadados
O estado derivado prioriza In Progress, depois Pending, em seguida Completed e, por fim, Rejected, usando Pending como valor padrão quando nenhum dos anteriores se aplica. Um resumo com o estado Completed pode coexistir com números rejeitados. Examine os contadores e os estados dos números em vez de presumir que a portabilidade de todos eles foi concluída.
A resposta contém metadados dos documentos, não os bytes dos arquivos. Não há paginação nem cursor incremental. As consultas de detalhes e de lista são leituras separadas; não constituem uma única visão dos dados com consistência transacional garantida. As datas mantêm os valores armazenados, sem uma conversão de fuso horário documentada. Use uniqueid nas rotas do projeto; o identificador numérico do projeto não pode ser usado em seu lugar.
Erros e limites
Verifique tanto a resposta HTTP quanto status.code/status.msg. Se o projeto não existir, estiver excluído ou não pertencer à conta, será retornado o código 404 da API com uma mensagem de projeto não encontrado. A autenticação e as restrições de IP de origem também se aplicam. Os exemplos não fazem uma requisição real, e uma resposta bem-sucedida não comprova que uma operadora tenha aceitado ou concluído uma portabilidade.
Efeitos e fluxo de trabalho
Esta é a rota canônica de detalhes usada pela visualização de solicitações de portabilidade do portal atual. O portal mapeia os campos para sua interface e aplica sua própria projeção de dados para o cliente; não presuma que a resposta bruta da API seja idêntica ao JSON do portal ou à sua apresentação. O manipulador de detalhes revisado não altera o projeto nem inicia diretamente uma solicitação à operadora ou uma cobrança.