Documentação da API de Revenda v2

Integre os serviços de domínios da AngoHost diretamente na sua aplicação ou WHMCS.


Esta documentação descreve os endpoints disponíveis na API de Revenda v2 da AngoHost. Todos os endpoints retornam dados em formato JSON.

Autenticação

Todas as requisições devem incluir os seguintes cabeçalhos HTTP para autenticação:
Importante: Mantenha suas chaves de API seguras. Não as exponha em código client-side (JavaScript, Apps Móveis, etc.).

1. Consultar Saldo

GET /api/reseller_v2/account-balance.php

Retorna o saldo atual da conta de revendedor.

Exemplo de Resposta:
{
    "success": true,
    "balance": 15000.00,
    "currency": "Kz",
    "status": "active"
}

2. Verificar Disponibilidade de Domínio

POST /api/reseller_v2/check-domain.php

Verifica se um domínio está disponível para registo.

Parâmetros (JSON)
Parâmetro Tipo Obrigatório Descrição
domain String Sim O nome de domínio completo a verificar (ex: empresa.ao).
Body (JSON):
{
    "domain": "exemplo.ao"
}
Exemplo de Resposta:
{
    "success": true,
    "domain": "exemplo.ao",
    "available": true,
    "price": 20000.00,
    "currency": "Kz"
}

3. Obter Informações do Domínio

GET /api/reseller_v2/domain-info.php

Obtém detalhes de um domínio registado (WHOIS).

Parâmetros (Query String)
Parâmetro Tipo Obrigatório Descrição
domain String Sim O nome do domínio para consulta.
Exemplo de Resposta:
{
    "success": true,
    "domain": "exemplo.ao",
    "info": {
        "domain": "exemplo.ao",
        "roid": "D12345-AO",
        "status": "ok",
        "registrant": "C12345-AO",
        "admin": "C12345-AO",
        "tech": "C12345-AO",
        "nsset": "NS-EXEMPLO",
        "clID": "ANGOHOST",
        "crID": "ANGOHOST",
        "crDate": "2023-01-01T12:00:00Z",
        "exDate": "2024-01-01T12:00:00Z",
        "nameservers": [
            "ns1.angohost.ao",
            "ns2.angohost.ao"
        ]
    }
}

4. Gestão de Contactos

POST GET /api/reseller_v2/contacts-manage.php

Cria um novo contacto ou obtém informações de um existente.

Criar Contacto (POST) - Parâmetros
Parâmetro Tipo Obrigatório Descrição
name String Sim Nome completo do titular.
email String Sim Endereço de email válido.
phone String Sim Telefone em formato internacional (ex: +244.923000000).
address String Sim Endereço físico completo.
city String Sim Cidade.
country String Sim Código do país ISO 3166-1 alpha-2 (ex: AO, PT).
org String Não Nome da organização/empresa (opcional).
Body Exemplo (POST):
{
    "name": "João da Silva",
    "org": "Empresa Lda",
    "email": "joao@exemplo.com",
    "phone": "+244.923456789",
    "address": "Rua Exemplo, 123",
    "city": "Luanda",
    "state": "Luanda",
    "zip": "1000",
    "country": "AO"
}
Exemplo de Resposta (Sucesso):
{
    "success": true,
    "message": "Contato criado com sucesso",
    "id": 150,
    "contactId": "RSL-10-1707812345",
    "data": { ... }
}

5. Registar Domínio

POST /api/reseller_v2/register-domain.php

Regista um novo domínio. O valor será debitado do saldo do revendedor.

Parâmetros (JSON)
Parâmetro Tipo Obrigatório Descrição
domain String Sim Domínio a registar.
period Inteiro Não Anos de registo (Padrão: 1, Máximo: 5).
contacts Objeto Sim Objeto contendo registrant, admin, tech (IDs).
nameservers Array Não Array de strings com os hostnames dos NS (Min: 2).
Body (JSON):
{
    "domain": "novodominio.ao",
    "period": 1,
    "contacts": {
        "registrant": 150, 
        "admin": 150,
        "tech": 150
    },
    "nameservers": [
        "ns1.angohost.ao",
        "ns2.angohost.ao"
    ]
}

Nota: Os IDs em contacts podem ser IDs numéricos internos (obtidos via API) ou IDs de contacto EPP (strings).

Exemplo de Resposta:
{
    "success": true,
    "message": "Domínio registrado com sucesso",
    "domain": "novodominio.ao",
    "expiresAt": "2025-02-13",
    "cost": 10000.00,
    "balance_remaining": 5000.00,
    "invoiceId": 1234,
    "invoiceNumber": "FAT-2024-001"
}

6. Renovar Domínio

POST /api/reseller_v2/renew-domain.php

Renova um domínio existente.

Parâmetros (JSON)
Parâmetro Tipo Obrigatório Descrição
domain String Sim Domínio a renovar.
period Inteiro Não Anos de renovação (Padrão: 1).
Body (JSON):
{
    "domain": "exemplo.ao",
    "period": 1
}
Exemplo de Resposta:
{
    "success": true,
    "message": "Domínio renovado com sucesso",
    "domain": "exemplo.ao",
    "new_expires_at": "2026-02-13",
    "cost": 10000.00,
    "balance_remaining": 4000.00
}

7. Transferir Domínio

POST /api/reseller_v2/transfer-domain.php

Inicia, aprova, cancela ou consulta uma transferência de domínio.

Parâmetros (JSON)
Parâmetro Tipo Obrigatório Descrição
domain String Sim Domínio a transferir.
authCode String Depende Código de autorização (obrigatório para request).
operation String Sim Ação: request, query, approve, cancel, reject.
Body (JSON) - Solicitar Transferência:
{
    "domain": "exemplo.ao",
    "authCode": "A1b2C3d4",
    "operation": "request"
}
Exemplo de Resposta:
{
    "success": true,
    "message": "Pedido de transferência iniciado com sucesso",
    "domain": "exemplo.ao",
    "cost": 10000.00,
    "result": { ... }
}

8. Atualizar Nameservers

POST /api/reseller_v2/update-nameservers.php

Atualiza os servidores de nome (DNS) de um domínio.

Parâmetros (JSON)
Parâmetro Tipo Obrigatório Descrição
domain String Sim Domínio para atualizar.
nameservers Array Sim Lista dos novos servidores de nome (Min: 2, Max: 6).
Body (JSON):
{
    "domain": "exemplo.ao",
    "nameservers": [
        "ns1.novoservidor.com",
        "ns2.novoservidor.com"
    ]
}
Exemplo de Resposta:
{
    "success": true,
    "message": "Nameservers atualizados com sucesso",
    "domain": "exemplo.ao",
    "nameservers": [ ... ]
}

9. Carregamento de Saldo (Top-up)

POST /api/reseller_v2/create-topup.php

Gera uma referência de pagamento para carregar o saldo da conta.

Parâmetros (JSON)
Parâmetro Tipo Obrigatório Descrição
amount Numeric Sim Valor a carregar em Kwanzas (Kz).
gateway String Sim Método: APPY_PAY_REF ou GPO_MULTICAIXA.
Body (JSON):
{
    "amount": 50000,
    "gateway": "APPY_PAY_REF" 
}
Exemplo de Resposta:
{
    "success": true,
    "message": "Pagamento gerado com sucesso",
    "redirectUrl": "https://angohost.ao/fatura.php?q=..."
}

Tratamento de Erros

Em caso de erro, a API retornará um código HTTP apropriado (4xx ou 5xx) e um JSON no seguinte formato:

{
    "success": false,
    "error": "Descrição do erro"
}