POST /checkout/order-from-product
Chame o host da API Zenofy a partir de um backend ou automação de confiança. A encomenda fica associada à sua conta via chave de API; só pode encomendar produtos seus.
URL base: a origem HTTPS onde a API Zenofy está publicada (por exemplo https://api.zenofy.io). O caminho deste endpoint é <code>/checkout/order-from-product</code> (POST, routing em minúsculas).
Gere uma chave de API de checkout na app de comerciante: Definições → Chave de API de checkout. Envie-a em todos os pedidos no cabeçalho HTTP Api-Key (texto simples, não Bearer). Revogue ou rode a chave no mesmo ecrã se for exposta.
O corpo JSON usa nomes de propriedade em camelCase. O produto tem de pertencer ao mesmo comerciante que a chave, estar activo e passar as validações da plataforma (por exemplo conta activa). Os ids de bump também têm de ser seus e bumps válidos para o produto principal.
Autenticação
Cabeçalho Api-Key: a chave secreta completa (o valor só é mostrado uma vez ao gerar). Chave em falta ou inválida devolve HTTP 401 com JSON.
Pedido HTTP
POST · Content-Type: application/json · Api-Key
Exemplo de pedido (ilustrativo)
POST /checkout/order-from-product HTTP/1.1
Host: api.zenofy.io
Api-Key: YOUR_CHECKOUT_API_KEY
Content-Type: application/json
{ ... }
Corpo JSON (campos)
| Campo | Tipo | Notas |
|---|---|---|
productId | string | Obrigatório. Id do produto (o mesmo do painel). |
customerName | string | Obrigatório. Nome completo (pelo menos duas palavras), regras de tamanho e caracteres aplicadas no servidor. |
email | string | Obrigatório. Endereço válido com TLD no domínio. |
phoneNumber | string | Obrigatório. Formato internacional com + e indicativo do país (ex.: +258821234567): 7 a 15 dígitos após +, comprimento alinhado a E.164. Espaços e pontuação são removidos. |
bumpProductIds | array de strings | Opcional. Ids dos produtos bump; descontos conforme a configuração de bump. |
currency | string | Opcional. Código ISO de 3 letras (ex.: MZN, USD). Se omitido ou inválido, usa a moeda principal do produto. |
couponCode | string | Opcional. Validado como no checkout; cupão inválido devolve erro em JSON. |
language | string | Opcional. Guardado na encomenda (ex.: en, pt) quando suportado. |
Exemplo de corpo JSON
{
"productId": "507f1f77bcf86cd799439011",
"customerName": "João Silva",
"email": "buyer@example.com",
"phoneNumber": "+258840000000",
"bumpProductIds": ["507f191e810c19729de860ea"],
"currency": "MZN",
"couponCode": null,
"language": "pt"
}
Resposta em caso de sucesso
HTTP 200 com Content-Type: application/json. Em sucesso: success true, orderId, paymentPath (só o caminho, ex. /o/ID_DO_PEDIDO) e paymentUrl (URL HTTPS absoluto para o passo de pagamento no host pay). Em erros de validação ou negócio pode receber HTTP 200 com success: false e message — trate o código de estado e o corpo.
HTTP 200 — success
{
"success": true,
"orderId": "673f92b2c3d94a0012abcd01",
"paymentPath": "/o/673f92b2c3d94a0012abcd01",
"paymentUrl": "https://pay.zenofy.io/o/673f92b2c3d94a0012abcd01"
}
Todos os tutoriais