Crie uma cobrança pelo servidor da sua loja e encaminhe o cliente ao checkout.
Exemplo para Node.js com fetch. Configure MOVVI_API_KEY, MOVVI_SELLER_ID e ORDER_ID no ambiente do servidor. ORDER_ID deve permanecer estável nas tentativas do mesmo pedido; guarde também o corpo enviado.
const baseUrl = 'https://movvipay.com/api/v1';
const sellerId = process.env.MOVVI_SELLER_ID;
const apiKey = process.env.MOVVI_API_KEY;
const orderId = process.env.ORDER_ID; // Use a persisted UUID for this order.
if (!sellerId || !apiKey || !orderId) throw new Error('Missing configuration');
const response = await fetch(baseUrl + '/sellers/' + sellerId + '/charges', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer ' + apiKey,
'Idempotency-Key': 'order-' + orderId,
},
body: JSON.stringify({
customer_name: 'Cliente de teste',
product: 'Acesso VIP — 30 dias',
amount_cents: 2500,
}),
});
const result = await response.json();
if (!response.ok) throw new Error(result.message || 'Charge creation failed');
// Persist result.id and result.checkout_url with your order before redirecting.
console.log({ chargeId: result.id, checkoutUrl: result.checkout_url });Consulte GET /api/v1/sellers/{seller_id}/charges/{charge_id} usando uma chave com charges:read. Confira o ID, valor e status paid no seu servidor.
O contrato não aceita external_order_id, store_id ou description no corpo da criação. A associação entre o pedido da sua loja e a cobrança Movvi Pay deve ficar no banco da sua loja. O campo de descrição do produto se chama product.
Este exemplo não inclui a entrega automática nem a persistência de pedidos da sua loja.