Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.loveandpay.io/llms.txt

Use this file to discover all available pages before exploring further.

Формат ответа с ошибкой

{
  "success": false,
  "error": {
    "code": "ERROR_CODE",
    "message": "Описание ошибки",
    "details": {}
  }
}

Коды ошибок

Аутентификация (401)

КодОписаниеРешение
MISSING_HEADERSОтсутствует обязательный заголовокДобавьте x-api-key, x-timestamp, x-signature
INVALID_API_KEYНеверный API ключПроверьте правильность ключа
INVALID_SIGNATUREНеверная HMAC подписьПроверьте алгоритм генерации подписи
TIMESTAMP_EXPIREDTimestamp устарел (более 5 минут)Синхронизируйте время сервера
SECRET_NOT_CONFIGUREDСекретный ключ не настроенСгенерируйте ключ в личном кабинете

Доступ (403)

КодОписаниеРешение
PARTNER_INACTIVEАккаунт партнёра неактивенОбратитесь в поддержку
API_BLOCKEDAPI доступ заблокированОбратитесь в поддержку

Лимиты (429)

КодОписаниеРешение
RATE_LIMIT_EXCEEDEDПревышен лимит запросовПодождите и повторите с backoff
CYCLE_BLOCKEDБлокировка за циклические запросыПодождите 15 минут

Валидация (400)

КодОписаниеРешение
VALIDATION_ERRORОшибка валидации данныхПроверьте формат данных
{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Ошибка валидации данных",
    "details": {
      "fields": {
        "amount": "Сумма должна быть больше 0",
        "customerEmail": "Неверный формат email"
      }
    }
  }
}

Ресурсы (404)

КодОписаниеРешение
NOT_FOUNDРесурс не найденПроверьте ID ресурса

Сервер (500)

КодОписаниеРешение
INTERNAL_ERRORВнутренняя ошибка сервераПовторите запрос позже

Обработка ошибок

JavaScript

async function apiRequest(path, options) {
  const response = await fetch('https://loveandpay.io' + path, options);
  const data = await response.json();

  if (!data.success) {
    switch (data.error.code) {
      case 'RATE_LIMIT_EXCEEDED':
        // Retry с backoff
        break;

      case 'INVALID_SIGNATURE':
        console.error('Проверьте алгоритм подписи');
        break;

      case 'TIMESTAMP_EXPIRED':
        console.error('Синхронизируйте время сервера');
        break;

      case 'VALIDATION_ERROR':
        console.error('Ошибки валидации:', data.error.details.fields);
        break;

      default:
        console.error(`Ошибка ${data.error.code}: ${data.error.message}`);
    }

    throw new Error(data.error.message);
  }

  return data;
}

Python

import requests

def api_request(path, **kwargs):
    response = requests.request(**kwargs, url=f'https://loveandpay.io{path}')
    data = response.json()

    if not data.get('success'):
        error = data.get('error', {})
        code = error.get('code')
        message = error.get('message')

        if code == 'RATE_LIMIT_EXCEEDED':
            # Retry с backoff
            pass
        elif code == 'VALIDATION_ERROR':
            fields = error.get('details', {}).get('fields', {})
            print(f'Ошибки валидации: {fields}')

        raise Exception(f'{code}: {message}')

    return data

HTTP статусы

СтатусОписание
200Успешный запрос
201Ресурс создан
400Ошибка валидации
401Ошибка аутентификации
403Доступ запрещён
404Ресурс не найден
429Превышен лимит запросов
500Внутренняя ошибка сервера