DocsComeçarPrimeira Integração
Guia Rápido

Primeira Integração

Aprenda a iniciar a sua primeira cobrança de pagamento na EDPay através de pedidos servidor-a-servidor utilizando credenciais seguras.

1. Obtenha as suas credenciais

No painel da sua conta EDPay, aceda a Definições > Chaves API. Cada conta tem atribuído um par de chaves para o ambiente de testes (pk_test_... / sk_test_...) e outro para o ambiente de produção (pk_live_... / sk_live_...).

A sua Chave Privada deve ser guardada exclusivamente em variáveis de ambiente no seu servidor backend e nunca ser exposta em clientes públicos (navegadores ou apps móveis).

2. Criar uma intenção de pagamento

Para criar um pagamento na EDPay, envie um pedido HTTP POST /v1/payments com o montante e a moeda. O pagamento nasce desacoplado de gateway, gerando uma payment_url pronta a ser liquidada:

POST
/v1/payments
cURL
curl -X POST "https://api-pay.edutecka.com/v1/payments" \ -H "X-EDPay-Public-Key: <PUBLIC_KEY>" \ -H "X-EDPay-Private-Key: <PRIVATE_KEY>" \ -H "Accept: application/json" \ -H "Idempotency-Key: req_8f192b0c-44e2" \ -H "Content-Type: application/json" \ -d '{ "amount": 500, "currency": "MZN", "reference": "INV-2026-001", "customer": { "name": "Carlos Macuácua", "email": "[email protected]" } }'

3. Resposta da API & Ação Final

A API responde com o status requires_payment_method e a payment_url. Pode redirecionar o cliente para a página hospedada da EDPay para ele escolher o método de pagamento (carteiras móveis, cartões, transferências) ou liquidar diretamente via API headless.

201 Created (Resposta JSON)
{ "success": true, "data": { "id": "pay_c0a8010a-8bf3-4621-a7ee-5488cba88091", "amount": 500, "currency": "MZN", "status": "requires_payment_method", "reference": "INV-2026-001", "payment_url": "https://pay.edutecka.com/pay?payment=pay_c0a8010a-8bf3-4621-a7ee-5488cba88091", "created_at": "2026-11-07T12:00:00Z" } }

Autorização por carteira móvel

Quando o método escolhido iniciar uma autorização por USSD Push, o pedido de confirmação aparece no telemóvel do cliente. A janela de confirmação do PIN é de até 60 segundos. O cliente conclui a autorização no próprio telemóvel; a sua aplicação não deve recolher o PIN.

A criação do pagamento é assíncrona. HTTP 202 indica que o pedido foi aceite para processamento, não que foi pago. Confirme o estado por consulta server-to-server ou webhook; não considere o pagamento expirado com base num prazo global fixo.

4. Próximos passos

  • Configure um endpoint de Webhooks para receber actualizações instantâneas sobre a confirmação da transacção.
  • Implemente o cabeçalho Idempotency-Key para evitar cobranças duplicadas em caso de reconexões ou timeouts de rede.