Visão Geral
A API DukoPay permite que sistemas terceiros integrem a validação automatizada de comprovativos de pagamento de forma segura e eficiente. Desenvolvida pela CFPTEC - Centro Forense de Proteção Tecnológica e Cibernética, nossa API oferece validação em tempo real para os principais bancos de Angola.
Características
- ✅ Validação em tempo real - Processamento de comprovativos em segundos
- ✅ Suporte Multi-banco - Express, BAI, BIC, Atlântico, BCI
- ✅ Segurança máxima - TLS 1.3, autenticação por API Key, hashing criptográfico
- ✅ Logs de auditoria - Todas as validações são registradas com timestamp
- ✅ Limites customizáveis - Planos com limites mensais ajustáveis
https://dokupay.ao/api/v2
Autenticação
Todas as requisições para a API DukoPay devem ser autenticadas utilizando API Key e API Secret.
Como obter suas credenciais
- Acesse o Dashboard DukoPay
- Entre em contato com o suporte comercial para contratar um plano
- Após a contratação, você receberá suas credenciais via email
- Guarde as credenciais em local seguro - o Secret não pode ser recuperado
Headers de Autenticação
X-API-Key: dk_seu_token_aqui
X-API-Secret: seu_secret_aqui
Endpoints
1. Validar Comprovativo
/validar
Envia um comprovativo PDF para validação. Retorna os dados extraídos e o resultado da análise.
Parâmetros (multipart/form-data)
- file (obrigatório) - Arquivo PDF do comprovativo
- banco (opcional) - Banco do comprovativo:
express,bai,bic,atlantico. Se não informado, será detectado automaticamente.
Exemplo de Requisição
curl -X POST https://dokupay.ao/api/v2/validar \
-H "X-API-Key: sua_api_key" \
-H "X-API-Secret: seu_api_secret" \
-F "file=@comprovativo.pdf" \
-F "banco=express"
import requests
url = "https://dokupay.ao/api/v2/validar"
headers = {
"X-API-Key": "sua_api_key",
"X-API-Secret": "seu_api_secret"
}
files = {"file": open("comprovativo.pdf", "rb")}
data = {"banco": "express"}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
const formData = new FormData();
formData.append('file', fileInput.files[0]);
formData.append('banco', 'express');
fetch('https://dokupay.ao/api/v2/validar', {
method: 'POST',
headers: {
'X-API-Key': 'sua_api_key',
'X-API-Secret': 'seu_api_secret'
},
body: formData
})
.then(response => response.json())
.then(data => console.log(data));
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://dokupay.ao/api/v2/validar',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'X-API-Key: sua_api_key',
'X-API-Secret: seu_api_secret'
],
CURLOPT_POSTFIELDS => [
'file' => new CURLFile('comprovativo.pdf'),
'banco' => 'express'
]
]);
$response = curl_exec($curl);
echo $response;
?>
Resposta de Sucesso
{
"success": true,
"message": "✅ Comprovativo válido!",
"data": {
"banco": "express",
"tipo": "Transferência",
"nome": "João Silva",
"conta": "923456789",
"valor": "15.000,00 Kz",
"valor_float": 15000.00,
"transaction_number": "TRX-2024-001234",
"data_execucao": "2024-01-15 14:30:00",
"estado": "Concluída"
},
"client_info": {
"empresa": "Minha Empresa",
"sistema": "Meu Sistema",
"plano": "express",
"uso_mes_atual": 150,
"limite_mensal": 500,
"uso_restante": 350
}
}
Resposta de Erro
{
"success": false,
"error": "INVALID_CREDENTIALS",
"message": "Credenciais inválidas ou ausentes"
}
2. Verificar Status do Plano
/status
Retorna informações sobre o plano contratado e o uso atual.
curl -X GET https://dokupay.ao/api/v2/status \
-H "X-API-Key: sua_api_key" \
-H "X-API-Secret: seu_api_secret"
Resposta
{
"success": true,
"client_info": {
"empresa": "Minha Empresa",
"sistema": "Meu Sistema",
"tipo_api": "express",
"bancos_permitidos": ["express"],
"limite_mensal": 500,
"uso_mes_atual": 150,
"uso_restante": 350,
"status": "active"
}
}
3. Listar Bancos Disponíveis
/bancos
Retorna os bancos disponíveis para validação de acordo com o plano contratado.
curl -X GET https://dokupay.ao/api/v2/bancos \
-H "X-API-Key: sua_api_key" \
-H "X-API-Secret: seu_api_secret"
Exemplos Práticos
Integração com Python (Flask)
from flask import Flask, request, jsonify
import requests
app = Flask(__name__)
API_KEY = "sua_api_key"
API_SECRET = "seu_api_secret"
@app.route('/validar-comprovativo', methods=['POST'])
def validar_comprovativo():
file = request.files['comprovativo']
files = {'file': (file.filename, file.read(), 'application/pdf')}
headers = {
'X-API-Key': API_KEY,
'X-API-Secret': API_SECRET
}
response = requests.post(
'https://dokupay.ao/api/v2/validar',
headers=headers,
files=files
)
return jsonify(response.json())
Integração com JavaScript (Node.js)
const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');
async function validarComprovativo() {
const form = new FormData();
form.append('file', fs.createReadStream('./comprovativo.pdf'));
form.append('banco', 'express');
try {
const response = await axios.post(
'https://dokupay.ao/api/v2/validar',
form,
{
headers: {
...form.getHeaders(),
'X-API-Key': 'sua_api_key',
'X-API-Secret': 'seu_api_secret'
}
}
);
console.log(response.data);
} catch (error) {
console.error('Erro:', error.response?.data || error.message);
}
}
Planos e Preços
| Característica | Plano Express | Plano Completa |
|---|---|---|
| Bancos Suportados | Apenas Multicaixa Express | Todos os bancos (Express, BAI, BIC, Atlântico, BCI) |
| Limite Mensal | 500 validações | 2.000 validações |
| Suporte | Email (24h) | Email + WhatsApp Prioritário |
| Trial Grátis | 14 dias de teste gratuito | |
| Preço Mensal | 5.000 KZ | 15.000 KZ |
| Preço Trimestral | 15.000 KZ | 45.000 KZ |
| Preço Anual | 110.000 KZ | 250.000 KZ |
Códigos de Erro
| Código | Significado | Solução |
|---|---|---|
| 401 | Credenciais inválidas | Verifique X-API-Key e X-API-Secret |
| 403 | Banco não permitido | Seu plano não suporta este banco |
| 402 | Trial expirado | Renove seu plano |
| 429 | Limite mensal excedido | Contrate um plano superior |
| 400 | Arquivo inválido | Envie um PDF válido |
| 500 | Erro interno | Tente novamente mais tarde |
Suporte
Para dúvidas técnicas, suporte ou contratação de planos:
- Email: suporte@dokupay.ao
- WhatsApp: +244 954633781
- Horário: Segunda a Sexta, 8h às 18h