Stream checkout events
A Server-Sent Events stream that lets a pay screen update live. Open it after you submit a charge. It is not wrapped in the { status, data } envelope.
The stream replays stored events after Last-Event-ID when you send it, then emits checkout.connected, periodic checkout.heartbeat keep-alives, and progress events as they happen. It closes after the configured session timeout, which is 15 minutes by default.
| Event | Meaning |
|---|---|
checkout.connected | The stream is open. |
checkout.heartbeat | Keep-alive. Ignore it. |
checkout.processing | A charge is in flight. |
checkout.3ds_required | The customer must complete a 3-D Secure challenge. |
checkout.awaiting_transfer | A virtual account is open and waiting for the transfer. |
checkout.awaiting_bank_authorization | The customer must approve the payment at their bank. |
checkout.awaiting_ussd | The customer must dial the USSD code. |
checkout.amount_mismatch | A transfer of the wrong amount was received. The window is still open, so ask the customer to send the exact total. |
checkout.completed | Terminal. Read status in the payload, then verify from your server. |
checkout.timeout | The session ended without an outcome. |
The interactive playground cannot test this endpoint, because it waits for the connection to close. Use curl -N or an EventSource in the browser.
Authorizations
The accessCode returned by initialise. Scoped to one payment and valid for 60 minutes.
Safe to give to the customer's browser.
Headers
The id of the last event you received, so that the stream resumes after it.
Response
An open text/event-stream. Each event has an event name, an optional id, and a JSON data line.
The response is of type string.