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.
/v1/checkout/sessionsRequer 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 -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"
}'{
"data": {
"id": "cs_…",
"token": "<session_token>",
"expires_at": "…"
}
}/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 "https://api-pay.edutecka.com/v1/checkout/sessions/<SESSION_TOKEN>" -H "Accept: application/json"/v1/checkout/sessions/{token}/paymentsEndpoint 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 -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.