Integração Simples e Poderosa
🔑 Chave de API de Exemplo
Onde Encontrar as Suas Chaves de API Reais?
As chaves de API são os seus identificadores únicos para usar os nossos serviços. A chave de **Pagamentos** e a sua chave secreta de **Saques** estarão disponíveis no seu Painel do Cliente após o registo. Mantenha-as sempre seguras!Ainda não tem conta? Registe-se aqui para começar.
💸 Documentação da API de Pagamentos
Utilize a nossa API para iniciar transações de mobile money (M-Pesa, e-Mola) diretamente da sua aplicação. Todas as requisições devem incluir a sua chave de API de pagamentos no URL.
Endpoint de Transação
Para iniciar um pagamento, envie uma requisição POST para o seguinte endpoint:
POST pagafacil.ecomap.co.mz/api/v1/transfer/[A_SUA_CHAVE_DE_PAGAMENTOS]
Cabeçalhos da Requisição
| Cabeçalho | Valor | Descrição |
|---|---|---|
Content-Type |
application/json |
Indica que o corpo da requisição está em formato JSON. |
Parâmetros do Corpo (JSON)
O corpo da sua requisição POST deve ser um objeto JSON com os seguintes campos:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name |
String | Sim | Uma descrição dos produtos ou serviços a serem pagos (ex: "Ebook de Finanças", "Fatura #123"). Não pode ser nulo. |
amount |
Number | Sim | O valor total a ser pago, em meticais (MZN). |
phone |
String | Sim | O número de telefone do cliente para o qual a requisição de pagamento será enviada (9 dígitos, ex: 84xxxxxxx ou 86xxxxxxx). |
💻 Exemplos de Código & Respostas (Pagamentos)
Abaixo estão exemplos práticos de como integrar com a nossa API de pagamentos em diferentes linguagens.
curl --location --request POST 'pagafacil.ecomap.co.mz/api/v1/transfer/[A_SUA_CHAVE_DE_PAGAMENTOS]' \ --header 'Content-Type: application/json' \ --data-raw '{ "name": "Curso de Programação", "amount": 2500, "phone": "841234567" }'
const url = 'https://pagafacil.ecomap.co.mz/api/v1/transfer/[A_SUA_CHAVE_DE_PAGAMENTOS]'; const data = { name: "Curso de Programação", amount: 2500, phone: "841234567" }; async function makePayment() { try { const response = await fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(data) }); const result = await response.json(); console.log(result); } catch (error) { console.error('Erro:', error); } } makePayment();
import requests import json url = "https://pagafacil.ecomap.co.mz/api/v1/transfer/[A_SUA_CHAVE_DE_PAGAMENTOS]" payload = json.dumps({ "name": "Curso de Programação", "amount": 2500, "phone": "841234567" }) headers = { 'Content-Type': 'application/json' } response = requests.request("POST", url, headers=headers, data=payload) print(response.text)
<?php $curl = curl_init(); $apiKey = '[A_SUA_CHAVE_DE_PAGAMENTOS]'; curl_setopt_array($curl, array( CURLOPT_URL => 'https://pagafacil.ecomap.co.mz/api/v1/transfer/' . $apiKey, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode([ 'name' => 'Curso de Programação', 'amount' => 2500, 'phone' => '841234567' ]), CURLOPT_HTTPHEADER => array( 'Content-Type: application/json' ), )); $response = curl_exec($curl); curl_close($curl); echo $response;
💰 Documentação da API de Saques
Utilize este endpoint para processar saques da sua conta para um número de telemóvel. A autenticação é feita através de um Bearer Token no cabeçalho da requisição.
Endpoint de Saque
Para iniciar um saque, envie uma requisição POST para o seguinte endpoint:
POST https://pagafacil.ecomap.co.mz/api/v1/withdraw/
Cabeçalhos da Requisição
Para autenticar a sua requisição, precisa de incluir a sua Chave de API de Saques no cabeçalho Authorization.
| Cabeçalho | Valor | Descrição |
|---|---|---|
Content-Type |
application/json |
Indica que o corpo da requisição está em formato JSON. |
Authorization |
Bearer [SUA_CHAVE_DE_API_DE_SAQUES] |
Obrigatório. A sua chave secreta para autorizar saques. Deve ser precedida por "Bearer ". |
Parâmetros do Corpo (JSON)
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
amount |
Number | Sim | O valor total a ser sacado, em meticais (MZN). |
phone |
String | Sim | O número de telefone que receberá o valor do saque (9 dígitos, ex: 86xxxxxxx ou 87xxxxxxx). |
💻 Exemplos de Código & Respostas (Saques)
Abaixo estão exemplos práticos de como integrar com a nossa API de saques em diferentes linguagens.
curl --location --request POST 'https://pagafacil.ecomap.co.mz/api/v1/withdraw/' \ --header 'Authorization: Bearer [SUA_CHAVE_DE_API_DE_SAQUES]' \ --header 'Content-Type: application/json' \ --data-raw '{ "amount": 500, "phone": "861234567" }'
const apiKey = '[SUA_CHAVE_DE_API_DE_SAQUES]'; const url = 'https://pagafacil.ecomap.co.mz/api/v1/withdraw/'; const data = { amount: 500, phone: "861234567" }; fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${apiKey}` }, body: JSON.stringify(data) }) .then(res => res.json()) .then(console.log) .catch(console.error);
import requests import json api_key = "[SUA_CHAVE_DE_API_DE_SAQUES]" url = "https://pagafacil.ecomap.co.mz/api/v1/withdraw/" payload = json.dumps({ "amount": 500, "phone": "861234567" }) headers = { 'Content-Type': 'application/json', 'Authorization': f'Bearer {api_key}' } response = requests.post(url, headers=headers, data=payload) print(response.json())
<?php $apiKey = '[SUA_CHAVE_DE_API_DE_SAQUES]'; $url = 'https://pagafacil.ecomap.co.mz/api/v1/withdraw/'; $data = [ 'amount' => 500, 'phone' => '861234567' ]; $curl = curl_init($url); curl_setopt_array($curl, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => json_encode($data), CURLOPT_HTTPHEADER => [ 'Content-Type: application/json', 'Authorization: Bearer ' . $apiKey ] ]); $response = curl_exec($curl); curl_close($curl); echo $response;
✅ Resposta de Sucesso (200 OK)
Indica que o saque foi processado e concluído com sucesso pelo provedor (M-Pesa, e-Mola, etc.).
{
"status": "success",
"message": "Pagamento efetuado com sucesso",
"data": {
"output_ResponseCode": "INS-0",
"output_TransactionID": "unique_id_from_provider"
// ... outros dados da resposta do provedor
}
}
❌ Respostas de Erro
Acontecem quando há um problema com a requisição (ex: chave de API inválida) ou quando o provedor recusa a transação (ex: saldo insuficiente).
// Exemplo: Chave de API inválida ou ausente (401 Unauthorized) { "status": "error", "message": "Autenticação falhou. Token inválido ou ausente." } // Exemplo: Falha na transação pelo provedor { "status": "error", "method": "mpesa", "message": "Pagamento não efetuado com sucesso. Saldo insuficiente." }