Endpoint de streaming via Server-Sent Events (SSE) que mantém uma conexão persistente e notifica o cliente em tempo real sobre mudanças no status do checkout (ex: PIX confirmado, pagamento falhou, checkout expirou).
Autenticação
Endpoint público — não requer Authorization. Utiliza o client_secret como identificador.
Parâmetros de Path
Segredo do cliente do checkout
Eventos SSE
A conexão envia os seguintes tipos de eventos. Quando presente, zoop_payment_data é o objeto retornado pelo gateway com os dados da transação (nome do campo conforme contrato da API).
| Evento | Descrição |
|---|
connected | Confirmação de conexão com o estado atual do checkout |
checkout.updated | Status do checkout foi alterado |
terminal | Estado terminal atingido — conexão será encerrada |
Evento connected
{
"checkout_id": "chk_1a2b3c4d5e6f",
"status": "confirmed",
"payment_method": "pix",
"zoop_payment_data": null
}
Evento checkout.updated
{
"checkout_id": "chk_1a2b3c4d5e6f",
"status": "succeeded",
"payment_method": "pix",
"succeeded_at": "2026-03-20T10:05:00Z",
"zoop_payment_data": { "transaction_id": "txn_pix_abc" }
}
Evento terminal
{ "status": "succeeded" }
Enviado quando o checkout atinge um estado terminal: succeeded, failed ou expired. A conexão é encerrada ~1 segundo após este evento.
Um heartbeat (:heartbeat) é enviado a cada 30 segundos para manter a conexão ativa.
Exemplo
const eventSource = new EventSource(
'https://api.chargefy.io/api/v1/checkouts/client/chks_secret_xyz/stream'
);
eventSource.addEventListener('connected', (e) => {
const data = JSON.parse(e.data);
console.log('Conectado. Status atual:', data.status);
});
eventSource.addEventListener('checkout.updated', (e) => {
const data = JSON.parse(e.data);
if (data.status === 'succeeded') {
console.log('Pagamento confirmado!');
eventSource.close();
}
});
eventSource.addEventListener('terminal', (e) => {
eventSource.close();
});