API Documentation v1

API OOPay v1

RESTful API для интеграции платежей через СБП. Простая в использовании документация с примерами кода.

Base URL
https://api.oopay.me/api/v1

Начало работы

Требуется аутентификация: Все endpoints (кроме /status) требуют API ключ в заголовке Authorization.

1. Получите API ключ

  1. Войдите в личный кабинет
  2. Перейдите в раздел Настройки → API
  3. Нажмите "Создать ключ" и сохраните его (показывается только один раз!)

2. Используйте API ключ

HTTP Header
Authorization: Bearer pk_live_xxxxxxxxxxxxxxxx

Статус API

Публичный endpoint! Не требует аутентификации.

GET/status

Проверка работоспособности API и его компонентов.

JavaScript
// Проверка статуса API (БЕЗ аутентификации)
const response = await fetch('https://api.oopay.me/api/v1/status');
const status = await response.json();
console.log(status);
Проверить статус API

Платежи

POST/payments

Создать новый платеж с генерацией QR-кода.

JavaScript
// Создание платежа
const response = await fetch('https://api.oopay.me/api/v1/payments', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    amount: 100000, // 1000 рублей в копейках
    currency: 'RUB',
    description: 'Оплата заказа #123'
  })
});

const payment = await response.json();
console.log(payment);

Параметры запроса:

  • amountСумма в копейках (обязательно)
  • currencyВалюта (по умолчанию: RUB)
  • descriptionОписание платежа
GET/payments

Получить список платежей с пагинацией и фильтрацией.

JavaScript
// Получить список платежей
const response = await fetch(
  'https://api.oopay.me/api/v1/payments?limit=10&status=ACCEPTED',
  {
    headers: {
      'Authorization': 'Bearer YOUR_API_KEY'
    }
  }
);

const { data, meta } = await response.json();
console.log(`Всего платежей: ${meta.pagination.total}`);

QR-коды

POST/qr/generate

Генерация статических или динамических QR-кодов для приема платежей.

JavaScript
// Генерация QR-кода
const response = await fetch('https://api.oopay.me/api/v1/qr/generate', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    type: 'static',
    amount: 50000, // 500 рублей
    description: 'Оплата товара'
  })
});

const qrCode = await response.json();
console.log(qrCode.data.qr_url);

Статический QR

Для фиксированной суммы. Идеален для торговых точек.

Динамический QR

Для каждого платежа. Рекомендуется для онлайн-платежей.

Баланс

GET/balance

Получить текущий баланс и статистику мерчанта.

JavaScript
// Получить баланс
const response = await fetch('https://api.oopay.me/api/v1/balance', {
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY'
  }
});

const { data } = await response.json();
console.log(`Баланс: ${data.balance / 100} руб.`);

Примеры на других языках

🐍Python

Python + requests
import requests

API_KEY = 'YOUR_API_KEY'
BASE_URL = 'https://api.oopay.me/api/v1'

# Создание платежа
response = requests.post(
    f'{BASE_URL}/payments',
    headers={
        'Authorization': f'Bearer {API_KEY}',
        'Content-Type': 'application/json'
    },
    json={
        'amount': 100000,
        'description': 'Оплата заказа #123'
    }
)

payment = response.json()
print(payment)

🐘PHP

PHP + cURL
<?php
$apiKey = 'YOUR_API_KEY';
$baseUrl = 'https://api.oopay.me/api/v1';

$data = [
    'amount' => 100000,
    'description' => 'Оплата заказа #123'
];

$ch = curl_init("$baseUrl/payments");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Authorization: Bearer $apiKey",
    "Content-Type: application/json"
]);

$response = curl_exec($ch);
$result = json_decode($response, true);
curl_close($ch);

print_r($result);
?>

Лимиты и поддержка

Лимиты API

  • 1000 запросов/час на API ключ
  • Макс. сумма платежа: 600,000 ₽
  • Макс. записей на запрос: 100

Готовы начать?

Получите API ключ и начните принимать платежи через 15 минут