DocsRecursos da API › Pagamentos & CheckoutPagamentos via API

Pagamentos via API

Crie e consulte pagamentos por integração server-to-server. O fluxo depende do método de pagamento ativo escolhido.

Autenticação e chaves

Envie X-EDPay-Public-Key (pk_test_… ou pk_live_…) e X-EDPay-Private-Key (sk_test_… ou sk_live_…) em cada chamada server-to-server. A chave privada deve permanecer no servidor; nunca a exponha em browser ou aplicação cliente. Não use Bearer token.

A tarifa da plataforma é 6% em MZN. Consulte os termos para condições de liquidação.

GET
/v1/public/payment-methods

Consulte este endpoint público e use o código de um método ativo no campo method. Os requisitos variam por gateway; envie phone apenas quando exigido pelo método.

cURL
curl "https://api-pay.edutecka.com/v1/public/payment-methods" -H "Accept: application/json"
POST
/v1/payments

amount_minor é um inteiro em unidades menores da moeda (150000 = 1.500,00 MZN). currency deve corresponder à moeda base da conta. Idempotency-Key é obrigatório. HTTP 202 significa aceite para processamento, não confirmação de pagamento.

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: order-2026-001-payment" \ -H "Content-Type: application/json" \ -d '{ "amount_minor": 150000, "currency": "MZN", "method": "<METHOD_CODE_FROM_PAYMENT_METHODS>", "phone": "+25884xxxxxxx", "reference": "ORD-2026-001", "description": "Order payment" }'

Corpo da requisição

JSON
{
  "amount_minor": 150000,
  "currency": "MZN",
  "method": "<METHOD_CODE_FROM_PAYMENT_METHODS>",
  "phone": "+25884xxxxxxx",
  "reference": "ORD-2026-001",
  "description": "Order payment",
  "customer_id": "cus_…"
}

Campos opcionais: customer_id, reference e description. method pode ser omitido quando channel.provider ou channel.type contiver um código de método suportado. A API ignora atualmente emola_custom_message e custom_message.

Resposta de pagamento

JSON · 202 Accepted
{
  "data": {
    "id": "pay_…",
    "reference": "ORD-2026-001",
    "trans_id": "…",
    "amount_minor": 150000,
    "currency": "MZN",
    "base_amount_minor": 150000,
    "base_currency": "MZN",
    "base_platform_fee_minor": 9000,
    "base_receiver_net_minor": 141000,
    "method": "<active_method_code>",
    "status": "pending",
    "platform_fee_bps": 600,
    "platform_fee_minor": 9000,
    "receiver_net_minor": 141000,
    "created_at": "…",
    "updated_at": "…"
  },
  "meta": {
    "request_id": "req_…"
  }
}

Use status e os eventos/webhooks para acompanhar o resultado; não trate pending como liquidação concluída.

GET
/v1/payments/{id}
cURL
curl -X GET "https://api-pay.edutecka.com/v1/payments/pay_0123456789abcdef0123456789abcdef" \ -H "X-EDPay-Public-Key: <PUBLIC_KEY>" \ -H "X-EDPay-Private-Key: <PRIVATE_KEY>" \ -H "Accept: application/json"
cURL
curl -X GET "https://api-pay.edutecka.com/v1/payments?limit=10" \ -H "X-EDPay-Public-Key: <PUBLIC_KEY>" \ -H "X-EDPay-Private-Key: <PRIVATE_KEY>" \ -H "Accept: application/json"