Skip to content

Шаг 1. Распознавание QR‑кода и расчёт стоимости

На этом шаге ваш сервер передаёт строку, содержащую данные QR‑кода, в API. Система анализирует информацию, вычисляет сумму в локальной валюте и рассчитывает эквивалент в валюте расчета.

Пример QR-кода:

API Creon (modern)

Запрос:

curl -X POST https://api.creon.ae/v2/qr \
     -H "Authorization: Bearer <ACCESS_TOKEN>" \
     -H "Content-Type: application/json" \
     -d '{"tlv":"<СТРОКА_ИЗ_QR_КОДА>"}'

Описание полей:

access_token: string (required) - Authorization: Bearer
tlv: string (required) - Расшифрованная строка из QR-кода

Разбор ответа:

  • Status 200: In response, information about the QR code itself is sent, along with the request ID and a cost estimate.
    {
        "_id": "6f163897-b94e-4e95-8c39-0dafa689fc71",
        "status": "calculated",
        "amountFrom": 309.52,
        "amountTo": 98000,
        "currencyFrom": {
            "_id": "6e65cf3c-c39d-4c5d-9fb0-159a1c054f2d",
            "type": "FIAT",
            "code": "RUB",
            "symbol": "₽",
            "label": "рубль",
            "decimal": 2,
            "countryName": "Russia",
            "countryCode": "RU"
        },
        "currencyTo": {
            "_id": "db8ca38b-52f0-4b7b-875f-8149d1616418",
            "type": "FIAT",
            "code": "VND",
            "symbol": "₫",
            "label": "₫",
            "decimal": 0,
            "countryName": "Vietnam",
            "countryCode": "VN"
        },
        "rate": 316.619281468,
        "reverseRate": 0.0031583673,
        "isCustomAmount": false,
        "merchant": {
            "country": "VN",
            "name": "QR4NQN9GTT McDonalds"
        },
        "metadata": {},
        "createdAt": "2026-02-27T09:52:53.945Z",
        "expiredAt": "2026-02-27T09:57:53.945Z"
    }
    

Описание полей:

_id (uuid): Уникальный ID запроса, используется в следующем шаге оплаты;
status (string): Текущий статус платежа — может принимать значения paid, completed или canceled;

Note

Paid — оплата прошла успешно, терминал принял средства. Нефинальный статус, может измениться в течение 10 минут.
Completed — оплата прошла успешно (финальный статус).
Canceled — оплата не прошла (финальный статус).

amountFrom (number): Сумма списания (в исходной валюте);
amountTo (number): Сумма зачисления (в целевой валюте);
currencyFrom (object) : Данные исходной валюты;
currencyTo (object) : Данные целевой валюты;
_id (uuid): Уникальный ID валюты списания;
type (string): Тип валюты;
code (string): Код валюты;
symbol (string): Символ валюты;
label (string): Название или краткая метка валюты;
decimal (number): Количество знаков после запятой;
countryName (string): Название страны;
countryCode (string): Код страны;
rate (number): Курс обмена;
reverseRate (number): Обратный курс обмена;
isCustomAmount (bool) : Флаг, указывающий, была ли сумма введена пользователем вручную (false, если расчет произведен автоматически);
merchant (object) : Данные продавца;
country (string): Код страны регистрации или нахождения продавца;
name (string): Название продавца;
metadata (object) : Дополнительные метаданные;
createdAt (string): Дата и время создания расчета (в формате ISO 8601);
expiredAt (string): Дата и время истечения срока действия данного расчета/курса

  • Status 400: Authentication failed. Access token is invalid.
    {
    "error": "ERROR_ACCESS_TOKEN_INVALID",  
    "message": "Access token is invalid.",  
    "statusCode": 400  
    }
    

error: string (required)
message: string (required)
statusCode: number

  • Status 401: Authentication failed. Access token has expired.

    {
    "error": "ERROR_TOKEN_EXPIRED",  
    "message": "Access token has expired.",  
    "statusCode": 401  
    }
    

  • Status 403: QR code format is not supported right now.

    {
    "error": "ERROR_QR_CODE_NOT_SUPPORTED",  
    "message": "This QR code not supported.",  
    "statusCode": 403  
    }
    

error: string (required)
message: string (required)
statusCode: number

  • Status 404: QR code expired.
    {
    "error": "ERROR_QR_CODE_EXPIRED",  
    "message": "This QR code is expired.",  
    "statusCode": 404  
    }
    

error: string (required)
message: string (required)
statusCode: number

  • Status 405: No route found for this QR code.
    {
    "error": "ERROR_QR_NO_ROUTE_FOUND",  
    "message": "Routing for this currency not set.",  
    "statusCode": 405  
    }
    

error: string (required)
message: string (required)
statusCode: number

  • Status 500: Project tariff not configured, pls contact with our support.
    {
      "error": "TARIFF_NO_FOUND",  
      "message": "Project tariff not configured, pls contact with our support.",  
      "statusCode": 500  
    }
    

error: string (required)
message: string (required)
statusCode: number

  • Status 501: Requested quote not found, pls contact with our support.
    {
      "error": "QUOTE_NOT_FOUND",  
      "message": "Requested quote not found, pls contact with our support",  
      "statusCode": 501  
    }
    

error: string (required)
message: string (required)
statusCode: number