DocsRecursos da API › Pagamentos & CheckoutCheckout

Checkout

Crie uma sessão de checkout hospedado a partir de um link de pagamento e use o token retornado nos endpoints públicos de checkout.

Autenticação

A criação da sessão é server-to-server e exige X-EDPay-Public-Key e X-EDPay-Private-Key, além de Idempotency-Key. Mantenha a chave privada no servidor. Os endpoints públicos que recebem o token da sessão não usam as chaves de parceiro.

POST
/v1/checkout/sessions

Requer escopo payment_links:write e um link ativo pertencente à conta autenticada. embed_origin é opcional: envie a origem HTTPS canónica exacta do site comerciante (por exemplo, https://shop.example.com), sem caminho, query ou fragmento. É necessária para apresentar o checkout em modal ou iframe; para redirect, pode omiti-la. A origem faz parte dos parâmetros de idempotência: reutilize a mesma Idempotency-Key apenas com o mesmo link e a mesma origem. Respostas: 201 na criação; 200 em repetição idempotente. A resposta inclui id, token e expires_at.

cURL
curl -X POST "https://api-pay.edutecka.com/v1/checkout/sessions" \ -H "X-EDPay-Public-Key: <PUBLIC_KEY>" \ -H "X-EDPay-Private-Key: <PRIVATE_KEY>" \ -H "Accept: application/json" \ -H "Idempotency-Key: checkout-session-order-001" \ -H "Content-Type: application/json" \ -d '{ "payment_link_id": "plink_0123456789abcdef0123456789abcdef", "embed_origin": "https://shop.example.com" }'
Resposta de exemplo
{
  "data": {
    "id": "cs_…",
    "token": "<session_token>",
    "expires_at": "…"
  }
}
GET
/v1/checkout/sessions/{token}

Endpoint público. Devolve a sessão, embed_origin e os dados públicos do link de pagamento; sessão inválida ou expirada devolve 404.

cURL
curl "https://api-pay.edutecka.com/v1/checkout/sessions/<SESSION_TOKEN>" -H "Accept: application/json"
POST
/v1/checkout/sessions/{token}/payments

Endpoint público, sem chaves de parceiro. O JSON exige os campos string method e phone, além de Idempotency-Key. Para este checkout hospedado, use um método activo de GET /v1/public/payment-methods cujo required_fields contenha customer_phone. Métodos que exigem payment_token ou wallet_token respondem 422 com checkout_method_requires_tokenization até existir tokenização nesse formulário.

cURL
curl -X POST "https://api-pay.edutecka.com/v1/checkout/sessions/<SESSION_TOKEN>/payments" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: checkout-payment-order-001" \
  -d '{"method":"<PHONE_METHOD_CODE>","phone":"+25884xxxxxxx"}'

A tarifa é 6% em MZN. A resposta pode indicar pending; consulte GET /v1/checkout/sessions/{token}/payments/{payment_id} ou os webhooks configurados para acompanhar o resultado.