Getting Started

Ключи для Payout

Как сгенерировать RSA-ключ и настроить клиент для Payout API.

Ключи для Payout

Эта схема подписи применяется только к Payout. Для Payin Classic и Payin H2H используется ed25519 — см. Ключи для Payin.

Payout API использует RSA-подпись с ключами в формате PEM. Каждый клиент идентифицируется по username и своему приватному RSA-ключу.

Что нужно для подключения

ПараметрЧто этоГде взять
baseUrlURL сервера PayoutВыдаём вручную
usernameИмя пользователяВыдаём вручную
privateKeyPemВаш приватный RSA-ключ (PEM)Вы генерируете сами
serverPublicKeyPemПубличный ключ сервераОпционально, выдаём вручную для верификации ответов

Публичная часть вашего RSA-ключа передаётся нам вручную до начала работы — так же, как в Payin.

Генерация ключей

Для RSA можно использовать openssl (в отличие от ed25519).

# Приватный ключ (PKCS#8, 2048 бит)
openssl genpkey -algorithm RSA -out private-key.pem -pkeyopt rsa_keygen_bits:2048

# Публичный ключ — вы передаёте его нам
openssl rsa -in private-key.pem -pubout -out public-key.pem

В SDK также есть утилиты для генерации:

go run examples/generate_keys/main.go

Инициализация клиента

import (
    "os"
    payout "github.com/unitewt/sdk-payout/go"
)

privateKey, _ := os.ReadFile("private-key.pem")
config, err := payout.NewConfig(
    "https://your-server.example.com",
    "your_username",
    privateKey,
)
if err != nil {
    panic(err)
}
client := payout.NewClient(config)

Верификация ответов сервера

Передайте публичный ключ сервера через опциональный параметр — SDK будет проверять подпись ответов:

config, _ := payout.NewConfig(baseURL, username, privateKey,
    payout.WithServerPublicKey(serverPubKey),
)

Переменные окружения в примерах

Во всех SDK интеграционные тесты читают из одних и тех же переменных:

export PAYOUT_BASE_URL="https://your-server.example.com"
export PAYOUT_USERNAME="your_username"
export PAYOUT_PRIVATE_KEY_PATH="./private-key.pem"
Copyright © 2026