Skip to main content

WebSocket API

Real-time payment status updates via WebSocket.

Connection

const ws = new WebSocket('wss://ws.pelago.tech/v1');

ws.onopen = () => {
ws.send(JSON.stringify({
type: 'authenticate',
apiKey: 'pk_live_xxxxx'
}));
};

Subscribe to Payment

ws.send(JSON.stringify({
type: 'subscribe',
channel: 'payment',
paymentId: 'pay_abc123'
}));

Events

Payment Status Change

{
"type": "payment.status_changed",
"data": {
"paymentId": "pay_abc123",
"status": "completed",
"transactionHash": "abc123..."
}
}

Payment Confirmed

{
"type": "payment.confirmed",
"data": {
"paymentId": "pay_abc123",
"confirmations": 1
}
}

SDK Usage

import { createPaymentStream } from '@pelago/sdk';

const stream = createPaymentStream({
apiKey: 'pk_live_xxxxx',
paymentId: 'pay_abc123'
});

stream.on('status_change', (data) => {
console.log('New status:', data.status);
});

stream.on('error', (error) => {
console.error('Error:', error);
});

// Cleanup
stream.close();

Heartbeat

Send ping every 30 seconds:

setInterval(() => {
ws.send(JSON.stringify({ type: 'ping' }));
}, 30000);