Все разделы
@mypay/sdk
npm-пакет для Node.js: ссылки на оплату, счета для «Мой Налог» и проверка webhook-подписи на вашем сервере.
Установка
Пакет публикуется под @mypay/sdk и требует Node.js 18+.
Terminal
npm i @mypay/sdk
Быстрый старт
Токен выпускается из кабинета. Все методы SDK оборачивают REST API и возвращают типизированные ответы.
server.js
import { MyPay } from '@mypay/sdk';
const mypay = new MyPay({
apiKey: process.env.MYPAY_API_KEY,
baseUrl: 'https://api.mypay.ru/v1',
});
const link = await mypay.paymentLinks.create({
amount: 1200.0,
description: 'Консультация · 60 минут',
});
// { token: 'pay_a1b2…', url: 'https://pay.mypay.ru/pay/pay_a1b2…' }Создание ссылки
paymentLinks.create(input)- новая ссылка; передайтеidempotencyKey, чтобы избежать дублей.paymentLinks.list(cursor, limit)- пагинация ключ-курсором.paymentLinks.pause(token)/resume(token)- приостановить или возобновить ссылку.payments.list()- список платежей со статусами и суммами.payments.refund(id)- возврат по успешному платежу.
Проверка webhook-подписи
Каждое событие подписано HMAC-SHA256 секретом из кабинета. Проверяйте подпись, прежде чем обрабатывать уведомление.
webhook.js
import { verifySignature } from '@mypay/sdk';
// Express / Fastify / Next.js route
app.post('/webhooks/mypay', (req, res) => {
const ok = verifySignature({
secret: process.env.MYPAY_WEBHOOK_SECRET,
payload: req.rawBody,
signature: req.headers['x-mypay-signature'],
});
if (!ok) return res.status(401).end();
// событие достоверно - обрабатываем
res.status(200).end();
});